我有一个使用T盘的Bosch Tassimo TAS2002EE咖啡机。这些包含咖啡/牛奶/其他东西,以及应该告诉机器如何处理磁盘的条形码。
我想做的就是理解条形码并提出一些不同的条形码。那将被认为是有效的,让我调整例如喝水量。
起初我找不到关于这些条形码的任何体面的信息,在Google热门搜索中最像是这种无用的咆哮。出乎意料的是,当搜索T盘的图片(以便研究更多条形码)时,我偶然发现了这个有用的文章:破解Tassimo-第2部分:破坏代码(存档),该链接也与此T盘相关专利,其中有解释控制位的表格。尽管这很有前途,但是却没有任何结果,正如博客作者所发现的那样。 (第3部分存档)
在上面链接中的信息之上,这是我发现的内容。
条形码使用Interleaved 2 of 5符号和6位数字。最后一位数字是根据UPC校验位规则计算出的校验位。
去除了校验和的实际条形码:
╔═════════╦══════════════════════════════════╦════════════╦═══════════════════╗ ║ Barcode ║ Product ║ Output, ml ║ Barcode binary ║ ╠═════════╬══════════════════════════════════╬════════════╬═══════════════════╣ ║ 06409 ║ coffe créma ║ 150 ║ 00011001 00001001 ║ ║ 06178 ║ espresso ║ 80 ║ 00011000 00100010 ║ ║ 63735 ║ milk for latte (big disk) ║ ? ║ 11111000 11110111 ║ ║ 06182 ║ milk for cappuccino (small disk) ║ ? ║ 00011000 00100110 ║ ║ 06665 ║ hot chocolate ║ ? ║ 00011010 00001001 ║ ║ 07879 ║ service disk ║ 200 ║ 00011110 11000111 ║ ╚═════════╩══════════════════════════════════╩════════════╩═══════════════════╝
服务磁盘用于清洗后,无需任何冲泡时间即可使60°C的热水直接流过。
我尝试使用条形码打印机修改CoffeCréma条形码以提供300毫升(专利中的最大量)。我进行了一些真正的广泛测试,打印并向机器提供了少量条形码,条形码中似乎有六个位而不是四个来控制数量。可以在此处从Google文档获取数据。所讨论的6位范围在中间:第一个字节的后3位和第二个字节的前3位(大端)。由于Google文档不支持单元内颜色,因此在Google云端硬盘上还上传了一个颜色更精美的Excel文件。
所以我确定了两个6位序列,这些序列为Crema提取了300 ml 。
出于兴趣,我选择了其中一个序列并将其放入原始Espresso条码的相应位置。就在这里,我得到了300毫升的意式浓缩咖啡。
虽然很成功(我现在能够为感兴趣的饮料生产正确数量的条形码),确切地讲,它仍然完全丢失了。从实验表中可以看到,模式相当模糊,并且有些条目从不同的位组合得出相同的体积。我也不确定是否会获得与我制作的条形码相同的冲煮参数。
请分享您的想法,以进一步了解这一点。
#1 楼
考虑您能够修改的代码。修改后的代码的十进制表示形式是065375。The checksum of 064095 = 3*0 + 6 + 3*4 + 0 + 3*9 + 5 = 50 (≡ 0 mod 10).
The checksum of 065375 = 3*0 + 6 + 3*5 + 3 + 3*7 + 5 = 50 (≡ 0 mod 10).
因此,似乎该磁盘已被接受,因为校验和匹配,而其他磁盘由于以下原因而未被使用错误的校验和。
现在,如果我从十进制数字中删除了校验和,然后将它们转换为二进制:
06409 = 0001 1001 0000 1001
06537 = 0001 1001 1000 1001
即使我比较较大的体积(170/230以考虑残留在光盘中的水),也比较较小的体积(130/190),这与专利量表中的任何内容都不匹配。 -我的两个数字只有一位不同,表中的每个组合都需要一个以上的不同位。但是,不能保证机器中的音量表与专利中的音量表相同。十进制数字,加到校验和数字上,然后打印到条形码上,然后检查会发生什么情况:
这应该提示哪个位具有什么含义。如果您向其抛出除二进制数字以外的任何结果,它将完成工作):
$ ./bitflip 0001100100001001
1001100100001001 391771
0101100100001001 227933
0011100100001001 146012
0000100100001001 023139
0001000100001001 043618
0001110100001001 074339
0001101100001001 069212
0001100000001001 061537
0001100110001001 065375
0001100101001001 064736
0001100100101001 064415
0001100100011001 064255
0001100100000001 064019
0001100100001101 064132
0001100100001011 064118
0001100100001000 064088
#2 楼
首先考虑一下似乎没有排队的数量。 Q中的第一个链接讨论了吹扫和装料部分-这些将对体积有贡献,并且体积表可能会假设这些过程中的贡献可能不是最小的第二个-还有更多为您提供的数据:
我们有一个饮水机盘(它代替了输出喷嘴,因此它不是很有用;我使用冲洗过的Suchard巧克力盘作为水)。水盘具有4种可选条形码,分别用于4种不同的体积(150、250、350和450毫升)。我什么也无法在线或通过android来实际读取愚蠢的东西。如果有人感兴趣,我可以发布扫描,并且我会继续尝试,但是根据Wikipedia的说法,它似乎没有启动代码。
编辑:饮水机盘片
此外,在夏天,英国网站也赠送了冷饮制作普通饮料的覆盖层。我尚未测试它们,但根据Wikipedia,它们也不符合ITF规范。
╔═════════════╦════════════════════════╦════════════╦══════════════════════════╗ ║ Barcode ║ Product ║ Output, ml ║ Binary (excl first/last) ║ ╠═════════════╬════════════════════════╬════════════╬══════════════════════════╣ ║ ?????? ║ Water ║ 150 ║ ║ ║ ?????? ║ Water ║ 250 ║ ║ ║ 0 690872 6 ║ Water ║ 350 ║ 1010 1000 1010 1011 1000 ║ ║ 0 191694 6 ║ Water ║ 450 ║ 0010 1110 1100 1100 1110 ║ ╚═════════════╩════════════════════════╩════════════╩══════════════════════════╝
以上条形码是使用Android条形码扫描器读取的。 br />
评论
感谢您的贡献!由于OP已有将近一年的历史,所以我们现在不知道是否有人对此感兴趣。但是,由于该站点也用于收集知识,因此将来可能有人会对条形码感兴趣。因此,即使可能不会有任何立即反应,也请发布扫描结果。
–贡特拉姆·布洛姆(Guntram Blohm)
15年2月19日在14:59
@GuntramBlohm,已完成-OP用户在最后一天一直活跃在SO上,因此希望他们会注意到。
–克里斯H
15年2月19日在15:35
是的,我确实注意到了!感谢您提供的信息,尽管首先了解允许条形码无效并不令人耳目一新。关于状态更新:我仍然很想确切地知道发生了什么,但是一段时间后,我对打印和送入条形码感到厌倦,所以我将其放在一旁,自从使用330ml条形码以来我就想到了在测试期间(给出此卷的两个示例之一)。我不知道最终的酿造说明有多错误,但原则上是可以做到的。
–GSerg
2015年2月19日在16:42
我不是专家,但我无法弄清楚这些条形码是什么-它们与普通光盘的代码不同,并且似乎有4个线宽。我什至找不到启动/停止标记的通用模式。难怪在线或android的读者都运气不佳。我希望这些代码可以通过更简单的说明来提供帮助,但显然没有帮助。
–克里斯H
2015年2月21日在16:07
有两个饮水机T型盘,图中的一个是针对另一组机器的非交错式5个版本中的2个。饮水机光盘的Interleaved 2 of 5版本为绿色,并且条形码可以正常扫描。我将查看是否可以处理我的数据并将其添加为帮助收集更多信息的答案。
– Mark Booth
15年6月23日在11:08
#3 楼
CostaCosta Americano(220毫升)297615(单个T盘)
Costa Cappuccino(215ml)
热奶咖啡卡布奇诺和拿铁咖啡022095
热奶咖啡卡布奇诺061827(S)
Costa焦糖拿铁(320ml)
卡布奇诺咖啡和拿铁咖啡022095的哥斯达黎加浓缩咖啡(焦糖拿铁637350的奶油(L))
吉百利
吉百利热巧克力(265ml)
吉百利热巧克力066655
Creamer(S)for Cadbury 061827
Gevalia
Gevalia Kaffe Espresso 849838(专业T盘显然与家用啤酒商不兼容)
Gevalia Kaffe浓缩咖啡594912
Gevalia Kaffe焦糖浓缩咖啡(60ml)674270
Gevalia Kaffe签名混合642262
麦斯威尔之家
麦斯威尔之家648035(12盎司装355毫升大瓶装?)
星巴克
S tarbucks Espresso Roast 596831
Carte Noire卡布奇诺(190ml)
Carte Noire卡布奇诺(190ml)
Expresso Intense 061780
卡布奇诺061827的增稠剂(S)
Carte Noire Petit Dejeuner Classic(215ml)297615(单个T盘)
Carte Noire浓咖啡经典(60毫升)061780(单个T盘)
第二杯
第二杯巧克力糖浆( 195ml)676458
第二杯浓咖啡(65ml)594592
Nabob
Nabob Breakfast Du Matin早餐683050
Milka
Milka热巧克力(245ml)
Milka Chocolate 066655
Milka,Marabou和Freia 061827的增稠剂(S)卡布奇诺(215毫升)634793
拿铁咖啡(250毫升)636070
甜拿铁咖啡(200毫升)634793
其他
(Twinnings)(Creamer / Milk)for Chai Latte 674478
Twinings英式早餐茶(195ml)032872(单个T盘)
Corner咖啡屋薄荷巧克力糖浆676458
茶棒桃冰茶349130(这是未加热的水吗?)
Tazo清醒红茶699556
萨查德热巧克力(195ml)047852(单只) T碟)
Kenco中度烘烤(195毫升)297615(单T碟)
注意事项:
Carte Noire浓咖啡经典60毫升+卡布奇诺的Carte Noire Expresso Intense 190ml共享的条码可能暗示着卡布奇诺奶精= 130ml?
Kenco中度烘烤195ml + Carte Noire Petit Dejeuner Classic 215ml共享相同的条码,即使相差20ml也是如此?尽管箔标签不同,但吉百利的奶精具有相同的条形码。
科斯塔卡布奇诺咖啡和哥斯达黎加焦糖拿铁对卡布奇诺咖啡和拿铁T盘使用相同的哥斯达黎加浓缩咖啡
#4 楼
我有领先优势!我查看了很多数据,我认为人们对二进制文件的十进制表示分心。我们只需要关注二进制文件即可。我首先是在查普曼咨询站上发表了一个神秘而精确的评论,才想到了这个主意。
OPGSerg在Google上发布了一个包含二进制文件的实验电子表格。专用于某些功能。例如,我已将液体体积隔离为特定的三位(8个设置)。但是,我认为液体量会根据不同的位范围而变化。
我认为有多种模式,每种模式都有自己的温度范围。
这是OP的电子表格的副本,在二进制文件上有空格,以隔离重要的体积位。
https://docs.google.com/spreadsheets/d/1Qpj4KC9xK5Dr7VY5HoNWr9azHKRl94jKABDwTKTbUfg/edit?usp=sharing
我认为这是条形码与功能的第一个直接关联我们有。
我们比以往更接近破解它!有了更多的数据,尤其是温度数据,我想我可以弄清楚了。
评论
我已经购买了一个温度探头,我只需要将其连接到数据记录仪上,就应该能够使用它来获取温度,抽水和吹扫速率的一些指标。我现在所需要的只是时间。
– Mark Booth
15年6月23日在11:14
#5 楼
首先,我只想发表评论,但是信誉系统不允许我这样做,因为我是新来的。咖啡机。第一个读取T盘侧面的条形码。该代码使用5的Interleaved 2进行格式化。另一种类型的机器(我认为只有T43xx和T55xx)从T盘的正面读取条形码,如用户图片所示恐怖。我们已经发现,该代码是无效的,我发现所有扫描仪应用程序和在线解码器都无法将其转换为可读文本。
在研究期间,我发现了一个德国论坛帖子,告诉我这是无效的UPC-E 。但是我无法在Photoshop上缺少其中的缺失部分,即开始和结束序号。
在同一论坛中,我的链接下方有一条评论,有人猜测这些代码指的是带有硬编码的内部存储器冲泡说明。我认为这是错误的,因为在这种情况下,tassimo无法在启动机器后更新其磁盘阵容,而在我所在的地区,他们是通过牛奶碟来做到这一点的。
#6 楼
我检查了此链接http://blog.chapmanconsulting.ca/post/2007/12/02/Hacking-the-Tassimo-Part-2-Breaking-the-Code.aspx。我认为饮料量有误。我检查这两个参数:
3.饮料量(4,5,6,7位)
4.流量(8,9,10位) 。
您需要结合使用这两个参数来获得精简的音量。 4-7位就像水泵工作的时间,而8-10位是流量的时间。因此,我认为您的水泵钻头最长为15秒,钻头4-7 1111 = 15,流速增加了12.5%111 = 7 7(111)= 100%6(110)= 87.5%5(101)= 75% 4(100)= 62.5%3(011)= 50%2(010)= 37.5%1(001)= 25%0(000)= 12.5%
这只是一个理论需要确认。 br />
#7 楼
这似乎是位的完整映射:http://wiki.mbirth.de/know-how/hacking/tassimo-barcodes.html
评论
表格前的通知指出,该映射来自专利说明,目前尚不清楚它在实际条形码中的使用方式。我们已经考虑了专利说明(请参阅问题文本)。
–GSerg
15年12月13日在9:51
几天前有人给我发送了这张图片。我将很快将此信息添加到我的Wiki页面。但是,仅从ICE DISC的代码来看,我怀疑这是正确的编码,因为温度的位(根据该图像)分别是10和11,而不是00。
–分娩
16年4月14日在13:07
#8 楼
最初引用的博客已消失,但是HeyRick的博客上有很多有用的信息,后来HeyRick的Blog上又有很多有用的信息,其中很多似乎是重复的专利,但是还包括一些进一步的测试:Bit Parameter Description
0 & 1 Water temperature 00 = cold
01 = warm
10 = 83°C.
11 = 93°C.
2 & 3 Cartridge charge 00 = fast charge with soak
01 = fast charge without soak
10 = slow charge with soak
11 = slow charge without soak
4, 5, 6 & 7 Beverage volume 0000 = 50 ml
0001 = 60 ml
0010 = 70 ml
0011 = 80 ml
0100 = 90 ml
0101 = 100 ml
0110 = 110 ml
0111 = 130 ml
1000 = 150 ml
1001 = 170 ml
1010 = 190 ml
1011 = 210 ml
1100 = 230 ml
1101 = 250 ml
1110 = 275 ml
1111 = 300 ml
8, 9 & 10 Flow rate 000 = 30%
001 = 40%
010 = 50%
011 = 60%
100 = 70%
101 = 80%
110 = 90%
111 = 100%
11 & 12 Purge 00 = slow flow/short period
01 = slow flow/long period
10 = fast flow/short period
11 = fast flow/long period
显然,EU和非EU型号之间也存在差异。
评论
根据您链接到的第二篇博客文章,最后一位是UPC样式的校验位,在转换为二进制之前应删除该位(并为任何修改后的代码重新计算)。您只是碰巧幸运的是,两位更改导致一个数字通过了支票。请注意,UPC校验位方案的设计方式是,对于已经以正确的校验位结尾的偶数长度代码,重复计算始终为零。也就是说,对于正确校验和的(偶数长度)代码,(偶数之和)+ 3 *(奇数之和)≡0(mod 10)。
@IlmariKaronen是的,您是对的,我忽略了这一点。当我删除校验位时,一切都进行得很好。请查看编辑。
看着你的桌子,我看不到你从不会在crema实验中翻转第一个字节的最后一位。因此,这可能会或可能不会更改任何内容。此外,该专利还提到了不同的装药量-浸泡与不浸泡-可能会影响杯中的水量以及蒸汽/不蒸汽,这在专利中并未提及。最后,博客作者提到,美国人的手推车似乎具有较高的第一位数,而欧洲人的位数则为零。这可能意味着某些位对设备没有影响,但可以用作被许可方/供应商标识。
只是想指出这个线程仍然是相关的wiki.mbirth.de/know-how/hacking/tassimo-barcodes.html做得很好,但是可能已经注意到条形码可能是反向的,或者有点翻转使得逆吗?编辑:这可能是相关的:patents.google.com/patent/US7231869?oq=coffee+barcode在上面的链接中搜索“表3”