SparkFun
NEO-D9S GNSS Correction Data Receiver with Qwiic
· MPN: GPS-19390
This NEO-D9S breakout is an L-Band satellite correction data receiver designed to feed correction streams to a compatible multi-band, high-precision GNSS rec...
Get notified when back in stock
This NEO-D9S breakout is an L-Band satellite correction data receiver designed to feed correction streams to a compatible multi-band, high-precision GNSS receiver such as the u-blox ZED-F9P. With a clear view of the sky, especially to the south, it can decode L-Band correction broadcasts and help a suitable GNSS system achieve centimetre-level positioning without a separate RTK or NTRIP correction source.
The board includes USB-C for configuration from a computer using u-blox u-center, plus two Qwiic connectors for quick I2C connection to development boards. It is also supported by the SparkFun u-blox GNSS Arduino Library, with example code available for the NEO-D9S and for using the NEO-D9S with a ZED-F9P.
An integrated SMA connector provides a secure connection to a suitable L-Band antenna, and power, I2C, UART1, UART2 and SPI are also broken out to 0.1" spaced PTH pins. Please note that this product requires a suitable L-Band antenna.
From 10 March 2025, the u-blox PointPerfect L-Band correction service for this receiver is currently only available in the USA's 48 contiguous states, with the EU L-Band service suspended from that date.
Features:
- USB: 1x USB Type C Connector
- Qwiic: 2x Qwiic Connectors
- Antenna connector: Integrated SMA connector for use with L-Band antenna of your choice
- Reception: Concurrent reception with L-Band Satellite
- Power LED: Power LED
- USB Shield jumper: USB Shield
- Power jumper: Power
- 3v3 jumper: 3v3 (for UART2 Port)
- I2C Pull-Up Resistors jumper: I2C Pull-Up Resistors
- SPI jumper: SPI
- Protocols: Supports UBX protocols over UART or I2C interfaces
Specifications:
- Default I2C Address: 0x43
- Receives L-Band: 1525 MHz to 1559 MHz
- Time to First Frame: <10s @ 2400bps
- User Data Rates: 600, 1200, 2400, 4800 baud
- Dynamics: +/- 2g acceleration for all data rates (600 bit/s, 1200 bit/s, 2400 bit/s, 4800 bit/s)
- Velocity: Up to and including 300 km/h
- Voltage: 5V or 3.3V but all logic is 3.3V
- Current Consumption (Acquisition & Tracking) Peak: 130mA
- Current Consumption (Acquisition & Tracking) Average: 35mA
- Board Dimensions: 1.70" x 1.70" (43.2mm x 43.2mm)
The Qwiic connectors use the common 1mm pitch, 4-pin JST format, making this board easy to add to Qwiic-based prototypes without soldering.
Jargon buster
Plain-language definitions for the technical terms used above.
- baud
- Baud is the signalling rate of a serial connection, often used as the speed setting for UART communication. Matching the baud rate matters because both connected devices must use the same setting for readable data.
- breakout
- A breakout board carries a small or fine-pitched component and brings its connections out to standard, breadboard- and header-friendly pins. Describing a part as a breakout means it can be wired into a project without soldering directly to the component's tiny contacts.
- GNSS
- GNSS stands for Global Navigation Satellite System, an umbrella term for satellite positioning networks such as GPS, GLONASS, Galileo and BeiDou. Receivers use these satellites to determine position, and high-precision units can output a steady stream of serial position data.
- I2C
- I2C is a two-wire communication bus used by many sensors and small modules. It matters because several I2C devices can share the same two wires, but each device needs a compatible address and your controller must support I2C.
- I2C address
- An I2C address is the number a device uses so a microcontroller can tell it apart from other devices on the same I2C bus. It matters because two devices with the same fixed address may conflict if used together.
- LED
- A light-emitting diode (LED) is a small electronic component that emits light when current flows through it in the correct direction. Because it only conducts one way, its polarity matters, and a through-hole LED must be soldered the correct way around to light up.
- PTH
- Plated through-hole means the pin holes are metal-lined so solder connects the pad on both sides of the board. It is useful for connectors and headers that need a strong mechanical and electrical connection.
- Qwiic
- Qwiic is a plug-in connector system for I2C devices that uses small 4-pin cables, so you can connect compatible sensors without soldering. It matters because your controller or adapter also needs Qwiic, or you will need a cable or breakout to wire it up.
- RTK
- Real-Time Kinematic positioning is a GNSS technique that uses correction data from a base station to greatly improve location accuracy. It matters if you need centimetre-level positioning for robotics, mapping, surveying, or tracking rather than ordinary metre-level GPS accuracy.
- Shield
- An add-on board that plugs into a main controller board to give it extra features such as sensing, motor control or communication. Knowing a product supports shields helps you judge whether it can connect neatly into an existing maker-board setup.
- SMA
- SMA is a small threaded coaxial (RF) connector widely used to attach antennas and other radio-frequency cables. A device with SMA antenna ports needs antennas or pigtails with matching SMA connectors, or a suitable adapter, to connect to them.
- SPI
- A fast serial communication bus often used for displays, memory cards, and sensors. It matters because SPI devices need specific pins for clock and data, plus a separate chip-select line for each device.
- UART
- UART is a simple asynchronous serial interface that sends data over separate transmit and receive wires, usually labelled TX and RX, with both ends set to the same baud rate. It is a common way for microcontrollers and other serial devices to exchange data.
- USB-C
- USB-C is a small, reversible USB connector that can carry power, data and, on some devices, video over a single cable. The same connector can range from charging only to high-speed data, so the functions a given port actually supports vary.
- ZED-F9P
- A u-blox GNSS receiver module designed for high-precision positioning, including RTK rover and base-station use. The exact module matters because it determines the supported satellite bands, update rates, correction formats and achievable accuracy.
Find this product in
NEO-D9S GNSS Receiver Schematic
Schematic · 198.1 KB · Click any page to view full size
NEO-D9S Datasheet
Datasheet · 848.5 KB · Click any page to view full size
NEO-D9S Product Summary
Product Brief · 179.7 KB · Click any page to view full size
NEO-D9S Integration Manual
User Guide · 8.6 MB · Click any page to view full size
NEO-D9S Interface Description
User Guide · 934.4 KB · Click any page to view full size
NEO-D9S and ZED-F9 Configuration App Note
Document · 1.0 MB · Click any page to view full size
PointPerfect Product Summary
Product Brief · 121.4 KB · Click any page to view full size
Supplier page — sparkfun.com
Supplier Description · 763.3 KB · Click any page to view full size
Resources & Downloads
Guides, code examples, and more
Source Code
Open-source libraries, firmware & example projects for this product
A breakout for the u-blox NEO-D9S correction data receiver
0b064a8
over 1 year ago
· 19 commits
- Documents Update NEO-D9S-00B_DataSheet_UBX-18012996.pdf about 3 years ago
- Hardware Update schematic about 4 years ago
- LICENSE.md Create LICENSE.md about 4 years ago
- README.md Update L-Band coverage over 1 year ago
An Arduino library which allows you to communicate seamlessly with the full range of u-blox GNSS modules
14309e1
3 months ago
· 535 commits
- .github Don't compile new virtual example - fails on Uno (RAM) over 2 years ago
- examples Merge pull request #211 from dizcza/main 11 months ago
- img Initial commit - based on v2_candidate over 5 years ago
- keys updated config_keys_sorted.txt and added interfaceDecription for m9 12 months ago
- src Fix reserved2 11 months ago
- Utils Update UBX_RAWX_Aligner.py almost 4 years ago
- .gitattributes Initial commit - based on v2_candidate over 5 years ago
- .gitignore Initial commit - based on v2_candidate over 5 years ago
- Adding_New_Messages.md Adding callback pointers for all auto messages over 4 years ago
- CMakeLists.txt CMake requires arduino-esp32 instead arduino 3 months ago
- CONTRIBUTING.md Update CONTRIBUTING.md over 5 years ago
- ISSUE_TEMPLATE.md Initial commit - based on v2_candidate over 5 years ago
- keywords.txt Fix tabs. Add new methods 11 months ago
- library.properties v2.2.28 11 months ago
- LICENSE.md Initial commit - based on v2_candidate over 5 years ago