Curiosity
Breakout SparkFun open hardware per il chip u-blox DAN-F10N dual-band L1+L5. Reference design completo in KiCad (non Eagle!) — schematic, PCB layout, Gerber, BOM su GitHub CC BY-SA. Antenna patch stacked 20×20mm integrata sul chip, RF switch per antenna esterna opzionale. Per Visla è il path per evaluation dual-band meter-level senza dover progettare RF stack-up complesso.
Specs tecniche
| Parametro | Valore |
|---|---|
| Vendor | SparkFun Electronics (USA, open hardware CC BY-SA) |
| Prezzo | ~$70 (1pc) — vedi sparkfun.com |
| Chip integrato | u-blox DAN-F10N (F10 dual-band L1+L5, professional grade) |
| Bande GNSS | L1 (1575.42 MHz) + L5 (1176.45 MHz) — meter-level accuracy in urban environment |
| Connettori dati | USB-C (via CH340 bridge) + UART PTH header (no Qwiic/I2C) ⚠️ |
| Antenna | Stacked patch 20×20mm integrata + RF switch per esterna SMA |
| Design files | KiCad project + Gerber + BOM open hardware su GitHub |
| PTH pins | 14 PTH (3V3, GND, UART TX/RX, PPS, etc) + 6 PTH BlueSMiRF/Serial-to-UART |
⚠️ CORREZIONE 2026-06-08: il chip u-blox DAN-F10N NON ha interfaccia I2C/DDC (solo 1× UART nativo). SparkFun non ha messo Qwiic sul breakout perché il chip non lo supporta. Per integrarlo con ESP32 servono 2 pin UART dedicati (TX/RX).
🧪 Note dal bench Visla
- ✅ KiCad files open-source: scaricati in
Downloads/SparkFun_GNSS_DAN-F10N_KiCad_Files/— riferimento layout per design Visla v2 dual-band - ✅ Dual-band L1+L5 in <$100: il path più economico per evaluation accuracy meter-level in urban canyon
- ✅ Antenna stacked integrata + RF switch: zero antenna design lato Visla, ma flessibilità per esterna ad alto guadagno quando serve
- ⚠️ NO GLONASS, NO L1-only mode: il chip è L1+L5 only, niente fallback a L1-single per low-power
- ⚠️ Prezzo single-qty ~$70: caro per breakout — paghi il chip professional grade + KiCad design + dual-band
🧪 Bench-test Visla 2026-06-08 (Orvieto, indoor)
Setup
- Connessione USB-C → MacBook Pro
- Driver: WCH CH340 (USB-UART bridge integrato sul breakout)
- Baudrate: 38400 (u-blox F10 default)
- Antenna: patch dualband 20×20mm integrata sotto la PCB
- Posizione: ambiente indoor Orvieto centro, vicino finestra
Risultati cold start
| Parametro | Valore | Note |
|---|---|---|
| TTFF cold start | 27 s | Aderente datasheet (28s tipico) |
| Costellazioni visibili | Solo GPS L1 | Galileo/BeiDou non agganciati indoor |
| Satelliti in vista (cold) | 4 | Limitato dalla patch antenna indoor |
| Satelliti usati | 5 | Sufficienti per fix 3D |
| HDOP | 2.03 (warm) — 2.86 (cold) | Buono per indoor single-constellation |
| maxSNR GPS | 32-37 dB-Hz | Marginale ma sufficiente |
| Posizione finale | 42.71753° N, 12.10778° E | Orvieto centro, match con MAX-M10S ±6m |
| Drift jitter (90s indoor) | ~7 metri | Tipico single-band, atteso |
Confronto con MAX-M10S testato lo stesso giorno
| Modulo | Interfaccia | TTFF cold | Costellazioni indoor | Costo |
|---|---|---|---|---|
| MAX-M10S Qwiic | I2C (Qwiic chain) | ~10s (warm) | GPS L1 only | $25 |
| DAN-F10N USB-C | UART (no Qwiic) | 27s cold | GPS L1 only (L5+GAL+BDS bloccati indoor) | $60 |
Conclusioni operative
- ✅ Modulo funzionante — plug-and-play USB-C su Mac, NMEA stream a 38400 baud
- ⚠️ Indoor severo limita il vero potenziale dual-band: L5 + Galileo + BeiDou richiedono cielo aperto per agganciare
- ⚠️ Per Visla Tag battery-powered: consumo 63mW continuous tracking vs ~25mW del MAX-M10S → 2.5× più → autonomia dimezzata
- ✅ Per Visla Auto premium: dual-band L1+L5 + multi-costellazione → vero sub-metro outdoor, anti-jamming NIC integrato, anti-spoofing → vale i $35 extra
- 📝 Verdetto SKU split:
- Visla Tag: → MAX-M10S (low-power, Qwiic chain semplice)
- Visla Auto premium: → DAN-F10N o NEO-F10N (accuracy + anti-interferenza LTE)
Log NMEA raw 2026-06-08
sparkfun-dan-f10n-2026-06-08-indoor.nmea — 30s di stream NMEA grezzo (420 frame), include $GPGSV, $GAGSV, $GBGSV, $GNGGA, $GNRMC. Riferimento per debug protocolli e replay analysis.
🌅 Bench-test #2 2026-06-08 — outdoor-ish (vicino finestra/balcone)
Spostando la breakout in posizione con cielo migliore (finestra/balcone), il DAN-F10N dimostra il suo vero potenziale dual-band/multi-costellazione.
Risultati outdoor-ish vs indoor severo
| Parametro | Indoor severo | Outdoor-ish | Δ |
|---|---|---|---|
| Satelliti usati per fix | 5 | 11 | +120% |
| HDOP | 2.13 | 1.11 | −48% |
| Satelliti in vista (peak) | 7 (solo GPS) | 13 (GPS+GAL) | +85% |
| Galileo agganciato | 0 | 6 sat ⭐ | attivato! |
| BeiDou agganciato | 0 | 0 | ancora limitato |
| TTFF (warm) | 0s | 1s | =/migliore |
| SNR GPS max | 37 dB-Hz | 31 dB-Hz | leggermente inferiore (più sat, distribuiti) |
| SNR Galileo max | n/a | 31 dB-Hz | sopra tracking threshold (28+) |
| Accuracy attesa (CEP 50%) | ~5-7 m | ~2-3 m | dual-band attivo |
Posizione bench-test outdoor
- NMEA:
4243.04543 N, 01206.46134 E - Decimal: 42.71742° N, 12.10769° E (Orvieto centro)
- 🗺️ Google Maps link
🎯 Cosa significa per il prodotto Visla
L’aggiunta delle costellazioni Galileo dimezza HDOP (2.13 → 1.11) → riduce drift in canyon urbani (Milano, Roma, ecc.) dove GPS-only soffre di multipath.
Verdetto confermato:
- Visla Tag (low-power, suburban): → MAX-M10S (Qwiic, 25mW, GPS L1 sufficiente)
- Visla Auto premium (urban, accuracy critica): → DAN-F10N (dual-band, multi-costellazione, anti-jamming)
Il salto $25 → $60 vale i ~$35 extra solo se il prodotto opera in canyon urbano o accuracy < 3m è feature.
🔋 Power profiling bench-test 2026-06-08
Setup dual-monitor: FNB58 inline (Bluetooth realtime → Mac) + GPS NMEA (USB-C → Mac), entrambi letti contemporaneamente dal nuovo tool visla-power-monitor per 60s.
⭐ Tool nuovo Visla bench:
tools/visla-power-monitor/visla_power_monitor.py— riusabile per QUALSIASI DUT (GPS, modem, IMU, MCU). Salva CSV power+GPS + JSON summary. Veditools/visla-power-monitor/README.mdper uso.
Misure live (sistema breakout COMPLETO)
| Parametro | Valore |
|---|---|
| Voltaggio USB-C | 5.127 V (stabile, Mac PD 100W) |
| Corrente media | 28.5 mA (range 25.0–30.2) |
| Potenza media | 146.0 mW |
| Samples FNB58 | 2178 letture in 60s (~36 Hz) |
| Stabilità | ottima, ±2 mA, no brown-out |
⚠️ Decomposizione consumo (overhead breakout)
Il consumo del sistema breakout è ~2× quello del chip puro u-blox DAN-F10N a causa degli accessori SparkFun:
| Componente | Consumo stimato @ 5V | Note |
|---|---|---|
| u-blox DAN-F10N (chip puro) | ~13 mA (datasheet 63mW @ 3V) | il “vero” GPS |
| CH340 USB-UART bridge | ~5–8 mA | per debug via USB-C |
| AP2112 3.3V LDO | ~2–3 mA quiescente | converte 5V → 3V3 per chip |
| LED PWR + PPS | ~5–7 mA | indicatori visivi |
| TOTALE misurato | 28.5 mA | ↑ confermato dal FNB58 |
Implicazione per Visla v2 PCB custom: su design ottimizzato (no CH340, no LEDs, LDO ottimo) il consumo del chip GPS solo è ~13 mA → autonomia 2× rispetto al breakout.
🔋 Autonomia calcolata (sistema breakout completo, continuous tracking)
| Batteria LiPo | Autonomia | In giorni |
|---|---|---|
| 500 mAh | 17.6 h | 0.7 giorni |
| 1000 mAh (Visla Tag candidata) | 35.1 h | 1.5 giorni |
| 2000 mAh (Visla Auto standard) | 70.2 h | 2.9 giorni |
| 5000 mAh (battery pack veicolo) | 175.6 h | 7.3 giorni |
⚠️ Per Visla Tag battery-powered questi numeri sono inaccettabili (1.5 giorni vs target 6+ mesi).
- Servirebbe u-blox power save mode (PSMOO) con on/off duty cycling
- O chip puro su PCB Visla custom + PSM (target ~5 mA avg → 200h+ con 1000 mAh)
- O modulo single-band L1 only (MAX-M10S) che consuma 3× meno
📊 Confronto con datasheet
| Misura | Datasheet u-blox (chip) | Misurato Visla (sistema) | Δ |
|---|---|---|---|
| Power | 63 mW | 146 mW | +130% (overhead breakout) |
| Currente | 12.6 mA @ 5V | 28.5 mA @ 5V | +127% |
TODO follow-up
- Test full outdoor sul balcone aperto: aggancio BeiDou + L5, target HDOP <0.8
- Misurare consumo in u-blox Power Save Mode (PSMOO) con on/off duty cycling
- Confronto consumi diretto MAX-M10S vs DAN-F10N (stesso FNB58, stesso setup)
- u-center 2 setup su Mac: configurare AssistNow per TTFF <2s
- Integrazione UART2 su sketch
visla-v2-prototype(IO47/IO48 LilyGO) - Test in movimento (passeggiata Orvieto centro) per drift/jitter realistico
- Caratterizzazione consumo PCB Visla v2 custom (no CH340, no LEDs)
🧪 Bench-test #3 2026-06-24 — config “Visla tracker” via pyubx2 + dual-band L5 confermato
Sessione di configurazione e verifica via PyGPSClient + pyubx2 su Mac (no u-center). Modulo collegato all’FTDI FT232R (/dev/cu.usbserial-BG00W8YJ) per i dati e alimentato dal DPS-150 (3.3 V, 17.6 mA misurati).
⚠️ Gotcha scoperti al bench (importanti per il F10)
- Baud 38400, non 9600 — il F10 default è 38400. A 9600 si leggono solo byte-spazzatura (baud mismatch).
- GND comune obbligatorio — alimentando dal DPS-150 e leggendo dall’FTDI, le due masse vanno unite: senza GND comune l’UART legge 0 byte anche col GPS acceso e funzionante (verificato: corrente regolare ma silenzio totale finché GND non condiviso).
- VALGET fa NAK dell’intero batch se anche una sola chiave è sconosciuta (a differenza dell’M10 che è tollerante) → su F10 leggere/scrivere le chiavi una alla volta, o solo chiavi sicuramente valide.
- Il F10 emette anche frame RTCM3 (
0xD3…) sull’UART1 di default. - Identità reale via
MON-VER:MOD=DAN-F10N · FW=SPGL1L5 6.00(confermato F10 dual-band, non M10).
Config di fabbrica letta (RAM)
| Chiave | Valore |
|---|---|
CFG_UART1_BAUDRATE | 38400 |
CFG_RATE_MEAS / CFG_RATE_NAV | 1000 ms / 1 → 1 Hz |
CFG_NAVSPG_DYNMODEL | 0 (portable) |
| Segnali L1+L5 | GPS L1CA+L5 ✅ · GAL E1+E5a ✅ · BDS B1C+B2a ✅ · QZSS L1+L5 ✅ · SBAS ✅ |
CFG_ITFM_ENABLE | 0 (jamming monitor spento) |
Config “tracker” applicata (RAM+BBR, ACK-ACK, riletta OK)
| Chiave | → Valore | Perché |
|---|---|---|
CFG_NAVSPG_DYNMODEL | 4 (automotive) | filtro nav veicolare |
CFG_MSGOUT_UBX_NAV_PVT_UART1 | 1 | pos+vel+tempo+fix in 1 msg binario |
CFG_MSGOUT_UBX_MON_RF_UART1 | 1 | catena RF (AGC/jamming) |
CFG_ITFM_ENABLE | 1 | attiva monitor interferenze → MON-RF.jammingState reale |
Risultato (indoor, antenna vicino finestra)
NAV-PVT: fix 3D · 8 sat · 42.71751 N, 12.10772 E · 312–335 m · HDOP 1.31
Segnali agganciati: GPS L1 + GPS L5 (sigId 7) + Galileo E1 → dual-band confermato ✅
MON-RF: jammingState=1 (OK) · agcCnt 6510 · noise 87
Log NMEA raw: sparkfun-dan-f10n-2026-06-24-config-tracker.nmea — 30s / 450 frame, post-config (NAV-PVT in UBX + NMEA misti).
Script riproducibile: stessa logica dello script tracker dell’ublox-max-m10s ma a 38400 baud e chiavi F10.
🔋 Test sleep RXM-PMREQ (backup software, wake via UART) — 2026-06-24
Misurato col DPS-150 (chip alimentato a 3.3 V diretto, no CH340/LED → quasi chip puro):
| Fase | Corrente @3.3V | Note |
|---|---|---|
| Tracking (fix) | 19.4 mA (63.7 mW) | operatività normale |
| Backup (sleep) | ~0 mA | sotto risoluzione DPS-150 (~0.1 mA) → µA (datasheet 31 µA HW backup) |
| Wake → primo NMEA | — | t+1.09 s ⚡ risveglio quasi istantaneo su 1 byte UART |
| Wake → fix riagganciato | 19.3 mA | ~35-45 s indoor (segnale marginale); outdoor con BBR atteso 1-3 s |
Come si fa: UBX-RXM-PMREQ con backup=1, duration=0 (infinita), uartrx=1 → il chip va in µA tenendo ora+effemeridi in BBR; si sveglia mandando un byte qualsiasi sull’UART (o pin EXTINT). In sleep l’output NMEA si ferma (verifica: 34→2 frame/2s).
Implicazione Visla Auto (pattern MCU-driven, il F10 non ha PSM cyclic):
veicolo in moto → tracking 19 mA
veicolo fermo → RXM-PMREQ → µA (≈0) ← risparmio ~100% sul GPS
movimento (IMU) → byte UART → sveglio ~1s → fix in pochi s (outdoor)
📶 A-GNSS / AssistNow — stato sul device (2026-06-24)
CFG_ANA_USE_ANA = 0 di default → AssistNow Autonomous DISABILITATO. Attivato al bench con CFG_ANA_USE_ANA=1 (RAM+BBR, ACK-ACK) → NAV-AOPSTATUS aopCfg=1. Gratis, on-chip, niente rete: non migliora l’accuratezza del fix corrente ma il TTFF al prossimo avvio (predice ~3 giorni di orbite → no ri-download effemeridi). ⚠️ Per calcolare l’AOP (status>0) serve scaricare le effemeridi con buon segnale: indoor resta status=0 (idle). Beneficio misurabile solo con cold-start outdoor a confronto. Per A-GNSS Online/Offline a flotta (10k+ device) → self-host dalle effemeridi pubbliche (RINEX BRDC), non il token u-blox. ⚠️ Sul F10 l’A-GNSS lavora solo su L1C/A + E1 (non sulle bande L5).
📊 Consumi — ufficiali (chip) vs misurati Visla (modulo)
📄 Ufficiali u-blox (chip DAN-F10N, datasheet R04, VCC 3.0V) — dal più al meno consumo
| Stato | Consumo |
|---|---|
| Acquisizione (cold) | 26 mA |
| Tracking multi-GNSS (GPS+GAL+BDS) | 21 mA (63 mW) |
| Tracking GPS-only | 18 mA |
| 💤 SW standby / sleep (RXM-PMREQ) | ~µA (supportato) |
| 💤 HW backup mode | 31 µA |
| V_BCKP in operation | ~3 µA |
⚠️ Il F10 dual-band non ha PSM cyclic (no CFG-PM): per risparmiare o tracking continuo (~21 mA) o sleep/backup (µA). Niente modalità intermedia low-power come l’M10.
🧪 Misurati Visla (modulo SparkFun, FNB58 @5V, 08/06/2026)
| Stato | Misurato |
|---|---|
| Sistema breakout completo | 28.5 mA @5V (146 mW) |
| Chip puro (stimato) | ~13 mA |
La differenza (28.5 mA sistema vs ~13 mA chip) è l’overhead del breakout: CH340 USB-UART + regolatore 5V→3.3V + LED. Il dual-band F10 consuma ~2× l’M10 (21 vs 10 mA chip) per via delle 2 catene RF L1+L5. Dettaglio test →
📡 Set comandi completo (u-blox F10 dual-band)
Il DAN-F10N (F10 dual-band L1+L5) parla UBX (binario) + NMEA 2.1→4.11. ✅ Set verificato e completo dalla u-blox F10 SPG 6.00 Interface Description (UBX-23002975, 181 pag.): 67 messaggi UBX + 26 NMEA = 93 totali, + 28 gruppi config (centinaia di chiavi). Tutti elencati sotto con descrizione.
🆚 Differenze F10 vs M10 (dual-band, verificate dallo spec)
| Aspetto | F10 (DAN-F10N) |
|---|---|
| Bande | L1+L5 sempre insieme (no single-band): GPS L1C/A+L5, Gal E1+E5a, BDS B1C+B2a, NavIC L5 |
| CFG legacy | ❌ rimossi tutti (ANT/GNSS/MSG/NAV5/NMEA/PRT/RATE…) → solo config-interface VALSET/VALGET |
| NAV | +NAV-PL (protection level), +NAV-TIMENAVIC (NavIC), +NAV-AOPSTATUS |
| MGA | +MGA-FLASH (salva AssistNow nella flash interna — M10 non ce l’ha) |
| SEC | +SEC-SIG +SEC-SIGLOG (signal security / anti-spoofing avanzato) |
| MON | +MON-RCVRSTAT; via MON-HW e MON-BATCH |
| Batching | ❌ niente UBX-LOG (M10 lo aveva) |
| GPS L5 | pre-operational (unhealthy di default) → override via CFG-SIGNAL |
🛰️ UBX-NAV (0x01) — navigazione · 26 messaggi
| Msg | ID | Descrizione |
|---|---|---|
| NAV-PVT | 0x07 | Position + velocity + time (tutto in uno, il principale) |
| NAV-POSLLH | 0x02 | Posizione geodetica (lat/lon/alt) |
| NAV-POSECEF | 0x01 | Posizione in ECEF (X/Y/Z) |
| NAV-VELNED | 0x12 | Velocità in frame NED |
| NAV-VELECEF | 0x11 | Velocità in ECEF |
| NAV-STATUS | 0x03 | Stato navigazione del ricevitore (fix type, flags) |
| NAV-SAT | 0x35 | Info per satellite (CNR, elevazione, azimuth, uso) |
| NAV-SIG | 0x43 | Info per segnale (dual-band: L1+L5) |
| NAV-DOP | 0x04 | Diluizione di precisione (HDOP/VDOP/PDOP) |
| NAV-COV | 0x36 | Matrici di covarianza (incertezza pos/vel) |
| NAV-ORB | 0x34 | Stato database orbite (effemeridi/almanacco/AOP) |
| NAV-PL | 0x62 | Protection level (stima accuratezza 95%) |
| NAV-SBAS | 0x32 | Stato correzioni SBAS |
| NAV-SLAS | 0x42 | Stato QZSS L1S SLAS |
| NAV-ODO | 0x09 | Odometro (distanza percorsa) |
| NAV-RESETODO | 0x10 | Reset odometro |
| NAV-CLOCK | 0x22 | Soluzione di clock del ricevitore |
| NAV-EOE | 0x61 | End of epoch (marca fine epoca) |
| NAV-AOPSTATUS | 0x60 | Stato AssistNow Autonomous |
| NAV-TIMEGPS | 0x20 | Tempo GPS |
| NAV-TIMEGAL | 0x25 | Tempo Galileo |
| NAV-TIMEBDS | 0x24 | Tempo BeiDou |
| NAV-TIMEQZSS | 0x27 | Tempo QZSS |
| NAV-TIMENAVIC | 0x63 | Tempo NavIC |
| NAV-TIMEUTC | 0x21 | Tempo UTC |
| NAV-TIMELS | 0x26 | Info evento leap-second |
⚙️ UBX-CFG (0x06) — configurazione · 5 messaggi
| Msg | ID | Descrizione |
|---|---|---|
| CFG-VALSET | 0x8a | Scrive chiavi di config (RAM/BBR/Flash) |
| CFG-VALGET | 0x8b | Legge chiavi di config |
| CFG-VALDEL | 0x8c | Cancella chiavi di config |
| CFG-CFG | 0x09 | Clear / save / load configurazione |
| CFG-RST | 0x04 | Reset ricevitore + clear backup (cold/warm/hot) |
(Niente messaggi CFG legacy: tutto via chiavi VALSET/VALGET.)
📶 UBX-MGA (0x13) — A-GNSS / AssistNow · 9 messaggi
| Msg | ID | Descrizione |
|---|---|---|
| MGA-GPS | 0x00 | Assistenza GPS (effemeridi/almanacco/health/UTC/iono) |
| MGA-GAL | 0x02 | Assistenza Galileo |
| MGA-BDS | 0x03 | Assistenza BeiDou |
| MGA-QZSS | 0x05 | Assistenza QZSS |
| MGA-ANO | 0x20 | AssistNow Offline (orbite a lunga validità) |
| MGA-FLASH | 0x21 | Scrive i dati AssistNow nella flash interna |
| MGA-INI | 0x40 | Aiding iniziale (posizione/tempo/clock/frequenza) |
| MGA-DBD | 0x80 | Dump/restore navigation database |
| MGA-ACK | 0x60 | Acknowledge dei messaggi di assistenza |
⚠️ Niente MGA-GLO (il F10 non supporta GLONASS). A-GNSS solo L1C/A + E1.
🔋 UBX-RXM (0x02) · 🩺 UBX-MON (0x0a) · 🔐 UBX-SEC (0x27)
| Msg | ID | Descrizione |
|---|---|---|
| RXM-PMREQ | 0x41 | Power management request (backup/standby software) |
| RXM-MEASX | 0x14 | Misure satellitari (per locationing/RRLP) |
| RXM-SFRBX | 0x13 | Subframe dati di navigazione broadcast (raw) |
| RXM-RLM | 0x59 | Galileo SAR return-link message |
| MON-VER | 0x04 | Versione firmware/hardware |
| MON-RF | 0x38 | Info catena RF (jamming, AGC, noise) |
| MON-SPAN | 0x31 | Spettro del segnale |
| MON-COMMS | 0x36 | Statistiche porte di comunicazione |
| MON-HW3 | 0x37 | Stato pin I/O |
| MON-GNSS | 0x28 | Selezione GNSS major attiva |
| MON-RXR | 0x21 | Stato ricevitore (sveglio/dorme) |
| MON-PATCH | 0x27 | Patch firmware installate |
| MON-RCVRSTAT | 0x40 | Stato delle feature configurabili del ricevitore |
| SEC-SIG | 0x09 | Signal security information (anti-spoofing) |
| SEC-SIGLOG | 0x10 | Signal security log |
| SEC-UNIQID | 0x03 | ID univoco del chip |
📋 UBX-ACK (0x05) · UBX-INF (0x04) · UBX-TIM (0x0d) · UBX-UPD (0x09)
| Msg | ID | Descrizione |
|---|---|---|
| ACK-ACK / ACK-NAK | 0x01 / 0x00 | Conferma / rifiuto di un comando |
| INF-DEBUG/ERROR/NOTICE/TEST/WARNING | 0x04/00/02/03/01 | Output informativo ASCII (5 livelli) |
| TIM-TM2 | 0x03 | Time mark (timestamp evento esterno) |
| TIM-TP | 0x01 | Time pulse time data |
| TIM-VRFY | 0x06 | Verifica del tempo sorgente |
| UPD-SOS | 0x14 | Save-on-shutdown (backup stato in flash) |
📜 NMEA standard (21) + PUBX proprietari (5)
| Msg | Descrizione |
|---|---|
| GGA | Fix data (posizione, n. satelliti, HDOP, quota) — il più usato |
| RMC | Recommended Minimum (pos, velocità, data, status) |
| GLL | Lat/long + tempo + status |
| GNS | GNSS fix data (multi-costellazione) |
| GSA | DOP + satelliti attivi |
| GSV | Satelliti in vista (CNR per satellite) |
| VTG | Course over ground + velocità |
| ZDA | Data e ora |
| GST | Statistiche errore pseudorange |
| GRS | Residui di range |
| GBS | Satellite fault detection |
| GAQ/GBQ/GLQ/GNQ/GPQ/GQQ | Poll di un messaggio standard (6 query) |
| DTM | Datum reference |
| VLW | Distanza ground/water |
| TXT | Trasmissione testo |
| RLM | Return link message (Galileo SAR) |
| PUBX,00 (POSITION) | Posizione lat/long proprietaria |
| PUBX,03 (SVSTATUS) | Stato satelliti |
| PUBX,04 (TIME) | Ora del giorno + clock |
| PUBX,40 (RATE) | Set rate di output NMEA |
| PUBX,41 (CONFIG) | Set protocolli e baud rate |
🗂️ Gruppi config (CFG-* via VALSET, dallo spec F10)
CFG-SIGNAL (L1/L5 per costellazione), CFG-BDS (BeiDou), CFG-NAVMASK (satellite mask), CFG-NAVSPG, CFG-RATE, CFG-MSGOUT, CFG-ANA (AssistNow), CFG-MOT, CFG-ITFM, CFG-SBAS (EGNOS/WAAS/MSAS/GAGAN/BDSBAS/KASS/SouthPAN), CFG-QZSS, CFG-TP, CFG-SEC (lockdown, secure boot), CFG-HW (antenna switch), CFG-INFMSG, CFG-RINV, CFG-UART1/I2C/SPI (+INPROT/OUTPROT). ⚠️ niente CFG-PM (no PSM config) né CFG-BATCH.
🔗 Risorse
- 🛒 SparkFun DAN-F10N Breakout ~$70
- 📖 SparkFun Hookup Guide
- ⚡ KiCad project + Gerber (GitHub)
- 🌐 3D PCB Viewer + BOM educativa ↗ — viewer interattivo del breakout SparkFun
- 🧠 Vai alla chip card u-blox DAN-F10N — specs + bench note del chip