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

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

Vorheriges Thema - Nächstes Thema

yersinia

Ja, da sich der ZBS als
usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B001CDD4E0F-if00 -> ../../ttyACM0
meldet, denke ich auch, dass es geklappt hat. Die station.py (e-paper station repo) hab ich auch ausprobiert und scheint nach Adaption (wie im Video beschrieben) zu funktionieren. Ich musste noch die pycryptdome nachinstallieren und das package auf Crypto.Cipher umstellen (station.py Zeile 3).
Nun geht es an displays bzw den flasher dafür...
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

rob

Wenn Du die dump.bin erzeugst, würde ich den Weg von microcontroller.net empfehlen: dump-file mehrfach erzeugen und Inhalt vergleichen. Erst wenn immer gleich, dann verwenden.
Bei mir wird nach dem Rückschreiben der dump.bin nur noch Schrott auf dem Display angezeigt. Ohne Änderung, trotz original Dump.

TomLee

Also ich hab ja die ganze Zeit versucht, die fertige firmware_TiMAC_cc2531.bin zu flashen, auch mit CCLoader.

Jetzt hab ich es mal nach Anleitung von yersinia versucht (mit objcopy die .hex nach .bin), auch bei mir kein USB nach dem ersten flashen, nochmal geflasht und der Stick wird erkannt  :) , LED leuchtet nicht  :), station.py gestartet und es tut sich schon mal was  :) :

tomlee@tomlee-Aspire-A315-23:~/Downloads/epaper-station-master$ python3 station.py
2023-01-04 15:57:10,039 Station started
2023-01-04 15:58:22,938 Got assoc request
2023-01-04 15:58:22,938 TagInfo(protoVer=0, swVer=1181116006400, hwType=8, batteryMv=2600, rfu1=0, screenPixWidth=128, screenPixHeight=296, screenMmWidth=29, screenMmHeight=67, compressionsSupported=2, maxWaitMsec=200, screenType=16, rfu=b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
2023-01-04 15:58:22,938 AssocInfo(checkinDelay=300000, retryDelay=1000, failedCheckinsTillBlank=0, failedCheckinsTillDissoc=2, newKey=bytearray(b'\xd3\x06\xd94\x8e)\xe5\xe3X\xbf)4\x81 \x02\xc1'), rfu=bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00'))
2023-01-04 15:58:46,264 Got checkin request
2023-01-04 15:58:46,264 CheckinInfo(swVer=1181116006400, hwType=8, batteryMv=2600, lastPacketLQI=0, lastPacketRSSI=0, temperature=153, rfu=b'\x00\x00\x00\x00\x00\x00')
2023-01-04 15:58:46,265 Reading image file:./ffffffffffffff11.bmp/.png
2023-01-04 15:58:46,265 No Image file available
2023-01-04 15:58:46,265 Reading firmware file: UPDT0008.BIN
2023-01-04 15:58:46,265 No Firmware file available
2023-01-04 15:58:46,265 PendingInfo(imgUpdateVer=0, imgUpdateSize=0, osUpdateVer=0, osUpdateSize=0, nextCheckinDelay=0, rfu=bytearray(b'\x00\x00\x00\x00'))
2023-01-04 16:03:11,910 Got checkin request
2023-01-04 16:03:11,910 CheckinInfo(swVer=1181116006400, hwType=8, batteryMv=2600, lastPacketLQI=65, lastPacketRSSI=239, temperature=151, rfu=b'\x00\x00\x00\x00\x00\x00')
2023-01-04 16:03:11,910 Reading image file:./ffffffffffffff11.bmp/.png
2023-01-04 16:03:11,910 No Image file available
2023-01-04 16:03:11,910 Reading firmware file: UPDT0008.BIN
2023-01-04 16:03:11,910 No Firmware file available
2023-01-04 16:03:11,911 PendingInfo(imgUpdateVer=0, imgUpdateSize=0, osUpdateVer=0, osUpdateSize=0, nextCheckinDelay=0, rfu=bytearray(b'\x00\x00\x00\x00'))
2023-01-04 16:07:37,671 Got checkin request
2023-01-04 16:07:37,671 CheckinInfo(swVer=1181116006400, hwType=8, batteryMv=2600, lastPacketLQI=67, lastPacketRSSI=208, temperature=151, rfu=b'\x00\x00\x00\x00\x00\x00')
2023-01-04 16:07:37,671 Reading image file:./ffffffffffffff11.bmp/.png
2023-01-04 16:07:37,672 No Image file available
2023-01-04 16:07:37,672 Reading firmware file: UPDT0008.BIN
2023-01-04 16:07:37,672 No Firmware file available
2023-01-04 16:07:37,672 PendingInfo(imgUpdateVer=0, imgUpdateSize=0, osUpdateVer=0, osUpdateSize=0, nextCheckinDelay=0, rfu=bytearray(b'\x00\x00\x00\x00'))
2023-01-04 16:07:38,020 Got checkin request
2023-01-04 16:07:38,020 CheckinInfo(swVer=1181116006400, hwType=8, batteryMv=2600, lastPacketLQI=67, lastPacketRSSI=208, temperature=151, rfu=b'\x00\x00\x00\x00\x00\x00')
2023-01-04 16:07:38,020 Reading image file:./ffffffffffffff11.bmp/.png
2023-01-04 16:07:38,020 No Image file available
2023-01-04 16:07:38,020 Reading firmware file: UPDT0008.BIN
2023-01-04 16:07:38,020 No Firmware file available
2023-01-04 16:07:38,020 PendingInfo(imgUpdateVer=0, imgUpdateSize=0, osUpdateVer=0, osUpdateSize=0, nextCheckinDelay=0, rfu=bytearray(b'\x00\x00\x00\x00'))


In der station.py hab ich die zwei Zeilen belassen wie vorgegeben:

IMAGE_DIR = os.environ.get("EPS_IMAGE_DIR", default="./")
IMAGE_WORKDIR = os.environ.get("EPS_IMAGE_WORKDIR", default="/tmp/")


In dem Pfad hab ich den Ordner tmp erstellt, darin eine ffffffffffffff11.png
tomlee@tomlee-Aspire-A315-23:~/Downloads/epaper-station-master$ ls -l
insgesamt 56
-rw-rw-r-- 1 tomlee tomlee 11077 Jan  2 11:05 bmp2grays.py
-rw-rw-r-- 1 tomlee tomlee   160 Jan  2 11:05 Dockerfile
drwxrwxr-x 2 tomlee tomlee  4096 Jan  4 15:40 __pycache__
-rw-rw-r-- 1 tomlee tomlee  2032 Jan  2 11:05 README.md
-rw-rw-r-- 1 tomlee tomlee    30 Jan  2 11:05 requirements.txt
-rw-rw-r-- 1 tomlee tomlee 12305 Jan  4 15:40 station.py
-rw-rw-r-- 1 tomlee tomlee  7101 Jan  2 11:05 timaccop.py
drwxrwxr-x 2 tomlee tomlee  4096 Jan  4 15:56 tmp



Was wird die Meldung auf sich haben ?
Reading firmware file: UPDT0008.BIN
No Firmware file available

yersinia

Cool! 8) Ich warte noch auf den 3D Druck von pc1246, das Löten is mir zu fummelig. ::)

Zitat von: TomLee am 04 Januar 2023, 16:18:02Was wird die Meldung auf sich haben ?
Reading firmware file: UPDT0008.BIN
No Firmware file available
Na hoffentlich eine OTA-fw-update-Option. ;D

[OT]
Die nächste Frage, die sich mir schon mal langsam stellt, ist wie geht das ganze in Verbindung mit FHEM dann weiter? Bzw wie könnte es weiter gehen? Kann man die png mehr oder weniger dynamisch erzeugen?
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

Es lag nur an der Pfadangabe  :)  (unter Linux):

IMAGE_DIR = os.environ.get("EPS_IMAGE_DIR", default="tmp/")


tomlee@tomlee-Aspire-A315-23:~/Downloads/epaper-station-master$ python3 station.py
2023-01-04 16:47:16,416 Station started
2023-01-04 16:47:43,557 Got assoc request
2023-01-04 16:47:43,557 TagInfo(protoVer=0, swVer=1181116006400, hwType=8, batteryMv=2600, rfu1=0, screenPixWidth=128, screenPixHeight=296, screenMmWidth=29, screenMmHeight=67, compressionsSupported=2, maxWaitMsec=200, screenType=16, rfu=b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
2023-01-04 16:47:43,557 AssocInfo(checkinDelay=300000, retryDelay=1000, failedCheckinsTillBlank=0, failedCheckinsTillDissoc=2, newKey=bytearray(b'\xd3\x06\xd94\x8e)\xe5\xe3X\xbf)4\x81 \x02\xc1'), rfu=bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00'))
2023-01-04 16:48:01,494 Got checkin request
2023-01-04 16:48:01,494 CheckinInfo(swVer=1181116006400, hwType=8, batteryMv=2600, lastPacketLQI=0, lastPacketRSSI=0, temperature=154, rfu=b'\x00\x00\x00\x00\x00\x00')
2023-01-04 16:48:01,494 Reading image file:tmp/ffffffffffffff11.bmp/.png
2023-01-04 16:48:01,494 Using .png file
done
2023-01-04 16:48:01,930 Reading firmware file: UPDT0008.BIN
2023-01-04 16:48:01,930 No Firmware file available
2023-01-04 16:48:01,930 PendingInfo(imgUpdateVer=7184810968767373150, imgUpdateSize=9542, osUpdateVer=0, osUpdateSize=0, nextCheckinDelay=0, rfu=bytearray(b'\x00\x00\x00\x00'))
2023-01-04 16:48:02,134 Got chunk request
2023-01-04 16:48:02,134 ChunkReqInfo(versionRequested=7184810968767373150, offset=0, len=88, osUpdatePlz=0, rfu=b'\x00\x00\x00\x00\x00\x00')
2023-01-04 16:48:02,134 ChunkInfo(offset=0, osUpdatePlz=0, rfu=0)
2023-01-04 16:48:02,134 Reading image file: /tmp/FFFFFFFFFFFFFF11_7184810968767373150.bmp
2023-01-04 16:48:02,134 sending chunk 95 f5000000000000424d46 ...
2023-01-04 16:48:02,219 Got chunk request
2023-01-04 16:48:02,219 ChunkReqInfo(versionRequested=7184810968767373150, offset=88, len=88, osUpdatePlz=0, rfu=b'\x00\x00\x00\x00\x00\x00')
...
usw. Bestätigung kommt keine


Was hat das dann mit dem Arbeitsordner auf sich, wozu ist der ?
IMAGE_WORKDIR = os.environ.get("EPS_IMAGE_WORKDIR", default="/tmp/")

Zitat
Na hoffentlich eine OTA-fw-update-Option. ;D

Das OTA-Update der Display-Firmware gehen soll stand doch irgendwo ?

ZitatKann man die png mehr oder weniger dynamisch erzeugen?

Mit RSS  ::) hab ich so mitgenommen als ich mich zu dem Thema kurz eingelesen habe.

schwatter

@yersinia

Lese zwar nur mit, und überlege ob ich dafür Verwendung habe, aber GD sollte helfen um ein Bild zu generieren, auch mit Text.

https://netzmafia.ee.hm.edu/skripten/perl/perl6.html

Gruß schwatter


rob

@TomLee: Wie genau hast Du das Display geflasht? Auch mit einem Esp32 unter Windows? Bei mir scheint der nicht stabil zu arbeiten. Direkt nach dem "... writeI dump.bin" zeigt das Display Kauderwelsch - nun schon das Zweite  :(
Mit dem Arduino bekomme ich gar keine Verbindung.

Benni

Zitat von: yersinia am 04 Januar 2023, 16:36:00
Die nächste Frage, die sich mir schon mal langsam stellt, ist wie geht das ganze in Verbindung mit FHEM dann weiter? Bzw wie könnte es weiter gehen? Kann man die png mehr oder weniger dynamisch erzeugen?

Zitat von: TomLee am 04 Januar 2023, 16:58:44
Mit RSS  ::) hab ich so mitgenommen als ich mich zu dem Thema kurz eingelesen habe.

Eine Möglichkeit!

Alternativ kann man von FHEM aus auch mittels imagemagick sich was zusammenbauen.

gb#

TomLee

Ich verwende die ganze Zeit einen Wemos D1 Mini, mir fällt jetzt nix ein wie ich dir in deinem Fall noch einen Tipp geben könnte. Flashen klappt bei mir unter Win wie auch Ubuntu mit der Arduino IDE problemlos, nach Video-Anleitung und dem Repository  (und wie es auch dort steht) von Aaron als Grundlage. Es war hart, aber am Ende ganz einfach, im nachhinein, jetzt wo es klappt bei mir, denk ich mir (zumindest was das flashen mit dem Display zu tun hat) wie immer -> du hättest es halt nur genau nach Anleitung machen sollen  ::) 

TomLee

Vlt. doch noch ein Tipp, nimm einfach mal einen anderen ESP32 ...

rob

Zitat von: TomLee am 04 Januar 2023, 18:53:09
... du hättest es halt nur genau nach Anleitung machen sollen  ::) 
Ich hab mich genau ans Video gehalten und extra den selben Krams verwendet. Hilft aber nix. Da es bei Dir klappt, muss bei mir ein Unterschied sein.

Mein Ablauf fürs Display
- Win10 (nativ installiert, 64Bit) gestartet
- Esp32 Lolin via VSCode geflasht
- Display mit Esp32 verkabelt (gelötet)
- ZBS-Flasher ausgeführt, Dump erstellt, zurückgeflasht = Display tut nicht mehr

Hat Dein Wemos einen FTDI drauf oder ein CH340? Mein Esp32 hat den CH340 - vielleicht macht das was aus.

TomLee

Zitat- Display mit Esp32 verkabelt (gelötet)

Hast du mal gemessen (Widerstand und Durchgang der Pins auf dem Displays) und verglichen mit einem anderen (bisher nicht genutzten Display) ? Nicht das da schon was schief läuft.

edit:

ich weiß, das ist schon das zweite Display, trotzdem ...

pc1246

Boah
Ich bin irgendwie verwirrt, und nebenbei hat mein Notebook auch noch die Graetsche gemacht. (So halb jedenfalls, der USB-C Port ist hopps und daran lade ich eigentlich. Zum Glueck hat meine Frau ein passendes Netzgeraet, und der Rechner eine Buchse!)
Ich habe immer noch nicht verstanden, warum ich so seltsame Wege beschreiten muss.
Ich habe auch den CC Debugger, somit braeuchte ich doch den Umweg ueber den ESP nicht gehen, oder? Ich habe jetzt mal einen CC2531 damit geflasht. (hex-file)
Nachher loete ich die Draehte an, und dann schaue ich mal.
Gruss Christoph

P.S.: Ich habe ja einigen den Adapter versprochen. Das Drucken dauert ca. 3,5h und ich habe auch nur das Mittelteil gemacht. Da die veraenderte Variante aus dem anderen Forum einen Halter integriert hat, der leidlich funktioniert.
Die anderen Teile halte ich fuer ueberfluessig, ausser man will das fuer die Ewigkeit aufheben.
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

enno

Zitat von: yersinia am 04 Januar 2023, 16:36:00
Kann man die png mehr oder weniger dynamisch erzeugen?

Kannst dich ja schon mal einlesen :)
https://forum.fhem.de/index.php?topic=22520.0

oder eine Lösung, die ich für Readingsgroup und Senden als png mit Signal nutze:

Zitat von: enno am 15 Oktober 2022, 20:57:42
Wo ich gerade dabei bin, für mein Problem ReadingsGroup zu verschicken, habe ich mir auch eine Lösung zusammengebastelt:
Mit dem Tool https://wkhtmltopdf.org/ erzeuge ich mir png und schicke mir dann die Bilder mit Signal. Hier mal ein Bsp. DOIF
defmod di_Fenster_offen_warnung DOIF ([KWL_Variablen:Offene_Fenster] >= 1 and [KWL_Variablen:MinRaumTemperature] <= 14)("wkhtmltoimage --quality 70 --crop-w 740 --crop-x 00 --height 600 http://192.168.1.245:8083/fhem/floorplan/SCREEN2 /opt/fhem/www/images/HAUS.png 2>&1 >/dev/null")(set SIGNAL send &/opt/fhem/www/images/HAUS.png)
attr di_Fenster_offen_warnung do always
attr di_Fenster_offen_warnung wait 0,5


Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

yersinia

Zitat von: pc1246 am 04 Januar 2023, 20:44:21Ich bin irgendwie verwirrt, und nebenbei hat mein Notebook auch noch die Graetsche gemacht. (So halb jedenfalls, der USB-C Port ist hopps und daran lade ich eigentlich. Zum Glueck hat meine Frau ein passendes Netzgeraet, und der Rechner eine Buchse!)
Ich habe immer noch nicht verstanden, warum ich so seltsame Wege beschreiten muss.
Ich habe auch den CC Debugger, somit braeuchte ich doch den Umweg ueber den ESP nicht gehen, oder? Ich habe jetzt mal einen CC2531 damit geflasht. (hex-file)
Nachher loete ich die Draehte an, und dann schaue ich mal.
Ich fand es anfangs auch verwirrend, aber im Grunde besteht das Video aus zwei teilen:
- flashen eines mikrocontrollers zum flashen des CC2531; dabei flashst du erst den microcontroller mit einem flashprogramm und dann darüber den CC2531 (wenn du den CC debugger hast kannst du dir das imho sparen mit dem mikrokontroller)
- flashen eines mikrocontrollers zum flashen der Displays; dabei flashst du erst den microcontroller und dann darüber das/die Displays mit der custom firmware
Der CC2531 wirkt dann als Kommunikationsschnittstelle zwischen station.py und den Displays.

Zitat von: pc1246 am 04 Januar 2023, 20:44:21P.S.: Ich habe ja einigen den Adapter versprochen. Das Drucken dauert ca. 3,5h und ich habe auch nur das Mittelteil gemacht. Da die veraenderte Variante aus dem anderen Forum einen Halter integriert hat, der leidlich funktioniert.
Die anderen Teile halte ich fuer ueberfluessig, ausser man will das fuer die Ewigkeit aufheben.
mir reicht es, wenn ich eine halbwegs stabile konstruktion mit den pogopins habe sodass ich diese lötgefummel auf dem Display (grobmotoriker  ::)) mir erspare.

[OT]
Zitat von: schwatter am 04 Januar 2023, 18:11:00Lese zwar nur mit, und überlege ob ich dafür Verwendung habe, aber GD sollte helfen um ein Bild zu generieren, auch mit Text.
https://netzmafia.ee.hm.edu/skripten/perl/perl6.html
Was perl natives wäre cool, funktioniert dann gut in FHEM, denke ich. :)

Zitat von: enno am 04 Januar 2023, 21:06:33Kannst dich ja schon mal einlesen :)
https://forum.fhem.de/index.php?topic=22520.0
Zitat von: Benni am 04 Januar 2023, 18:45:19Alternativ kann man von FHEM aus auch mittels imagemagick sich was zusammenbauen.
Aaah, viele Wege und Rom und so. Cool.

Wie bekommt man das station.py nach perl konvertiert? Träumchen wäre ja ein FHEM-Modul. Irgendwie habe ich kein gutes Gefühl, dieses station.py script dauerhaft laufen zu lassen auf dem FHEM-Server.
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