LilyGO T-SIM7080G S3 β Firmware bench
Cos'Γ¨
Suite di firmware sul modem SimCom SIM7080G (NB-IoT / Cat-M), board winner per il Visla Tag battery-powered (ESP32-S3 + AXP2101, datasheet PSM 3.2 Β΅A). Dal bring-up del PMIC (senza cui il modem Γ¨ morto) ai tracker completi β H02 su TCP raw fino al decoder GKE in produzione, e ora il MQTT/TLS per-device β passando per la profilazione consumi in duty-cycle.
I tracker sono i gemelli di quelli del T-SIM7070G e del T-A7670: stessa logica, hardware diverso, per scegliere la radio giusta del Tag.
π Scheda modulo completa (pinout, bench consumi, PoC GKE) β- MCU
- ESP32-S3 (8MB PSRAM)
- Modem
- SIM7080G
- PMIC
- AXP2101
- Modem UART
- RX=4 TX=5
- PWRKEY / DTR
- 41 / 42
- PMU I2C
- SDA=15 SCL=7
- GPS+IMU I2C
- SDA=21 SCL=45
- Rete EU
- NB-IoT B20
β οΈ AXP2101 init obbligatorio (enableDC3 o modem off). Lo STEMMA QT onboard Γ¨ UART, non I2C β GPS/IMU sul bus 21/45.
I firmware
In ordine cronologico di sviluppo al banco. β = nuovo.
Blink diagnostic
blink-diagnostic Diagnostico minimale: solo blink LED + log USB-CDC, zero PMIC e zero modem. Se vedi log e il LED lampeggia β ESP32-S3 vivo, il problema Γ¨ solo PMIC/modem. Primo sketch di recovery dopo un brick AXP.
Passthrough SAFE
modem-passthrough-basic Passthrough USB-CDC β modem con XPowersLib usato SOLO per abilitare BLDO1 (il level shifter critico ESP32βmodem). Nessun disable, nessuna manipolazione raw rischiosa: la via sicura per parlare AT col SIM7080G.
Passthrough + AXP2101 fix
modem-passthrough-fix-pmic Passthrough con AXP2101 configurato correttamente: la chiave del bring-up del modem. Senza enableDC3() il rail del modem Γ¨ OFF β modem morto. Qui si fissa la sequenza PMU (DC3 + BLDO1 + BLDO2) che poi tutti gli sketch riusano.
I2C scan multi-bus
i2c-scan-sensors Scan I2C su entrambi i bus β PMU (15/7) + bus sensori cablato (21/45 o T-SimHat 21/22) β per identificare i chip presenti (AXP2101, QMI8658, INA219, MAX-M10S). Mappa l'hardware prima di costruirci sopra.
Sensori interni
test-internal-sensors Test dei sensori interni senza T-SimHat: temperatura interna ESP32-S3 + telemetria di carica/batteria dall'AXP2101 (VBAT, corrente, stato charging). Baseline della board nuda.
Brute-force GPIO scan
test-qwiic-direct Scan brute-force su tutte le coppie di GPIO liberi del breakout per trovare il bus I2C giusto, senza assumere il pinout Qwiic. à così che si è confermato che i sensori vivono su IO21/IO45 (lo STEMMA QT onboard è UART, non I2C!).
IMU 6-axis read
test-imu-read Lettura IMU 6 assi (accel+gyro+temp) via Qwiic cablato (3V3βDC1, GND, SDAβIO21, SCLβIO45). Conferma il cabling e il chip prima di usarlo per l'allarme vibrazione.
IMU + GPS bus condiviso
test-imu-gps-qwiic IMU + GPS MAX-M10S sullo stesso bus I2C cablato (SDA=IO21 SCL=IO45). Valida la catena Qwiic completa (GPS @0x42 + IMU @0x6A) che alimenta poi tracker e duty-cycle.
T-SimHat β tutti i sensori
test-simhat-sensors Test completo del T-SimHat INA219 stackato: QMI8658 IMU 6-axis + 2Γ INA219 (corrente/tensione) + DHT11. Bus HatWire 21/22. Per misurare i consumi onboard e prototipare le feature sensori.
Duty-cycle 30s
visla-v2-dutycycle-30s Bench autonomia: wake β GPS poll + IMU read β ESP32 deep-sleep 27s β ripete. Misurato col FNB58: 16.4 mA medi (sleep 14, peak 71) β β60% vs continuous, ~5 giorni con LiPo 2000mAh. Bottleneck = MAX-M10S in continuous tracking (~12 mA).
Duty-cycle + PSMOO (GPS backup)
visla-v2-dutycycle-30s-psmoo Tentativo di abbattere i 14 mA di floor mandando UBX-RXM-PMREQ al MAX-M10S (backup mode) prima del deep-sleep. Esito bench: β 50.7 mA (PEGGIO del continuous) β PMREQ ignorato / auto-wake. Documentato per la prossima sessione di debug (power-gate del rail Qwiic via AXP).
Prototype v2 (HTTP uplink)
visla-v2-prototype Prototipo "prodotto": PMU + modem boot + GPS Qwiic + IMU β JSON β HTTP POST. Forza Cat-M con fallback NB-IoT. Primo giro completo device β uplink (test su httpbin), base di tutti i tracker successivi.
GPS SimCom + H02 β GKE π₯
firmware-test-1-gps-simcom-only PoC end-to-end VALIDATO in produzione: GPS nativo del SIM7080G (CGNSPWR/CGNSINF) β pacchetto H02 via TCP raw β decoder GKE Visla (decoder-lb β Gx02FrameDecoder β Redis). NB-IoT B20 Voda IT su 1NCE, cold-start ~60-90s. Γ la prova che la pipeline Visla funziona su questa board.
WiFi AP + dashboard debug
firmware-test-2-wifi-debug GPS SimCom + H02 con WiFi AP "visla-lilygo" e dashboard web live (http://192.168.4.1): stato modem, rete, GPS, socket TCP. Per debuggare la connettivitΓ dal telefono senza seriale.
Tracker MQTT/TLS completo β
firmware-mqtt-tracker PORT del miglior MQTT tracker del 7070G su questa board: GPS u-blox dedicato (Qwiic 21/45) + IMU allarme vibrazione + presenza LWT + batch store-and-forward + diagnostica radio CPSI/CEREG, sul broker Visla mqtt.vislagps.com:8883 (TLS, auth per-device). Logica tracker identica al 7070; aggiunge bring-up AXP2101, doppio bus I2C e preferenza NB-IoT. Γ l'upgrade TLS sul roadmap (vs il TCP raw del test-1).
β firmware-mqtt-tracker β validato al banco (17 giu 2026)
Cosa fa: ogni device pubblica la propria traccia GPS (batch store-and-forward) + allarmi vibrazione IMU
sul broker Visla in MQTT/TLS autenticato per-device (visla/<IMEI>/pos), con presenza online/offline (LWT)
e diagnostica radio (RAT, RSRP, banda, cella) in ogni messaggio. Flashato sul 7080G S3 reale (IMEI 860016049553337).
7080S3MQ)Firmware v2.3-7080-rc Β· heartbeat stabili ogni 15s Β· presence online sul bridge GKE.
π Note di banco
- AXP2101 init Γ¨ MANDATORY: senza enableDC3() il rail del modem Γ¨ OFF. Sequenza provata: DC3=3.0V + BLDO1/BLDO2=3.3V. β οΈ Mai scrivere bit raw a 0x80 (rischio brick: DC1 alimenta l'ESP32).
- Factory DC3=3.0V β registra NB-IoT B20 (segnale forte 800 MHz), NON Cat-M B3 in EU. Cat-M dove disponibile Γ¨ molto piΓΉ reattivo per TLS/MQTT.
- Lo STEMMA QT onboard Γ¨ UART, non I2C: GPS/IMU vanno cablati sul bus IO21/IO45 (o T-SimHat 21/22).
- Per il MQTT/TLS su NB-IoT, se PubSubClient+TLS flappa, il fallback robusto Γ¨ lo stack MQTT nativo del modem (AT+CSSLCFG="CONVERT" + SMCONF/SMCONN/SMPUB), come gli esempi ufficiali LilyGO.
- Per battery puro il path piΓΉ economico resta TCP raw H02 (~30 B/msg vs ~80 del MQTT) β il MQTT/TLS Γ¨ l'upgrade di sicurezza sul roadmap.
- Misure consumi col FNB58: staccare la batteria. PSMOO sul MAX-M10S non ha funzionato (50.7 mA) β da debuggare con power-gate del rail Qwiic via AXP.