Skip to content

Hardware

The LC29H GPS/RTK HAT is a 65mm x 30.5mm board that connects the Quectel LC29H dual-band GNSS module to single-board computers via the 40-pin GPIO header. This page covers every physical aspect of the board: connection methods, jumper configuration, LED behavior, GPIO mapping, power requirements, and antenna guidance.

LC29H GPS/RTK HAT board layout with dimensions Board layout showing jumper positions A/B/C, LED indicators, GPIO header, RESET button, and IPEX antenna connector. Image: Waveshare


Three ways to connect the HAT to a host, depending on your hardware and use case.

MethodDevice PathBaud RateGPIO RequiredBest For
HAT (direct stack)/dev/ttyS0 (Pi 4B) or /dev/ttyAMA0 (Pi 5)9600 default, typically configured to 115200Yes (UART)Raspberry Pi, Jetson Nano
USB cable/dev/ttyUSB09600 default, typically configured to 115200NoAny computer with USB
Jumper wires to GPIODepends on host UART device9600 default, typically configured to 115200Yes (wired)Non-Pi SBCs, breadboard prototyping

The simplest method for Raspberry Pi and Jetson Nano. Stack the HAT onto the 40-pin header, set the jumper to position B, and the module communicates over the Pi’s hardware UART.

The Pi 4B uses the mini UART at /dev/ttyS0 for GPIO serial by default. Enable it via raspi-config under Interface Options, then Serial Port.

Connect via the onboard micro-USB connector (not USB-C — see the board photo above). Set the jumper to position A. The CP2102N USB-to-UART bridge presents the module as /dev/ttyUSB0. The CP210x kernel driver is included in most modern Linux distributions.

This method requires no GPIO configuration and works with any computer that has a USB port, including laptops running Windows or macOS.

For SBCs without a Pi-compatible 40-pin header, wire the HAT’s breakout pins directly:

HAT PinConnect ToNotes
TXDHost RX pinModule transmit to host receive
RXDHost TX pinHost transmit to module receive
GNDHost GNDCommon ground — required
5VHost 5V outOr 3.3V to the 3V3 pin if 5V is unavailable

Set the jumper to position B when using wired GPIO connections, since the UART lines need to route to the header pins rather than the USB bridge.


The yellow 3-position jumper (visible on the left side of the board) controls how the LC29H module’s UART lines are routed. The three positions are silk-screened directly on the PCB.

PositionLabel on PCBRoutingUse Case
AUSB - LC29HModule UART routes through the CP2102N to the micro-USB connectorUSB connection to any computer
BPi - LC29HModule UART routes directly to the 40-pin GPIO header (GPIO 14/15)HAT stacked on Pi or wired GPIO
CUSB - PiUSB bridge connects to the Pi UART — the LC29H module is bypassedFirmware update or USB-to-serial passthrough

Default position: The HAT ships with the jumper at position B (Pi - LC29H).

Position C explained: This is a special configuration that connects the Pi’s UART directly to the USB bridge, completely bypassing the GNSS module. It is useful for firmware update scenarios where the PC needs a serial passthrough to the module via a separate path.


Four LEDs along the top-right edge of the board provide status feedback. All LEDs are driven through 1K current-limiting resistors.

LEDColorBehaviorMeaning
PWRRedSteady on5V power is applied to the board
TXDGreenBlinks rapidlyModule is transmitting NMEA sentences to the host
RXDGreenBlinks on activityHost is sending data (commands, RTCM corrections) to the module
PPSGreen1 blink per secondPosition fix acquired — the module has a valid satellite lock

The PPS (Pulse Per Second) output is the most important diagnostic indicator:

  • Not blinking: No satellite fix. Check antenna connection, ensure clear sky view, and allow up to 26 seconds for a cold start (or up to 1 second for a hot start if the ML1220 backup battery is charged).
  • Blinking once per second: Valid position fix. The module is outputting NMEA sentences with position data.
  • Blinking but no position data on serial: Jumper is likely in the wrong position, or the serial port baud rate does not match. The module ships at 9600 baud; the Waveshare sample code reconfigures it to 115200.

The LC29H(DA) and LC29H(BA) variants support RTK positioning. RTK fix status is not indicated by a dedicated LED on the HAT. Monitor RTK state via the GGA NMEA sentence quality indicator field: 4 = RTK Fixed (centimeter accuracy), 5 = RTK Float (decimeter accuracy).


The HAT uses specific pins on the Raspberry Pi 40-pin header. The following table shows the complete mapping.

Pi Header PinBCM GPIOFunctionDirectionNotes
Pin 8GPIO 14 (TXD)UART TX to module RXDHost to modulePi transmit, module receive
Pin 10GPIO 15 (RXD)UART RX from module TXDModule to hostModule transmit, Pi receive
Pin 3GPIO 2 (SDA)I2C DataBidirectional4.7K pull-up to 3.3V on board
Pin 5GPIO 3 (SCL)I2C ClockHost to module4.7K pull-up to 3.3V on board
Pi Header PinBCM GPIOFunctionDirectionNotes
Pin 7GPIO 4PPS (Pulse Per Second)Module to host1 Hz pulse when fix acquired
Pin 15GPIO 22RESETHost to moduleActive low; 10K pull-up to 3.3V on board
Pin 11GPIO 17WAKEUPHost to moduleToggles module from backup to active mode
Pi Header PinFunctionNotes
Pin 2 or Pin 45V supplyPowers the HAT via the GPIO header
Pin 13.3VNot used for power input; the HAT generates its own 3.3V
Pin 6, 9, 14, 20, 25, 30, 34, 39GNDCommon ground

The HAT includes breakout pin headers along the top edge (visible in the board photo), providing direct access to signals for wiring or probing:

Breakout LabelFunction
TXDModule UART transmit
RXDModule UART receive
PPSPulse per second output
PWRPower indicator (active high)
DIRWheel tick direction input (DR variants: BA, CA)
GNDGround
TICKWheel tick pulse input (DR variants: BA, CA)

PinFunctionDescription
RXDUART ReceiveSerial data from host to module
TXDUART TransmitSerial data from module to host
SDAI2C DataNMEA 0183 and command transmission via I2C
SCLI2C ClockI2C clock signal
WAKEUPWakeToggles module from backup mode to active
PPSPulse Per SecondTime synchronization pulse; LED indicates positioning lock
WI/RESReservedNot currently available

ParameterValueSource
Input voltage5V via GPIO header pin 2/4, or 5V via micro-USBWiki, schematic
Continuous current draw< 40 mA at 5VWiki specification
Operating temperature-40C to +85CWiki specification

The HAT has two voltage regulators visible in the schematic:

  • RT9193-33PB: 5V to 3.3V LDO regulator powering the digital logic and level-shifting circuitry
  • RT9166-28PXL: Generates 2.8V for the LC29H GNSS module’s core supply (VDD_EXT)

The 5V input from the Pi GPIO header (or USB connector) feeds both regulators. No external regulation is needed.

An ML1220 rechargeable coin cell provides backup power to the module’s RTC and SRAM. This preserves ephemeris data and time across power cycles, enabling hot starts (~1 second) instead of cold starts (~26 seconds).

The battery charges automatically when main power is applied. If the battery is fully depleted (extended storage without power), the first fix after power-up will be a cold start.

Power supply schematic section Power supply: 5V input, RT9193 (3.3V), RT9166 (2.8V), and ML1220 backup battery. Image: Waveshare schematic

  • The module supports a backup mode activated via the WAKEUP pin. In backup mode, the module retains ephemeris data while drawing minimal current. Toggle the WAKEUP pin to return to active mode.
  • For battery-powered applications, the < 40 mA draw at 5V (< 200 mW) is manageable, but refer to the Quectel LC29H datasheet for detailed power state specifications and sleep current figures.

The LC29H tracks L1 + L5 dual-band GNSS signals. The antenna must support both frequency bands:

BandFrequencyConstellations
L11575.42 MHzGPS L1C/A, GLONASS L1, BeiDou B1I, Galileo E1
L51176.45 MHzGPS L5, BeiDou B2a, Galileo E5a

The included antenna is an active (amplified) dual-frequency patch antenna. Using a single-band antenna will result in degraded accuracy and loss of L5 multipath rejection.

  • Type: IPEX 1st generation (U.FL compatible)
  • Location: Right edge of the board (labeled “GPS” in the board photo)
  • ESD protection: RCLAMP0531T.TCT clamp on the RF path
  • Clear sky view: Mount the antenna with an unobstructed view of the sky. GNSS signals do not reliably penetrate buildings, dense tree cover, or vehicles with metallized windshields.
  • Ground plane: For best performance, mount the antenna on a metallic surface (ground plane) of at least 70mm x 70mm. The metal surface reflects signals upward into the antenna, improving gain.
  • Orientation: Mount with the antenna label/patch facing the open sky (upward). The ceramic patch element receives signals from the hemisphere above it.
  • Cable length: Keep the coaxial cable between the antenna and the IPEX connector as short as possible. Every meter of cable introduces signal loss at L-band frequencies.
  • Interference sources: Maintain distance from WiFi antennas, cellular radios, and switching power supplies. The LC29H includes multi-frequency interference cancellation for WiFi/5G, but physical separation is always preferable.

If your installation requires a panel-mount SMA connector or a different antenna with an SMA plug, use an IPEX-to-SMA pigtail adapter. Ensure the adapter and replacement antenna both support L1 + L5 dual-band operation.


The HAT schematic shows the LC29H module connected through level-shifting circuitry to the Raspberry Pi GPIO header. Key sections:

5V from the Pi GPIO header feeds the RT9193 (3.3V) and RT9166 (2.8V) LDO regulators. The ML1220 coin cell battery maintains RTC and ephemeris data when main power is removed.

Power supply section

The LC29H module connects to the dual-frequency antenna via an RF path with integrated LNA and SAW filter. UART and I2C lines route through the jumper-selectable interface.

GNSS module section

The UART lines between the LC29H (2.8V logic) and the Raspberry Pi (3.3V logic) pass through an NDC7002N MOSFET-based level shifter. The I2C lines (SDA/SCL) use the same level-shifting approach with 4.7K pull-up resistors on both sides.

UART interface section

The CP2102N USB-to-UART bridge provides the alternative USB connection path. When the jumper is at position A, UART traffic routes through this bridge to the micro-USB connector.

USB bridge section

All four status LEDs are driven through 1K series resistors. The schematic also shows the wheel tick/direction input path with ESD protection (SP0503BAHTG, rated for 24V inputs) and the RESET button circuit (10K pull-up, active-low tactile switch).

LED indicator section

Page 2 — Full circuit diagram

Full schematic page 2

Page 3 — GPIO header and connector pinout

Full schematic page 3