board dev studio

Verified 2026-10

sparkfun Allband GNSS RTK Breakout - ZED-X20P (Qwiic)

All-band u-blox ZED-X20P-01B RTK breakout (GPS, Galileo, BeiDou, QZSS, NavIC plus L-band) with USB-C, an RT9080 3.3 V regulator, 19 through-hole pads, a BlueSMiRF header and a locking JST on UART2, two Qwiic sockets, and an SMA plus U.FL antenna footprint - I2C address 0x42, 3.3 V logic, 68 mA acquiring.

Place this board on a carrier in the editor →

Logic level3.3 V

Part & documents

Data sheetData sheet →
Sourcewww.sparkfun.com/sparkfun-allband-gnss-rtk-breakout-zed-x20p-qwiic.html →

Specs

MCUu-blox ZED-X20P-01B all-band GNSS receiver (GPS L1C/A, L2C, L5; Galileo E1-B/C, E5a, E6; BeiDou B1I, B1C, B2a, B3I; QZSS; NavIC; SBAS on L1C/A; L-band), with RTK, PPP-RTK and PPP positioning

Pinout

29 pads, as the vendor numbers them.

#NameFunctionSignals
1GNDJ3 pad 9: GND, common to the whole boardground
2VINJ3 pad 8: VIN, 1.2-5.5 V into the RT9080-3.3 regulator (net VIN)supply in, RT9080 regulator input
33V3J3 pad 7: 3V3, the RT9080's regulated output, up to 600 mA (net 3.3V)3.3 V rail
4TX2J3 pad 6: TX2, UART2 transmit, the RTCM/SPARTN correction port's output (net TX2)UART2 transmit
5RX2J3 pad 5: RX2, UART2 receive, corrections in (net RX2)UART2 receive
6SDAJ3 pad 4: SDA, I2C data on the module's SDA/SPI_CS_N pin (net SDA/!CS)I2C data, SPI chip select when D_SEL is low
7RX1J3 pad 3: RX1, UART1 receive and SPI_SDI in SPI mode (net RX1/PICO)UART1 receive, SPI SDI when D_SEL is low
8TX1J3 pad 2: TX1, UART1 transmit - the only port that can take a firmware update - and SPI_SDO in SPI mode (net TX1/POCI)UART1 transmit, SPI SDO when D_SEL is low
9SCLJ3 pad 1: SCL, I2C clock on the module's SCL/SPI_CLK pin (net SCL/SCK)I2C clock, SPI clock when D_SEL is low
10FENCEJ11 pad 1: FENCE, the module's GEOFENCE_STAT output, also driving the blue FENCE LED through R11 (2.2k) and jumper JP8 (net GEO_STAT)geofence status output, blue FENCE LED
11RTKJ11 pad 2: RTK, the module's RTK_STAT output - low when RTK fixed, blinking with corrections but no fix, high with no carrier-phase solution - also driving the white LED through R5 (2.2k) and JP3 (net RTK_STAT)RTK status output, white RTK LED
12PPSJ11 pad 3: PPS, the module's TIMEPULSE output, also driving the yellow PPS LED (net PPS)time pulse output, yellow PPS LED
13RSTJ11 pad 4: RST, tied to the module's RESET_N; drive it LOW for at least 100 ms to cold-start the receiver and clear its configuration, RTC and orbit data (net RESET)reset input, cold start
14ENJ11 pad 5: EN, the RT9080's enable, active HIGH and pulled to the 5 V side by R9 (100k) so the rail comes up by default (net 3V3_EN)3.3 V regulator enable
15EVENTJ11 pad 6: EVENT, the module's EXTINT input, used to wake the receiver from standby or to time-stamp an external event (net EVENT)external interrupt input
16GNDJ9 pad 1: GND on the 4-pad I2C header (same ground net as J3)ground
173V3J9 pad 2: 3V3 on the 4-pad I2C header, the same regulated rail as J3 pad 73.3 V rail
18SDAJ9 pad 3: SDA on the 4-pad I2C header, the same net as J3 pad 4I2C data
19SCLJ9 pad 4: SCL on the 4-pad I2C header, the same net as J3 pad 1I2C clock
20NCJ2 pad 1: NC, no connection in the schematic (unconnected-(J2-Pin_1-Pad1))not connected
21TXDJ2 pad 2: TXD, UART2 transmit out of the board to a BlueSMiRF or serial link (net TX2)UART2 transmit
22RXDJ2 pad 3: RXD, UART2 receive into the board, through R8 (1k) as the HV-RX2 netUART2 receive
233V3J2 pad 4: 3V3, the rail the BlueSMiRF header runs from (net VOUT through JP4, bridged to 3V3 on delivery)3.3 V rail, also feeds JP4 VSEL
24NCJ2 pad 5: NC, no connection in the schematic (unconnected-(J2-Pin_5-Pad5))not connected
25GNDJ2 pad 6: GNDground
263V3J8 pad 1: 3V3 on the locking JST, the VOUT net, which JP4 sets to 3V3 or 5VUART2 JST supply, VSEL-selectable 3V3 or 5V
27TXDJ8 pad 2: TXD, UART2 transmit for a telemetry radio such as the SiK Telemetry Radio V3 (net TX2)UART2 transmit
28RXDJ8 pad 3: RXD, UART2 receive, through R8 (1k) as the HV-RX2 netUART2 receive
29GNDJ8 pad 4: GNDground

Buses

BusSignalsPinsVoltageNote
I2C ×2SDA, SCLSDA, SCL3.3 V V0x42, peripheral only, standard/fast/fast-mode-plus up to 1000 kbit/s with up to 20 ms clock stretching. The same two nets reach J3 pads 4 and 1, J9 pads 3 and 4 and both Qwiic sockets. The receiver runs I2C only while D_SEL is high; closing the SPI jumper takes I2C off these pins. 2.2 kOhm pull-ups R12 (SCL) and R13 (SDA) are fitted but reach 3.3 V only through JP9, which ships open.
SPI ×1SCLK, SDI, SDO, CSSCL, RX1, TX1, SDA3.3 V VShares the UART1 and I2C pins and is disabled until the SPI jumper on the back (D_SEL) is closed; closing it also removes I2C. SCL becomes SPI clock, SDA becomes SPI chip select, RX1 becomes SPI_SDI and TX1 becomes SPI_SDO. SparkFun's table maps TX1 = SDO, RX1 = SDI, SDA = CS, SCL = CLK. The module is an SPI peripheral only.
UART ×1TX1, RX1TX1, RX13.3 V VUART1 on J3 pads 2 (TX1) and 3 (RX1); 38400 baud 8N1 by default, 4800 to 8 Mbaud configurable. Firmware updates can only be done over UART1.
UART ×1TX2, RX2TX2, RX23.3 V VUART2 is the RTCM/SPARTN correction port and is broken out twice: J3 pads 6 (TX2) and 5 (RX2), and both the J2 BlueSMiRF header and the J8 locking JST. Only one of those two connectors may be populated at a time. The RX line into J2/J8 passes through R8 (1k) as the HV-RX2 net.

I²C / bus addresses

AddressBusDeviceNote
0x42I2CZED-X20P-01B GNSS receiver7-bit address, given by SparkFun's hookup guide as 0x42 (1000010). There is no address strap or jumper on the board - the module's own configuration holds it - so a second receiver on the same bus needs its address changed in software before both will answer.

Power

Input1.2-5.5 V on VIN or 5 V over USB-C, into an RT9080 LDO
Input range1.2-5.5 V at VIN (RT9080 input); SparkFun recommends at least 3.5 V in for a clean 3.3 V output

Module draw, measured at 3.3 V: 68 mA acquiring and 64 mA tracking with GPS+Galileo+BeiDou, 55 mA for GPS alone, and up to 85 mA peak during acquisition. 5 V is only needed for the USB interface, and when the VSEL jumper is set that way it also feeds the JST connector.

Outputs

RailRatingNote
3.3V3.3 V V, 600 mA maxRT9080-3.3 regulator, up to 600 mA, enabled by the EN pad (active HIGH, enabled by default). Feeds the module, the LEDs, both Qwiic sockets, the BlueSMiRF header and the backup battery.

Notes

Pads are numbered 1-29 here because the board's connectors each number their own pads from 1: J3 is a 1x09 (1-9), J11 a 1x06 (10-15), J9 a 1x04 (16-19), J2 the 1x06 BlueSMiRF header (20-25) and J8 the 1x04 locking JST (26-29). Every description names its connector and the vendor's own pad number. J3, J11 and J9 are the 19 through-hole pads SparkFun counts; their silkscreen labels were read off SparkFun's own header photograph and match the KiCad file's nets. The two Qwiic sockets (J4 and J7, JST-SH 1.0 mm 4-pin right-angle) carry the same four signals and are not numbered into `pins` because the vendor prints no per-pad label on them; each has two mechanical shield tabs the schematic marks NC. Test points TP1 (TX_READY), TP2 (V_BCKP) and TP4 (SAFEBOOT_N) are on the back and are not a connector. Eight solder jumpers sit on the back: PWR, PPS, RTK and FENCE (one per status LED, all bridged on delivery), I2C (JP9, open - bridge it to put the two 2.2 kOhm pull-ups on the bus), SPI (D_SEL), VSEL (JST VCC rail, bridged to 3V3 on delivery) and SHLD (USB-C shield to ground). part is null because SparkFun's own 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 Allband GNSS RTK Breakout - ZED-X20P (Qwiic), GPS-28871, 43.2 mm x 43.2 mm (1.70 in square) with four 4-40 mounting holes, built around a u-blox ZED-X20P-01B all-band GNSS module (17.0 mm x 22.0 mm x 2.4 mm). The board adds a USB-C receptacle, an RT9080-3.3 3.3 V regulator, 19 through-hole pads, two Qwiic sockets, a 6-pad BlueSMiRF header and a 4-pad locking JST (both on UART2), an SMA connector with a U.FL alternative behind a jumper, a rechargeable backup battery, and PWR/PPS/RTK/FENCE LEDs. Constellations: GPS L1C/A L2C L5, Galileo E1-B/C E5a E6, BeiDou B1I B1C B2a B3I, QZSS L1C/A L1C/B L2C L5, NavIC L1 L5, SBAS on L1C/A, plus L-band corrections handled on the module itself.
I2C: 7-bit address 0x42, peripheral only, standard/fast/fast-mode-plus up to 1000 kbit/s, clock stretching up to 20 ms, 400 pF per bus line (550 pF in fast-mode-plus). There is no address strap on the board, so two receivers on one bus must be given different addresses in software.
PINOUT: J3 (1x09) pad 1 SCL, 2 TX1, 3 RX1, 4 SDA, 5 RX2, 6 TX2, 7 3V3, 8 VIN, 9 GND. J11 (1x06) pad 1 FENCE, 2 RTK, 3 PPS, 4 RST, 5 EN, 6 EVENT. J9 (1x04, I2C) pad 1 GND, 2 3V3, 3 SDA, 4 SCL. J2 (1x06, BlueSMiRF) pad 1 NC, 2 TXD, 3 RXD, 4 3V3, 5 NC, 6 GND. J8 (1x04, locking JST) pad 1 3V3, 2 TXD, 3 RXD, 4 GND. Both Qwiic sockets are pad 1 GND, 2 3V3, 3 SDA, 4 SCL. On J3 the I2C names sit on pads 1 and 4 while the same pins are SPI clock and SPI chip select when D_SEL is low; RX1 and TX1 become SDI and SDO.
SUPPLY: VIN takes 1.2-5.5 V and the RT9080-3.3 makes the 3.3 V rail at up to 600 mA; SparkFun recommends at least 3.5 V at VIN for a clean 3.3 V output. The module itself runs 2.7-3.6 V (3.3 V typical). Draw at 3.3 V is 68 mA acquiring and 64 mA tracking on GPS+Galileo+BeiDou, 55 mA on GPS alone, with peaks to 85 mA during acquisition - size the feed for that. 5 V is only needed for USB, and only when the VSEL jumper selects it does the JST's VCC pin carry 5 V.
LOGIC: 3.3 V, all PIOs referenced to VCC. Absolute maximum VCC -0.3 to 3.6 V, any digital IO pin -0.3 V to VCC+0.3 V with a 3.6 V ceiling, source or sink 10 mA per pin, RF_IN -5.5 to +5.5 V DC and +15 dBm; the module has no overvoltage or reverse-voltage protection, so a 5 V host will damage it. Internal pull-ups: 8-40 kOhm on SCL, SDA, RXD2, TXD2, TIMEPULSE, TX_READY and the antenna pins, 35-205 kOhm on D_SEL, RXD, TXD, SAFEBOOT_N, EXTINT, GEOFENCE_STAT and RTK_STAT, 7-13 kOhm on RESET_N. Unused inputs can be left open.
REFERENCE CIRCUIT: 3.3 V carries C2 10 uF, C5 0.1 uF and C8 33 pF; V_BCKP has C9 1 uF plus the backup cell; the antenna rail VCC_RF is fed through R6 10 Ohm with C3 0.1 uF to ground. I2C pull-ups R12 (SCL) and R13 (SDA) are 2.2 kOhm and reach 3.3 V only through JP9, a 3-pole solder jumper that ships open - bridge pad 1-2 and pad 2-3 to put them on the bus. J2/J8 RXD passes through R8 1k. Each status LED has its own cuttable jumper (PWR, PPS, RTK, FENCE).
TRAPS: RST held LOW for 100 ms or more is a cold start that erases configuration, RTC and orbit data, and a capacitor from RST to GND re-triggers a reset on every power-up, so fit none. SAFEBOOT_N and TIMEPULSE are joined inside the module by a 1 kOhm series resistor, so anything loading the PPS pad low at startup drops the receiver into safeboot mode. Firmware updates only over UART1. The BlueSMiRF header and the JST are the same UART2 - populate one, not both, or the two drivers contend. The UART receiver turns itself off when it counts more than 100 framing errors in one second, which is what a wrong baud rate or a grounded RX line produces. SPI is off until the D_SEL jumper is closed, and closing it removes I2C from those pins. The U.FL connector only works after the RF jumper moves the antenna path off the SMA. Defaults: UART1 NMEA at 38400 8N1, UART2 RTCM 3.4 out and RTCM/SPARTN in with NMEA disabled, UART2 also carries UBX.

Provenance

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

Related boards