これは、Stratasys Cartridge Eepromのデータを読み書きするソフトウェアです。
このコードを使用して、EEPROMを「補充」したり、Cartridge EEPROM画像をゼロから構築したりできます。
このツールにはPython 2.7が必要です。
PIPを使用してStratatoolsをインストールするだけです。
$ pip2 install stratatools
またはソースから:
$ python2 ./setup.py build
$ python2 ./setup.py install
自動的に依存関係を引き出します:
「0x」プレフィックスなしで、マシンタイプ(Fox、Prodigy、Quantumなど)とEEPROM UIDを16進体形式で提供する必要があります。 EEPROM UIDは、「23」(これはEEPROMデバイスのファミリコード)で終了することに注意してください。
$ stratatools eeprom_decode
--machine-type fox
--eeprom-uid 2362474d0100006b
cartridge_dump.bin
EEPROM UIDは、「23」や「B3」などの家族コードから始める必要があります。その後、6バイトIDが続いてからチェックサムで終了します。
Linuxでは、 id Pseudoファイルのコンテンツです。
「-D」オプションを提供する場合、入力ファイルは、プリンターのER 'コマンドによって生成されたフォームの行を含むASCII形式のファイルとして解釈されます。
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バイトです。通常のEEPROMサイズである512バイトの長さにしたい場合は、ファイルをゼロで完了できます。
「-d」オプションを提供すると、16進数で表された二重引用されたスペース削除されたバイトを含む出力ファイルが作成されます。
それ以外の場合、出力はバイナリファイルになります。
2つのコマンドを一緒にパイプすることもできます。
$ 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 |
+------+
Buspirateと対話するために、2つのヘルパースクリプトが利用できます。
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に感謝します。それらがなければ、このようなことはできません。彼らは道徳的および技術的なサポートを提供しました!
Uprint Supportを提供してくれたAshaninに感謝します。 SetUpCodeのASAとult1010についてはAjtayhに感謝します。