題:
Tassimo咖啡機的反向工程T盤條形碼
GSerg
2014-03-20 21:46:00 UTC
view on stackexchange narkive permalink

希望這是適當的 sup>

我有一個使用T盤的Bosch Tassimo TAS2002EE咖啡機。這些包含咖啡/牛奶/其他東西,以及應該告訴機器如何處理磁盤的條形碼。

我想做的是理解條形碼並提出一些不同的條形碼,將被視為有效,讓我調整例如

起初,我找不到關於這些條形碼的任何體面的信息,在Google熱門搜索中,最常見的是 this這樣的無用之聲。出乎意料的是,當搜索T盤圖片(以研究更多條形碼)時,我偶然發現了以下有用的文章:破解Tassimo-第2部分:破解代碼 檔案) sup>,它還鏈接到該T盤相關專利,其中有一個表格解釋了控制位。儘管這很有前途,但是卻沒有任何結果,因為博客作者也親自發現了第3部分歸檔文件) sup>


在上面鏈接中的信息之上,這是我發現的內容。

條形碼使用 Interleaved 2 of 5符號和6位數字。最後一個數字是根據 UPC校驗數字規則計算出的校驗數字。
已刪除校驗和的實際條形碼:

╔═════════ ╦══════════════════════════════════╦════════════╦═ ══════════════════╗║條形碼║產品║輸出,毫升║條形碼二進制║╠═════════╬════════ ══════════════════════════╬════════════╬══════════ 409 06409 cr咖啡créma║150║00011001 00001001║║06178║意式濃縮咖啡║80║00011000 00100010║║63735 la拿鐵牛奶(大碟)║? ║11111000 11110111║║06182║卡布奇諾咖啡(小碟)║ ║00011000 00100110║║06665║熱巧克力║? ║00011010 00001001║
║07879║服務磁盤║200║00011110 11000111║╚═════════電影════════════════════════════ ══════牛皮════════════牛皮═══════════════════╝

服務盤用於清潔,它可以使60°C的熱水直接流過而沒有任何沖泡時間。

使用條形碼打印機,我嘗試將CoffeCréma條形碼修改為300 ml(專利)。我進行了一些真正的廣泛測試,打印並向機器提供了少量條形碼,似乎條形碼中有6位而不是4位用於控制數量。數據可在此處在Google文檔中找到。所討論的6位範圍位於中間:第一個字節的後3位和第二個字節的前3位(大端)。由於Google文檔不支持單元內顏色,因此此處在Google雲端硬盤上還上傳了一個顏色更好的Excel文件。

所以我確定了兩個6位序列為了得到300毫升的Crema。
出於興趣,我選擇了其中一個序列,並將其放入原始Espresso條碼的相應位置。就在這裡,我得到了300毫升的意式濃縮咖啡。確切的說,我仍然完全迷失了自己。從實驗表中可以看到,模式相當模糊,並且有些條目從不同的位組合得出相同的體積。我也不確定我會獲得與我製作的條形碼相同的衝煮參數。

請分享您的想法,以進一步了解這一點。

根據您鏈接到的[第二篇博客文章](http://www.chapmanconsulting.ca/post/2007/12/05/Hacking-the-Tassimo-Part-3-Updates.aspx),最後一位是[UPC樣式的校驗位](http://en.wikipedia.org/wiki/Universal_Product_Code#Check_digits),並且在轉換為二進制之前應刪除(並為任何修改後的代碼重新計算)。您只是碰巧很幸運,兩位更改導致一個數字通過了支票。
請注意,UPC校驗位方案的設計方式是,對於已經以正確的校驗位結尾的偶數長度代碼,重複計算始終為零。也就是說,對於正確校驗和的(偶數長度)代碼,(偶數之和)+ 3 *(奇數之和)≡0(模10)。
@IlmariKaronen是的,您是嚴厲的,我忽略了這一點。當我刪除校驗位時,一切都進行得很好。請查看編輯。
看著你的桌子,我看不到你從不會在crema實驗中翻轉第一個字節的最後一位。因此,這可能會或可能不會更改任何內容。此外,該專利還提到了不同的裝藥量-浸泡與不浸泡-可能會影響杯中的水量,以及蒸汽/不蒸汽,這在專利中均未提及。最後,博客作者提到,美國人的手推車似乎具有較高的第一位數,而歐洲人的位數則為零。這可能意味著某些位對設備沒有影響,但可以用作被許可方/供應商的標識。
只是想指出這個線程仍然是相關的http://wiki.mbirth.de/know-how/hacking/tassimo-barcodes.html做得很好,但是可能已經註意到條形碼可能是反向的,或者翻轉可能使它反轉?編輯:這可能是相關的:https://patents.google.com/patent/US7231869?oq=coffee+barcode在上面的鏈接中搜索“表3”
紅色的T盤怎麼樣,[https://www.bosch-home.co.uk/store/00342447#/Tabs=section-fitsappliance/](https://www.bosch-home.co.uk/ store / 00342447#/ Tabs = section-fitsappliance /),列為“測試板-測試T盤壓力和洩漏測試,red00342447”。頁面上有條形碼的照片-誰能告訴我它對機器的指示去做?我假設這會阻塞出口,以便進行壓降和洩漏視覺測試。
八 答案:
Guntram Blohm supports Monica
2014-03-21 00:50:47 UTC
view on stackexchange narkive permalink

考慮可以修改的代碼。修改後的代碼的十進製表示形式是065375。

 校驗和064095 = 3 * 0 + 6 + 3 * 4 + 0 + 3 * 9 + 5 = 50(≡0 mod 10)校驗和為065375 = 3 * 0 + 6 + 3 * 5 + 3 + 3 * 7 + 5 = 50(≡0 mod 10)。 

所以看來這個磁盤是接受,因為校驗和匹配,而您的其他磁盤由於校驗和錯誤而未被使用。

現在,如果我從十進制數字中刪除校驗和數字,然後將它們轉換為二進制:

  06409 = 0001 1001 0000 100106537 = 0001 1001 1000 1001  

不幸的是,即使我比較了較大的數量,這也與專利量表中的內容不符( 170/230(表示留在圓盤中的水)或較小的體積(130/190)。 -我的兩個數字只有一位不同,表中的每個組合都需要一個以上的不同位。但是,不能保證機器中的音量表與專利中的音量表相同。

我將嘗試採用上述代碼,將它們中的每一個依次翻轉,計算出十進制數,在校驗位粘性,並打印條形碼,然後檢查會發生什麼:

  $ ./bitflip 00011001000010011001100100001001 3917710101100100001001 2279330011100100001001 1460120000100100001001 0231390001000100001001 0436180001110100001001 0743390001101100001001 0692120001100000001001 0615370001100110001001 0653750001100101001001 0647360001100100101001 0644150001100100011001 0642550001100100000001 0640190001100100001101 0641320001100100001011 0641180001100100001000 064088  

如果所有這些條形碼都被接受,它們將產生不同的結果,從而提示哪個位具有什麼含義。

如果您想使用其他一些位組合,這是我的bitflip程序的源代碼(這不是最乾淨的代碼,如果您向其中拋出除二進制數字以外的任何內容,它都會產生奇怪的結果,但這會完成工作):

  #include <stdio.h>#include <string.h>#include <stdlib.h>int main(int argc,char ** argv){intpos,in pos char oldbit; char buf [10]; if(argc!= 2 || strlen(argv [1])!= 16){fprintf(stderr,“需要一個16位二進制值\ n”);出口(1); } for(pos = 0; pos<16; pos ++){oldbit = argv [1] [pos]; argv [1] [pos] =(oldbit =='1'?'0':'1'); binval = 0; for(pos2 = 0; pos2<16; pos2 ++){binval =(binval<<1)| (argv [1] [pos2] =='1'); } sprintf(buf,“%05d”,binval);校驗和= 3 *(buf [0]-'0')+(buf [1]-'0')+ 3 *(buf [2]-'0')+(buf [3]-'0')+ 3 *(buf [4]-'0');校驗和= 10-(校驗和%10);如果(checksum == 10)checksum = 0; printf(“%16s%5s%d \ n”,argv [1],buf,校驗和); argv [1] [pos] = oldbit; }}  
Chris H
2015-02-19 20:31:34 UTC
view on stackexchange narkive permalink

首先考慮一下似乎沒有排隊的捲。 Q中的第一個鏈接討論了吹掃和裝料部分-這些將對體積有所貢獻,並且體積表可能會假設來自這些過程的某些貢獻可能不是最小的

第二-為您提供更多數據:

我們有一個飲水機碟片(它代替了輸出噴嘴,因此它不是很有用;我使用水洗過的Suchard巧克力碟)。水盤具有4個可選的條形碼,分別用於4種不同的體積(150、250、350和450毫升)。我無法在線或通過android讀取任何愚蠢的東西。如果有人感興趣,我可以發布掃描信息,並且我會繼續嘗試,但是看起來它並沒有根據 wikipedia 提供的開始代碼。

編輯:掃描的飲水機光盤

Hot water T-disc

此外,在夏天,英國網站還贈送了用冷水沖泡普通飲料。我尚未測試它們,但根據維基百科,它們也不符合ITF規範。

╔═════════════╦═══════ ═════════════════╦════════════╦═══════════════════ ═══════╗║條形碼║產品║輸出量(毫升)║二進制(不包括第一個/最後一個)║╠═════════════╬══════════ ══════════════╬════════════╬══════════════════════ ════╣║?????? ║水║150║?????? ║水║250║║0 690872 6║水║350║1010 1000 1010 1011 1000║║0 191694 6║水║450║0010 1110 1100 1100 1110║╚═════════════牛皮════════════════════════牛皮════════════牛皮═══════════ ═══════════════╝

上面的條形碼是使用Android的條形碼掃描儀讀取的。

感謝您的貢獻!由於OP已有將近一年的歷史,所以我們現在不知道是否有人對此感興趣。但是,由於該站點也用於收集知識,因此將來可能有人會對條形碼感興趣。因此,即使可能不會有任何立即反應,也請發布掃描結果。
@GuntramBlohm,已完成-OP用戶在最後一天一直活躍在SO上,因此希望他們會注意到。
是的,我確實注意到了!感謝您提供的信息,儘管首先了解允許條形碼無效並不令人耳目一新。關於狀態更新:我仍然很想確切地知道發生了什麼,但是一段時間後,我對打印和送入條形碼感到厭倦,所以我將其放在一旁,自從使用330ml條形碼以來,我就想到了在測試期間(給出此卷的兩個示例之一)。我不知道最終的釀造說明有多錯誤,但原則上是可以做到的。
我不是專家,但我無法弄清楚這些條形碼是什麼-它們與普通光盤的代碼不同,並且似乎有4個線寬。我什至找不到啟動/停止標記的通用模式。難怪在線或android的讀者都運氣不佳。我希望這些代碼可以作為更簡單的說明來提供幫助,但顯然沒有幫助。
有兩個飲水機T型盤,圖中的一個是針對另一組機器的非交錯式5個版本中的2個。飲水機光盤的Interleaved 2 of 5版本為綠色,並且條形碼可以正常掃描。我將查看是否可以處理我的數據並將其添加為幫助收集更多信息的答案。
user4313
2014-04-06 22:50:30 UTC
view on stackexchange narkive permalink

Costa

  • Costa Americano (220毫升)297615(單T盤)
  • Costa卡布奇諾咖啡(215毫升)
    • 用於卡布奇諾咖啡的Costa濃縮咖啡&拿鐵 022095
    • 卡布奇諾咖啡粉(S) 061827
  • 哥斯達黎加焦糖拿鐵(320毫升)
    • 哥斯達黎加濃咖啡卡布奇諾&拿鐵 022095
    • 焦糖拿鐵的起泡劑(L) 637350

吉百利

  • 吉百利熱巧克力(265毫升)
    • 吉百利熱巧克力 066066
    • 奶油(S) for吉百利 061827

Gevalia

  • Gevalia Kaffe Espresso 849838(專業的T-Disc顯然與家用啤酒商不兼容)
  • Gevalia Kaffe Espresso 594912
  • Gevalia Kaffe Caramel Espresso (60毫升) 674270
  • Gevalia Kaffe招牌混合 642262

麥克斯韋之家

  • Maxwell House Morning (麥克斯韋之家早晨) 648035(盛裝355毫升的12盎司裝)

星巴克

  • 星巴克咖啡濃咖啡烘焙 596831

黑比爾

  • 黑比爾卡布奇諾(190毫升) )
    • Carte Noire Expresso Intense 061780
    • 卡布奇諾用起泡劑(S) 061827
  • Carte Noire Petit Dejeuner Classic (215毫升)297615(單個T盤)
  • Carte Noire Espresso Classic (60毫升)061780(單個T盤)
  • 第二杯

    • 第二杯巧克力糖漿(195毫升)676458
    • 第二杯特濃咖啡(65毫升)594592

    Nabob

    • Nabob早餐杜馬汀 683050

    Milka

    • Milka熱巧克力(245毫升)
      • Milka巧克力 066655
      • Milka,Marabou & Freia的Creamer(S) 061827

    Tassimo Brand

    • 卡布奇諾奶昔(215毫升)634793
    • 拿鐵奶昔(250毫升)636070
    • 甜蜜拿鐵調味劑(200毫升)634793

    其他

    • 674478
    • Twinings英式早餐茶(195毫升)032872(單T盤)
    • 角落咖啡屋薄荷巧克力糖漿 676458
    • 茶棒桃冰茶 349130(這是未加熱的水嗎?)
    • Tazo清醒紅茶 699556
    • 蘇哈德熱巧克力(195毫升)047852(單T盤)
    • Kenco中度烘烤(195毫升) )297615(單個T盤)

    注:

    1. 卡布奇諾咖啡中的Note濃咖啡經典60ml + Nore Expresso Intense卡特比諾共享條形碼可能暗示著Creamer適用於卡布奇諾= 130ml?
    2. Kenco中度烘烤195ml + Carte Noire Petit Dejeuner Classic 215ml共享相同的條形碼,即使相差20ml?
    3. Capuccino的製脂劑和Cadbury的Creamer的條形碼相同,儘管不同
    4. Costa Cappuccino和Costa Caramel Latte對Cappuccino & Latte T圓盤使用相同的Costa Espresso
    5. ol>
    Jordan Davis
    2014-12-19 02:51:39 UTC
    view on stackexchange narkive permalink

    我有領先優勢!

    我查看了很多數據,我認為人們對二進製文件的十進製表示分心。 我們只需要關註二進製文件即可。我首先是在查普曼諮詢站上的一個精確精確的評論中得到了這個想法。

    OPGSerg發布了一個很棒的Google電子表格,其中包含二進製文件。

    我的假設是,有一些位域專門用於某些功能。例如,我已將液體量隔離為特定的三位(8種設置)。但是,我認為液體量會根據不同的位範圍而變化。

    我認為有多種模式,每種模式都有自己的溫度範圍。

    這是OP的電子表格的副本,在二進製文件上有空格,以隔離重要的體積位。

    https://docs.google.com/spreadsheets/d/1Qpj4KC9xK5Dr7VY5HoNWr9azHKRl94jKABDwTKTbUfg/edit?usp=sharing

    我認為這是第一個直接相關條形碼的功能。

    我們比以往更接近破解此問題!有了更多數據,尤其是溫度數據,我想我可以弄清楚了。

    我已經購買了一個溫度探頭,我只需要將其連接到數據記錄儀上,就應該能夠使用它來獲取溫度,抽水和吹掃速率的一些指標。我現在所需要的只是時間。
    schoeM
    2016-05-26 15:49:19 UTC
    view on stackexchange narkive permalink

    首先,我只想發表評論,但是信譽系統不允許我這樣做,因為我是新來的人。
    我的研究表明:對於這個項目,我們確實要區分兩個咖啡機的類型。第一個讀取T盤側面的條形碼。該代碼是使用 Interleaved 2 of 5 格式化的。如圖所示,來自User perror。我們已經發現,該代碼是無效的,我發現所有的掃描儀應用和在線解碼器都無法將其轉換為可讀的文本。
    在研究過程中,我發現了一個德語論壇帖子,這是無效的UPC-E 。但是我無法在Photoshop上缺失缺失的部分,即開始和結束序號。
    在同一論壇中,我的鏈接下方有一條評論,有人猜測這些代碼指的是帶有硬編碼沖泡的內部存儲器說明。我認為這是錯誤的,因為在這種情況下,tassimo無法在啟動機器後更新其磁盤陣容,而在我所在的地區,他們是通過牛奶碟來完成此任務的。

    Marc
    2015-10-09 18:45:54 UTC
    view on stackexchange narkive permalink

    我檢查了此鏈接 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%這只是一個理論需要確認。

    FrodeTennebo
    2015-12-13 05:52:39 UTC
    view on stackexchange narkive permalink

    這似乎是位的完整映射:

    http://wiki.mbirth.de/know-how/hacking/tassimo-barcodes.html >

    表格前的通知指出該映射來自[專利說明](http://www.google.com/patents/US7231869?printsec=description&dq=coffee+barcode),目前尚不清楚它是如何使用的在實際的條形碼中。我們已經考慮了專利說明(請參閱問題文本)。
    幾天前有人寄給我[此圖片](http://i.imgur.com/ah8ZWm1.png)。我將很快將此信息添加到我的Wiki頁面。但是,僅從ICE DISC的代碼來看,我懷疑這是正確的編碼,因為溫度的位(根據該圖像)分別為“ 10”和“ 11”,而不是“ 00”。
    Matthew1471
    2020-04-15 20:20:40 UTC
    view on stackexchange narkive permalink

    最初引用的博客已消失,但是 HeyRick的博客中有很多有用的信息,後來又在 HeyRick的博客中提供了很多有用的信息重複了該專利,但還進行了一些進一步的測試:

     位參數描述0 & 1水溫00 =冷01 =暖10 = 83°C。 11 = 93°C.2 & 3裝藥量00 =浸泡後快速充電01 =浸泡後快速充電10 =浸泡後緩慢充電11 =浸泡後緩慢充電4、5、6 & 7飲料量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毫升1111 = 300毫升8、9 & 10流速000 = 30%001 = 40% 010 = 50%011 = 60%100 = 70%101 = 80%110 = 90%111 = 100%11 & 12吹掃00 =慢流量/短時間01 =慢流量/長時間10 =快流量/短時間11 =快速流動/長時間 

    顯然,EU和非EU模型之間也存在差異。



    該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
    Loading...