นี่คือซอฟต์แวร์ที่จะอ่านและเขียนข้อมูลบน EEPROM คาร์ทริดจ์ Stratasys
คุณสามารถใช้รหัสนี้เพื่อ 'เติม' EEPROM หรือสร้างภาพ EEPROM ตลับหมึกตั้งแต่เริ่มต้น
เครื่องมือนี้ต้องใช้ Python 2.7
คุณสามารถติดตั้ง Stratatools โดยใช้ PIP:
$ pip2 install stratatools
หรือจากแหล่งที่มา:
$ python2 ./setup.py build
$ python2 ./setup.py install
มันจะดึงการพึ่งพาโดยอัตโนมัติ:
คุณต้องจัดเตรียมประเภทของเครื่อง (สุนัขจิ้งจอกอัจฉริยะควอนตัม ฯลฯ ) และ 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 Pseudo
หากคุณระบุตัวเลือก '-D' ไฟล์อินพุตจะถูกตีความว่าเป็นไฟล์ที่จัดรูปแบบ ASCII ซึ่งมีบรรทัดของแบบฟอร์มที่ผลิตโดยคำสั่ง 'ER' ของเครื่องพิมพ์คือ::
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
อีกทางเลือกหนึ่งคือสร้าง File File 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 ไบต์ คุณสามารถกรอกไฟล์ด้วย Zeroes หากคุณต้องการทำให้มันยาว 512 ไบต์ขนาด EEPROM ปกติ
การจัดหาตัวเลือก '-d' จะส่งผลให้ไฟล์เอาต์พุตที่มีสตริงที่มีการยกของอวกาศสองเท่าของไบต์ที่คั่นซึ่งแสดงใน hexadecimal
มิฉะนั้นเอาต์พุตจะเป็นไฟล์ไบนารี
นอกจากนี้คุณยังสามารถส่งคำสั่งทั้งสองเข้าด้วยกัน:
$ 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 โดยอัตโนมัติ สคริปต์จะกำหนดวันที่ผลิตเป็น 'วันนี้' นอกจากนี้ยังจะสุ่มหมายเลขซีเรียลและตั้งค่าวัสดุปัจจุบันเป็นปริมาณวัสดุเริ่มต้น
คุณจะต้องมีการตั้งค่า 1wire ที่ใช้งานได้บน 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
คุณอาจต้องเปลี่ยนการซ้อนทับต้นไม้ อัปเดตไฟล์ /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 หากไม่มีพวกเขาไม่มีอะไรจะเป็นไปได้ พวกเขาให้การสนับสนุนทางศีลธรรมและทางเทคนิค!
ขอบคุณ Ashanin สำหรับการสนับสนุน uprint ขอบคุณ Ajtayh สำหรับ ASA และ Ult1010 ใน SetUpCode