Comenzando con el Módulo GNSS L76K para SeeedStudio XIAO

Introducción
El Módulo GNSS L76K para SeeedStudio XIAO es un módulo Multi-GNSS (Sistema Global de Navegación por Satélite) compatible con todas las placas de desarrollo XIAO, soporta sistemas GPS, BeiDou (BDS), GLONASS y QZSS, permite posicionamiento combinado de múltiples sistemas o independiente de un solo sistema. También soporta función AGNSS, amplificador de bajo ruido integrado y filtro de superficie acústica, y proporciona una buena experiencia de posicionamiento rápida, precisa y de alto rendimiento.
El módulo viene con una antena GNSS activa de alto rendimiento diseñada para cubrir las bandas GPS L1 C/A, BeiDou B1 y GLONASS L1. El diseño también tiene un pequeño LED verde brillante para indicar la salida 1PPS en la fijación.
Características
- Recepción Mejorada: Amplificador de Bajo Ruido integrado y Filtro de Ondas Acústicas de Superficie para mejorar la sensibilidad y reducción de ruido
- Alta Precisión: 32/72 canales, seguimiento de -162dBm, sensibilidad de re-adquisición de -160dBm
- Eficiencia Energética: 41mA seguimiento/adquisición, 360µA en espera
- Sistemas Multi-GNSS: Alimentado por Quectel L76K, soportando GPS, BeiDou, GLONASS y QZSS
- Antena Cerámica: Recepción de señal mejorada, superior a las antenas tradicionales.
Especificación
Elemento | Detalle |
---|---|
Bandas GNSS | GPS L1 C/A: 1575.42MHz GLONASS L1: 1602MHz BeiDou B1: 1561.098MHz |
Canales | 32 canales de seguimiento/72 canales de adquisición |
TTFF (Tiempo Hasta Primera Fijación) | Arranques en Frío: 30s(sin AGNSS), 5.5s(con GNSS) Arranques en Caliente: 5.5s(sin AGNSS), 2s(con AGNSS) |
Sensibilidad | Auto-adquisición: -148dBm Seguimiento: -162dBm Re-adquisición: -160dBm |
Precisión | Posición: 2.0m CEP Velocidad: 0.1m/s Aceleración: 0.1m/s² Temporización: 30ns |
Interfaz UART | Velocidad de Baudios: 9600~115200bps(9600bps por defecto) Tasa de Actualización: 1Hz(por defecto), 5Hz(Máx.) Protocolo: NMEA 0183, protocolo propietario CASIC |
Antena | Tipo: Antena Activa Frecuencia de Operación: 1559–1606MHz Cable Coaxial: RF1.13 Longitud=10cm Conector de Cable: U.FL Plug RA |
Consumo de corriente(con antena activa) | Auto-adquisición: 41mA Seguimiento: 41mA Espera: 360uA |
Dimensión | 18mm x 21mm |
Descripción del Hardware
Antes de comenzar, podemos referirnos a las siguientes imágenes para entender el diseño de pines del Módulo GNSS L76K para SeeedStudio XIAO para facilitar nuestra comprensión de la función del módulo.

Primeros Pasos
Preparación del Hardware
Para experimentar completamente las capacidades del Módulo GNSS L76K, recomendamos emparejarlo con una placa madre de nuestra serie XIAO. Cualquiera de los siguientes modelos XIAO sería compatible para usar con el Módulo GNSS L76K.
Seeed Studio XIAO SAMD21 | Seeed Studio XIAO RP2040 | Seeed Studio XIAO nRF52840 (Sense) | Seeed Studio XIAO ESP32C3 | Seeed Studio XIAO ESP32S3 (Sense) |
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
Antes de usar este módulo en una placa base XIAO, necesitas instalar los conectores de cabecera en el módulo y conectar la antena GNSS activa al módulo. Al conectar al XIAO, por favor presta especial atención a la dirección de instalación del módulo, por favor no lo conectes al revés, de lo contrario es probable que quemes el módulo o el XIAO.

Por favor presta especial atención a la dirección de instalación del módulo, por favor no lo conectes al revés, de lo contrario es probable que quemes el módulo o el XIAO.
Preparación del Software
Para usar el Módulo GNSS L76K para SeeedStudio XIAO, necesitamos programar la serie XIAO. La herramienta de programación recomendada es el IDE de Arduino, y necesitas configurar el entorno de Arduino para el XIAO y añadir el paquete de la placa.
Si esta es tu primera vez usando Arduino, te recomendamos encarecidamente que consultes Comenzando con Arduino.
Paso 1. Descarga e Instala la versión estable del IDE de Arduino según tu sistema operativo
Paso 2. Inicia la aplicación Arduino
Paso 3. Configura el IDE de Arduino para el XIAO que estés usando
-
Si quieres usar Seeed Studio XIAO SAMD21 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
-
Si quieres usar Seeed Studio XIAO RP2040 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
-
Si quieres usar Seeed Studio XIAO nRF52840 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
-
Si quieres usar Seeed Studio XIAO ESP32C3 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
-
Si quieres usar Seeed Studio XIAO ESP32S3 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.
Paso 4. Añade la biblioteca TinyGPSPlus a Arduino
Primero, necesitas buscar y descargar la última versión de la biblioteca TinyGPSPlus en el IDE de Arduino.

Demostración de Aplicación
Ejemplo 1: Lectura y Visualización de Datos GNSS
Una vez que el hardware y software estén listos, comenzamos subiendo nuestro primer programa de ejemplo. El Módulo GNSS L76K imprime la información GNSS a través del puerto serie cada 1 segundo después del encendido. En este ejemplo, usaremos la biblioteca TinyGPSPlus para analizar las sentencias NMEA recibidas del módulo e imprimir los resultados incluyendo latitud, longitud y tiempo al Monitor Serie del IDE de Arduino.
Aquí está el código fuente:
#include <TinyGPSPlus.h>
#include <SoftwareSerial.h>
/*
This sample sketch demonstrates how to use L76K GNSS Module on SeeedStudio XIAO.
*/
static const int RXPin = D7, TXPin = D6;
static const uint32_t GPSBaud = 9600;
// The TinyGPSPlus object
TinyGPSPlus gps;
// The serial connection to the GNSS module
SoftwareSerial ss(RXPin, TXPin);
void setup() {
Serial.begin(115200);
#ifdef ARDUINO_SEEED_XIAO_RP2040
pinMode(D2,OUTPUT);
digitalWrite(D2,1);
pinMode(D0,OUTPUT);
digitalWrite(D0,1);
#endif
ss.begin(GPSBaud);
Serial.println(F("DeviceExample.ino"));
Serial.println(F("A simple demonstration of TinyGPSPlus with L76K GNSS Module"));
Serial.print(F("Testing TinyGPSPlus library v. "));
Serial.println(TinyGPSPlus::libraryVersion());
Serial.println(F("by Mikal Hart"));
Serial.println();
}
void loop() {
// This sketch displays information every time a new sentence is correctly encoded.
while (ss.available() > 0)
if (gps.encode(ss.read()))
displayInfo();
if (millis() > 5000 && gps.charsProcessed() < 10) {
Serial.println(F("No GPS detected: check wiring."));
while (true);
}
}
void displayInfo() {
Serial.print(F("Location: "));
if (gps.location.isValid()) {
Serial.print(gps.location.lat(), 6);
Serial.print(F(","));
Serial.print(gps.location.lng(), 6);
} else {
Serial.print(F("INVALID"));
}
Serial.print(F(" Date/Time: "));
if (gps.date.isValid()) {
Serial.print(gps.date.month());
Serial.print(F("/"));
Serial.print(gps.date.day());
Serial.print(F("/"));
Serial.print(gps.date.year());
} else {
Serial.print(F("INVALID"));
}
Serial.print(F(" "));
if (gps.time.isValid()) {
if (gps.time.hour() < 10) Serial.print(F("0"));
Serial.print(gps.time.hour());
Serial.print(F(":"));
if (gps.time.minute() < 10) Serial.print(F("0"));
Serial.print(gps.time.minute());
Serial.print(F(":"));
if (gps.time.second() < 10) Serial.print(F("0"));
Serial.print(gps.time.second());
Serial.print(F("."));
if (gps.time.centisecond() < 10) Serial.print(F("0"));
Serial.print(gps.time.centisecond());
} else {
Serial.print(F("INVALID"));
}
Serial.println();
}
Simplemente selecciona el XIAO que estés usando y el número de puerto donde se encuentra el XIAO, compila y súbelo.
Asegúrate de que el Módulo GNSS L76K esté colocado en el exterior donde se puedan recibir buenas señales GNSS. Sube el código a tu XIAO y espera unos minutos, deberías ver la información mostrada en el monitor serie.

Este código utiliza la biblioteca TinyGPSPlus para leer datos del módulo GNSS L76K a través de una conexión serie y muestra información de ubicación válida y fecha/hora en el monitor serie.
Configuración
Ejemplo 1: Cambiar el comportamiento del LED
Esta sección demuestra cómo controlar un LED verde usando Arduino enviando comandos hexadecimales específicos a través de comunicación serie. El ejemplo proporcionado a continuación muestra cómo apagar el LED y luego devolverlo a su estado normal de parpadeo.
static const int RXPin = D7, TXPin = D6;
static const uint32_t GPSBaud = 9600;
SoftwareSerial SerialGNSS(RXPin, TXPin);
void setup() {
SerialGNSS.begin(GPSBaud);
// Define the byte array to turn the LED off
byte OffState[] = {0xBA, 0xCE, 0x10, 0x00, 0x06, 0x03, 0x40,
0x42, 0x0F, 0x00, 0xA0, 0x86, 0x01, 0x00,
0x00,
0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00,
0xF0,
0xC8, 0x17, 0x08};
// Define the byte array to recover the LED blinking state
byte RecoverState[] = {0xBA, 0xCE, 0x10, 0x00, 0x06, 0x03, 0x40,
0x42, 0x0F, 0x00, 0xA0, 0x86, 0x01, 0x00,
0x03,
0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00,
0xF3,
0xC8, 0x17, 0x08};
// Send the command to turn off the LED.
SerialGNSS.write(OffState, sizeof(OffState));
// Wait for 5 seconds.
delay(5000);
// Send the command to return the LED to blinking.
SerialGNSS.write(RecoverState, sizeof(RecoverState));
}
void loop() {}
Para detalles ver Mensajes de Protocolo CASIC de Quectel_L76K_GNSS.
struct CASIC_Messages {
uint16_t header; // 0xBA, 0xCE
uint16_t len; // 0x10, 0x00
uint8_t class; // 0x06
uint8_t id; // 0x03
uint8_t* payload; // 0x40, 0x42, 0x0F, 0x00, 0xA0, 0x86, 0x01, 0x00, ->8
// 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, ->8
uint8_t checksum; // 0xF0,0xC8, 0x17, 0x08
} L76KStruct;
Recursos
- PDF: Esquemático del Módulo GNSS L76K para Seeed Studio XIAO
- PDF: Quectel_L76K_GNSS_协议规范_V1.0
- PDF: Quectel_L76K_GNSS_Protocol_Specification_V1.1
- GitHub: Seeed_L76K-GNSS_for_XIAO
Solución de problemas
Details
¿Puede la celda recargable alimentar el XIAO?
No, la celda recargable en este contexto se utiliza únicamente para el Reloj de Tiempo Real (RTC) y para mantener un estado de arranque en caliente en el Módulo GNSS L76K. No puede utilizarse como fuente de alimentación principal para el XIAO o para las operaciones generales del módulo GNSS.¿Por qué no se muestra la información GNSS en el monitor serie?
Asegúrese de que el Módulo GNSS L76K esté colocado al aire libre donde se puedan recibir buenas señales GNSS.
Details
¿Por qué la luz verde del dispositivo permanece encendida constantemente cuando se conecta al XIAO RP2040?
Para solucionar este problema, necesita poner D0 y D2 en alto. La iluminación constante de la luz verde de fijación indica que el dispositivo ha entrado en un estado de funcionamiento anormal.pinMode(D2,OUTPUT);
digitalWrite(D2,1);
pinMode(D0,OUTPUT);
digitalWrite(D0,1);
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.