A free, open-source, multi-platform application for sending files and messages, using the codec2 HF modems
Go to file
2020-12-26 10:51:49 +01:00
test added no sync option after successfull frame 2020-12-25 18:04:55 +01:00
compile_codec2.sh Add files via upload 2020-12-25 17:31:48 +01:00
install_socket_tnc.sh added setup script for auto installation 2020-12-26 10:41:10 +01:00
libcodec2.so Add files via upload 2020-12-25 18:05:13 +01:00
liblpcnetfreedv.so updated to latest version 2020-12-25 17:34:45 +01:00
LICENSE Initial commit 2020-12-12 19:57:27 +01:00
main.py added cli parameters 2020-12-23 18:25:50 +01:00
modem.py added ARQ like behavior 2020-12-25 22:55:56 +01:00
other.py external file for helper functions 2020-12-25 22:53:56 +01:00
README.md Update README.md 2020-12-26 10:51:49 +01:00
socketclient.py added cli paramters 2020-12-23 18:31:09 +01:00
static.py added ARQ like behavior 2020-12-25 22:55:56 +01:00
tnc.py added ARQ like behavior 2020-12-25 22:55:56 +01:00

FreeDV-Socket-TNC

My first attempt to learn more about FreeDV and how to create a TNC which gets data from a TCP/IP Socket.

Credits

David Rowe and the FreeDV team for developing the modem and libraries FreeDV Codec 2 : https://github.com/drowe67/codec2

This software has been heavily inspired by https://github.com/xssfox/freedv-tnc/

Setup

Install FreeDV-Socket-TNC directly to home folder and compile codec2 automatically

sudo apt install portaudio19-dev build-essential cmake
wget https://raw.githubusercontent.com/DJ2LS/FreeDV-Socket-TNC/dev/install_socket_tnc.sh -O ~/install_socket_tnc.sh
chmod +x ~/install_socket_tnc.sh
./install_socket_tnc.sh

Usage main program

./main.py --port 3000 --tx 1 --rx 1

Usage testclient

./socketclient.py --port 3000 --data "BC: hello"

Socket Commands

Send a simple broadcast

BC:<DATA>    

Send an ARQ like frame which will ask the receiver for acknowledgement

ACK:<DATA>    

Other stuff

Audio sinkhole

Send real audio without external devices or sound cards

sudo modprobe snd-aloop index=1,2 enable=1,1 pcm_substreams=1,1 id=CHAT1,CHAT2 

TNC 1

./main.py --port 3000 --tx 1 --rx 1

TNC 2

./main.py --port 3001 --tx 2 --rx 2