Installazione di micropython su ESP32
Per questa guida utilizzerò un Heltec V3 ma la procedura vale per tutti i dispositivi basati su ESP32 (funziona anche su HT-CT62 basato su ESP32-C3).
Prima di tutto sarà necessario installare micropython sulla scheda.
Prima di tutto ci servirà esptool
sul nostro computer
Sarà necessario dare il comando pip install esptool
da qualsiasi terminale (la procedura è la stessa sia per Windows che Linux ammesso che pip
e python
siano già installati).
A questo punto si può collegare il dispositivo ESP32 e metterlo in boot mode (su Heltec V3 è sufficiente premere il pulsante BOOT prima di collegarlo, anche se è possibile che entri in modalità boot automaticamente una volta eseguito il comando esptool).
Diamo il comando esptool.py --port /dev/ttyUSB0 erase_flash
per cancellare completamente la memoria flash del dispositivo. Fare attenzione alla porta selezionata: /dev/ttyUSB0 è una porta abbastanza comune su linux (ma può anche essere 1 o 2 a seconda dei dispositivi collegati); su Windows la porta può essere una qualiasi COM (controllare da gestione dispositivi la porta che appare quando lo si collega).
Ora dovremo scaricare l'immagine micropython adatta per il nostro dispositivo, andiamo su https://micropython.org/download/ e scegliamo il nostro.
Per Heltec V3 sarà necessaria l'immagine generica per ESP32-S3, trovabile qui. Fare attenzione a prendere la prima (in formato .bin) perchè è quella per flash da 8MB (quella presente su Heltec V3); se si hanno dispositivi diversi è anche possibile scaricare l'immagine generica, anche su dispositivi con 4MB di flash Freakwan funzionerà senza problemi
Ora possiamo eseguire il comando esptool.py --chip esp32s3 --port /dev/ttyUSB0 write_flash -z 0 ESP32_GENERIC_S3-20240602-v1.23.0.bin
.
L'ultimo comando rappresenta il percorso al file .bin di micropython appena scaricato.
Se ad esempio abbiamo scaricato in download il file .bin (su Linux) il comando effettivo sarà: esptool.py --chip esp32s3 --port /dev/ttyUSB0 write_flash -z 0 /home/<USER>/Downloads/ESP32_GENERIC_S3-20240602-v1.23.0.bin
Se tutti i comandi sono stati eseguiti senza errori abbiamo correttamente installato Micropython.
Download di Freakwan e file di configurazione
Possiamo ora scaricare il codice sorgente di freakwan qui.
Se avete dispositivi Lilygo probabilmente le cofigurazioni incluse di default saranno sufficienti, altrimenti ho realizzato una variante con le configurazioni dell'Heltec V3 trovabile qui.
Scompattiamo il file scaricato e rechiamoci nella cartella devices e troviamo la configurazione per il nostro dispositivo.
A questo punto sarà necessario copiare il file di configurazione dalla cartella devices e incollarlo nella directory principale (dove ci sono tutti i file .py per intenderci). Ora rinominiamo il file appena copiato device_config.py (rimuovendo quindi il nome del dispositivo dal nome del file).
Ora apriamo il file wan_config.py e controlliamo che i parametri radio LoRa siano corretti (di solito quelli predefiniti vanno bene).
In questo file possiamo anche modificare altre impostazioni come il messaggio di default (una specie di segnale per mostrarci online agli altri dispositivi) o le impostazioni della nostra rete WiFi.
Copiamo e avviamo Freakwan
Sarà necessario un ulteriore modulo pip per copiare i file sul dispositivo.
Installiamo quindi il mpremote
con pip install mpremote
.
E' anche possibile utilizzare il modulo talk32
(sviluppato dai creatori di Freakwan) invece del modulo mpremote
; in seguito i comandi saranno riferiti a mpremote
ma in caso voleste utilizzare talk32
potete leggere la documentazione.
Una volta installato mpremote
possiamo finalmente copiare i file sul dispositivo.
Apriamo il terminale nella cartella dove ci sono i file di Freakwan (ad esempio facendo cd /home/<USER>/Downloads/freakwan
su Linux o recandoci nella cartella e aprendo il terminale qui con l'opzione corrispondente del menu esteso facendo SHIFT+TASTO DESTRO su Windows).
Ora eseguiamo il comando mpremote cp *.py :
per copiare tutti i file .py dalla cartella corrente sul dispositivo.
Una volta eseguito correttamente il comando possiamo resettare il dispositivo e freakwan si avvierà.
Se vogliamo interagire con il dispositivo possiamo usare mpremote repl
e visualizzare l'output dal dispositivo o inviare comandi e messaggi.
Pronti!
Freakwan dovrebbe funzionare senza problemi, nel caso ce ne siano contattateci.
Per interagire con il dispositivo e inviare messaggi è possibile utilizzare i seguenti tool.
A breve sarà anche disponibile un'applicazione dedicata cross-compatibile per Android e iOS, se vi interessa e volete aiutarci con lo sviluppo (segnalazione bug, richiesta di funzionalità aggiuntive, scrittura codice, ...) non esitate a contattarmi
NOTE
In caso mpremote non si colleghi in automatico al dispositivo corretto sarà necessario aggiungere connect <PORTA>
subito dopo mpremote
a tutti i comandi.
Ad esempio per caricare i file su un dispositivo connesso a una porta "non di default" possiamo modificare il comando così: mpremote connect /dev/ttyUSB2 cp *.py :
Sul dispositivo è anche disponibile una pagina secondaria con la lista dei nodi visti di recente, visualizzabile cliccando il tasto su Heltec V3