Skip to content
gullradriel edited this page Feb 23, 2025 · 5 revisions

Important

This App Does not work.While it is marked as beta the Receiver has a constant stream of random characters regardless of the frequency or Modem Setting. In the code it referes to the Settings used for LCR. This app need detailled study to determine why the relative simple App that has components in many other Apps does not work.

Context

AFSK stands for Audio Frequency-Shift Keying, and is a protocol for encoding digital information into audio for transmission over radio frequencies. Its use exists within many technologies, including in a few apps in the mayhem-firmware such as APRS-RX.

This app was (until now) poorly documented and has remained in beta for a significant amount of time, relegating it to an external app to free up space in the core firmware. It is believed by most to not work at all, and some to not work as well as it should.

Main Page

The top bar of the main page of the app has configurable items that are common to many other apps, including frequency selector, AMP, LNA, VGA, and Volume. It also has a toggle for outputting data to a log file writing to AFSK.TXT in the logs directory, as well as Modem Setup.

Finally, it has a section labelled as Debug. Here the user is presented with an ever-scrolling dump of what may appear to be random characters, but are the applications attempt to decode audio frequencies into textual output using UTF8 1.

Each time the app processes a new message 2 it will change the colour of this output cycling through Red, Blue, Green, and then Light Blue. In the log file, these are simply split by new lines.

Modem Setup

This page allows for the selection of a number of presets for processing AFSK

  1. Bell202
  2. Bell103
  3. V21
  4. V23 M1
  5. V23 M2

These can be selected by scrolling the selection wheel to the desired option, and then pressing the SET button. It is also possible to manually set the Baudrate, Mark, Space, Repeat, and Serial Format. Once the user has the desired settings selected, pressing the Save button at the bottom of the screen will bring them back to the Main Page.

[1] At least, I think it's UTF-8. The printed characters of UTF-8 line up with the values that the C++ code is reading and declaring as a printed character, but at time of writing I am not familiar enough with C++ to know if it would be UTF-8 or another encoding type that has an overlap with UTF-8 such as windows 1252/latin1/etc.

[2] This is based on the code attempting to decode the audio into a byte(s) value between DEC 32/HEX 0x20/UTF-8 (SPACE) and DEC 126/HEX 0x7e/UTF-8 ~(TILDE), and printing out the corresponding UTF-8 character. Any values outside of this range (with exception to below) are placed between square brackets and printed in their HEX form.

[3] If the decoded value is DEC 127/HEX 0x7f/UTF-8(Control Character) then this is treated as the end of a message, changing the colour of the text where displayed on the main page, or breaking onto a new line in the log file.

Start here

How to collaborate
How to ask questions correctly

User manual

Developer Manual

Hardware Hacks

Clone this wiki locally