Hardware Overview
pHAT (not HAT+)
This is product does not completely meet Raspberry Pi's HAT+ specification.
- An identification EEPROM is not populated on the board; however, we do provide a footprint for future use.
- Without an ID EEPROM, a Raspberry Pi cannot automatically identify this board. Therefore, users will need to manually install any software and provide configurations for the hardware connections.
Introduction
-
SparkFun GNSS Flex pHAT
SKU: GPS-28137
-
The SparkFun GNSS Flex pHAT is a Raspberry Pi pHAT that functions as a carrier board for our SparkPNT GNSS Flex modules. With pre-soldered headers, no soldering is required to stack the pHAT on the headers of a Raspberry Pi, NVIDIA Jetson Nano, Google Coral, or other single-board computer with a similar 40-pin header.
The GNSS Flex pHAT also comes populated with two sets of 2x10 pin, 2mm pitch male headers for attaching a GNSS Flex module. With these headers, the GNSS Flex system is designed to be modular so that boards are pin-compatible for upgrades and can be easily swapped for repairs. Depending on the capabilities of the GNSS Flex module that is connected, these pins will breakout the USB, UART (x4), I2C, and SD card interfaces for the GNSS receiver along with any PPS or event signals, using a standardized pin out.
Design Files
-
Design Files
Hardware Included w/ Kit
- x1 - SparkPNT GNSS Flex Module
- x1 - Tall GPIO Female Headers - 2x20 Pin
- x1 - 50mm U.FL to U.FL Cable
- x4 - Aluminum Hex Standoff
- Thread: M2.5-0.45; Length: 16mm
- x8 - Phillips Machine Screw
- Thread: M2.5-0.45x8mm
-
Manipulate 3D Model
Controls Mouse Touchscreen Zoom Scroll Wheel 2-Finger Pinch Rotate Left-Click & Drag 1-Finger Drag Move/Translate Right-Click & Drag 2-Finger Drag Dimensions of the GNSS Flex pHAT. Need more measurements?
For more information about the board's dimensions, users can download the KiCad files for this board. These files can be opened in KiCad and additional measurements can be made with the measuring tool.
KiCad - Free Download!
KiCad is free, open-source CAD program for electronics. Click on the button below to download their software. (*Users can find out more information about KiCad from their website.)
Measuring Tool
This video demonstrates how to utilize the dimensions tool in KiCad, to include additional measurements:
Board Layout
The GNSS Flex system is designed around two 2x10-pin, 2mm pitch headers used mate the two types of boards. A standardized pin layout, keeps the ecosystem pin-compatible for upgrades and allows board to be easily swapped for repairs. Depending on the capabilities of the GNSS receiver, these pins will breakout the USB, UART (x4), I2C, and SD card interfaces along with any PPS or event signals of the GNSS receiver.
Layout of the major components of the GNSS Flex pHAT.
The GNSS Flex pHAT has the following features:
-
- 40-pin GPIO Header
- The 2x20 pin, 0.1" pitch female header for stacking the pHAT on top the Raspberry Pi's 40-pin GPIO header.
-
- GNSS Flex Headers
- Two sets of 2x10 pin, 2mm pitch female headers for connecting a GNSS Flex module.
-
- Alignment Indicator
- Used to indicate the board alignment of a GNSS Flex module.
-
- Antenna Bridge
- U.FL and SMA connectors for attaching an external GNSS antenna.
-
- Status LEDs
- Four status indication LEDs for the pHAT and attached GNSS Flex module.
-
- USB-C Connector
- A USB connector that breaks out the USB interface of an attached GNSS Flex module.
-
- SD Card Slot
- Depending on the capabilities of the GNSS Flex module, a µSD card slot for data logging.
-
- Qwiic Connector
- A Qwiic connector for attaching peripheral devices to the I2C bus.
Antenna Bridge
The SMA connector provides users with a more robust interface for attaching an external GNSS antenna. With the U.FL and SMA connectors bridged together and their ground plane isolated from the rest of the board, this allows users to pass the antenna connection from the GNSS Flex module to the GNSS Flex pHAT.
An SMA antenna bridge on the GNSS Flex pHAT, which provides a more robust connection.
40-pin GPIO Header
In its simplest form, the SparkFun GNSS Flex pHAT sits atop a Raspberry Pi interfacing with its 40-pin header.
The 40-pin female GPIO header for attaching to an SBC.
Interfaces
The following interfaces and signals of the GNSS Flex system are connected to the 40-pin female GPIO header of the GNSS Flex pHAT. Below, are tables detailing the pin connections for each interface.
UART Numbering
Please note that the UART numbers (UART1 - UART4) listed below follow the GNSS Flex Module UART numbering scheme. The mosaic-X5 supports four hardware UARTs (COM1 - COM4). The LG290P supports only three (UART1 - UART3).
Please also note that the UART numbers on Raspberry Pi will be different, as will the /dev/ttyAMA
device names. There is not a 1:1 mapping between the GNSS Flex UART numbers and the Raspberry Pi UART numbers. The Raspberry Pi UART numbers also vary from model to model; the Pi 5 and Pi 4 numbering is different for example.
GNSS Flex Pin | Raspberry Pi GPIO |
---|---|
RX1 |
GPIO14 (TX ) |
TX1 |
GPIO15 (RX ) |
Highlighted in Green
GNSS Flex Pin | Raspberry Pi GPIO |
---|---|
RX2 |
GPIO08 (CE0 ) |
TX2 |
GPIO09 (POCI0 ) |
RTS2 |
GPIO10 (PICO0 ) |
CTS2 |
GPIO11 (SLK0 ) |
Highlighted in Blue
GNSS Flex Pin | Raspberry Pi GPIO |
---|---|
RX3 |
GPIO04 (GCLK0 ) |
TX3 |
GPIO05 (GCLK1 ) |
RTS3 |
GPIO06 (GCLK2 ) |
CTS3 |
GPIO07 (CE1 ) |
Highlighted in Yellow
GNSS Flex Pin | Raspberry Pi GPIO |
---|---|
RX4 |
GPIO12 (PMW0 ) |
TX4 |
GPIO13 (PMW1 ) |
Highlighted in Red
LEDs
There are four status LEDs on the GNSS Flex pHAT:
PWR
- Power (Red)- Turns on once power is supplied to the board from the 40-pin GPIO header
PPS
- Pulse-Per-Second (Yellow)- Indicates when there is a pulse-per-second signal from the GNSS Flex module
RTK
- RTK (White)- Usually indicates when an RTK fix has been established or when the correct RTCM data is being received by the GNSS Flex module
PVT
- PVT (Blue)- Usually, indicates when an GNSS lock or a position fix has been established by the GNSS Flex module
USB Connector
Depending on the capabilities of the GNSS receiver, the USB connector breaks out the USB interface from the GNSS Flex module.
The USB connector on the GNSS Flex pHAT.
SD Card Slot
Depending on the capabilities of the GNSS receiver, the µSD card slot can be used for data logging.
The SD card slot on the GNSS Flex pHAT.
Qwiic Connector
The Qwiic connector attached to the primary I2C interface of the 40-pin GPIO header.
The Qwiic connector on the GNSS Flex pHAT.
What is Qwiic?


The Qwiic connect system is a solderless, polarized connection system that allows users to seamlessly daisy chain I2C boards together. Play the video, to learn more about the Qwiic connect system or click on the banner above to learn more about Qwiic products.
Features of the Qwiic System
Qwiic cables (4-pin JST) plug easily from development boards to sensors, shields, accessory boards and more, making easy work of setting up a new prototype.
There's no need to worry about accidentally swapping the SDA
and SCL
wires on your breadboard. The Qwiic connector is polarized so you know you’ll have it wired correctly every time.
The part numbers for the PCB connector is SM04B-SRSS
(Datasheet) and the mating connector on the cables is SHR04V-S-B
; or an equivalent 1mm pitch, 4-pin JST connection.
It’s time to leverage the power of the I2C bus! Most Qwiic boards will have two or more connectors on them, allowing multiple devices to be connected.
Jumpers
There are twenty-three jumpers on the GNSS Flex pHAT:
- The
SHLD
jumper can be cut to isolate the shielding of the USB-C connector from the ground plane of the board. - All the jumpers labeled with numbers, can be cut tp disconnect a signal from the GNSS Flex header to the associated Raspberry Pi GPIO pin (refer to the 40-pin GPIO Header section).
- All the jumpers next to the status LEDs, can be cut to disable the associated LED.
- There are two
I2C
jumpers; one next to the Qwiic connector and one next to the unpopulated EEPROM footprint.- The
I2C
jumper next to the Qwiic connector, can be cut to disconnect the two 3.9kΩ pull-up resistors for that I2C bus. - The
I2C
jumper next to the EEPROM footprint, can be closed to connect two 3.9kΩ pull-up resistors if an EEPROM is populated.
- The