2020-12-12 19:01:57 +00: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.
|
|
|
|
|
2020-12-12 19:40:00 +00:00
|
|
|
|
|
|
|
|
|
|
|
## 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/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-12-12 19:07:38 +00:00
|
|
|
## Setup
|
2020-12-26 09:48:53 +00:00
|
|
|
Install FreeDV-Socket-TNC directly to home folder and compile codec2 automatically
|
2020-12-12 19:08:40 +00:00
|
|
|
```
|
2020-12-26 09:48:53 +00:00
|
|
|
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
|
2020-12-12 19:08:40 +00:00
|
|
|
```
|
2020-12-12 19:07:38 +00:00
|
|
|
|
2020-12-23 20:13:30 +00:00
|
|
|
## Usage main program
|
|
|
|
```
|
|
|
|
./main.py --port 3000 --tx 1 --rx 1
|
|
|
|
```
|
|
|
|
|
|
|
|
## Usage testclient
|
|
|
|
```
|
|
|
|
./socketclient.py --port 3000 --data "BC: hello"
|
|
|
|
```
|
|
|
|
|
2020-12-12 19:07:38 +00:00
|
|
|
|
|
|
|
## Socket Commands
|
|
|
|
|
2020-12-12 19:40:36 +00:00
|
|
|
Send a simple broadcast
|
|
|
|
```
|
|
|
|
BC:<DATA>
|
|
|
|
```
|
2020-12-26 09:48:53 +00:00
|
|
|
Send an ARQ like frame which will ack the receiver for acknowledgement
|
|
|
|
```
|
|
|
|
ACK:<DATA>
|
|
|
|
```
|
2020-12-12 19:07:38 +00:00
|
|
|
|
|
|
|
|
2020-12-12 19:39:26 +00:00
|
|
|
## Other stuff
|
|
|
|
|
|
|
|
Create audio sinkhole
|
|
|
|
```
|
|
|
|
sudo modprobe snd-aloop index=1,2 enable=1,1 pcm_substreams=1,1 id=CHAT1,CHAT2
|
|
|
|
```
|
|
|
|
|