Epaper-2.9

Grazie ad un firmware alternativo (creato mediante reverse engineering da ###) ed uno scipt python che li comanda è possibile riutilizzare dei cartellini per prezzi da supermercato con schermo e-paper a proprio piacimento. Il protocollo ideato da ### funziona nel seguente modo:

  • il Tag si cerca un AP a cui collegarsi ed in caso lo trovi va poi a dormire per 40 s
  • al risveglio chiede se ci sono dati nuovi (ed eventualmente invia la propria temperatura e livello batteria)
  • se non ci sono nuovi dati continua il loop ogni 40 secondi
  • se ci sono nuovi dati al risveglio successivo (non mi è chiaro perchè non lo faccia al giro precedente) lo script python glie li invia ed il Tag procede alla visualizzazione.
  • uno (o più!) ePaper Tag
  • Programmatore autocostruito con supporto stampato in 3D e scheda ESP32 Wroom (o Arduino nano)
  • Scheda ESP32-C6 da usare come AP (access point / base station per poi comandare i Tag)

Stampare i 2 seguenti modelli: il primo è il guscio vero e proprio, il secondo è un blocchetto a scorrimento che serve a bloccare il Tag in posizione, dato che *sicuramente* il dentino stampato nel primo vi si romperà appena a toccarlo o comunque non farà tenuta perchè i pogo-pin spingono abbastanza (forza di uno moltiplicata per 10 pezzi):

https://github.com/atc1441/ZBS_Flasher/blob/main/jig/ZBS243_Pogo_Flasher_main_body.stl https://github.com/atc1441/ZBS_Flasher/blob/main/jig/ZBS243_Pogo_Flasher_latch.stl

Volendo c'è anche il fondo, ma non è strettamente necessario (io me ne sto disegnando uno per lasciare più spazio ai fili che escono dai pogo-pin)

Componenti sw, da sistemare nel seguente ordine, con relativi link diretti alle sottodirectory di github:

1. ZBS_Flasher firmware (io ho usato ESP32_Flasher, c'è anche la versione per Arduino nano) https://github.com/atc1441/ZBS_Flasher/tree/main/ESP32_Flasher

2. ZBS_Flasher script https://github.com/atc1441/ZBS_Flasher/blob/main/zbs_flasher.py

3. zbs243_Tag_FW https://github.com/jjwbruijn/OpenEPaperLink/tree/5b9f8b324edd8777c8c9fd7d866fefef424e218c/zbs243_Tag_FW

4. OpenEPaperLink_esp32_C6_AP https://github.com/jjwbruijn/OpenEPaperLink/tree/5b9f8b324edd8777c8c9fd7d866fefef424e218c/ARM_Tag_FW/OpenEPaperLink_esp32_C6_AP

5. OpenEPaperLink-PyStation https://github.com/jjwbruijn/OpenEPaperLink/tree/5b9f8b324edd8777c8c9fd7d866fefef424e218c/ARM_Tag_FW/cc2531_OEPL/OpenEPaperLink-PyStation

PC→ESP32


Sniffando la seriale ho ricavato questi:

CMD_GET_VERSION = 1

41 54 01 00 AB 35

CMD_RESET_ZBS = 11

41 54 0B 00 AB 3F

Guardando ai sorgenti python con le info sopra ho ipotizzato:

ATcn[…]CC

“AT” è l'inizio (riminiscenza di altri tempi..) c = comando in binario (es comando 11 è 0x0B) n = numero di bytes del comando in binario […] = eventuali bytes del comando CC = 2 bytes di CRC calcolato con 0xAB34 + somma dei bytes dopo “AT”

Accensione

41 54 0D 01 01 AB 43

Spegnimento

41 54 0D 01 00 AB 42

Reset ZBS

41 54 0B 00 AB 3F

Reset ESP

41 54 02 00 AB 36

PassThrough

41 54 32 00 AB 66

Epaper-2.9

  • Responsabile:
  • Membri:
  • Data inizio:
  • Data fine:
  • progetti/epaper-2.9.txt
  • Ultima modifica: 2023/10/13 17:27
  • da morpheus