Это программное обеспечение для чтения и записи данных на картридже Stratasys Eeprom.
Вы можете использовать этот код, чтобы «пополнить» eEPROM или построить изображение картриджа EEPROM с нуля.
Этот инструмент требует Python 2.7.
Вы можете просто установить Stratatools, используя PIP:
$ pip2 install stratatools
или из источника:
$ python2 ./setup.py build
$ python2 ./setup.py install
Он автоматически вытащит зависимость:
Вы должны предоставить тип машины (Fox, Prodigy, Quantum и т. Д.) И Eeprom uid, в шестнадцатеричной форме без префикса '0x'. Обратите внимание, что EEPROM UID для использования заканчивается с «23» (который является семейным кодом для устройства EEPROM).
$ stratatools eeprom_decode
--machine-type fox
--eeprom-uid 2362474d0100006b
cartridge_dump.bin
EEPROM UID должен начинаться с семейного кода, что -то вроде «23» или «B3». Затем следует идентификатор 6 байт, затем завершит контрольную сумму.
На Linux это содержимое id псевдо -файла.
Если вы предоставите опцию «-d», входной файл будет интерпретироваться как файл форматированного ASCII, содержащий строки формы, созданной командой принтеров, а именно:
000096: 00 00 00 00 00 00 00 00 53 54 52 41 54 41 53 59 ........STRATASY
В противном случае входной файл должен быть двоичным файлом.
Предоставляя всю необходимую информацию, это программное обеспечение предоставит новое действительное изображение EEPROM, которое вы можете написать на картридж.
Во -первых, создайте новый прото EEPROM, используя команду eeprom_create .
Вы можете настроить любые параметры в следующем примере:
$ 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 байт, затем завершит контрольную сумму.
Сгенерированный файл будет размером 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 действителен, дважды проверьте UID EEPROM.
Если это все еще не работает, заполните билет на GitHub.
Вспомогательный сценарий доступен, если вы хотите автоматически переписать картриджи, используя Raspberry Pi. Сценарий установит дату производства на «сегодня». Он также будет рандомизировать серийный номер и установить текущий материал QTY на начальное количество материала.
Вам понадобится рабочая 1проводная установка на Raspberry Pi, см. Ниже о том, как это сделать.
Чтобы просто пополнить картридж, запустите сценарий помощника, указав тип принтера:
$ 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
Сгенерирует код configuration для типа принтера 900MC.
Для получения помощи по доступным значениям вы можете запустить следующее:
$ stratatools setupcode_create --help
Используйте следующую схему в качестве ссылки:
Bus pirate
grey >---+
| (connected together)
blue >---+
eeprom
+------+
orange >---| Data |
| |
black >---| Gnd |
+------+
Два вспомогательных сценария доступны для взаимодействия с Buspirate.
Чтобы прочитать 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
Возможно, вам придется изменить наложение Device Tree. Обновите следующий файл /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. Без них ничего подобного не могло быть возможно. Они оказали моральную и техническую поддержку!
Спасибо Ашанину за поддержку вверх. Спасибо Ajtayh за ASA и ULT1010 в SetupCode.