這是在Stratasys cartridge Eeprom上讀取和編寫數據的軟件。
您可以使用此代碼“重新填充” EEPROM或從頭開始構建墨盒EEPROM圖像。
此工具需要Python 2.7。
您只需使用PIP即可安裝Stratatools:
$ pip2 install stratatools
或來自來源:
$ python2 ./setup.py build
$ python2 ./setup.py install
它將自動提取依賴性:
您必須以十六進制形式提供機器類型(Fox,Prodigy,Quantum等)和EEPROM UID,而沒有“ 0x”前綴。請注意,使用“ 23”(這是EEPROM設備的家庭代碼)使用的EEPROM UID。
$ stratatools eeprom_decode
--machine-type fox
--eeprom-uid 2362474d0100006b
cartridge_dump.bin
EEPROM UID應該從家庭代碼開始,例如“ 23”或“ B3”。然後是一個6個字節ID,然後用校驗和完成。
在Linux上,它是id偽文件的內容。
如果提供“ -d”選項,則輸入文件將被解釋為ASCII格式文件,其中包含打印機“ ER”命令所產生的表格的行,即:
000096: 00 00 00 00 00 00 00 00 53 54 52 41 54 41 53 59 ........STRATASY
否則,輸入文件必須是二進製文件。
通過提供所有必需的信息,該軟件將提供一個新的有效EEPROM圖像,您可以寫入墨盒。
首先,使用eeprom_create命令創建一個新的EEPROM原型。
您可以在以下示例中自定義任何參數:
$ stratatools eeprom_create
--serial-number 1234.0
--material-name ABS
--manufacturing-lot 1234
--manufacturing-date "2001-01-01 01:01:01"
--use-date "2002-02-02 02:02:02"
--initial-material 11.1
--current-material 22.2
--key-fragment 4141414141414141
--version 1
--signature STRATASYS > cartridge.txt
或者,創建一個帶有以下內容的文本文件cartridge.txt :
serial_number: 1234.0
material_name: "ABS"
manufacturing_lot: "1234"
manufacturing_date {
seconds: 1436540129
}
last_use_date {
seconds: 1436540129
}
initial_material_quantity: 42.0
current_material_quantity: 42.0
key_fragment: "4141414141414141"
version: 1
signature: "STRATASYS"
所有日期均以國際格式: yyyy-mm-dd hh:mm:ss 。
然後,您可以使用eeprom_encode創建打印機使用的二進製文件。
$ stratatools eeprom_encode
--machine-type fox
--eeprom-uid 2362474d0100006b
cartridge.txt cartridge.bin
您必須提供正確的機器類型和有效的EEPROM UID。
EEPROM UID應該從家庭代碼開始,例如“ 23”或“ B3”。然後是一個6個字節ID,然後用校驗和完成。
生成的文件的大小為113個字節。如果要使該文件為512字節,則可以用零來完成該文件,這是通常的EEPROM大小。
提供“ -D”選項將導致輸出文件,其中包含在十六進制中表達的雙重劃界字節的雙重引用的字符串。
否則,輸出將是二進製文件。
您也可以將兩個命令一起管道:
$ stratatools eeprom_create
--serial-number 1234.0
--material-name ABS
--manufacturing-lot 1234
--manufacturing-date "2001-01-01 01:01:01"
--use-date "2002-02-02 02:02:02"
--initial-material 11.1
--current-material 22.2
--key-fragment 4141414141414141
--version 1
--signature STRATASYS |
stratatools eeprom_encode -t fox -e 2362474d0100006b > cartridge.bin
如果您想要所有已知材料的列表,只需運行以下內容:
$ stratatools material --list
0 ABS
1 ABS_RED
2 ABS_GRN
[...]
創建新墨盒時使用這些名稱。
如果您的invalid checksum ,則代碼無法正確解密您的EEPROM。驗證您的EEPROM文件有效,請仔細檢查EEPROM UID。
如果仍然不起作用,請在Github上填寫票。
如果您希望使用Raspberry Pi自動重寫墨盒,則可以使用助手腳本。腳本將將製造日期設置為“今天”。它還將隨機將序列號隨機,並將當前材料數量設置為初始材料數量。
您將需要在Raspberry Pi上進行工作的1WIRE設置,請參見下文有關如何做到這一點。
要簡單地補充墨盒,請啟動指定打印機類型的助手腳本:
$ stratatools_rpi_daemon prodigy
您還可以提供墨盒模板:
$ stratatools_rpi_daemon --template ./abs_cartridge.txt prodigy
該腳本能夠為打印機生成配置代碼。實際上有3種不同的代碼:
我們只能暫時生成configuration代碼。這些代碼可以解鎖打印機的特定功能。
要解碼配置代碼,只需運行以下內容:
$ stratatools setupcode_decode AAAA-BBBB-CCCC-DDDD
您可以創建自己的配置代碼以啟用特定功能。
例如:
$ stratatools setupcode_create
--serial-number 1234
--system-type 900mc
--type configuration
--envelope-size large
--build-speed 1x
--material ABS-M30 NYLON PC-ABS
--version 1
將生成打印機類型900MC的configuration代碼。
對於可用值,您可以運行以下內容:
$ stratatools setupcode_create --help
使用以下示意圖作為參考:
Bus pirate
grey >---+
| (connected together)
blue >---+
eeprom
+------+
orange >---| Data |
| |
black >---| Gnd |
+------+
兩個幫助腳本可以與純粹的腳本進行交互。
閱讀eeprom:
$ stratatools_bp_read /dev/ttyUSB0 eeprom.bin
寫一個eeprom:
$ stratatools_bp_write /dev/ttyUSB0 eeprom_new.bin
使用以下示意圖作為參考:
Raspberry pi
5V >---+
|
4.7k Z eeprom
| +------+
GPIO4 >---+---| Data |
| |
GROUND >-------| Gnd |
+------+
然後,您需要探測2個內核模塊:
$ sudo modprobe w1-gpio gpiopin=4
$ sudo modprobe w1-ds2433
您可能需要更改設備樹的覆蓋層。更新以下文件/boot/config.txt ,最後添加此行:
dtoverlay=w1-gpio,gpiopin=4
如果公共汽車上的檢測很慢,則可以嘗試減少超時。使用以下內容創建以下文件/etc/modprobe.d/wire.conf :
options wire timeout=1 slave_ttl=3
現在,您應該看到您的Eeprom出現:
$ ls -l /sys/bus/w1/devices/w1_bus_master1
23-xxxxxxxxxxxx/
[...]
打印eeprom uid:
$ xxd -p /sys/bus/w1/devices/w1_bus_master1/23-xxxxxxxxxxxx/id
23xxxxxxxxxxxx
閱讀eeprom:
$ cp /sys/bus/w1/devices/w1_bus_master1/23-xxxxxxxxxxxx/eeprom ~/eeprom.bin
寫一個eeprom:
$ cp ~/eeprom_new.bin /sys/bus/w1/devices/w1_bus_master1/23-xxxxxxxxxxxx/eeprom
要與DS2432接口,您需要遵循此項目中找到的步驟:https://github.com/bvanheu/ds2432-linux。
特別感謝Stratahackers Group。沒有他們,沒有什麼可能。他們提供了道德和技術支持!
感謝Ashanin提供的Uprint支持。感謝Ajtayh在SetupCode中的ASA和ULT1010。