From bbf604e1a8b131f86be80ecfe9473ac92e5558ab Mon Sep 17 00:00:00 2001 From: Emanuele Trabattoni Date: Wed, 6 Aug 2025 11:24:22 +0200 Subject: [PATCH] Readme first version --- README.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index dc0e1ef..c55a9de 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,64 @@ # ETcontroller_PRO -Nuova versione di ETcontroller hardware (lo scatolo) basata su scheda ESP 32 Waveshare [https://www.waveshare.com/wiki/ESP32-S3-ETH-8DI-8RO#Resources] \ No newline at end of file +### Nuova versione di ETcontroller hardware (lo scatolo) basata su scheda ESP32-S3 Waveshare +[https://www.waveshare.com/wiki/ESP32-S3-ETH-8DI-8RO#Resources] + +## Tool necessari: + +### Plugin VScode +* VScode +* PlatformIO Plugin per VScode +* GitGraph +* C/C++ Extension Pack + +### Toolchain e Librerie +Dipendenze e toolchain vengono installate direttamente da PlatformIO. +Il firmware e' basato sul framework _Arduino_ e piattaforma _esp-idf_ di Espressif. +La versione della piattaforma inclusa in PlatformIO e' deprecata, quindi e' necessario scaicarne una indipendente da GitHub. La versione corrente e' listata nel file `platformio.ini` nella root directory, se fosse necessario aggiornarla si trova a: [https://github.com/pioarduino/platform-espressif32/releases] +Vale lo stesso per le librerie dipendenti, se non fossero disponibili tramite PlatformIO si possono cercare su GitHub e scaricare manualmente. + +### Documentazione aggiuntiva +Nella cartella `docs` sono presenti i datasheet di tutti i device collegati. +I driver sono spesso scritti a manina usando quei documenti come reference. + +## Configurazione Hardware e Build + +### Definizione della board +Prima di poter compilare e' necessario copiare il file di descrizione della board `esp32-s3-waveshare8.json` che si trova in questa root directory nella cartella delle board di PlatformIO. +* Per Windows `%USERPROFILE%\.platformio\platforms\espressif32\boards` +* Per Linux `$HOME/.platformio/platforms/espressif32/boards` +* Per MAC `dovrebbe essere come linux` + +### Cofigurazioni di build +Le configurazioni disponibili sono: +* **Release**: `esp32-s3-waveshare8` +Build adatta per il deploy, log su seriale ma non e' possibile il debug con PlatformIO +* **Debug**: `esp32-s3-waveshare8-debug` +Build per il debug del codice in circuit, attenzione che quando il debugger e' attivo tutti i procesi temporizzati dallo scheduler vanno in pausa per cui le funzioni di rete e comunicazione con le perriferche potrebbero non funzionare correttamente. + +Il cambio di configurazione tra Release e Debug causa un rebuild completo del codice. + +### Partizioni della flash +La flash dell'ESP32 e' partizionata secondo lo schema definito in `fatfs_partitions.csv`, che deve rimanere nella root del progetto. +Le partizioni sono come segue" +* **NVS + OTADATA**: Non toccare assoutamente, contengono il bootloader, se si toccano queste addio programmazione via USB, ci vuole il tool apposta. +* **APP_0 + APP_1**: contengono entrambe il firmware, quando avviene un aggiornamento via OTA una partizione e' in stby e riceve il firmware aggiornato. Se l'aggiornamento va a buon fine il boot successivo avviene dalla partizione aggiornata e cosi' via per i successivi. +* **FFAT** e' una partizione accessibile dal firmware per essere usata come memoria permanente. Montata dalla classe FSMount. E' di circa 9MB e si comporta come un filesystem FAT32. +**Attenzione che e' la flash integrata nel micro, evitare letture e scritture troppo frequenti per non bruciarla** + +### Metodi di upload +La porta di upload e' configurata con `upload_protocol` nel file `platformio.ini`. +I valori possibili sono: +* **_esptool_** per upload USB +* **_espota_** per upload via Rete. +In questo caso il valore di _upload_port_ deve essere l'indirizzo IP della scheda, che sia settato statico o da DHCP. +E' possibile ce si debba permettere a VScode di aggiungere una regola al firewall del PC per permettere il collegamento "unsafe" via UDP + +Il metodo di defaut e' tramite la porta USB, che ha un nome diverso a seconda del sistema operativo host e della porta a cui viene collegata. +Se si vuole utilizzare il metoto OTA via rete, questo va abilitato dalla scheda (per motivi di sicurezza). +Per abilitare OTA resettare la scheda e nel momento del boot tenere premuto il pulsante blu fino a che il buzzer smette di bippare e il led inizia a lampeggiare verde e giallo alternati: da quel momento e' possibile aggiornare via rete. +_Ogni aggiornamento causa il reboot della scheda._ + +### Logica del Firmware, come funziona? + +[TODO] \ No newline at end of file