FreeDVInterface/README.md

96 lines
2.6 KiB
Markdown
Raw Permalink Normal View History

2026-07-14 22:37:49 -04:00
### 2026:
This repository is no longer updated. [Check out modem73, a Reticulum first software modem](https://github.com/RFnexus/modem73) with performance in mind. ROBUST-1200, ROBUST 800, and ROBUST-600 have better measured performance than the DATAC1 mode
https://github.com/RFnexus/modem73
2025-07-03 22:40:53 -04:00
FreeDVInterface
-
This is a CustomInterface for Reticulum that provides a plug and play, cross-platform sound modem interface for HF radios using the FreeDV API.
It supports VOX, serial, and Hamilb PTT. The interface also provides highly configurable options for collision avoidance.
⚠ Work in progress
2025-08-11 15:47:29 -04:00
Supported modes:
| Mode name | RF bandwidth (Hz) | Payload data rate bits/s | Payload bytes/frame |
|-----------|-------------------|--------------------------|---------------------|
| datac1 | 1700 | 980 | 510 |
*From https://github.com/drowe67/codec2/blob/main/README_data.md*
2025-07-13 15:42:40 -04:00
Setup:
2025-07-03 22:40:53 -04:00
-
2025-07-13 15:42:40 -04:00
### Raspberry Pi (Zero, 4, 5) / Debian / Ubuntu
2025-07-03 22:40:53 -04:00
2025-07-13 15:42:40 -04:00
1. Build and install codec2:
```
sudo apt install git build-essential cmake
git clone https://github.com/drowe67/codec2
cd codec2
mkdir build_linux
cd build_linux
cmake ..
make
```
2025-07-03 22:40:53 -04:00
2025-07-13 15:42:40 -04:00
2. Install pre-requisites
```
sudo apt install portaudio19-dev
pip install pyaudio OR sudo apt install python-pyaudio
pip install numpy OR sudo apt install python-numpy
2025-07-03 22:40:53 -04:00
2025-07-13 15:42:40 -04:00
```
3. (Optional) install Hamlib for rigctl PTT support
```
sudo apt install libhamlib-utils
```
2025-07-03 22:40:53 -04:00
2025-07-13 15:42:40 -04:00
4. Move FreeDVInterface.py to the "interfaces" folder in your Reticulum install location
```
2025-07-13 15:51:55 -04:00
git clone https://github.com/RFnexus/FreeDVInterface.git
cd FreeDVInterface
mv FreeDVInterface.py ~/.reticulum/interfaces
2025-07-13 15:42:40 -04:00
```
5. Add a FreeDVInterface to your Reticulum config
2025-07-03 22:40:53 -04:00
2025-07-13 15:42:40 -04:00
An example config looks like this. Here we are using `rigctld` to key on / off the PTT on a ICOM-7300.
2025-07-03 22:40:53 -04:00
```
[[FreeDVInterface IC-7300]]
type = FreeDVInterface
interface_enabled = True
2025-08-11 15:47:29 -04:00
input_device = default # String or device number
output_device = default # String or device number
2025-07-03 22:40:53 -04:00
freedv_mode = datac1
tx_volume = 100
ptt_type = hamlib
hamlib_network = True
hamlib_host = localhost
hamlib_port = 4532
csma_enabled = True
```
2025-07-13 15:42:40 -04:00
### Windows
`TODO`
### Fedora
`TODO`
---
2025-07-03 22:40:53 -04:00
## Troubleshooting
> I keep seeing "Invalid sample rate"
Ensure that you have the right audio devices configured
>I'm using a single board computer like the Raspberry Pi Zero and keep seeing "ALSA lib pcm.c:8526:(send_pcm_recover) underrun occured"
Ensure that your Pi / other SBC is getting enough power and that there are no issues with the USB soundcard or other USB device connected to your radio
>