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 dimensions and mounting holes Board dimensions (65mm × 30.5mm), mounting hole positions, and component placement. Click to view full resolution. 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.

Full circuit diagram — LC29H GPS/RTK HAT Full circuit diagram showing power supply section (bottom-left): RT9193 (3.3V), RT9166 (2.8V), and ML1220 backup battery. Click to view full resolution. 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. Click the image to view at full resolution, or download the PDF.

Full circuit diagram — LC29H GPS/RTK HAT

Key sections visible in the schematic:

  • Top-left: CP2102N USB-to-UART bridge and micro-USB connector (jumper position A)
  • Bottom-left: Power supply — RT9193 (3.3V) and RT9166 (2.8V) LDO regulators, ML1220 backup battery
  • Center: NDC7002N MOSFET level shifters (2.8V ↔ 3.3V) for UART and I2C, jumper routing (A/B/C positions)
  • Right: LC29H GNSS module, IPEX antenna connector with ESD clamp (RCLAMP0531T)
  • Top-center: Status LEDs (PWR, TXD, RXD, PPS) with 1K series resistors, wheel tick inputs with SP0503BAHTG ESD protection

For the full annotated walkthrough with PCB layouts and board dimensions, see Hardware Schematic.