board dev studio

Verified 2026-10

sparkfun GPS-RTK-SMA Breakout - ZED-F9P (Qwiic)

Multi-band u-blox ZED-F9P RTK breakout (L1/L2 GPS, GLONASS, Galileo, BeiDou) with a panel-mount SMA, USB-C, two Qwiic sockets, five simultaneous ports (USB, UART1, UART2, I2C, SPI), a rechargeable backup cell for hot starts, and 3.3 V logic from a 5 V or 3.3 V input - 10 mm RTK accuracy, I2C address 0x42.

Place this board on a carrier in the editor →

Logic level3.3 V

Part & documents

Data sheetData sheet →
Sourcewww.sparkfun.com/sparkfun-gps-rtk-sma-breakout-zed-f9p-qwiic.html →

Specs

MCUu-blox ZED-F9P-02B multi-band GNSS receiver (GPS, GLONASS, Galileo, BeiDou on L1C/A and L2C, concurrent), RTK rover and base station

Pinout

25 pads, as the vendor numbers them.

#NameFunctionSignals
1SCKJ7 pad 1: SCK, the module's SCL/SPI_CLK pin - I2C clock in the default UART mode, SPI clock once D_SEL is pulled low (net SCL/SCK)I2C clock, SPI clock when D_SEL is low
2TX/MISOJ7 pad 2: TX/MISO, UART1 transmit, and SPI MISO in SPI mode (net TXO/MISO)UART1 transmit, SPI MISO when D_SEL is low
3RX/MOSIJ7 pad 3: RX/MOSI, UART1 receive, and SPI MOSI in SPI mode (net RXI/MOSI)UART1 receive, SPI MOSI when D_SEL is low
4CSJ7 pad 4: CS, the module's SDA/SPI_CS_N pin - I2C data in the default UART mode, SPI chip select once D_SEL is low (net SDA/!CS). The silk prints CS, not SDA; the SDA name is on J3 pad 3I2C data, SPI chip select when D_SEL is low
5RX2J7 pad 5: RX2, UART2 receive - the correction input (net RX2)UART2 receive, RTCM corrections in
6TX2J7 pad 6: TX2, UART2 transmit (net TX2)UART2 transmit
73V3J7 pad 7: 3V3, the on-board regulator's output rail (net 3.3V)3.3 V rail
85VJ7 pad 8: 5V, the 5 V side of U2's input and the USB VBUS rail (net 5V)5 V rail, USB VBUS
9GNDJ7 pad 9: GNDground
10GNDJ3 pad 1: GND on the 4-pad I2C headerground
113V3J3 pad 2: 3V3 on the 4-pad I2C header, the same rail as J7 pad 73.3 V rail
12SDAJ3 pad 3: SDA, the module's SDA/SPI_CS_N pin, same net as J7 pad 4 (net SDA/!CS)I2C data
13SCLJ3 pad 4: SCL, the module's SCL/SPI_CLK pin, same net as J7 pad 1 (net SCL/SCK)I2C clock
14FENCEJ6 pad 1: FENCE, the module's GEOFENCE_STAT output, also driving the blue FENCE LED through R13 (1k) and the FENCE jumper (net FENCE_STAT)geofence status output, blue FENCE LED
15RTKJ6 pad 2: RTK, the module's RTK_STAT output, also driving the green RTK LED through R12 (1k) and the RTK jumper (net RTK_STAT)RTK status output, green RTK LED
16PPSJ6 pad 3: PPS, the module's TIMEPULSE output, also driving the yellow PPS LED through R11 (1k) and the PPS jumper (net PPS_STAT)time pulse output, yellow PPS LED
17RSTJ6 pad 4: RST, the module's RESET_N input, driven from the header through R19 (33 Ohm) (net RESET)reset input
18SAFEJ6 pad 5: SAFE, the module's SAFEBOOT_N input - held LOW at power-up the receiver starts in safeboot mode, driven from the header through R20 (33 Ohm) (net SAFE)safeboot input
19INTJ6 pad 6: INT, the module's EXTINT input, through R18 (33 Ohm) (net INT)external interrupt input
20NCJ1 pad 1: NC, no connection in the design filenot connected
21TX2J1 pad 2: TX2 on the radio header, UART2 transmit through R23 (33 Ohm) (net TX2)UART2 transmit
22RX2J1 pad 3: RX2 on the radio header, UART2 receive through R22 (33 Ohm) (net RX2)UART2 receive
233V3J1 pad 4: 3V3, the rail for a Bluetooth serial module on this header3.3 V rail
24NCJ1 pad 5: NC, no connection in the design filenot connected
25GNDJ1 pad 6: GNDground

Buses

BusSignalsPinsVoltageNote
I2C ×2SDA, SCLSDA, SCL3.3 V V0x42 by default on the module's DDC port, slave only, Fast-mode per the data sheet, address configurable in software. The same nets reach J3 pads 3 and 4, both Qwiic sockets and, as the SPI alternatives, J7 pads 4 (CS) and 1 (SCK). 2.2 kOhm pull-ups R8 (SDA) and R7 (SCL) are fitted and bridged to 3.3 V by JP5 on delivery - the 3-pole jumper's copper spans all three pads, so cut it to take them off the bus.
SPI ×1SCLK, MISO, MOSI, CSSCK, TX/MISO, RX/MOSI, CS3.3 V VPads 1, 2, 3 and 4 of J7 carry SCK, MISO, MOSI and CS when the SPI jumper ties D_SEL low; the board is an SPI peripheral. Selecting SPI removes I2C from those same pins, so the two cannot be used at once.
UART ×1TX1, RX1TX/MISO, RX/MOSI3.3 V VUART1 is the general-purpose port, on J7 pads 2 and 3 (silk TX/MISO and RX/MOSI) and on the USB-C port too. 38400 baud 8N1 by default.
UART ×1TX2, RX2TX2, RX23.3 V VUART2 is the RTCM correction port - on J7 pads 6 (TX2) and 5 (RX2), and on the 1x06 radio header J1 pads 2 and 3. UBX cannot be enabled on UART2, so it cannot be used as a second general serial port.

I²C / bus addresses

AddressBusDeviceNote
0x42I2CZED-F9P-02B GNSS receiver (DDC port)The u-blox integration manual states the receiver's DDC address is 0x42 by default, and SparkFun's product page says it can be set to a variable address - the value lives in the module's configuration, not in a board strap, so two receivers on one bus must be given different addresses in software.

Power

Input5 V or 3.3 V in, through USB-C, either Qwiic socket or the PTH pads - all logic stays 3.3 V
Input rangeThe board accepts 5 V or 3.3 V and regulates 3.3 V on board; the ZED-F9P itself runs 2.7-3.6 V (3.0 V typical)

SparkFun gives 68 mA to 130 mA depending on which constellations are enabled and whether the receiver is tracking or acquiring - no single figure covers it.

Outputs

RailRatingNote
3.3V3.3 V VFrom the on-board SOT-23-5 regulator U2. It feeds the module, both Qwiic sockets, the radio header and the backup cell's charge path.

Notes

Pads are numbered 1-25 here because each connector numbers its own pads from 1: J7 is a 1x09 (1-9), J3 a 1x04 I2C header (10-13), J6 a 1x06 control header (14-19) and J1 a 1x06 radio header (20-25). Every description names its connector and the vendor's own pad number. This board shares its layout, pin order and dimensions with the Allband GNSS RTK Breakout - ZED-X20P (Qwiic) - SparkFun calls the X20P a drop-in replacement - but the silkscreen differs and the two are separate entries. The labels here come from the Eagle design file's own label elements, positioned against each pad's coordinates, and agree with SparkFun's photographs: the 9-pad header prints the SPI names CS and SCK on pads 4 and 1, while the 4-pad header prints SDA and SCL, which is a real trap for anyone wiring I2C to the 9-pad row. Two Qwiic sockets (J2 and J4, JST-SH 1.0 mm 4-pin right-angle) carry the same four signals; the vendor prints no per-pad label on them so they are not numbered into `pins`, and each has two shield tabs the schematic marks NC. Status LEDs PWR, PPS, RTK and FENCE each sit behind a cuttable jumper on the back, alongside the SPI (D_SEL) jumper and JP5 for the I2C pull-ups. part is null because SparkFun's title already carries the module name - the same shape the Thing Plus entries took.

AI context

Dense context for pasting into a model prompt — addresses, pinout, voltages, tolerances and the vendor's reference circuit.

PART: SparkFun GPS-RTK-SMA Breakout - ZED-F9P (Qwiic), GPS-16481, 43.5 mm x 43.2 mm, 6.8 g, built around a u-blox ZED-F9P-02B multi-band receiver (GPS, GLONASS, Galileo, BeiDou on L1C/A and L2C, concurrent) for RTK rover or survey-in base station use. The board adds a panel-mount SMA connector, USB-C, a 3.3 V regulator (U2, SOT-23-5), a rechargeable backup cell, two Qwiic sockets, 19 through-hole pads in two rows plus a 6-pad radio header, and PWR/PPS/RTK/FENCE LEDs. Published figures: 2.5 m horizontal accuracy without RTK and 0.010 m with it, 25 s cold and 2 s hot time-to-first-fix, and navigation rates of 25 Hz PVT, 20 Hz RTK and 25 Hz raw.
I2C: 7-bit address 0x42 on the module's DDC port, slave only, Fast-mode, and configurable in software - nothing on the board straps it, so two receivers on one bus must be given different addresses. The same two nets appear as CS and SCK on the 9-pad row and as SDA and SCL on the 4-pad row.
PINOUT: J7 (1x09) pad 1 SCK, 2 TX/MISO, 3 RX/MOSI, 4 CS, 5 RX2, 6 TX2, 7 3V3, 8 5V, 9 GND. J3 (1x04, I2C) pad 1 GND, 2 3V3, 3 SDA, 4 SCL. J6 (1x06 control) pad 1 FENCE, 2 RTK, 3 PPS, 4 RST, 5 SAFE, 6 INT. J1 (1x06 radio) pad 1 NC, 2 TX2, 3 RX2, 4 3V3, 5 NC, 6 GND. Both Qwiic sockets are pad 1 GND, 2 3V3, 3 SDA, 4 SCL. In SPI mode pad 1 becomes the clock, 2 MISO, 3 MOSI and 4 chip select.
SUPPLY: 5 V or 3.3 V into the board and 3.3 V logic throughout; the module runs 2.7-3.6 V, 3.0 V typical. Current is 68 mA to 130 mA depending on constellations and tracking state - SparkFun gives that range, not a single number, so size the feed for 130 mA. The backup cell keeps the module's configuration and ephemeris for warm starts for up to two weeks; V_BCKP operating range is 1.65-3.6 V and it draws 45 uA at 3 V with VCC removed.
LOGIC AND LIMITS: 3.3 V. Absolute maximum VCC -0.5 to 3.6 V; any input pin -0.5 V to VCC+0.5 V while VCC is 3.1 V or below, and -0.5 to 3.6 V above that; V_BCKP -0.5 to 3.6 V; RF_IN +10 dBm at 50 Ohm; VCC_RF may source 200 mA absolute. The receiver has no overvoltage or reverse-voltage protection, so any spike past those numbers damages it. Operational limits are 50 km altitude and 500 m/s velocity.
REFERENCE CIRCUIT: every module-to-header signal passes a 33 Ohm series resistor (R18-R25 on the control and radio pads, R2/R3/R4/R6 on SDA, SCL, TX1 and RX1), so nothing on the headers connects straight to the module. I2C pull-ups are 2.2 kOhm - R8 on SDA, R7 on SCL - and both reach 3.3 V through JP5, a 3-pole solder jumper whose copper bridges all three pads on delivery; cut it to take them off the bus. Decoupling: C2 and C4 1 uF plus C5 and C7 0.1 uF on 3.3 V, C6 1 uF on 5 V, C3 1 uF on the backup rail. The antenna feed runs VCC_RF through ferrite FB1 (120 nH) and R14 (33 Ohm) with C1 (47 pF) to ground, and R15 (100k) bleeds the 3.3 V rail. USB data lines carry 27 Ohm series resistors (R9, R10) and the USB-C CC pins are pulled to ground by 5.1k (R16, R17).
TRAPS: SPI and I2C share pads 1-4 of the 9-pad header - pulling D_SEL low to enable SPI removes I2C from those pins. The 9-pad header's silk prints CS and SCK rather than SDA and SCL, so an I2C cable belongs on the 4-pad header, not there. UART2 is the correction port and UBX cannot be enabled on it, so it will not do as a second general serial port; its default output is RTCM 3.3 with no messages enabled. Five ports can be live at once (USB-C, UART1, UART2, I2C, SPI). Defaults are 38400 baud 8N1 on both UARTs with NMEA GGA, GLL, GSA, GSV, RMC, VTG and TXT on UART1. The four status LED supply jumpers on the back can be cut for low-power use.

Provenance

Every figure on this page was read from the 5 sources below and last checked on Oct 23, 2026.

Related boards