Skip to content

Software Installation and Configuration

William Buddenberg edited this page Jun 8, 2025 · 4 revisions

TODO: Step-by-step instructions to get Pi OS Lite running, how to connect to it, install the relevant software, and configuration.

Preconditions

  • You're able to SSH into your Pi
  • Run sudo apt update and sudo apt upgrade -y to ensure your Pi is up to date

GPSd

Installation

sudo apt install gpsd gpsd-clients

Configuration

  1. TODO: Disable USB-auto and hard-code the GPS device file
  2. TODO: gpspipe sudo makefifo /dev/gpsd-out
  3. Make sure your GPS antenna has a fix or things will be weird
  4. Run cgps to see the raw data

Direwolf

Install

Currently the apt version is working. A newer version exists, but it has to be built from source and I've not had luck getting it working properly.

  1. Install from apt
sudo apt install direwolf

Configure

  1. TODO: Probably just copy direwolf.conf from the repo
  2. TODO: ALSA shenanigans 3: TODO: Radio-specific changes 4: TODO: APRS-specific changes

Notes

Some AX.25 stations don't support the latest version and it'll let you know in the logs when you connect to them. In the case of KM4BLG-10 it prefers version 2.0 so, I've added the following line to the bottom of direwolf.conf to speed up the initial handshake

V20 KM4BLG-10

Pat WinLink

Installation

  1. Navigate to pat releases and find the link to the latest version labeled (Raspberry Pi 64-bit) - As of writing, pat_0.17.0_linux_arm64.deb
  2. On your Pi, run wget https://github.com/la5nta/pat/releases/download/v0.17.0/pat_0.17.0_linux_arm64.deb (or whatever link you ended up with)
  3. sudo dpkg -i pat_0.17.0_linux_arm64.deb

Configuration

  1. pat configure (then close)
  2. wget https://github.com/wabudd1/EmCommPi/raw/refs/heads/main/pat/config.json
  3. Edit config.json and set your call sign, WinLink passcode, and MaidenHead locator
  4. mv config.json ./.config/pat/config.json
  5. TODO: systemd service unit

Meshtastic

  1. Do what it says on their website

But actually

  1. Activate SPI interface on your Pi with the following commands:
sudo raspi-config nonint set_config_var dtparam=spi on /boot/firmware/config.txt # Enable SPI

# Ensure dtoverlay=spi0-0cs is set in /boot/firmware/config.txt without altering dtoverlay=vc4-kms-v3d or dtparam=uart0
sudo sed -i -e '/^\s*#\?\s*dtoverlay\s*=\s*vc4-kms-v3d/! s/^\s*#\?\s*(dtoverlay|dtparam\s*=\s*uart0)\s*=.*/dtoverlay=spi0-0cs/' /boot/firmware/config.txt

# Insert dtoverlay=spi0-0cs after dtparam=spi=on if not already present
if ! sudo grep -q '^\s*dtoverlay=spi0-0cs' /boot/firmware/config.txt; then
    sudo sed -i '/^\s*dtparam=spi=on/a dtoverlay=spi0-0cs' /boot/firmware/config.txt
fi
  1. Enable I2C on your Pi
sudo raspi-config nonint set_config_var dtparam=i2c_arm on /boot/firmware/config.txt # Enable i2c_arm
  1. Add the alpha release channel to your apt sources (beta probably works, but is missing a lot of features)
echo 'deb http://download.opensuse.org/repositories/network:/Meshtastic:/alpha/Raspbian_12/ /' | sudo tee /etc/apt/sources.list.d/network:Meshtastic:beta.list
curl -fsSL https://download.opensuse.org/repositories/network:Meshtastic:alpha/Raspbian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/network_Meshtastic_alpha.gpg > /dev/null
  1. Do install
sudo apt update && sudo apt install meshtasticd -y
  1. Enable the Adafruit LoRa module configuration
sudo cp /etc/meshtasticd/available.d/lora-Adafruit-RFM9x.yaml /etc/meshtasticd/config.d
  1. TODO: config.yaml edits (or just copy the one in this repo)

Clone this wiki locally