.github | ||
documentation | ||
gui | ||
test | ||
tnc | ||
tools | ||
.gitignore | ||
.stignore | ||
CMakeLists.txt | ||
LICENSE | ||
README.md |
FreeDATA
My attempt to create a free and open-source TNC with a GUI for codec2 with the idea of sending messages and data from one network based application.
Under development
Please keep in mind, that this project is still a prototype with many issues which need to be solved. Build steps for other OS than Ubuntu are provided, but not fully working, yet.
Please check the 'Releases' section for downloading nightly builds
Preview
Credits
- David Rowe and the FreeDV team for developing the modem and libraries - FreeDV Codec 2 : https://github.com/drowe67/codec2
- xssfox, her repository helped me a lot in an early stage of development - xssfox : https://github.com/xssfox/freedv-tnc
- Wolfgang, for lending me his radio, so I'm able to do real hf tests
Running the Ubuntu app bundle
Download the latest developer release from the releases section, unpack it and just start the ".AppImage file". No more dependencies
Installation
Please check the wiki for installation instructions
Unit Tests
The following tests cover some TNC functionality and the interface to codec2:
- Name:
audio_buffer
Tests the thread safety of the audio buffer routines. - Name:
resampler
Tests FreeDATA audio resampling from 48KHz to 8KHz. - Name:
tnc_state_machine
Tests TNC transitions between states. - Name:
helper_routines
Tests various helper routines. - Name:
py_highsnr_stdio_P_P_multi
Tests a high signal-to-noise ratio (good quality) audio path using multiple codecs. (Pure python.) - Name:
py_highsnr_stdio_P_P_datacx
Tests a high signal-to-noise ratio audio path using multiple individual codecs. - Name:
py_highsnr_stdio_P_C_datacx
Tests a high signal-to-noise ratio audio path using multiple individual codecs. - Name:
py_highsnr_stdio_C_P_datacx
Tests a high signal-to-noise ratio audio path using multiple individual codecs. - Name:
highsnr_stdio_P_C_single
Tests compatibility with FreeDATA's transmit and freedv's raw data receive. - Name:
highsnr_stdio_C_P_single
Tests compatibility with freedv's raw data transmit and FreeDATA's receive. - Name:
highsnr_stdio_P_P_single
Tests a high signal-to-noise ratio audio path using multiple codecs. (Requires POSIX system.) - Name:
highsnr_stdio_P_P_multi
Tests a high signal-to-noise ratio audio path using multiple codecs. (Requires POSIX system.)
The following tests can not currently be run with Github's pipeline as they require the ALSA dummy device kernel module to be installed. They also do not perform reliably. These tests are slowly being replaced with equivalent pipeline-compatible tests.
- Name:
highsnr_virtual1_P_P_single_alsa
Tests a high signal-to-noise ratio audio path using a single codec directly over an ALSA dummy device. - Name:
highsnr_virtual2_P_P_single
Tests a high signal-to-noise ratio audio path using a single codec over an ALSA dummy device. - Name:
highsnr_virtual3_P_P_multi
Tests a high signal-to-noise ratio audio path using multiple codecs over an ALSA dummy device. - Name:
highsnr_virtual4_P_P_single_callback
- Name:
highsnr_virtual4_P_P_single_callback_outside
- Name:
highsnr_virtual5_P_P_multi_callback
- Name:
highsnr_virtual5_P_P_multi_callback_outside
- Name:
highsnr_ARQ_short