SeeedStudio XIAO L76K GNSS 模块入门指南

介绍
SeeedStudio XIAO L76K GNSS 模块是一款与所有 XIAO 开发板兼容的多 GNSS(全球导航卫星系统)模块,支持 GPS、北斗(BDS)、GLONASS 和 QZSS 系统,允许多系统组合或单系统独立定位。它还支持 AGNSS 功能,内置低噪声放大器和声表面滤波器,提供快速、准确、高性能的良好定位体验。
该模块配备高性能有源 GNSS 天线,旨在覆盖 GPS L1 C/A、北斗 B1 和 GLONASS L1 频段。设计还包含一个微小的亮绿色 LED,用于指示定位时的 1PPS 输出。
特性
- 增强接收: 内置低噪声放大器和声表面波滤波器,提高灵敏度并降低噪声
- 高精度: 32/72 通道,-162dBm 跟踪,-160dBm 重新捕获灵敏度
- 节能高效: 41mA 跟踪/捕获,360µA 待机
- 多 GNSS 系统: 采用 Quectel L76K,支持 GPS、北斗、GLONASS 和 QZSS
- 陶瓷天线: 增强信号接收,优于传统天线。
规格参数
项目 | 详细信息 |
---|---|
GNSS 频段 | GPS L1 C/A: 1575.42MHz GLONASS L1: 1602MHz 北斗 B1: 1561.098MHz |
通道 | 32 跟踪通道/72 捕获通道 |
TTFF(首次定位时间) | 冷启动:30s(无 AGNSS),5.5s(有 GNSS) 热启动:5.5s(无 AGNSS),2s(有 AGNSS) |
灵敏度 | 自动捕获:-148dBm 跟踪:-162dBm 重新捕获:-160dBm |
精度 | 位置:2.0m CEP 速度:0.1m/s 加速度:0.1m/s² 时间:30ns |
UART 接口 | 波特率:9600~115200bps(默认 9600bps) 更新频率:1Hz(默认),5Hz(最大) 协议:NMEA 0183,CASIC 专有协议 |
天线 | 类型:有源天线 工作频率:1559–1606MHz 同轴电缆:RF1.13 长度=10cm 电缆连接器:U.FL 插头 RA |
电流消耗(含有源天线) | 自动捕获:41mA 跟踪:41mA 待机:360uA |
尺寸 | 18mm x 21mm |
硬件概述
在开始之前,我们可以参考以下图片来了解 SeeedStudio XIAO L76K GNSS 模块的引脚设计,以便于我们理解该模块的功能。

入门指南
硬件准备
为了充分体验 L76K GNSS 模块的功能,我们建议将其与我们 XIAO 系列的主板配对使用。以下任何一款 XIAO 型号都与 L76K GNSS 模块兼容。
Seeed Studio XIAO SAMD21 | Seeed Studio XIAO RP2040 | Seeed Studio XIAO nRF52840 (Sense) | Seeed Studio XIAO ESP32C3 | Seeed Studio XIAO ESP32S3 (Sense) |
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
在XIAO主板上使用此模块之前,您需要在模块上安装排针插座,并将有源GNSS天线插入模块。连接到XIAO时,请特别注意模块的安装方向,请不要反向插入,否则很可能烧毁模块或XIAO。

请特别注意模块的安装方向,请不要反向插入,否则很可能烧毁模块或XIAO。
软件准备
要使用SeeedStudio XIAO的L76K GNSS模块,我们需要对XIAO系列进行编程。推荐的编程工具是Arduino IDE,您需要为XIAO配置Arduino环境并添加板载包。
如果这是您第一次使用Arduino,我们强烈建议您参考Arduino入门指南。
步骤1. 根据您的操作系统下载并安装稳定版本的Arduino IDE
步骤2. 启动Arduino应用程序
步骤3. 为您使用的XIAO配置Arduino IDE
-
如果您想在后续例程中使用Seeed Studio XIAO SAMD21,请参考**此教程**完成添加。
-
如果您想在后续例程中使用Seeed Studio XIAO RP2040,请参考**此教程**完成添加。
-
如果您想在后续例程中使用Seeed Studio XIAO nRF52840,请参考**此教程**完成添加。
-
如果您想在后续例程中使用Seeed Studio XIAO ESP32C3,请参考**此教程**完成添加。
-
如果您想在后续例程中使用Seeed Studio XIAO ESP32S3,请参考**此教程**完成添加。
步骤4. 将TinyGPSPlus库添加到Arduino
首先,您需要在Arduino IDE中搜索并下载最新版本的TinyGPSPlus库。

应用演示
示例1:读取和显示GNSS数据
硬件和软件准备就绪后,我们开始上传第一个示例程序。L76K GNSS模块在上电后每1秒通过串口打印GNSS信息。在此示例中,我们将使用TinyGPSPlus库来解析从模块接收的NMEA语句,并将包括纬度、经度和时间在内的结果打印到Arduino IDE的串口监视器。
以下是源代码:
#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();
}
只需选择您正在使用的 XIAO 和 XIAO 所在的端口号,编译并上传即可。
确保 L76K GNSS 模块放置在室外能够接收到良好 GNSS 信号的地方。将代码上传到您的 XIAO 并等待几分钟,您应该能在串口监视器上看到显示的信息。

此代码使用 TinyGPSPlus 库通过串行连接从 L76K GNSS 模块读取数据,并在串口监视器上显示有效的位置信息和日期/时间。
配置
示例 1:改变 LED 的行为
本节演示如何通过串行通信发送特定的十六进制命令来使用 Arduino 控制绿色 LED。下面提供的示例展示了如何关闭 LED,然后将其恢复到正常的闪烁状态。
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() {}
For details to see CASIC Protocol Messages of 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;
资源
- PDF: L76K GNSS Module for Seeed Studio XIAO Schematic
- PDF: Quectel_L76K_GNSS_协议规范_V1.0
- PDF: Quectel_L76K_GNSS_Protocol_Specification_V1.1
- GitHub: Seeed_L76K-GNSS_for_XIAO
故障排除
Details
可充电电池能为 XIAO 供电吗?
不能,在这种情况下,可充电电池仅用于实时时钟(RTC)和维持 L76K GNSS 模块的热启动状态。它不能用作 XIAO 或 GNSS 模块一般操作的主要电源。为什么 GNSS 信息不在串口监视器上显示?
确保 L76K GNSS 模块放置在室外,能够接收到良好的 GNSS 信号。
Details
为什么设备插入 XIAO RP2040 时绿灯持续亮着?
要解决这个问题,您需要将 D0 和 D2 拉高。定位绿灯的持续亮起表明设备已进入异常工作状态。pinMode(D2,OUTPUT);
digitalWrite(D2,1);
pinMode(D0,OUTPUT);
digitalWrite(D0,1);
技术支持与产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。