CHANGELOG
Changelog for package ublox_dgnss_node
0.7.3 (2026-03-29)
Added UBX_RXM_SFRBX and fixed bug for param set being sent to usb device upon change
fix uncrustify formatting
fix: handle concurrent access to parameters and remove deadlock risk
Merge pull request #60 from SayedMuhamad/fix/rtcm-callback-resize-to-reserve fix(rtcm_callback): replace resize() with reserve() to prevent leading zero bytes
fix(rtcm_callback): replace resize() with reserve() to prevent leading zero bytes In rtcm_callback(), the output buffer was built using: data_out.resize(N); // pre-fills N zero bytes at indices [0..N-1] for (auto b : msg.message) data_out.push_back(b); // appends real bytes at indices [N..2N-1] This produced a 2N-byte buffer starting with N zero bytes, which corrupts SPARTN/RTCM3 framing. The u-blox F9P USB parser scans for the 0x73 (SPARTN) or 0xD3 (RTCM3) preamble at byte 0; with leading zeros it never found a valid frame start and silently discarded every correction message. Fix: replace resize() with reserve(). This pre-allocates capacity without filling, so push_back() places the real data at indices [0..N-1] and the resulting buffer is exactly N bytes with the preamble byte at index 0. Fixes: corrections delivered via /ntrip_client/rtcm having zero effect on receiver positioning accuracy.
Merge pull request #59 from wentasah/fix Fix missing include with GCC 14
Fix missing include with GCC 14 Without this, the compiler complains with: include/ublox_dgnss_node/ubx/utils.hpp:188:8: error: ‘reverse_copy’ is not a member of ‘std’
Contributors: Michal Sojka, Nick Hortovanyi, Sayed Muhammad
0.7.2 (2026-03-19)
uncrustify fixes
Add flags for LPP and has correction used
Add lpp_corr_used and has_corr_used to flags
Contributors: Nick Hortovanyi
0.7.1 (2026-03-18)
fixed uncrustitfy comment space
reverted fix for warning as not supported jazzy & humble
fix c++ header include for crustify
Fixed iterator bug and case labels
Fix deprecation warning
Merge remote-tracking branch ‘refs/remotes/origin/main’
Merge pull request #57 from stan-guer/fix/nav-status-parsing fix nav-status decoding
fix nav-status decoding According to u-blox 20 HPG 2.00 , the status bits in the fixStat and flag2 fields in the ubx-nav-status message are not always consecutive, there are padding bits in there that are not accounted for in this decoding logic. Fix that. An obvious outcome is that the ubx-nav-status now properly shows RTK float or int status, the same status value that is in the (correctly decoded) ubx-nav-pvt message.
sync write lock scope changed
Merge pull request #56 from BravoBravoIX/fix/usb-timeout-handling
Improve USB write stability: 250ms timeout and mutex protection - Set timeout_ms_ to 250ms instead of 0 (blocking) for hang safety - Add write_mutex_ to serialize write_buffer() calls
Fix USB timeout crash in rtcm_callback Add exception handling for USB write failures in RTCM callback to prevent node crashes when USB bulk transfers timeout. Changes: - Wrap write_buffer() call in try/catch in rtcm_callback() - Change timeout_ms from 45ms to 0 (blocking) to match v0.6.1 behavior The 45ms timeout was too tight for slower USB 1.1 devices (F9P) causing intermittent LIBUSB_ERROR_TIMEOUT exceptions that crashed the node. Setting timeout to 0 restores blocking behavior consistent with write_buffer_async() and the previous stable release.
Fixed X20P parameters
build: Remove libtoml11-dev from package dependencies
build: Remove toml11 dependency from CMakeLists
feat: Replace toml11 with embedded SimpleTomlParser Implement custom TOML parser in anonymous namespace to handle UBX config files without external dependencies. Supports sections, string values, arrays, and numeric values.
feat: Implement three-priority UBX config loading system - Add UBX_CONFIG_FILE parameter for custom TOML configs - Load device family default TOML based on DEVICE_FAMILY parameter - Fallback to F9P default, then full static map if loading fails - Add check_for_ubx_config_file_param() following existing pattern
feat: Add device family annotations to UBX parameter definitions - Add @exclude and @only annotations for device-specific parameters - Mark UART2 parameters as X20P-only (@only: X20P) - Mark ESF sensor fusion parameters as F9R-only (@only: F9R) - Mark L5/L6 signal parameters as X20P-only (@exclude: F9P,F9R) - Fix typo: CFG_ODO_VALLPGAIN -> CFG_ODO_VELLPGAIN
refactor: Move ubx_cfg_item_map_t type alias to ubx::cfg namespace - Relocate type alias from ublox_dgnss to ubx::cfg namespace for consistency - Add type alias reference in parameters.hpp for convenience
feat: Add TOML-based device family configuration filtering - Implement UbxConfigLoader for filtering parameters by device family - Add Python script to generate TOML files with @exclude/@only annotations - Generate F9P, F9R, X20P config files from existing parameter map - Enable three-priority loading: UBX_CONFIG_FILE > DEVICE_FAMILY > F9P default
build: Add toml11 and ament_index_cpp dependencies - Add libtoml11-dev dependency for TOML config parsing - Add ament_index_cpp for runtime package resource lookup - Install TOML config files to share directory
New feature for param val get state reporting
fix(params): Set PARAM_LOADED when device response arrives, not PARAM_VALGET CFG-VALGET responses should transition directly to PARAM_LOADED rather than temporarily using PARAM_VALGET status. Eliminates invalid semantic state and callback dependency. Foundation for reliable async completion tracking.
change to cfg_val_get_poll_async_all_layers()
Contributors: BravoBravoIX, Nick Hortovanyi, Stan Guerassimov
0.7.0 (2025-10-27)
Merge pull request #49 from aussierobots/X20P Add X20P device family support with USB architecture adaptation
Add clear error message directing users to main interface (0x01ab)
Update documentation with interface limitations and GitHub Issue #48
Comment out experimental header stripping code
Add X20P configuration parameters to launch files
Documentation updates to match code
added new device family for X20P
Added support for X20P and changed USB connection to support USB UARTs
added new device family to add X20P
Contributors: Nick Hortovanyi
0.6.0 (2025-07-28)
Fix for handle_usb_event starting before usb connection
Major refactor: Parameter state management and USB hotplug system This is a comprehensive overhaul of the parameter management and USB hotplug systems: Parameter Management Architecture: - Added new ParameterManager class with complete parameter lifecycle management - Implemented ParamValueSource tracking (UNKNOWN/DEVICE_ACTUAL/START_ARG/RUNTIME_USER) - Added parameter state machine (PARAM_INITIAL/USER/LOADED/VALSET/VALGET/ACKNAK) - Enhanced thread safety with mutex-protected parameter cache operations - Fixed parameter initialization timing with proper 3-phase approach - Added smart parameter callbacks to prevent CFG-VALGET responses becoming PARAM_USER USB Hotplug System: - Fixed USB transfer queue cleanup during device disconnect - Added cleanup_all_transfers() to properly cancel and clear pending transfers - Prevents “too many transfers” warnings and potential memory leaks from stale transfers - Enhanced hotplug parameter handling: reset device params on disconnect, restore user params on reconnect - Improved USB driver state management with proper state transitions Thread Safety & Memory Management: - Added comprehensive mutex protection for parameter cache and transfer queue operations - Fixed potential memory leaks in USB transfer cleanup during hotplug events - Enhanced callback group separation for USB events vs parameter processing New Files: - parameters.hpp/cpp: Complete parameter management system - ubx_cfg_item_map.hpp: UBX configuration item mapping - parameter_lifecycle.md/usb_device_state.md: Architecture documentation Statistics: 7 files changed, 1436 insertions(+), 993 deletions(-), 4 new files This resolves parameter synchronization issues during hotplug events and ensures proper parameter state transitions between device and user-initiated changes.
Added nullptr check on transfer->user_data
buildfarm crustify issue
Contributors: Nick Hortovanyi
0.5.8 (2025-07-09)
formatting changes
added debug logging and fixed USB device detection at startup
refactored dev_valid and added devh_valid
Contributors: Nick Hortovanyi
0.5.7 (2025-05-29)
fixed whitespace comment
Contributors: Nick Hortovanyi
0.5.6 (2025-05-29)
changed ament_target_dependencies to target_link_libraries
Merge pull request #45 from ARK3r/main fix: show correct port_id
now it shows reasonable port ids
Merge pull request #43 from bvsam/ubx-nav-svin-fix Fixing UBX-NAV-SVIN reading
Merge pull request #40 from mak22223/main Fixed U4, X4, I4 values interpretation
Fixed U4, X4, I4 values interpretation
Fixing UBX-NAV-SVIN reading
Contributors: ARK3r, Benjamin Sam, Markin Maxim, Nick Hortovanyi
0.5.5 (2025-02-12)
Merge pull request #33 from bvsam/base-rtcm-support Base rtcm support
fixed style
Merge branch ‘main’ into base-rtcm-support
Merge pull request #32 from bvsam/mb+r_fix Updating mb+r_base launch file and adding missing parameters
Fixing formatting to allow for tests to pass
Fixing formatting to enable tests to pass
Fixing errors in code to ensure successful builds
Adding more CONFIG_TMODE parameters
Updating mb+r_base launch file and adding missing parameters
Adding initial code for fixed base use case
uncrustify formatting fixes
Merge branch ‘main’ of github.com:aussierobots/ublox_dgnss
uncrustify formatting changes
Merge pull request #30 from bvsam/base-station-rtcm Add base station rtcm message publishing support
Updating rtcm publisher QOS for subscription compatibility
Minor: fixing error in code
Changing rtcm publisher topic name
Adding payload logging for rtcm publishing
Making subscription topics absolute for backwards compatbility
Updating subscription topic names to be non-absolute
Fixing errors in code
Adding basic rtcm receival and publishing functionality
Added Subcription Options Qos Override on subscriptions
Add Publisher Option with QOS Overriding for all publishers
uncrustify formatting changes
parameter pub for ubx_mon_ver ubx_sec_uniqid
ubx_sec_sig msg ver 2 changes
added CFG_SIGNAL for GPS, SBAS, GAL, BDS, QZSS and GLO
updated cfg items
Contributors: Benjamin Sam, Nick Hortovanyi, Xiran Zhou, ryan
0.5.4 (2024-10-16)
fixed uncrustify formatting errros
Added copyright and fixed formatting
Merge pull request #27 from aussierobots/spartn-dev initial spartn changes
Merge pull request #25 from ARK3r/spartn-dev
fix iteration variable override
add UBX-MON-COMMS
move UBX-MON-VER to mon folder
Added UBX Rxm Cor|Spartn|SpartnKey
Merge pull request #24 from ARK3r/spartn-key-f9p-d9s Spartn configuration / monitoring support
Merge pull request #23 from icos-pit/main added printing serial_str_ & serial_num_string to error of not finding device with specificed serial string.
added uart2 and spartn source cfg items
add serial_str_ & serial_num_string to error stream of finding USB device with specified serial string
Contributors: ARK3r, Nick Hortovanyi, iman01
0.5.3 (2024-03-22)
Jamming and interference monitor configuration
Contributors: Nick Hortovanyi
0.5.2 (2023-11-05)
removed saving of read serial str in connection
uncrustify format issue
fixed error messages
added rc logic and throws
Contributors: Nick Hortovanyi
0.5.1 (2023-10-13)
Merge branch ‘aussierobots:main’ into main
Contributors: Geoff Sokoll
0.5.0 (2023-10-13)
code formatting issues
fixed line length
Merge branch ‘main’ of github.com:aussierobots/ublox_dgnss
Merge pull request #12 from gsokoll/main Add multiple device support, and moving base+rover example
Added new messages for satellite data & security
increase buffer size
Add multiple device support, and moving base+rover example
Contributors: Geoff Sokoll, Nick Hortovanyi
0.4.4 (2023-05-24)
cmake uncrustify changes
Contributors: Nick Hortovanyi
0.4.3 (2023-05-24)
added ament_cmake_uncrustify
Contributors: Nick Hortovanyi
0.4.2 (2023-05-24)
0.4.1 (2023-05-24)
updates for release
Merge pull request #10 from aussierobots/F9R-and-RTCM F9 r and rtcm
changed verbosity of logging
Merge pull request #9 from gsokoll/F9R-and-RTCM Composable node version of navsatfix
Composable node version of navsatfix. Added example launch file.
Merge pull request #8 from gsokoll/F9R-and-RTCM Change to rtcm_msgs instead of mavros_msgs.
Change to rtcm_msgs instead of mavros_msgs. This is in keeping with a similar PR for the LORD MicrosStrain NTRIP client. https://github.com/LORD-MicroStrain/ntrip_client/pull/34 where it is commented that “rtcm_msgs is a smaller dependency with support for both ROS and ROS 2 now, and preferred by some downstream dependencies like ublox.” Format of the messages are strcturally identical, with the only difference being the name of the payload (“data” in mavros vs “message” in rtcm_msgs)
Merge pull request #6 from gsokoll/gsokoll-patch-1 Add CFG_SFIMU_AUTO_MNTALG_ENA
if usb detached warn not sending to device
added guards not send to device if usb devh null
usb connection changes
added return for esf_meas warnings to not send
added guards and warnings for ubx_esf_meas inbound
Add CFG_SFIMU_AUTO_MNTALG_ENA
fix to pub full ubx_esf_meas
changed some msgs from INFO to DEBUG
renamed ubx_esf_meas_sub topic
changed calibTtag from an array to single value
uncrustify changes
uncrustify format changes
fixed wrong esf msg
added rtcm msg processing
added ubx_esf_meas full poll payload to device
added ubx_esf_meas output publishing
fixed spelling mistake
notation and spelling fixes
added initial ubx esf status code
renamed F9P usb variable to F9
fixed CFG_SFDO_LATENCY naming
Added CFG_MSGOUT_UBX_ESF* items
Added CFG_SFODO_* items
added new DYN_MODEL SFIMU_IMU_MNTALG_* cfg items
changed USb and UBX event times from 10ns to 10ms
Merge pull request #4 from gsokoll/patch-1 Add UBX_ESF message class and id’s
Add UBX_ESF message class and id’s
added ubx_rxm_out_frame for poll frame out
fixed version output
added ubx-rxm-rtcm publishing
Contributors: Geoff Sokoll, Nick Hortovanyi
Merge pull request #10 from aussierobots/F9R-and-RTCM F9 r and rtcm
changed verbosity of logging
Merge pull request #9 from gsokoll/F9R-and-RTCM Composable node version of navsatfix
Composable node version of navsatfix. Added example launch file.
Merge pull request #8 from gsokoll/F9R-and-RTCM Change to rtcm_msgs instead of mavros_msgs.
Change to rtcm_msgs instead of mavros_msgs. This is in keeping with a similar PR for the LORD MicrosStrain NTRIP client. https://github.com/LORD-MicroStrain/ntrip_client/pull/34 where it is commented that “rtcm_msgs is a smaller dependency with support for both ROS and ROS 2 now, and preferred by some downstream dependencies like ublox.” Format of the messages are strcturally identical, with the only difference being the name of the payload (“data” in mavros vs “message” in rtcm_msgs)
Merge pull request #6 from gsokoll/gsokoll-patch-1 Add CFG_SFIMU_AUTO_MNTALG_ENA
if usb detached warn not sending to device
added guards not send to device if usb devh null
usb connection changes
added return for esf_meas warnings to not send
added guards and warnings for ubx_esf_meas inbound
Add CFG_SFIMU_AUTO_MNTALG_ENA
fix to pub full ubx_esf_meas
changed some msgs from INFO to DEBUG
renamed ubx_esf_meas_sub topic
changed calibTtag from an array to single value
uncrustify changes
uncrustify format changes
fixed wrong esf msg
added rtcm msg processing
added ubx_esf_meas full poll payload to device
added ubx_esf_meas output publishing
fixed spelling mistake
notation and spelling fixes
added initial ubx esf status code
renamed F9P usb variable to F9
fixed CFG_SFDO_LATENCY naming
Added CFG_MSGOUT_UBX_ESF* items
Added CFG_SFODO_* items
added new DYN_MODEL SFIMU_IMU_MNTALG_* cfg items
changed USb and UBX event times from 10ns to 10ms
Merge pull request #4 from gsokoll/patch-1 Add UBX_ESF message class and id’s
Add UBX_ESF message class and id’s
added ubx_rxm_out_frame for poll frame out
fixed version output
added ubx-rxm-rtcm publishing
Contributors: Geoff Sokoll, Nick Hortovanyi
0.3.5 (2022-05-24)
uncrustify changes
reverted uncrustify to ros ament default
fixed title underline
Contributors: Nick Hortovanyi
0.3.4 (2022-05-24)
uncrustify
Contributors: Nick Hortovanyi
0.3.3 (2022-05-24)
added <build_depend>pkg-configi</build_depend>
Contributors: Nick Hortovanyi
0.3.2 (2022-05-13)
updated CMAKE_CXX_STANDARD 17
Contributors: Nick Hortovanyi
0.3.1 (2022-05-13 12:43)
uncrustify format changes
Contributors: Nick Hortovanyi
0.3.0 (2022-05-13 10:26)
changes for humble
uncrustify
uncrustify
removed author element
altered transfer_queue erase algo
removed whitespace
build test changes
added ubx_nav_resetodo poll
updated define statements
Contributors: Nick Hortovanyi
0.2.3 (2021-07-25)
changed build dependencies
Contributors: Nick Hortovanyi
0.2.2 (2021-07-22 07:14)
0.2.2 build farm dependency changes
removed unused find_packages
removed unused messages
Contributors: Nick Hortovanyi
0.2.1 (2021-07-22 05:24)
updated version 0.2.1
added check for libusb
updated dependencies
Contributors: Nick Hortovanyi
0.2.0 (2021-07-20)
added ubx_nav_cov message
updated version number and email
Fixed license to Apache License, Version 2.0
Contributors: Nick Hortovanyi
0.1.0 (2021-07-11)
removed install for launch dir
Initial release
Contributors: Nick Hortovanyi