Raspberry Pi OS - Debian 12 (bookworm)

This document is not up to date and requires revision.

Note: Tested with Raspberry OS based on Debian 12 (bookworm). You may use the Source - Linux 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 FreeDATA-Server headless and connect with GUI from anoher computer should work fine even on older Raspberries. Using a Raspberry Pi 4 or 5 (4GB) will have enough performance for running both server and GUI.

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

cd
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
cd

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

sudo make install

6. To run the software, open two terminal windows

Make sure that the Hamlib rigctld daemon is running before starting the modem and gui. Usage: Hamlib

cd ~/FreeDATA/modem
source ~/venv/bin/activate
./tools/run-server.sh

In the second terminal, run the GUI:

cd ~/FreeDATA/gui
npm start