Curiosity
Il re del low-power BLE: 0.4 µA in System OFF (25× meglio di ESP32-S3). Tile/AirTag-like autonomy per Visla Tag. ARM Cortex-M4F @ 64 MHz, BLE 5.4 + Bluetooth Mesh + NFC, supporto Arduino / CircuitPython / MicroPython oltre a Zephyr/nRF Connect SDK. Disponibile come XIAO board $9.90 (10+: $8.90) — variante Sense aggiunge mic PDM + 6-axis IMU per TinyML. Già nel tuo Seeed order #4000531966 in arrivo 02/06 (XIAO nRF52840 Pre-Soldered).
📊 Consumi BLE MISURATI al banco (18/07/2026)
XIAO nRF52840, alimentato 3.3V su 3V3 dal DPS-150 (no USB, no batteria → misura pulita), firmware Zephyr/Bluefruit interattivo pilotato via Waveshare UART.
| Modalità BLE | Corrente @ 3.3V |
|---|---|
| radio OFF (idle + CPU sleep) | 4.8 mA ← il “pavimento” (CPU + regolatore) |
| solo ADVERTISING (100ms) | 4.8 mA ⭐ gratis: uguale all’idle |
| solo SCAN (continuo) | 14.4 mA ← lo scan è il costoso |
| SCAN + ADVERTISING | 9.4 mA |
Sweep potenza TX (in advertising, −40 → +8 dBm): 4.5–5.1 mA, PIATTO → la TX power non muove il consumo medio di un beacon (i µs di TX sono trascurabili). Più portata gratis.
⭐ Le 3 lezioni per il Tag
- Trasmettere è quasi gratis (4.8 mA = idle): il consumo è dominato da CPU/regolatore, non dalla radio in TX. Un beacon broadcast-only costa come uno spento.
- Ricevere è il costoso (scan 14.4 mA): sul Tag, ascoltare brucia batteria — è il conto del “trova-tag” e del BLE scan.
- La TX power è gratis: trasmetti al massimo senza penalità sull’autonomia.
⚠️ Il “pavimento” 4.8 mA è l’idle del board (regolatore + CPU non in deep sleep). Il vero sleep a µA (systemOff) il DPS-150 non lo legge — servirebbe un PPK2. Questi sono i consumi attivi, affidabili.
🆚 vs ESP32-C6 (stesso lavoro, stesso banco)
| Modalità | nRF52840 | ESP32-C6 |
|---|---|---|
| idle (radio off) | 4.8 mA | 43.7 mA (9.1×) |
| solo advertising | 4.8 mA | 44.5 mA |
| solo scan | 14.4 mA | 59.3 mA |
| scan + advertising | 9.4 mA | 60.0 mA (6.4×) |
→ Il C6 tira 44 mA anche da FERMO (pavimento CPU/regolatore 9× il Nordic) → non si rimedia col duty-cycling. Per un tag a batteria il Nordic è obbligatorio. (dettaglio C6)
Specs tecniche
| Parametro | Valore |
|---|---|
| Chip | Nordic nRF52840 |
| CPU | ARM Cortex-M4 con FPU, fino a 64 MHz |
| Flash on-chip | 1 MB |
| RAM | 256 KB |
| Flash XIAO board | 2 MB QSPI esterna onboard |
| Wireless | Bluetooth Low Energy 5.4 · Bluetooth Mesh · NFC (lettore tag) |
| Standby power (board) | 5 µA |
| Chip System OFF | 0.4 µA (vs 10µA ESP32-S3) |
| Chip System ON idle | 1.5 µA (RTC) |
| Chip TX peak | ~5 mA (0 dBm) — Long Range Coded PHY supportato |
| Long Range Coded PHY | ✅ sì (a -103 dBm @ 1Mbps, fino a -111 dBm Coded) |
| GPIO XIAO | 11× (con PWM) |
| ADC XIAO | 6 pin |
| Interfacce XIAO | 1× UART · 1× I2C · 1× SPI · 1× NFC · 1× SWD |
| Charging chip onboard | gestione LiPo integrata (50 mA / 100 mA) |
| Input voltage USB-C | 5 V |
| Input voltage BAT | 3.7 V LiPo |
| Logic voltage | 3.3 V (NON 5V tolerant!) |
| Antenna XIAO | onboard ceramic |
| Dimensions XIAO | 21 × 17.8 mm (form factor standard) |
| Variant XIAO nRF52840 | $9.90 — SKU 102010448 (no sensor) |
| Variant XIAO nRF52840 Sense | + PDM mic + 6-axis IMU onboard |
| Variant XIAO nRF52840 Plus | extended (più memoria + sensori avanzati) |
| Software | Arduino IDE · CircuitPython · MicroPython · Zephyr · nRF Connect SDK |
| HSCODE | 8517180050 (CN/US) · 8543709099 (EU) |
🧪 Note dal bench Visla
- ✅ 0.4 µA System OFF chip nudo: 25× meglio di ESP32-S3 — autonomia tipo AirTag/Tile per Visla Tag mass market
- ✅ NFC reader integrato: utile per pairing rapido con iPhone (tap il tag → app si apre + setup BLE automatico)
- ✅ BLE 5.4 Long Range Coded PHY: con codifica S=8 arrivi a -111 dBm sensitività = ~1 km outdoor LOS — meglio dei Long Range custom AirTag (~300m)
- ✅ Arduino + CircuitPython + MicroPython tutti supportati: prototyping rapido in Python, poi ottimizzazione Arduino C++ per production
- ✅ Versione Sense aggiunge mic PDM + 6-axis IMU: TinyML voice trigger + posture detection senza componenti aggiuntivi
- ✅ Charging onboard 50/100 mA configurabile: USB-C plug-and-charge, niente TP4056 esterno
- ⚠️ NO Wi-Fi: per OTA cellular serve modem separato (es. A7670E/SIM7080G) o passaggio dati via BLE → smartphone gateway
- ⚠️ 3.3V only - NON 5V tolerant: GPIO si bruciano con 5V diretto
- ⚠️ Standby board 5 µA (NON 0.4 µA del chip): i regolatori XIAO aggiungono ~4.6 µA — per battery life max progetta PCB custom
⚠️ Gotchas
- Bootloader UF2 drag-and-drop su Mac: doppio reset button → mount disco USB → trascina .uf2 — più semplice di flash via SWD
- Variante normale è “Pin Header Un-Soldered” $9.90 — pre-soldered costa solo $1 in più ma risparmia 5 min saldatura
- Non confondere XIAO nRF52840 base ($9.90) vs XIAO nRF52840 Plus ($16.40) — il Plus ha SOM production-ready, memoria estesa, IMU+mic+NFC tutto onboard
- Per misurare current con FNB58 tieni presente che USB-C entry → LDO interno → chip: la corrente USB è ~30 µA in idle (LDO drop)
- Antenna ceramica onboard è “tunata” per air spazio libero: se metti in custodia metallica, gain crolla — usa antenna UFL esterna (slot disponibile)
- Library Adafruit Bluefruit non più mantenuta — usare Arduino_BHY2 (Sense) o BLEPeripheral (base)