Pak už se jen kuchalo, pájelo, vyvíjela se vlastní řešení a řízení samotného ePaperu a nebo čekalo...čekalo...čekalo. Čekalo, až někdo přijde a řekne "Marconi, zkuste to bez drátů!" čili hackne komunikační protokol pro wireless aktualizaci obrazovky displeje. Nebo vymyslí vlastní firmware.
A tento okamžik nastal loni na podzim, kdy Dmitry Grinberg publikoval PoC a následně popis jak hackount eInk cenovky a Dan Kučera se zhostil Pythonu a zveřejnil SW a upravený FW pro komunikaci pomocí zigBee dongle CC2531 s TIMAC firmware.
V následujícím textu je shrnutý postup, jak flashnout CC2531 zigbee dongle, ePaper cenovku Samsung/SoluM4.2 a celé to nějak využít pro zobrazení meteo informací.
Příprava Raspberry PI
Raspberry PI není pro flashnutí CC2531 ani ePaper cenovky nutné, vše lze udělat i pomocí PC. Nicméně s RPi je to jednodušší - kompilace utilit, přímé propojení UARTu, odpadne nutnost převodníku napěťových úrovní atd. Staci přpojit piny GPIO14(TX) a GPIO15(RX) k cenovce.
Nejdriv povolit a nastavit UART:
sudo nano /boot/config.txt
dtoverlay=disable-bt
sudo nano /boot/cmdline.txt
remove "console=serial0,115200"
Reboot a otestovat:
Minicom -D /dev/ttyAMA0 -b 115200
Příprava CC2531
Pro komunikaci mezi ePaperem a RPI/Turrisem je potřeba do CC2531 nahrát TIMAC firmware - IEEE802.15.4 Medium Access control (MAC) software stack.
Podrobný návod jak flasnout CC2531 je zde https://www.zigbee2mqtt.io/guide/adapters/flashing/alternative_flashing_methods.html. Výběr metod je Vaše volba.
TIMAC firmware pro CC2531 je pak součástí balíku TIMAC - IEEE802.15.4 Medium Access Control (MAC) Software Stack (150 MB SelfExtract ZIP). Nebo si můžete stáhnout pouze binárku z mého webu MACcoP-cc2531.hex
wget https://www.klosko.net/tools/ePaper/MACcoP-cc2531.hex
Poté je potřeba naflashovat firmware na ePaper cenovku. Samotný flash se provádí pomocí sériového portu. Já to flashoval přímo z RPi - připojeno natvrdo, bez převodníku - piny GPIO14 jako TX a GPIO15 jako RX

Kontakty UART portu na cenovce jsou ukryty na zadní straně pod nálepkou. Pinout na Dmitryho webu.
Ze zkušeností několika bastlířů je jakýkoliv v ruce držený a přitlačený konektor horkým kandidátem na bricknutí cenovky. Jde to sice pak opravit, ale raději doporučuji napájet si tam konektor.


Pro samotné flashnutí slouží utilitka uartTool od Dmitryho / Dana. Takže stáhnout, zkompilovat, napálit FW :
cd /tmp
git clone https://github.com/danielkucera/epaper-firmware
cd epaper-firmware/uartTool
make
wget https://www.klosko.net/tools/ePaper/QSPI.BWR.bin // Dan's FW !!!!
./uartTool /dev/ttyAMA0 makeDmitry < QSPI.BWR.bin
OR
./uartTool /dev/ttyAMA0 updateDmitry < QSPI.BWR.bin
RESET ePaperu

Pro zobrazení čehokoliv na ePaper displeji slouží epaper-station. Na výběr je originál od Daniela Kučery, nebo mnou upravený fork.
Každopádně po prvním spojení se ePaper a CC2531 "spárujou" a máme hotovo. No hotovo, začíná fáze "Co tam zobrazit" – tohle už nechám na Vás.

Jak mi to celé funguje
- epaper-station.py běží na Turrisu jako daemon a v pravidelných intervalech (sleep thread) posílá HTTP GET požadavek na obrázek, který se má nahrát do ePaperu. Požadavek se posílá "chvilku před probuzením ePaperu". V parametru GETu je i napětí baterky ePaperu
- Při požadavku se na serveru vygeneruje PNG ze zájmových teploměrů a čidel (hodnoty v DB), přidá se předpověď počasí z yr.no. PNG si epaper-station stáhne a upraví do B/W 2bit BMP
- ePaper si po probuzení zkontroluje, jestli existuje novější obrázek, pokud ano, tak si jej stáhne a následně zobrazí. Pak zas usne na definovanou dobu.
- V noci se spí, takže se cca ve 21:00 ePaper nastaví do sleep modu na 9 hodin aby šetřil baterky a eInk.
Vedlejším efektem generování PNG na serveru je, že mám aktuální obrázek displeje dostupný i přes web. Zároveň mám přehled o stavu baterek v cenovce.



Výhodou bezdrátové aktualizace ePaper displeje je, že CC2531 dongle je zapojený v Turrisu za skříní a cenovka stojí na viditelném místě v kuchyni. K tomu slouží stojánek vytištěný na 3D tiskárně

Seznam odkazů