这是在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。