FreeDATA/README.md

111 lines
3.1 KiB
Markdown
Raw Normal View History

2021-07-17 09:09:43 +02:00
# codec2 | FreeDATA
2021-07-17 09:26:49 +02:00
My attempt to create a free and opensource TNC with a GUI for [codec2](https://github.com/drowe67/codec2) to send data over HF channels.
The TNC itself will be completely controllable via network.
2020-12-12 20:01:57 +01:00
2021-07-17 09:09:43 +02:00
## Under development
The project is still a prototype and not usable at this time.
2021-09-12 07:38:20 +02:00
Build steps for other OS than Ubuntu are provided, but the bundle is only running on Ubuntu
2020-12-12 20:40:00 +01:00
2021-08-13 21:05:42 +02:00
## Manual Installation Ubuntu
2021-09-12 07:38:20 +02:00
### 1. Install dependencies and codec2-FreeDATA
A folder "codec2-FreeDATA" will be created in /home/[user]
codec2-FreeDATA needs codec2 to be installed within codec2-FreeDATA/tnc folder.
2021-08-07 11:01:11 +02:00
```
2021-09-12 07:38:20 +02:00
sudo apt install git build-essential cmake
2021-08-15 13:10:20 +02:00
sudo apt install npm
2021-07-23 15:30:36 +02:00
sudo apt install python3
2021-07-25 16:34:36 +02:00
pip3 install psutil
2021-08-15 13:10:20 +02:00
pip3 install crcengine
2021-08-23 18:29:58 +02:00
pip3 install ujson
2021-09-04 22:14:07 +02:00
pip3 install pyserial
2021-09-11 17:06:25 +02:00
pip3 install numpy
2021-09-12 07:38:20 +02:00
wget https://raw.githubusercontent.com/DJ2LS/codec2-FreeDATA/main/tools/install-codec2-FreeDATA.sh
chmod +x install-codec2-FreeDATA.sh
./install-codec2-FreeDATA.sh
```
### 2. starting tnc
You need to set the "--debug" option. Otherwise daemon.py is looking for precompiled binaries which causes an error
2021-08-07 11:01:11 +02:00
```
2021-09-12 07:38:20 +02:00
cd /home/[user]/codec2-FreeDATA/tnc
python3 daemon.py --debug
```
### 3. starting gui
There will be an error on startup, that "daemon" can't be found, This is because the gui is looking for precompiled tnc software. This error can be ignored, if you're running the tnc manually from source
The gui is creating a directory "codec2-FreeDATA" for saving settings in /home/[user]/.config/
```
cd /home/[user]/codec2-FreeDATA/gui
npx electron main.js
```
2021-08-13 21:05:42 +02:00
## Manual Installation macOS
### Install brew and python3
#### https://docs.python-guide.org/starting/install3/osx/
```
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew install python
2021-08-23 17:24:05 +02:00
pip3 install psutil
pip3 install crcengine
pip3 install ujson
2021-09-04 22:14:07 +02:00
pip3 install pyserial
2021-09-11 17:06:25 +02:00
pip3 install numpy
2021-09-04 22:14:07 +02:00
2021-08-13 21:05:42 +02:00
```
### Install dependencies
```
xcode-select --install
brew remove portaudio
brew install portaudio
pip3 install pyaudio
```
2021-09-11 16:30:46 +02:00
## Manual Installation Windows
### Install python3
```
Download Python from https://www.python.org/downloads/
Add Python to systempath https://www.educative.io/edpresso/how-to-add-python-to-path-variable-in-windows
Download and install pyaudio from https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio
eg.: pip install PyAudio-0.2.11-cp37-cp37m-win_amd64.whl
pip install psutil
pip install crcengine
pip install ujson
pip install pyserial
2021-09-11 17:06:25 +02:00
pip install numpy
2021-09-11 16:30:46 +02:00
python daemon.py
2021-09-11 17:06:25 +02:00
2021-09-11 16:30:46 +02:00
```
2021-08-13 21:05:42 +02:00
2021-09-11 16:30:46 +02:00
### Install nodejs
```
https://nodejs.org/en/download/
cd codec2-FreeDATA/gui
npm i
npm i electron
npx electron main.js
```
2021-08-13 21:05:42 +02:00
2021-07-17 09:16:58 +02:00
## GUI Preview
![alt text](https://github.com/DJ2LS/FreeDATA/blob/main/documentation/FreeDATA_GUI_Preview.png "GUI Preview")
## TNC Preview
![alt text](https://github.com/DJ2LS/FreeDATA/blob/main/documentation/FreeDATA_TNC_Preview.png "TNC Preview")
2021-03-15 09:44:10 +01:00
2021-09-04 20:34:05 +02:00
##
npm outdated --> list outdated npm packages
npx npm-check-updates -u --> updated all packages
npm install --> install all updated packages
## Credits
David Rowe and the FreeDV team for developing the modem and libraries
FreeDV Codec 2 : https://github.com/drowe67/codec2