Commit Graph

10 Commits

Author SHA1 Message Date
Luis Ubieda
94a7f028ef ubx: Refactor codebase in order to improve usability
During testing and code inspection, there were various anti-patterns
on this (and U-Blox driver) codebase(s), including obfuscation, and
lack of data validation. This made it increasingly difficult to
introduce further variants of u-blox GNSS modems.

With this patch, both the UBX modem and the M8 driver have been
refactored to ease the reliability and maintainability of these
codebases. Here are some highlights:

WRT UBX modem:
- Helper macros to easily create UBX frames, (including checksum
calculation), at compile time; thus, making it easier to extend UBX
commands.
- Logic validation by the inclusion of the modem_ubx testsuite, used to
refactor the code through TDD.
- Ability to receive unsolicited messages, in order to enable U-Blox
drivers to rely on modem_ubx to transceive all commands, and avoid
hopping between modem_ubx and modem_chat.

WRT M8 driver:
- Remove GNSS specific protocol header files. Instead, unify them under
modem/ubx/protocol.h. Background: After a survey and looking at ubxlib
SDK I conclude the UBX protocol is by definition a GNSS protocol (there
are non-GNSS u-blox modems, but they're not interfaced through UBX
protocol).
- Establish pattern to create and send/receive commands using new
foundations on modem ubx.
- Remove dependency of Modem chat, and instead use UBX unsolicited
messages to get Navigation and Satellites data.
- Switch from the auto-baudrate detection pattern to a pattern of
transitioning between an initial known baudrate to a desired baudrate,
in order to improve initialization time.
- Add dts property to configure default fix-rate.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-05-30 19:40:19 +02:00
Luis Ubieda
d26ed348ef samples: gnss: vmu_rt1170: correct alias assignment to gnss node
Otherwise, callbacks subscriptions the application subscribes to will
not ever trigger.

Additionally, rename this overlay so it's compatible with hwmv2 target:
vmu_rt1170/mimxrt1176/cm7.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-05-07 00:02:06 +02:00
Anas Nashif
7a54569d85 samples: gnss: no board has this feature, improve filtering
Use integration platforms to make this sample buildable.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-03-11 11:35:15 +01:00
Jordan Yates
69b73ebb0a samples: gnss: add timepulse support
Output the timestamp of the PPS timepulse when printing the fix
information, if the driver support the timepulse and it has started
toggling.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2024-10-22 20:42:30 +02:00
Jordan Yates
d427d8a653 samples: drivers: gnss: display more information
Query and display additional information in the GNSS API sample.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2024-10-09 13:47:30 +02:00
Jordan Yates
d97cc46bdd gnss: rename u-blox M10 driver to M8
The driver in tree is for u-blox M8 devices, not M10. The M10 series
devices (from Protocol Version 23.01) use a different, non backwards
compatible interface for configuring the modem behaviour.

Of the two boards tested in the original PR, the "VMU RT1170" is
explicitly listed as having a u-blox NEO-M8N modem, while I have
been unable to find any information online about the "FMURT6" board.

Leaving the naming as-is will cause problems when M10 drivers are
contributed.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2024-08-26 17:27:12 -04:00
Bjarki Arge Andreasen
f95fc461d2 samples: drivers: gnss: boards: adjust mimxrt1062 dts overlay
The overlay for the mimxrt1062 boards gnss alias is pointing
to the uart node rather than the gnss node. Adjust gnss alias
and node naming.

Signed-off-by: Bjarki Arge Andreasen <bjarki@arge-andreasen.me>
2024-05-02 22:42:39 +01:00
Tomi Fontanilles
b98769ea41 samples: gnss: improve logging
Report more information and do not use `dev->name` so that what the
sample prints looks less similar to the GNSS dump logs.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
2024-04-24 15:00:10 -04:00
Mayank Mahajan
3d81167eaf ADD: GNSS Driver for U-BLOX M10 & Support for UBX Messages
MODEM_UBX: Adds Support for UBX Messages in Modem Subsystem.

GNSS API Supported: get_supported_systems, set_fix_rate, get_fix_rate,
	set_enabled_systems, get_enabled_systems, set_navigation_mode,
	get_navigation_mode.

Boards Tested: MIMXRT1062_FMURT6, VMU_RT1170.

Note: Partial support for U-BLOX Messages is provided as of now.

Signed-off-by: Sumit Batra <sumit.batra@nxp.com>
Signed-off-by: Mayank Mahajan <mayankmahajan.x@nxp.com>
2024-03-26 09:28:36 +00:00
Bjarki Arge Andreasen
b6a8424e95 samples: gnss: Add GNSS sample application
This commit adds a sample which configures a GNSS modem
to enable all available systems, registers callbacks to
the GNSS data and satellites callbacks, and prints the
GNSS data and satellites from the callbacks when invoked
using printk.

Signed-off-by: Bjarki Arge Andreasen <bjarkix123@gmail.com>
2023-10-30 11:43:19 -04:00