A python/micropython based library for encoding and modulating WSPR packets in AFSK audio.
The purpose of this library is to thread-the-needle of both enabling WSPR encoding and audio modulation from PC to microcontroller while maintaining portability and readability of python. This library is optimized for embedded systems, especially micropython supported targets and platforms and small computers, not to mention Cpython and Pypy!
In practice this means we:
- Avoid floating point and math libraries and dependencies in critical sections.
- 👍 Integer math only
- 👍 NO external libraries (numpy/scipy/pandas).
- Special care for memory allocation
- 👍 Pre-computing buffer/array sizes and modifying in place
- 👎 Dynamically appending items to a list
- Single threaded, multitask friendly
- 👍👍 Asyncio
Basic command line for encoding and APRS strings to AFSK audio samples and the reverse.
- Micropython unix build instructions, and encode/decode examples via cli.
- ESP32-S3 - working around missing DAC
- TinyS3, ESP32S3 build isntructions on the TinyS3 (ESP32-S3).
- TinyC6, ESP32C6 build isntructions on the TinyC6 (ESP32-C6).
- Micropython project
- WSPR protocol documentation by Andy Talbot (G4JNT)
- WSPR 2.0 User’s Guide Very good WSPR Protocol dscription in Appendix.
- WsprSharp a C# WSPR implmentation
- WSPR Code Generator online code generator based on WsprSharp
- FSKview spectrogram for viewing frequency-shift keyed (FSK) signals in real time
- genwspr.py Python 2 WSPR encoder by Mark VandeWettering K6HX.
- genwsprcode.py Converted genwspr to python3.
- Raspberry Pi version
MIT License