Skip to content

GNSS RTK: Add basic integration #90890

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Jul 21, 2025

Conversation

ubieda
Copy link
Member

@ubieda ubieda commented May 30, 2025

Description

This PR introduces RTK (Real Time Kinematics) to GNSS modems by providing a path to feed RTK correction data (proposed on #90363).

Detailed changes:

  • Add APIs so RTK clients can be added (basic Serial client is added to demo).
  • Add APIs to allow RTK clients to publish correction data, and for GNSS drivers to feed such data to their modems (applied to UBX F9P driver).
  • Add RTCM3 protocol decoder (framing detection, validated with unit-test suite).
  • Add GNSS RTK sample with python script to convert a PC in a Base-Station (requires a F9P module USB-connected), which feeds data to a Zephyr-powered board (over Serial port).

Note

  1. This PR depends on F9P driver introduction: gnss: Add UBX F9P driver #90027
  2. This PR will be submitted to present at the Architecture WG.
    Adding DNM until both conditions are resolved.

@ubieda ubieda added the DNM This PR should not be merged (Do Not Merge) label May 30, 2025
@ubieda ubieda force-pushed the gnss/rtk-integration branch 5 times, most recently from e333b76 to a7984f5 Compare June 4, 2025 19:51
Copy link

sonarqubecloud bot commented Jun 4, 2025

Copy link
Member Author

@ubieda ubieda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comments captured from Arch WG review 250701

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: Move to drivers/gnss/*

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved to subsys/gnss instead.

@ubieda ubieda force-pushed the gnss/rtk-integration branch 2 times, most recently from 9f187bf to 799ef56 Compare July 7, 2025 17:38
@ubieda ubieda removed the DNM This PR should not be merged (Do Not Merge) label Jul 7, 2025
@ubieda ubieda force-pushed the gnss/rtk-integration branch 3 times, most recently from 175d489 to 9e8bc2c Compare July 7, 2025 20:03
@ubieda ubieda force-pushed the gnss/rtk-integration branch from 9e8bc2c to 5a345fa Compare July 7, 2025 20:37
@ubieda ubieda marked this pull request as ready for review July 7, 2025 21:22
@ubieda ubieda requested a review from kartben July 20, 2025 16:16
ubieda added 8 commits July 20, 2025 17:04
Used in GNSS RTK correction frames.

Signed-off-by: Luis Ubieda <[email protected]>
Validating both a frame without CRC (should return calculated CRC), and
with CRC (should return 0 as a match).

Signed-off-by: Luis Ubieda <[email protected]>
Incorporate the basic RTK API as well as a basic client integration
(serial) as a way to receive and publish the RTK data.

Signed-off-by: Luis Ubieda <[email protected]>
To be covered by existing Drivers: GNSS, as per requested during the
review process. Added myself as a collaborator to follow-up with
RTK-related changes.

Signed-off-by: Luis Ubieda <[email protected]>
To capture framing capabilities (only API so far).

Signed-off-by: Luis Ubieda <[email protected]>
So this API can be used to send frames with a different encoding than
UBX. This enables UBX drivers to send RTCM3 correction frames using UBX
API, without having to switch over modem pipes.

Signed-off-by: Luis Ubieda <[email protected]>
Enable driver to consume RTK data-correction messages published
in order to enhance GNSS Navigation results.

Signed-off-by: Luis Ubieda <[email protected]>
Expand this sample to also work with GNSS_RTK through a serial client.

Make this compatible to work with VMU_RT1170 which requires using the
F9P, instead of the M8 UBX module.

Signed-off-by: Luis Ubieda <[email protected]>
@ubieda ubieda force-pushed the gnss/rtk-integration branch from f62d3db to 6045fcf Compare July 20, 2025 21:22
@ubieda
Copy link
Member Author

ubieda commented Jul 20, 2025

@kartben @fabiobaltieri please revisit

@ubieda ubieda requested review from kartben and fabiobaltieri July 20, 2025 21:32
Copy link

@ubieda ubieda requested a review from bjarki-andreasen July 21, 2025 10:48
@cfriedt cfriedt merged commit 9339f31 into zephyrproject-rtos:main Jul 21, 2025
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants