Dies ist Software zum Lesen und Schreiben von Daten auf eine Stratasys -Kartusche EEPROM.
Sie können diesen Code verwenden, um ein EEPROM wieder aufzufüllen oder ein Patrone -EEPROM -Bild von Grund auf neu aufzubauen.
Dieses Tool erfordert Python 2.7.
Sie können einfach Stratatools mit PIP installieren:
$ pip2 install stratatools
oder aus Quelle:
$ python2 ./setup.py build
$ python2 ./setup.py install
Es wird die Abhängigkeit automatisch ziehen:
Sie müssen den Maschinentyp (Fuchs, Wunderkind, Quanten usw.) und das EEPROM UID in hexadezimaler Form ohne das Präfix "0x" bereitstellen. Beachten Sie, dass die Verwendung von EEPROM -UID mit "23" endet (was der Familiencode für das EEPROM -Gerät ist).
$ stratatools eeprom_decode
--machine-type fox
--eeprom-uid 2362474d0100006b
cartridge_dump.bin
Die EEPROM -UID sollte mit dem Familiencode beginnen, so etwas wie '23' oder 'B3'. Anschließend folgt eine 6 -Bytes -ID und beendet mit einer Prüfsumme.
Unter Linux ist es der Inhalt der id -Pseudo -Datei.
Wenn Sie die Option '-d' angeben, wird die Eingabedatei als ASCII-formatierte Datei interpretiert, die Zeilen des Formulars enthält, das vom Befehl der Drucker erstellt wurde, nämlich:
000096: 00 00 00 00 00 00 00 00 53 54 52 41 54 41 53 59 ........STRATASY
Andernfalls muss die Eingabedatei eine binäre Datei sein.
Durch die Bereitstellung aller erforderlichen Informationen bietet diese Software ein neues gültiges EEPROM -Bild, das Sie an eine Patrone schreiben können.
Erstellen Sie zunächst ein neues EEPROM -Proto mit dem Befehl eeprom_create .
Sie können alle Parameter im folgenden Beispiel anpassen:
$ 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
Erstellen Sie alternativ eine Textdatei cartridge.txt mit dem folgenden Inhalt:
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"
Alle Daten befinden sich im internationalen Format: yyyy-mm-dd hh:mm:ss .
Sie können dann eeprom_encode verwenden, um die vom Drucker verwendete Binärdatei zu erstellen.
$ stratatools eeprom_encode
--machine-type fox
--eeprom-uid 2362474d0100006b
cartridge.txt cartridge.bin
Sie müssen den richtigen Maschinen- und gültigen EEPROM-UID bereitstellen.
Die EEPROM -UID sollte mit dem Familiencode beginnen, so etwas wie '23' oder 'B3'. Anschließend folgt eine 6 -Bytes -ID und beendet mit einer Prüfsumme.
Die generierte Datei beträgt 113 Bytes. Sie können die Datei mit Nullen ausfüllen, wenn Sie sie 512 Bytes lang machen möchten, die übliche EEPROM -Größe.
Die Lieferung der Option '-d' führt zu einer Ausgabedatei, die eine doppelt zitierte Zeichenfolge von abgrenzten Bytes enthält, die in Hexadezimal ausgedrückt werden.
Andernfalls ist die Ausgabe eine Binärdatei.
Sie können die beiden Befehle auch zusammen leiten:
$ 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
Wenn Sie eine Liste aller bekannten Materialien wünschen, führen Sie einfach Folgendes aus:
$ stratatools material --list
0 ABS
1 ABS_RED
2 ABS_GRN
[...]
Verwenden Sie diese Namen beim Erstellen einer neuen Patrone.
Wenn Sie einen invalid checksum Prüfsummenfehler haben, konnte der Code Ihr EEPROM nicht korrekt entschlüsseln. Stellen Sie sicher, dass Ihre EEPROM -Datei gültig ist. Überprüfen Sie die EEPROM -UID.
Wenn es immer noch nicht funktioniert, füllen Sie ein Ticket auf GitHub.
Ein Helfer -Skript ist verfügbar, wenn Sie Patronen automatisch mit einem Raspberry Pi umschreiben möchten. Das Skript setzt das Herstellungsdatum auf "Today". Es wird auch die Seriennummer randomisieren und das aktuelle Material QTY auf die anfängliche Materialmenge einstellen.
Sie benötigen ein funktionierendes 1wire -Setup auf dem Raspberry Pi, siehe unten, wie das geht.
Starten Sie das Helfer -Skript, das den Druckertyp angibt, um einfach eine Patrone nachzufüllen:
$ stratatools_rpi_daemon prodigy
Sie können auch eine Patronenvorlage bereitstellen:
$ stratatools_rpi_daemon --template ./abs_cartridge.txt prodigy
Dieses Skript kann Konfigurationscode für Ihren Drucker generieren. Es sind tatsächlich 3 verschiedene Codes verfügbar:
Wir können vorerst nur configuration generieren. Diese Codes können bestimmte Funktionen Ihres Druckers freischalten.
Führen Sie einfach Folgendes aus:
$ stratatools setupcode_decode AAAA-BBBB-CCCC-DDDD
Sie können Ihren eigenen Konfigurationscode erstellen, um bestimmte Funktionen zu aktivieren.
Zum Beispiel:
$ 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
Generiert einen configuration für einen Druckertyp 900mc.
Für Hilfe bei verfügbaren Werten können Sie Folgendes ausführen:
$ stratatools setupcode_create --help
Verwenden Sie das folgende Schema als Referenz:
Bus pirate
grey >---+
| (connected together)
blue >---+
eeprom
+------+
orange >---| Data |
| |
black >---| Gnd |
+------+
Es stehen zwei Helferskripte zur Verfügung, um mit dem Buspirat zu interagieren.
Ein EEPROM lesen:
$ stratatools_bp_read /dev/ttyUSB0 eeprom.bin
Ein EEPROM schreiben:
$ stratatools_bp_write /dev/ttyUSB0 eeprom_new.bin
Verwenden Sie das folgende Schema als Referenz:
Raspberry pi
5V >---+
|
4.7k Z eeprom
| +------+
GPIO4 >---+---| Data |
| |
GROUND >-------| Gnd |
+------+
Dann müssen Sie 2 Kernel -Module untersuchen:
$ sudo modprobe w1-gpio gpiopin=4
$ sudo modprobe w1-ds2433
Möglicherweise müssen Sie das Geräte-Tree-Overlay ändern. Aktualisieren Sie die folgende Datei /boot/config.txt und fügen Sie diese Zeile am Ende hinzu:
dtoverlay=w1-gpio,gpiopin=4
Wenn die Erkennung im Bus langsam ist, können Sie versuchen, das Zeitübergang zu verringern. Erstellen Sie die folgende Datei /etc/modprobe.d/wire.conf mit Folgendes:
options wire timeout=1 slave_ttl=3
Sie sollten jetzt sehen, wie Ihr EEPROM erscheint:
$ ls -l /sys/bus/w1/devices/w1_bus_master1
23-xxxxxxxxxxxx/
[...]
Um die EEPROM -UID zu drucken:
$ xxd -p /sys/bus/w1/devices/w1_bus_master1/23-xxxxxxxxxxxx/id
23xxxxxxxxxxxx
Ein EEPROM lesen:
$ cp /sys/bus/w1/devices/w1_bus_master1/23-xxxxxxxxxxxx/eeprom ~/eeprom.bin
Ein EEPROM schreiben:
$ cp ~/eeprom_new.bin /sys/bus/w1/devices/w1_bus_master1/23-xxxxxxxxxxxx/eeprom
Um sich mit einem DS2432 zu verbinden, müssen Sie die in diesem Projekt gefundenen Schritte ausführen: https://github.com/bvanheu/ds2432-linux.
Besonderer Dank geht an die Stratahackers -Gruppe. Ohne sie könnte nichts dergleichen möglich sein. Sie leisteten moralische und technische Unterstützung!
Vielen Dank an Ashanin für die UPRINT -Unterstützung. Vielen Dank an Ajtayh für ASA und ULT1010 in SetupCode.