Finally, after all these years, we have reached a point where everything seems to work. That’s the 1.0.0 reference point. I would like to express my sincere gratitude to Jean-Michel Friedt for all the help that he provided.
Recent changes include:
- Build: clean on GNU Radio 3.10, with the submodules updated (Codec2-mod, micro-ecc, libm17)
- Dialogs: tidy, with hex key entry, all META types, and the decoder following the received stream
- Encoder: correct SOT/EOT/SMS messages handling, a reliable stream loop, “continuous mode” (running without external message control, basically what we had before), multi-block Text Data, and SMS up to 821 bytes
- Signing, scrambler, and AES now work end to end, and were checked independently against an external ECDSA reference, the spec’s LFSR polynomials, and Python’s
cryptographyAES - Decoder output is defined for unusable frames: Codec2 silence, chosen by listening (replacing invalid frames with zeros or inserting silence both sound worse)
- Console output is readable and consistent (a lot of cleanups)
- Categorization: we split the M17 part from Codec2
Side effects (positive!):
- Spec: the scrambler section was clarified, and the AES counter contradiction fixed
- M17_Implementations: the LSF CRC bug in
m17-coder-symis now fixed
Have fun!
Leave a Reply