이것은 Stratasys Cartridge eeprom에서 데이터를 읽고 쓸 수있는 소프트웨어입니다.
이 코드를 사용하여 eeprom을 '리필'하거나 카트리지 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 바이트입니다. 512 바이트 길이, 일반적인 eeprom 크기를 만들려면 0으로 파일을 완성 할 수 있습니다.
'-d'옵션을 제공하면 16 진수로 표현 된 두 배가 인용 된 공간 구분 바이트가 포함 된 출력 파일이 생성됩니다.
그렇지 않으면 출력은 이진 파일이됩니다.
두 명령을 함께 파이프 할 수도 있습니다.
$ 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에서 작동하는 1 와이어 설정이 필요합니다. 아래를 참조하십시오.
카트리지를 간단히 리필하려면 프린터 유형을 지정하는 도우미 스크립트를 시작하십시오.
$ 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와 상호 작용하기 위해 두 개의 헬퍼 스크립트를 사용할 수 있습니다.
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 그룹에 특별한 감사를드립니다. 그들 없이는 이와 같은 것이 불가능합니다. 그들은 도덕적, 기술적 지원을 제공했습니다!
Uprint 지원에 대한 Ashanin에게 감사드립니다. SetupCode에서 ASA 및 ULT1010의 AJTAYH에 감사드립니다.