Raspberry Pi OS - Debian Bookworm

Note: Tested with Raspberry OS Bullseye. You may use the Debian | Ubuntu guide when using Ubuntu for Raspberry.

Please keep in mind that your raspberry may not have enough CPU power to run FreeDATA effectively. Running the TNC headless should work fine. Connecting to the headless TNC via network from FreeDATA GUI is recommended.

1. Permissions

Add user to dialout group to access serial devices without root

sudo adduser $USER dialout

logout, then log back in

2. Dependencies

sudo apt install libhamlib-utils libhamlib-dev libhamlib4 fonts-noto-color-emoji
sudo apt install git build-essential cmake npm
sudo apt install nodejs
sudo apt install python3 portaudio19-dev python3-pyaudio python3-pip python3-colorama

3. Create virtual Python environment

python3 -m venv ~/venv
~/venv/bin/pip install --upgrade pip wheel

4. Install FreeDATA

git clone https://github.com/DJ2LS/FreeDATA.git
cd FreeDATA
~/venv/bin/pip install -r requirements.txt
cd gui
npm i
cd ..

5. Install codec2

To make sure you are using the latest version of codec2, just download and compile it.

cd modem/lib
git clone https://github.com/drowe67/codec2.git
cd codec2
mkdir build_linux
cd build_linux
cmake ..
make -j4

If you want to install codec2 system-wide, please run

sudo make install

6. To run the software, open two terminal windows

cd ~/FreeDATA/modem
source ~/venv/bin/activate
python3 daemon.py

In the second terminal, run the GUI:

cd ~/FreeDATA/gui
npm start