Operating system | Windows x64 | Due to pre-compiled C/C++ bindings that currently use the Windows API for file reading and threading. Linux support under development. |
Programming environment | SARDL, Python, C/C++ | SDR entirely specified using JSON-based SARDL. Assembles pre-built configurable Python and C/C++ objects at run-time according to user SARDL specifications. |
IF sample file input source | ION SDR Standard | Parses ION metadata hierarchy to select the appropriate decoder kernel written in C++. Sample decoding is split across multiple threads using a data parallel architecture. |
Real-time sample input | Not currently supported | |
Additional sensors | None | |
Supported GNSS | Supports all civilian satnav signals (GPS, GLONASS, Galileo, BeiDou, QZSS, NavIC, SBAS) | Spreading codes defined as memory codes. Code replicas specified as an assembly of sequence objects (static, subcarrier, overlay, mux, etc.; see Gunawardena (2021)). |
Acquisition | FFT-based generic acquisition engine with configurable coherent and noncoherent integration settings | Automatically detects and implements circular vs. non-circular frequency-domain correlation based on code length. |
Tracking | Generic tracking module assembled from configurable functional blocks (e.g., carrier wipe-off, code replica, correlator, gearbox, accumulator, etc.) and a generic controller object— all defined in SARDL | Employs split-sum correlation (Gunawardena & van Graas, 2006). Always operates on a 1-ms block of samples and retires the current block before operating on the next block (no sample shifting to align with the SV time of transmission). Direct initialization of tracking objects configured for other signals from the same SV (e.g., GPS L1 C/A to L1C, L2C, and L5). |
Measurement output | Yes | CSV format. |
Availability | Versions distributed at ION conference tutorials | Versions used at ION tutorials. |