255 Commits

Author SHA1 Message Date
Jacob Dahl
ee196fadb8
gps: ubx: add output rate parameter (#26388)
* gps: ubx: add parameter to configure module measurement rate (GPS_UBX_RATE)

* gps: update submodule

* submodule
2026-02-09 22:49:40 -07:00
Jacob Dahl
14864814ef
gps: ubx: added jamming sensitivity parameter (#26386)
* gps: ubx: added jamming sensitivity parameter GPS_UBX_JAM_DET

* submodule

* gps: submodule to main
2026-02-09 17:43:39 -09:00
alexcekay
1df5e62cc3 gps: fix rate reading on UART 2026-01-22 15:02:30 +01:00
William Reynaldi Solichin
55e0810d8d
Expose u-blox min elevation, min SNR and DGNSS timeout parameters RTK Fix Improvements (#25720)
* Exposing u-Blox min CNO, min elevation, and DGNSS timeout for RTK Fix Improvement

* update gps submodule

---------

Co-authored-by: Julian Oes <julian@oes.ch>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
2026-01-21 14:50:36 -09:00
Jacob Dahl
e71348967d
gps: fix RTCM injection and enable MSM7 for PPK (#26095)
* serial: add txSpaceAvailable function

* serial: txSpaceAvailable and bytesAvailable fixups

* msg: GpsDump: increase queue from 8 to 16 and replace instance with device_id

* lib: gnss: add RTCM parsing library. Generated by Claude Code.

* gps: fix RTCM injection to use inject-before-read pattern as before. Add RTCM parser to frame-align injection. Drain GpsInjectData uORB queue into RTCM parser buffer and then inject. Add GPS_UBX_PPK parameter to enable MSM7 output from the GPS module (rather than the default of MSM4) which is required for PPK workflows.

* gps: replace PX4_WARN with perf counters
2025-12-17 10:20:00 -09:00
Jacob Dahl
778ad160f2
msg: GpsDump: queue 8->16 and add device_id (#26091)
* msg: GpsDump: increase queue from 8 to 16 and replace instance with device_id

* gps: add back instance
2025-12-16 08:36:02 -09:00
Jacob Dahl
67d62cb371 Revert "gps: fix RTCM injection to use inject-before-read pattern as before. Add RTCM parser to frame-align injection. Drain GpsInjectData uORB queue into RTCM parser buffer and then inject. Add GPS_UBX_PPK parameter to enable MSM7 output from the GPS module (rather than the default of MSM4) which is required for PPK workflows."
This reverts commit 0704580a30bb319fddc8c036675996a3e7202704.
2025-12-11 21:32:26 -09:00
Jacob Dahl
0704580a30 gps: fix RTCM injection to use inject-before-read pattern as before. Add RTCM parser to frame-align injection. Drain GpsInjectData uORB queue into RTCM parser buffer and then inject. Add GPS_UBX_PPK parameter to enable MSM7 output from the GPS module (rather than the default of MSM4) which is required for PPK workflows. 2025-12-11 20:10:22 -09:00
Alexander Lerach
8dd88e036d gps: add init timeout to handle larger diff after configuration 2025-11-25 11:41:50 -05:00
Alexander Lerach
c4a459838e gps: wipe FLASH config only once 2025-11-25 11:41:50 -05:00
Daniel Agar
e342640698 drivers/gps: warn if gps_inject_data publications have been missed 2025-09-24 22:11:49 -04:00
Alex Klimaj
91fa0f4693
boards: ark x20 and f9p gps (#25149)
* boards: ark x20 gps

* update startup

* fix cmake variants

* boards: ark f9p gps

* ark x20 gps add serial dma hrt call

* update gps submodule with x20 support

* update default constellations

* fix mag rotation
2025-09-19 10:06:03 -08:00
Daniel Agar
41d3403ec7
drivers/gps: prioritize non-blocking reads over injection (#25535) 2025-09-15 15:18:45 -08:00
Alexander Lerach
785ea1a137
ubx: add new mode for GCS usage
* ubx: add new mode for GCS usage

* use head ref
2025-08-21 15:45:40 +02:00
Matthias Grob
6cf494dde1
Publish RTCM stream telemetry also for UAVCAN GNSS receivers (#25315)
* uavcan gnss: publish rtcm instance and injection rate

* GPS drivers minor refactor (#25316)

* GPS drivers: adhere to message name based variable naming convention

* uavcan gnss: use matrix norm calculation

* GPS drivers: rate naming refactor and robust timeout checks

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-07-29 09:55:21 -08:00
Jacob Dahl
4117aa5bd3
gps: explicit type cast (#25293) 2025-07-25 00:40:31 +02:00
Alexander Lerach
752ecd3d1b ubx: add option to wipe flash 2025-07-24 11:06:54 +02:00
Marco Hauswirth
6ee6a3a578
GNSS: Don't send 'spoofing' warnings form driver (#25160)
* removing logic from driver to send warnings when state-change to spoofing is detected, handled in estimatorChecks

* also remove jamming warnings from drivers, those are handled in the estimator checks as well
2025-07-07 09:44:26 +02:00
Alexander Lerach
9fc9fb56d1
GPS Dump timeout increase + GPS overflow fix 2025-03-17 17:03:45 +01:00
Alexander Lerach
f2471861a3 Fix GPS RTCM instance selection 2025-02-14 09:39:59 +01:00
S.W Develish
b955588b26
bugfix: NMEA GPS update rate was 0 since num_bytes_read was not being… (#23957)
* bugfix: NMEA GPS update rate was 0 since num_bytes_read was not being updated

* Update gps.cpp

style fix

* make format

---------

Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
2024-11-17 16:16:50 -09:00
Thomas Stauber
f2f4488594
drivers/gps: publish secondary instance satellite_info if main instance is advertised 2024-08-19 11:14:12 -04:00
Thomas Frans
cd4c495377
drivers/gps: extract Septentrio into new standalone drivers/gnss/septentrio module (#22904)
Having a generic interface over the GPS drivers makes dedicated
functionality for each driver harder. Move the Septentrio driver into
its own module under the `gnss` driver directory, and let it have its
own parameters for only the functionality it requires. This also helps
with adding new features because they only need to be implemented for
the driver that wants it, simplifying testing.
2024-06-17 12:25:24 -04:00
muramura
b5467d88f7 gps: Change the IF statement to a SWITCH statement 2024-05-07 15:58:15 +02:00
Julian Oes
e79993a316 gps: split enum after rebase
Signed-off-by: Julian Oes <julian@oes.ch>
2024-05-01 14:42:58 -04:00
Julian Oes
0283dc2459
gps: fix Septentrino serial read (#22936)
For Septententrino we seem to sometimes fill the buffer pretty full.

If we ask for too much, readAtLeast will fail completely and make the
GPS discovery logic fall over. Therefore, let's not ask for too much and
just read what we can given the available buffer.

Signed-off-by: Julian Oes <julian@oes.ch>
2024-04-01 20:46:53 -04:00
Eric Katzfey
ccdf060393
Additions to the Serial UART API (#22953)
- Added an empty constructor, setPort, and validatePort functions for Serial API
- Changed GPS to not allocate Serial object dynamically
- Moved access check on serial port name into the Serial API
- Improved the Qurt platform validatePort Serial function to implement a more rigorous check. Added safety check
to the setPort Serial function to make sure it isn't called after the port has been already opened.
2024-04-01 12:27:59 -04:00
Eric Katzfey
69028f37a9
New platform independent Serial interface (#21723) 2024-03-21 21:00:23 -04:00
Thomas Frans
bb9f4d42f3 gps: fix incorrect task id in module startup 2024-03-21 20:58:59 -04:00
alexklimaj
c3db4f57df Subscribe to all intances of gps_inject_data and mirror uavcan rtcm pub mirror gps driver 2023-06-09 14:51:28 +12:00
muramura
3c45b184d3 gps: Improve the FALSE setting of the ALREADY_COPIED variable 2023-05-08 07:04:11 +02:00
Julian Oes
1d4b66fcbc gps: use all injection data
When we fall back to another link, we are already doing a uORB copy when
checking the data. Therefore, we should further down use/send that data
instead of overwriting it immediately.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-05-03 07:47:51 +02:00
Julian Oes
2fd3de8f45 gps: retry switching RTCM injection more often
I don't think it makes sense to slow down switching RTCM injection to
once every 5 seconds. If we don't have corrections, we should check and
use whatever we get as soon as possible.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-05-03 07:47:51 +02:00
Julian Oes
6108b31e6a gps: reset RTCM instance
We need to reset the instance after looping through all instances.
Otherwise, we are left with the last instance if none is valid but have
not updated the _selected_rtcm_instance which is what is logged.

Therefore, this change fixes the logged RTCM instance.

Signed-off-by: Julian Oes <julian@oes.ch>
2023-05-03 07:47:51 +02:00
Thomas Stastny
cb66c48876 drivers/gps: increase stack to handle gps dump config for RTCM output (PPK) 2023-04-19 17:08:15 +02:00
Seppe Geuens
7e0f929ad1
gps: add sbf with heading (#19374)
Co-authored-by: Seppe Geuens <seppe.geuens@tii.ae>
2023-04-13 07:44:35 +02:00
Thomas Stastny
f4681f01b6 drivers/gps: increase stack 2023-04-04 07:16:21 +02:00
alexklimaj
e2de62e38b GPS only warn if jamming state is critical 2023-03-17 21:38:28 -04:00
AlexKlimaj
e375e02974 Add GPS spoofing state 2023-03-14 20:28:32 -04:00
Igor Misic
df441ac202 drivers/gps: add param for enabling protocols at i2c interface 2022-12-19 08:52:36 +01:00
alexklimaj
64768f1cda Increase allowed rtk injections to 8 for moving base. Update GPS submodule. 2022-11-18 11:04:17 -05:00
Yang Hau
2dcde93d96 fix: Fix misuse of atoi() 2022-09-29 08:11:03 +02:00
Shriv
3dffa5e6df
gps: add UART2 Baudrate Configurability and New UBX Mode. (#20133) 2022-09-12 14:13:17 +02:00
alexklimaj
f9b8ca1326 Support two RTCM links with the same corrections
Add selected_rtcm_instance to sensor_gps message to track loss of rtcm links

Publish _rate_rtcm_injection
2022-07-15 08:20:27 +02:00
Thomas Debrunner
42c562b748
gps: Increase param name buffer to address warning in newer gccs (#19876) 2022-07-06 10:20:31 +02:00
Daniel Agar
84e796c385 drives/gps: add new sensor_gnsss_relative msg
- for ublox this corresponds to NAV_RELPOSNED
2022-03-29 07:59:41 +02:00
Daniel Agar
ca97b9ba5f
drivers/gps: add new GPS_SAT_INFO parameter to enable satelitte_info
- this replaces the command line argument -s
2022-02-17 08:30:25 +01:00
Daniel Agar
fe23718e2c drivers/gps: require valid device to start 2021-12-06 08:44:50 +01:00
David Lechner
a29820bdf8 gps: fix compiling on mac
This fixes the following compile error on Mac:

    src/drivers/gps/gps.cpp:562:23: fatal error: use of undeclared identifier 'B921600'
            case 921600: speed = B921600; break;
                                ^
2021-12-01 09:25:40 -05:00
alexklimaj
bfd5a90a5d UAVCAN Moving Baseline Working
Set uavcan publisher priorities

Switch to ardupilot rtcm message and add heading accuracy
2021-11-30 15:59:08 -05:00