Preisschild

Aus C3MAWiki
Dies ist ein Projekt, an dem momentan aktiv gearbeitet wird. Wenn du Fragen hast oder mitarbeiten möchtest, wende dich an AcidBurns.


Preisschild

In immer mehr Supermärkten sieht man sie: Elektronische Preisschilder mit E-Ink-Displays (ESL, electronic shelf labels). Ausrangierte Schilder bekommt für 2 bis 3 Euro pro Stück. Für bestimmte Typen gibt es alternative Firmware, die dann drahtlos über Zigbee mit neuen Inhalten versorgt werden können.

Zur Verwendung werden zwei Komponenten benötigt:

  • Access Point (AP): Nimmt Daten von außen über WLAN an und sendet sie über Zigbee an die Tags.
  • Tags: Die eigentlichen Preisschilder. Werden über Zigbee mit Daten versorgt.

Hardware

  • eInk ST-GR29000
  • ESP32

Flash-Pogopin Mapping

Funktion Board-Pin Board Reihe Farbe des Kabels Pin ESP32
3V3 1 1 Grün Irgend
MOSI 2 1 Orange 5
SS 3 1 Blau 23
UART TX 4 1 Rot
SPI CLK 5 2 Gelb 18
MISO 6 2 Rot 17
GND 7 3 Gelb Irgendeinen
RST 8 3 Blau 19
UART RX 9 3 Weis
Test P1.0 10 3 Schwarz

Schritt für Schritt

Flasher Software

Auf Grund der verfügbaren Hardware wurde ein ESP32 genommen und darum ein Fork von https://github.com/atc1441/ZBS_Flasher genutzt: https://github.com/Arctic-git/ZBS_Flasher Siehe ESP32_Flasher-Unterordner.

Erst einmal die Eigenschaften des Displays wegschreiben

python3 zbs_flasher.py  -p /dev/ttyUSB0 read-infopage infopage.hex

Es muss kontrolliert werden, ob die MAC-Adresse ab Offset 0x10 in der Infopage steht. Bei Tags mit der Original-Firmware ist das nicht der Fall. Für die Tag-Adresse 021B9EBF3B12 geht das mit:

echo -en "\x12\x3B\xBF\x9E\x1B\x02\x00\x00" | dd if=/dev/stdin of=infopage.hex bs=1 seek=16 conv=notrunc


Jetzt kann die Firmware geschrieben werden

python3 zbs_flasher.py  -p /dev/ttyUSB0 write custom-firmware/demo_firmware_2.9_33_V1.9.0.0.bin

Die Eigenschaften müssen wieder gesetzt werden:

python3 zbs_flasher.py  -p /dev/ttyUSB0 write-infopage infopage.hex

Ein Reset

python3 zbs_flasher.py  -p /dev/ttyUSB0 reset

und man sieht

Booting
...
Associate Read

Für den Neustart des Tag müssen:

  1. Beide Batterien entfernt werden
  2. Die Batterieanschlüsse kurzgeschlossen werden (mehrere Minuten liegen lassen reicht nicht)
  3. Mindestens eine Batterie wieder einlegen. Es empfiehlt sich die Batterie beim Einlegen auf den Deckel zu legen und mit dem Deckel ins Tag zu bringen. Sonst wird die Stromversorgung kurz unterbrochen und der Tag fährt nicht hoch.


Access Point

Der Access Point (AP) nimmt die Anfrage über WLAN an und überträgt sie mit Zigbee an die eigentlichen Tags. Für den WLAN-Teil wird ein ESP32-S3 mit Display verwendet, für den Zigbee-Teil ein ESP32-C6. Damit der AP zuverlässig läuft, sollte der ESP32-C6 aus den 5 Volt des ESP32-S3 gespeist werden.

Verbindung zwischen den beiden ESPs:

ESP32-S3 ESP32-C6
GND GND
5V 5V
17 2
18 3
19 TX
20 RX
21 9
47 RST

Firmware für den AP Yellow AP ESP32_S3_16_8_YELLOW_AP

Links

https://github.com/OpenEPaperLink/OpenEPaperLink/wiki

Flasher: ESP32 Version