E-Paper Displays mit 2,9" 128x296, elektr. Preisschild - Inbetriebnahme

Begonnen von rob, 02 Januar 2023, 16:01:21

Vorheriges Thema - Nächstes Thema

rob

Hallo.

Ich fang mal kurzerhand einen neuen Thread an, über den wir uns austauschen können bzgl. der im Titel genannten Displays. Ausgangspunkt ist dieser Thread von TomLee: https://forum.fhem.de/index.php/topic,131020.0.html. Herzlichen Dank dieser Stelle  :D
Es geht darum best. E-Paper Displays umzuflashen und sie via einem CC2531-Stick (ebenfalls umgeflasht) anzusteuern.

Hier nochmal Links aus dem Original-Thread, welche TomLee zusammengetragen hat:
http://dmitry.gr/?r=05.Projects&proj=29.+eInk+Price+Tags
https://github.com/atc1441/CC.Flash
https://github.com/atc1441/ZBS_Flasher
https://github.com/danielkucera/epaper-station
https://www.youtube.com/watch?v=98fOzZs__fc&t=5s

Meine ersten Versuche den CC2531 zu flashen klappten nicht wirklich.
... vom Hundertsten und Tausendste  ::)

Um den den Lolin32 lite zu flashen musste ich dies tun:

https://dl.espressif.com/dl/package_esp32_index.json

in der Arduino IDE unter "Zusätzliche Boardverwalter-URLs" eintragen
Im Boardverwalter dann nach esp32 suchen + installieren
Als Board wählen "WEMOS LOLIN32 Lite"
Kompilieren klappte aber nicht
   /.arduino15/packages/esp32/tools/esptool_py/3.0.0/esptool.py", line 38, in <module>
        import serial
    ImportError: No module named serial

Also das Python package serial holen. Mit Python3 ging es noch immer nicht, also nur Python (steht streng genommen auch in der Readme auf Github) via:
python -m pip install pyserial
Da aber noch kein pip vorhanden, zuerst
sudo apt install python-pip

Jetzt weiter klappte das Flashen der "CC_Flash.ino" nicht mit der Meldung:

esptool.py v3.0-dev
Serial port /dev/ttyUSB1
Connecting......
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: ec:94:cb:6b:00:b0
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...

A fatal error occurred: Timed out waiting for packet header
A fatal error occurred: Timed out waiting for packet header


Also Baudrate reduziert auf 115200 und erneut - jetzt will er anscheinend auch flashen:

esptool.py v3.0-dev
Serial port /dev/ttyUSB1
Connecting....
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: ec:94:cb:6b:00:b0
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 6585.2 kbit/s)...
Hash of data verified.
Compressed 17120 bytes to 11164...
Writing at 0x00001000... (100 %)
Wrote 17120 bytes (11164 compressed) at 0x00001000 in 1.0 seconds (effective 138.6 kbit/s)...
Hash of data verified.
Compressed 207808 bytes to 108092...
Writing at 0x00010000... (14 %)
Writing at 0x00014000... (28 %)
Writing at 0x00018000... (42 %)
Writing at 0x0001c000... (57 %)
Writing at 0x00020000... (71 %)
Writing at 0x00024000... (85 %)
Writing at 0x00028000... (100 %)
Wrote 207808 bytes (108092 compressed) at 0x00010000 in 9.5 seconds (effective 174.2 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 128...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 1438.0 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
Im Video sieht man halt die höchste Baud-Rate, aber gut.

Und das erstmal nur um den Esp32 vorzubereiten  :o ::)

Die CC.Flash.exe läuft nicht unter Wine. Also die Win10-VM gestartet, ewig gewartet bis sich Windows benutzen lassen wollte (Updates blockieren alles) und den Esp32 via USB hineingereicht.
Natürlich musste Windoofs erst den Treiber suchen + installieren. Nagut.
Dann die CC.Flash.exe gestartet. Geht nicht direkt, erst wird ja das .Net-Framework benötigt. Dachte ist schon da, warum rödelt Win10 sonst immer mit div. Updates rum die .Net heißen?!?
Nunja. Flasher läuft und erkennt den CC2531 wohl korrekt an COM3.

Nach Klick auf "Write" kommt recht schnell "Verify Failed". Mehrfach versucht. Dann ohne Häkchen bei "Verify after write" probiert - lief durch. Aber ob es auch tut, weiß ich nicht wirklich. Jedenfalls wird kein Serial-Device wie im Video erkannt. Anscheinend bleibt die LED aus und neu verbinden geht nicht. Ja und jetzt?
Habs mit einem Arduino probiert. Damit lief das fehlerfrei mit Verify durch, dauerte aber ewig (594,183s) - trotzdem LED aus und kein Serial-Device.

Wie weit seid Ihr jetzt so und was habt Ihr für Stolpersteine gefunden/ weggeräumt? Wahrscheinlich machen wir jetzt alle die gleichen Dinge: flashen, löten, 3D-drucken ...

Ich wurschtel jetzt mal weiter ohne den CC2531 ...  ;)

VG
rob

PS: die Barcodes auf den Gehäusen enthalten die orig. MAC-ID der Displays.

TomLee


Wernieman

Da kein Windows bei mir vorhanden, suche ich gerade das Flashen mit Linux (in der Theorie, habe noch kein CC2531) ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

TomLee

Flashen unter Linux geht auch wie hier beschrieben.

Aber wie oben verlinkt passt am Ende irgendwas nicht, unter Win und Linux, auch wenn die Rückmeldungen sagen das der Flash OK sei.

rob

Ja, habe soeben auch die Linux-Variante nachvollzogen. Danke Dir. Der Windows-Krams tut nicht so richtig. Hab jetzt einfach mal CC2530_DEFAULT_20211115 als Gegenprüfung geflasht und damit wird auch ein USB-Device angezeigt:
usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B001CDD05E3-if00 -> ../../ttyACM0


Mit dem File "firmware_TiMAC_cc2531.bin" klappt das nicht. Muss man das vielleicht auch via objcopy bearbeiten?

@TomLee: in Deinem Kommentar steht
Block total: 145

Bei mir kommt immer:
Block total: 512
...
512  Program successfully!
File closed!
Comport closed!
Sowohl mit der ZigBee-Firmare als Gegenprüfung, als auch mit der eigentl. Firmware. Warum ist Dein File kleiner?

TomLee

Kann ich dir nicht sagen, aufgrund deiner Frage jetzt hätt ich vermutet das es der Versuch war eine Version von Oktober zu flashen, aber wenn ich da jetzt nachschaue ist die damals wie heute 72,3 KB groß.

Geh mal davon aus, hast die firmware_TiMAC_cc2531.bin auch in dem Ordner Linux ?

Ich hab nirgendwo noch was bearbeitet (objcopy), aber das Sch... Teil scheint ja trotzdem nicht richtig geflasht zu sein, trotz Program successfully!

rob

Ist da was faul im Repo? Wenn ich direkt in den Pfad gehe https://github.com/atc1441/ZBS_Flasher/blob/main/CC2531_station/firmware_TiMAC_cc2531.bin sehe ich auch nur 72.3 KB.
Ich hab das Binary aus dem Zipfile hergenommen: https://github.com/atc1441/ZBS_Flasher/archive/refs/heads/main.zip - dort unter CC2531_station.

Dachte auch der CC2531 zickt. Aber mit der Zigbee-Firmware von Koenkk rennt er anscheinend. Ich versuch mich mal objcopy.

TomLee

Vlt. noch was zum flashen des CC2531, der User Ranseyer gab mir gestern folgenden Tipp:

Zitatdas Teil ist Standard und es gibt von TI ein Serial Tool mit dem du neue Firmware aufspielen kannst. (nachdem ich das Teil einmal mit CC Debugger geflasht hatte. Natürlich nur so lange bis jemand per CC Debugger, ... den Bottloader zerstört)

Ich hab zuvor davon schon gelesen, aber noch nicht bis jetzt beschäftigt, dazu ist kein CC-Debugger nötig ?

TomLee

https://forum.iobroker.net/topic/21108/zigbee-cc2531-usb-stick-flash-adapter

Hab versucht mich bei TI jetzt mal anzumelden, weil nur so geht der Download von Z-STACK-LINUX-GATEWAY, es kommt aber keine Email mit dem Link zur Bestätigung ::)

rob

Die Flasherei für Zigbee und eben als GW für diese Displays soll ja gerade ohne Debugger klappen. Als Bindeglied dient halt ein beliebiger µC.

Jedenfalls klappt das Flashen mit Zigbee und dort kommt auch ein Serial-Device plötzlich daher. Die LED leuchtet wieder (grün).

Mit objcopy habe ich es nun auch versucht:
objcopy --gap-fill 0xFF --pad-to 0x040000 -I ihex firmware_TiMAC_cc2531.hex -O binary TiMAC_test.bin
Anscheinend ist die *.bin im Repo bereits so entstanden, weil die originale firmware_TiMAC_cc2531.bin genau die selbe Größe hat, wie meine so erzeugte TiMAC_test.bin (beide genau 256K). Trotzdem habe ich die unerschrocken geflasht.
Nun erscheint zwar ein Serial-Device, aber das selbe wie durch die Zigbee-Firmware. Leider sagt uns Aaron nicht, wie genau das Serial-Device heißen sollte. So kann ich erstmal nix weiter prüfen.

rob

ernsthaft?

Unter Linux:

./zbs_flasher.py /dev/ttyUSB1 write custom-firmware/demo_firmware_4.2_33_V1.9.0.0.bin
  File "./zbs_flasher.py", line 312
    str(int((position/0x10000)*100)) + "% " + str(int((millis() - reading_start_time) / 1000)) + " seconds", end='\r', flush=True)
                                                                                                                ^
SyntaxError: invalid syntax


Unter Windows:

zbs_flasher.exe COM3 write demo_firmware_4.2_33_V1.9.0.0.bin
Die Version von C:\Users\STANDA~1\AppData\Local\Temp\zbs_flasher.exe ist mit der ausgeführten Windows-Version nicht kompatibel. Überprüfen Sie die Systeminformationen des Computers, und wenden Sie sich anschließend an den Herausgeber der Software.


... irgendwie hab ich kein glückliches Händchen damit. Unter Win10 64Bit läuft es und flashen des Displays klappt scheinbar. Also dump.bin erzeugt, mit HxD editiert und zurückgeschrieben. Display zeigt nur noch komische Striche.

TomLee

ZitatHab versucht mich bei TI jetzt mal anzumelden, weil nur so geht der Download von Z-STACK-LINUX-GATEWAY, es kommt aber keine Email mit dem Link zur Bestätigung ::)

Habs jetzt nochmal mit einer anderen Email versucht und die Registrierung hat geklappt. Jetzt hab ich eine Z-Stack_Linux_Gateway-1_0_1-src-linux-installer.run .
Unter Eigenschaften -> Zugriffsrechte -> Ausführen hab ich das Häckchen gesetzt.
Kontrolle im Terminal:
-rwxrwxrwx  1 tomlee tomlee 11694007 Jan  3 13:50  Z-Stack_Linux_Gateway-1_0_1-src-linux-installer.run

Beim Doppelklick auf die Datei passiert einfach nichts.

Mit meinen Versuchen im Terminal wird die Datei auch nicht ausgeführt:

tomlee@tomlee-Aspire-A315-23:~/Downloads$ ./Z-Stack_Linux_Gateway-1_0_1-src-linux-installer.run
tomlee@tomlee-Aspire-A315-23:~/Downloads$ sudo ./Z-Stack_Linux_Gateway-1_0_1-src-linux-installer.run
tomlee@tomlee-Aspire-A315-23:~/Downloads$ Z-Stack_Linux_Gateway-1_0_1-src-linux-installer.run
Z-Stack_Linux_Gateway-1_0_1-src-linux-installer.run: Befehl nicht gefunden.
tomlee@tomlee-Aspire-A315-23:~/Downloads$ sudo Z-Stack_Linux_Gateway-1_0_1-src-linux-installer.run
sudo: Z-Stack_Linux_Gateway-1_0_1-src-linux-installer.run: Befehl nicht gefunden


Jemand einen Tipp wie man vorgehen muss ?

rob

Scheinbar bin ich nicht allein mit den Anlaufschwierigkeiten. Hier gibt es auch div. interessante Infos (ab ca. der Mitte): https://www.mikrocontroller.net/topic/544445.

Bei mir hat der Dump anscheinend auch Fehler gehabt, was die komische Anzeige erklären würde. Der ZBS dürfte nun Schrott sein. Vielleicht ist mit Aarons Adapter zumindest das Display noch verwendbar: https://www.pcbway.com/project/shareproject/Universal_E_Paper_adapter_PCB_9b9a845c.html


yersinia

So, dann schließe ich mich dem ganzen mal an. Ich versuche den ZBS via NodeMCU zu flashen und bin auf meiner Linux-Kiste (Manjaro) wie folgt vorgegangen:
- CC Loader compiliert (nachdem ich das github repo runtergladen habe)
- Arduino ino angepasst und auf den NodeMCU geflasht (via Arduino ide)
- objcopy für die firmware_TiMAC_cc2531.hex aus dem ZBS_Flasher repo erstellt:
objcopy --gap-fill 0xFF --pad-to 0x040000 -I ihex firmware_TiMAC_cc2531.hex -O binary firmware_TiMAC_cc2531_objcopy.bin
Die bin ist 256KB groß.
- mittels sudo (wegen Zugriff auf /dev/ttyUSB1 - welches der NodeMCU ist) den ZBS loader geflasht:
[yersinia@Linux]$ sudo ./CCLoader /dev/ttyUSB1 firmware_TiMAC_cc2531_objcopy.bin 1
Comport open:
Device: Leonardo

Baud:115200 data:8 parity:none stopbit:1 DTR:on RTS:off
File open success!
Block total: 512
Enable transmission...
Request sent already! Waiting for respond...
Begin programming...
1  [...] 512  Program successfully!
File closed!
Comport closed!

jdfs glaube ich das. ::)

Trotzdem meldet sich der ZBS nicht am USB port. :(
...es hilft nichts, da muss noch weiter zu geforscht werden...

EDIT, ich habe nochmal drübergeflasht (wie beschrieben) und sehe immerhin nun ein
usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B001CDD4E0F-if00 -> ../../ttyACM0
Es scheint doch zu funktionieren, die LED leuchtet aber nicht.
Beim flashen habe ich den ZBS allerdings an einem USB Port angeschlossen und die 3V Versorgung zum NodeMCU abgeklemmt.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

TomLee

ZitatEs scheint doch zu funktionieren, die LED leuchtet aber nicht.

Eher ein gutes Zeichen, die LED wird lt. Aaron von der Firmware ja nicht angesteuert.