# BallonSonde Project 2023
This aim to group all ressources to create the PoC

![](./doc/prototype.jpg)

## Hardware requirements
   * a RaspberryPi Zero 1.3 with nothing more (no WiFi, no BT)
   * a RaspberryPi Camera
   * SM828 VHF/UHF radio module
   * an old and dirty RadioSonde
   * regulators 7805 or something than can have 3A
   * an homemade RC filter for 20Khz

## Software requirement
   * GNU/Linux Debian 

For the RaspberryPi
```
apt update
apt upgrade
apt install bpython3 python3-venv python3-serial python3-pip supervisor libopenjp2-7 screen imagemagick exiftool git vim nmap libjpeg-dev zlib1g-dev

cd ~
git clone https://git.vrpnet.org/HamRadio/BallonSonde


# in user mode, setup PySSTV to convert pictures in wav mode
cd ~
mkdir PySSTV
python3 -m venv PySSTV/
cd PySSTV/
source bin/activate
pip install pysstv
deactivate

pip install pynmeagps


```


## Specs to do
### Get the default shell

Should have a Serial interface on **GPIO14**(UART0_TXD) and **GPIO15**(UART0_RXD).
I'm using a cheap FTDI232, from anywhere.

### Switch the output jack of the soundcard to GPIOs

We have to play WAV files from the PySSTV converter, and put it directly in the microphone +/- input of the SA828 radio module.

By the way, we don't need stereo output, that's why I only made a single RC filter for filtering frequencies over 20Khz.

The configuration of `/boot/config.txt` will contain this line, then you can connect **GPIO12** and **GPIO13** to a stereo jack.

```
dtoverlay=audremap,pins_12_13 # for pins 12 and 13
```

## Softwares usages

### chroot-to-pi.sh
Use this script to chroot your system on another system, get a shell and do the work with the CPU on the host. This to win time in compilation, or to fix something broken.

### active_nmea.py
Due to the radiosond and default parameter, we have isolated the Sierre Wireless XM1110 GPS chip and get the NMEA via UART interface. By the way, the default parameter is set to binary, and unfortunatly, we can't read it.
That's wy we have to launch active_nmea.py, that set a PMTK command to have an output in NMEA. We have to do this each time the GPS is booting.
User crontab to do this.

### convert_ll_dec.py
This is a simple converter of decimal to hours, minutes, (seconds with 4 decimals).
Datas are parsed for insert Exim GPS datas in JPG pictures.

### read_nmea.py
This script simply get the NMEA informations.