NOTE: This SDGPS release only supports operation during the following range of dates: 2019-04-07 - 2038-11-21 This is due to the choice made in resolving the 1024-week ambiguity of the GPS L1 NAV WN field.
Next release
- GNSS timestamp and StreamTime timestamp JSON wire format change
- Timestamps were previously formatted as a JSON Object of the format {"sec":1298764809,"fs":869604401089357,"as":952}
- Timestamps are now formatted as a JSON String of the format "1298764809.869604401089357952"
- For backwards compatibility, timestamps in previous format are still accepted as input to SDGPS.
- However, SDGPS will unconditionally output timestamps in the new format.
- Interface versions (type key in header) were incremented to reflect format change:
- orientation_trajectory interface - version incremented from orientation_trajectory_v1 to orientation_trajectory_v2 due to format of time key changing.
- solution interface - version incremented from solution_v5 to solution_v6 due to format of time and time_stream_samples keys changing. Not expected to require client migration, except for clients that consume SDGPS solution streams and use time key.
- wrench interface - version incremented from wrench_v1 to wrench_v2 due to time key format changing.
- Software
- Added simple-leo ionospheric model
- Pipeline migration required: Deprecated kf2 alias for inertial-kf2 node has been removed
v0.22 (Jun 9 2021)
- tee - Added new node that can be used to create "branches" off the main pipeline
- Useful to run multiple solver nodes in parallel (e.g. kf2 and simple-pvt-solver)
- listen-*-tcp - Fixed spurious assertion failure
v0.21 (Jun 8 2021)
- main: Added --node-monitor for visualizing per-node CPU usage
- plot-cooked2: Added Doppler acceleration plot
- plot-observables: Added SV elevation plot
v0.20 (May 24 2021)
- pretty-print node: Added --filter and --select options
- set-antenna-position node: Newly added
- UI enhancement: Status line is automatically truncated to terminal width to avoid artifacts
- GPS_L2C GNSS: Added ionospheric model support
- PPS subsystem refactoring
- PPS-related algorithms are now entirely separate from hardware drivers, so all hardware now has full support for:
- PPS capture into an Event stream
- PPS output with output-pps and output-receiver-pps nodes
- VCXO disciplining with generate-vcxo-waveform, gpsdo, pll-vcxo nodes
- System time capture into a Time stream
- Added new nodes for testing: mock-event-source, mock-pulse-output, pps-events-to-time-stream, print-time-at-event
- RINEX support
- observables-to-rinex
- Carrier phase output support is now present and enabled by default
- Export of GPS_L2C observables is now supported
- rinex-to-observables: Progress is now displayed on status line
- Plotting utilities
- plot_client2 GUI will now default to synchronizing limits of all X axes with matching labels
- plot-observables/plot-solution: Added support for input of an arbitrary reference trajectory; see new --reference-trajectory-* options
- Appropriate reference trajectory (e.g. fixed, freefall) is auto-detected based on initial altitude
- plot-solution: Added --frame option, supporting UVW (radial/in-track/cross-track) local coordinate system
- Appropriate coordinate system is auto-detected based on initial altitude
- plot-solution: Added RMS error annotation to plots and console output
- plot-sensors node: Now plots Time and Event streams
- plot-cooked2 node: Newly added
- plot-observables node: Added "SV count" plot
- PLOT_FILE now supports plotting from multiple nodes at once
Known issues:
- On Genesys-ZU, 3rd LED from left ("Fix indication") is always unlit
v0.19 (Apr 27 2021)
- acq: Added SDGPS_ACQ_THROTTLE_SVS environment variable override for threshold at which to reduce acquisition effort
- Usage example: SDGPS_ACQ_THROTTLE_SVS=20 sdgps read-raw-file capture1.raw --rate inf ! sylphase-usbgpsimu2-offline ! tracker
- Message printed: sylphase-usbgpsimu2-offline: acq: Threshold at which to reduce acquisition effort overridden from 8 to 20 by SDGPS_ACQ_THROTTLE_SVS environment variable.
- plot-cooked2 node: Newly added
- sylphase-usbgpsimu2-offline: Fixed CookedChecker: warning: more than half of max_stream_jitter utilized for async packet spam
- sdgps main: added --log option
v0.18 (Apr 13 2021)
- simulate-*: Added arguments to allow for randomly corrupting NAV bits for fuzz testing of decoders
- static-kf2: Added --position-ecef argument for faster startup convergence when antenna position is known a priori
v0.17.2 (Mar 8 2021)
- rinex-to-observables:
- Handle missing C/N0 observable or SIGNAL STRENGTH UNIT header by assuming a constant 40 dB-Hz
- Compute doppler from phase if D1C observable type is absent
- Allow 2-letter observation codes in order to support RINEX 3.00/3.01 files
v0.17.1 (Mar 8 2021)
- Added sdgps --version option, which outputs full SDGPS version (e.g. v0.17-0-gd73e2ecb) and exits
- pretty-print-json-file: Added utility to make viewing JSON files easier
- simulate-observables: Output ephemeris data so that simulate-observables ! observables-to-rinex works
- rinex-to-observables: Be more lenient when parsing RINEX files and give better error messages
- Immediately exit when opening a RINEX 2.xx file rather than trying to parse it as a RINEX 3.xx file
- Accept all line endings; ignore whitespace at ends of lines; ignore blank lines; ignore unknown headers
- bashrc: Added [sudo][gdb]sdgps aliases to allow for tab completion while running SDGPS with elevated permissions and/or under a debugger
- statlog: Added "statlog" functionality for gathering and jointly logging parameters from multiple nodes
- plot-raw: Rotate PSD spectrum so that it's centered on center of passband; draw LO and band edges as vertical lines
- scripts/plot_sdgps: Added Python example of utilizing output of SDGPS's PLOT_FILE= plot-to-disk functionality
- sylphase-usbgpsimu2: USB reliability improvements (expected to solve remaining issues with running SDGPS in a VM)
- Bugfix: Fixed acquisition performance degrading after startup on all receivers (broken since v0.16)
- Bugfix: observables-to-rinex: Fixed output filename being interpreted relative to SDGPS repository root rather than working directory
v0.17 (Feb 23 2021)
- rinex-to-observables and observables-to-rinex nodes: newly added; preliminary support for RINEX import/export
- generate-orbital-trajectory node: newly added
- print-solution-eme2000 node: newly added
- Bugfix: correctly handle GPS week number having rolled over
v0.16.1 (Feb 15 2021)
- README: updated to remove obsolete commands
- sylphase-usbgpsimu2: reduced USB transfer overhead
- plot-raw: fixed divide-by-zero crash if packet with all-zero samples arrives
- scripts/run_parallel_tests*: don't run more tests in parallel than there are CPU cores
v0.16 (Feb 8 2021)
- static-kf2 node: newly added
- plot-sensors node: newly added
- plot-cooked node: newly added
- plot-solution node: newly added
- scripts/analyze_solution: removed, as it's been replaced by plot-solution
- fake-gnss-outage node: newly added
- decoder node: added --max-unconfirmed-time option
- "config provider" infrastructure: newly added; see sdgps help for config strings that can be provided to simulate-* nodes
- Acquisition iteration count is now displayed in status line on all devices
v0.15 (Dec 17 2020)
- Added new ImGui/ImPlot-based plot_client2, which replaces matplotlib-based plot_client
- Updated magnetic model to WMM 2020
- kf2 node: Fixed assertion failure on startup when used with new Infix-2 hardware
- plot-observables node: Added --live option for real-time streaming plotting of observables
- plot-raw node: Added --time, --histogram, and --tone options
- sylphase-usbgpsimu2 nodes: Added --output-pps and --output-receiver-pps options
- tracker node: When using --plot to plot live correlation waveforms, waveform is now sinc-interpolated
v0.14.2 (Oct 24 2020)
- Fixes for Infix-2 support (namely, sensor axes not being rotated properly, VCXO voltage not being initialized properly)
- Added --list-devices option to sylphase-usbgpsimu2 nodes
v0.14.1 (Oct 16 2020)
- Fix udev rules on Ubuntu focal
- Fix Python shebangs for Ubuntu focal
v0.14 (Oct 13 2020)
- Include Infix-1/2 (sylphase-usbgpsimu2) support
- uhd-tx node: output PPS signal on GPIO6
- Ubuntu focal support added
- main: added --timestamp option
v0.13 (Sep 6 2020)
- Added --detrend argument to plot-observables
- Cleaned up and commented the source of plot-observables
v0.12 (Sep 5 2020)
- Changed plot_client dependency from GTK2 to GTK3 to fix plotting on Ubuntu Bionic
- Updated doc/install_deps to include packages needed for plotting
- Cleaned up README.md
v0.11 (Sep 3 2020)