Curiosity
GNSS economico Quectel basato su chip AT6558R (ICOFCHIPS Chinese GNSS SoC). 32 canali tracking + 72 acquisition, multi-costellazione L1 (GPS + BeiDou + GLONASS + QZSS) — NO Galileo, NO SBAS. Disponibile come modulo Seeed XIAO (SKU 109100021, $9.90) — innesta su Grove Base e parti. Per Visla Tag low-cost alternativa al MAX-M10S a metà prezzo, accuracy 2m CEP sufficiente per pet/asset tracking.
Specs tecniche
| Parametro | Valore |
|---|---|
| Chip base | AT6558R (ICOFCHIPS, Chinese GNSS SoC) |
| Costellazioni | GPS L1 + GLONASS L1 + BeiDou B1I (1561 MHz) + QZSS |
| Galileo | ❌ NON supportato (vs LC76G fratello sì) |
| SBAS | ❌ NON supportato (vs LC76G/L76B sì) |
| Canali | 32 tracking / 72 acquisition |
| A-GNSS / AGNSS | ✅ supportato |
| Sensitivity tracking | -162 dBm |
| Sensitivity reacquisition | -160 dBm |
| Sensitivity acquisition | -148 dBm |
| Accuracy | 2.0 m CEP (autonomous) |
| Velocity accuracy | 0.1 m/s |
| Acceleration accuracy | 0.1 m/s² |
| TTFF cold start | 30 s autonomous (5.5 s con AGNSS) |
| TTFF hot start | 2 s |
| Update rate max | 5 Hz (PCAS02 200ms minimum) |
| Timing accuracy (PPS) | 30 ns |
| Power supply | 2.7V - 3.4V (NON 5V tolerant) |
| Current acquisition (w/ antenna attiva) | 41 mA (Seeed datasheet) |
| Current tracking (w/ antenna attiva) | 41 mA (Seeed datasheet) |
| Standby (pin WAKEUP→GND) | 360 µA (Seeed datasheet) |
| 🧪 Tracking MISURATO Visla (bench 20/06) | ~16.8 mA |
| Default baudrate UART | 9600 bps (PCAS01 fino a 115200) |
| Interface | UART solo (NO I2C/SPI nativi) |
| Antenna | Active o Passive, alimentazione interna o esterna |
| Antenna detection | short circuit + open circuit |
| Package modulo | LCC 9.7 × 10.1 × 2.4 mm |
| Weight | 0.4 g |
| Operating temp | -40°C / +85°C |
| Storage temp | -40°C / +90°C |
| Protocol custom | PCAS sentences (NMEA-extended, NON Quectel PMTK) |
| Seeed XIAO board | SKU 109100021 — UART pre-cablato su pin XIAO RX/TX |
| Seeed board dim | 18 × 21 mm |
| Seeed board includes | L76K module + Active antenna U.FL + 2× 7-pin female header 2.54mm + cavo coax RF1.13 10cm |
| Seeed antenna freq | 1559-1606 MHz (active, U.FL plug RA) |
| Seeed corrente con antenna attiva | 41 mA acquisition + tracking · 360 µA standby module |
| Seeed LED | 1PPS verde (visual fix indicator) |
| Seeed Hardware revisions | 2024/12/06 RST D10→D2 · 2025/03/31 rimosso fix status indicator |
| HSCODE | 8529909090 (CN) · 8526910020 (US) · 8471707000 (EU) |
| Waveshare HAT | L76K GPS Module — supporto Raspberry Pi, Arduino, Pico, ESP32, Jetson |
| Talker IDs emessi (bench-verified) | $GN multi-system (GGA, GLL, GSA, RMC, VTG, ZDA) · $GP (GSV per GPS, TXT diagnostics) · $BD (GSV per BeiDou) · $GL (GSV per GLONASS, se attiva) |
| NMEA sentences emesse default | $GNGGA · $GNGLL · $GNGSA (1 per costellazione) · $GNRMC · $GNVTG · $GNZDA · $GPGSV · $BDGSV · $GPTXT (boot + antenna status) |
| Parametri estraibili (sample bench Visla) | 35+ campi: lat/lon, alt MSL, geoid sep, fix quality/mode, sat usate+in-view per costellazione, HDOP/PDOP/VDOP, speed kn+km/h, course true+mag, mag variation, UTC date+time, per-sat PRN+elev+azim+SNR, antenna status |
| Output rate misurato @ 9600 baud | ~360 byte/s (~5 sentence/s aggregate, 1 Hz update default) |
🧪 Note dal bench Visla
- ✅ Bench-tested 2026-06-04 — first bring-up Visla R&D: setup XIAO ESP32-S3 Pre-Soldered (SKU 113991114) + Seeed L76K shield rev 2024-12-06 + antenna attiva U.FL inclusa, posizionata indoor near-window. Sketch
test-moduli/xiao-l76k-gps/test-l76k-json/con TinyGPSPlus 1.0.3 + 17 TinyGPSCustom fields → emette JSON line ogni 2s con 35 campi pratici (DOPs, fix quality/mode, sat per costellazione, per-sat PRN/elev/azim/SNR, mag var, antenna status). Build viaarduino-cliESP32 core 3.3.8, FQBNesp32:esp32:XIAO_ESP32S3. Risultati: TTFF cold-start ~120s (indoor near-window, no AGPS); fix 3D acquisito con 5 sat usati su 6 in view GPS-only; coord42.7174492 N, 12.1076692 E(Italia centrale); altitudine MSL 339.4 m, geoid sep 48.0 m; DOP a fix PDOP 2.8 / HDOP 2.00 / VDOP 1.8; SNR per-sat 21–35 dB-Hz (PRN 23 il top a 34); drift orizzontale stazionario ~1–2 m fix-su-fix (coerente 2m CEP); UTC sync OK; antenna OK reported via$GPTXT,01,01,01,ANTENNA OK; protocollo NMEA 0183 nativo, no riconfig PCAS necessaria; reset D2 active-LOW pulse 20ms OK. Sample JSON output a 3D-fix:{“ts”:“2026-06-04T08:38:16Z”,“fix”:1,“fix_q”:1,“fix_m”:3,“sat_use”:5,“sat_view_gp”:6,“sat_view_bd”:0,“lat”:42.7174492,“lon”:12.1076692,“alt_m”:339.4,“geoid_m”:48.0,“hdop”:2.00,“pdop”:2.8,“vdop”:1.8,“spd_kn”:0.00,“crs_true”:157.5,“ant”:“ANTENNA OK”,“sats”:[{“prn”:23,“el”:51,“az”:64,“snr”:34}, …]} - ✅ Talker IDs $GN multi-system verificati (gotcha critica): il L76K emette frame standard con talker
$GN(GGA/GLL/GSA/RMC/VTG/ZDA), NON$GP. Per TinyGPSCustom o parser custom registrare“GNGGA”/“GNGSA”/“GNRMC”/“GNVTG”. Solo i GSV restano per-costellazione:$GPGSV,$BDGSV,$GLGSV - ✅ Plug-and-play su XIAO: modulo Seeed si innesta su Grove Base, UART già cablato — perfetto per prototipi rapidi
- ✅ Multi-GNSS a €4.20: confrontabile in canali al MAX-M10S ma a metà prezzo per BOM aggressive su Visla Tag mass market
- ✅ A-GNSS riduce cold start 30s → 5.5s: con assistenza online il fix è 5× più veloce — essenziale per battery-powered wake patterns
- ✅ RTC backup 8µA: alimentando V_BCKP con backup battery o RTC pin MCU, hot start 2s tra wake cycles
- ⚠️ NO Galileo / NO SBAS: in EU perdi 28+ satelliti Galileo + correzione EGNOS — accuracy worse del MAX-M10S (1.5m vs 2m)
- ⚠️ BeiDou B1I @ 1561 MHz: chip vecchia generazione, vs B1C @ 1575 MHz su DAN-F10N/SAM-M10Q — antenna deve coprire 1561 MHz
- ⚠️ Update rate max 5Hz: non adatto per drone/UAV racing, OK per asset/pet/auto
- ⚠️ Protocollo PCAS proprietario: comandi tipo $PCAS01 per baud, $PCAS02 per rate, $PCAS03 per filtri NMEA, $PCAS04 per costellazioni — diverso dai PMTK Quectel ufficiali
- ⚠️ Seeed board: 41mA con antenna attiva: la corrente sale da 29mA (chip nudo) a 41mA includendo l’antenna attiva U.FL fornita — calcolare bene il budget per battery-powered XIAO
- ⚠️ Antenna attiva U.FL 10cm inclusa: copre 1559-1606 MHz (GPS L1 + GLONASS L1 + BeiDou B1) — già adatta a tutte le costellazioni supportate, no antenna upgrade necessaria
- ⚠️ HW revision check: dal 06/12/2024 il pin RST è migrato da D10 a D2 — controllare schematic prima di scrivere driver, e dal 31/03/2025 rimosso fix LED indicator
⚠️ Gotchas
- Voltage range 2.7-3.4V — NON 5V tolerant, attento alimentando direct
- PPS pin disponibile ma non sempre routato su breakout — verificare schematic
- Antenna patch onboard limitata indoor (parete = -10dBm) — versione SMA esterna per metallo enclosure
- BeiDou B1I @ 1561 MHz (vecchia generazione) — antenna deve coprirla, alcune patch GPS-only non funzionano
- NMEA “fields” usano formato DDMM.MMMM coordinate (NON DD.DDDDDD) — codice parser deve convertire
- Protocollo PCAS non documentato ufficialmente Quectel — riferimento Waveshare Wiki + datasheet ICOFCHIPS AT6558R
⌨️ AT command utili
| Comando | Descrizione |
|---|---|
$PCAS01,5*19 | Imposta baud rate 115200 (0=4800 1=9600 2=19200 3=38400 4=57600 5=115200) |
$PCAS02,200*1D | Update rate 5Hz (200ms — alt: 1000=1Hz 500=2Hz) |
$PCAS03,1,0,0,0,1,0,0,0,0,0,,,0,0*02 | Abilita solo GGA + RMC (filtra GLL/GSA/GSV/VTG/ZDA per risparmio CPU) |
$PCAS04,7*1E | Costellazione GPS + BeiDou + GLONASS (default 3=GPS+BD) |
$PCAS10,2*1E | Cold start |
$PCAS10,3*1F | Factory reset + cold start |
📊 Consumi — 3 fonti triangolate (verificate)
Il L76K ha numeri “ufficiali” diversi a seconda di chi include l’antenna attiva:
| Fonte | Tracking | Acquisizione | Backup / Standby |
|---|---|---|---|
| 🧪 Visla bench (misurato, modulo) | 16.8 mA | — | — |
| RAK12501 datasheet (modulo L76K) | 18 mA | 25 mA | 7 µA (backup RTC) |
| Seeed datasheet (modulo + antenna attiva) | 41 mA | 41 mA | 360 µA (standby RF-off) |
| Quectel Hardware Design (chip) | qualitativo “High/Low” | — | — |
✅ Il modulo L76K consuma ~17-18 mA in tracking — la nostra misura (16.8 mA) è confermata dal datasheet RAK12501 (18 mA). Il 41 mA di Seeed include l’antenna attiva (il cui LNA aggiunge ~23 mA): NON è il doppio, è la stessa cosa contata con/senza antenna attiva. ⚠️ Due modi low-power distinti: Standby (RF off, core attivo) 360 µA · Backup (solo RTC) 7-8 µA. Dettaglio test →
⚡ Modalità power-save AlwaysLocate™: il L76K (come la serie L76) regola adattivamente on/off-time → consumo medio ~2.6 mA mantenendo posizionamento periodico. Utile per asset-tracking a batteria (alternativa al duty-cycle manuale via $PCAS + standby pin).
📌 Datasheet ufficiale (Spotpear/Quectel L76K&L26K, GPS+BDS): acquisizione 29 mA · tracking 29 mA · RTC backup 8 µA · cold 30s (5.5s AGNSS) · hot 2s · max 5 Hz · accuracy 2.0 m CEP · sens. tracking −162 dBm · chip AT6558R (CASIC) · ❌ no SBAS, no geofence, no anti-jamming (vs LC76G che li ha). Set comandi PCAS completo (vedi sopra), spec: Quectel_L76K&L26K_GNSS_Protocol.
🔗 Risorse
- 🏭 Quectel GNSS L76 family
- 🛒 JLCPCB L76KB-A58 C2916234 — da $4.38 (10+: $3.69, 100+: $2.86, 500+: $2.67, 1k+: $2.58) ⭐ best price production
- 📄 HW Design PDF Rev 1.0
- 📄 Protocol spec PDF Rev 1.1
- 📖 Waveshare Wiki (RPi/Arduino/Pico/ESP32)
- 📖 Seeed Wiki guide
- 🛒 Seeed XIAO module $9.90
- 🛒 Waveshare GPS Module
- 🛒 RAK WisBlock RAK12501
- 🛒 AliExpress
- 🛒 LCSC
- 🔬 Usato in: iStartek PT60L-MN95-LTEM teardown Visla — competitor personal tracker analyzed