Skip to content

Instantly share code, notes, and snippets.

View M0LTE's full-sized avatar

Tom M0LTE M0LTE

View GitHub Profile
@M0LTE
M0LTE / rfc-dapps-on-air-protocol.md
Last active April 22, 2024 19:09
RFC- DAPPS on-air protocol

RFC- DAPPS on-air protocol

DAPPS is "Distributed Asynchronous Packet Pub/Sub", a proposed overlay over amateur packet radio, with the intention of making it easier for application developers to leverage "the network" without having to solve many of the same problems again and again.

In a nutshell, DAPPS discards the concept of a "connected session" between two stations potentially separated by multiple unreliable hops, and instead facilitates "eventual delivery" message passing. The application interface at each end is MQTT, facilitated either by installation of a DAPPS instance alongside the existing packet node software, or perhaps in future by the node software itself.

(Its implementation can still make use of AX.25 connected sessions to pass messages between neighbour nodes, but there is no session

@M0LTE
M0LTE / userconf.txt
Created January 17, 2024 09:36
Raspberry Pi userconf
Create a file named user userconf (or userconf.txt) containing the following:
pi:$6$c70VpvPsVNCG0YR5$l5vWWLsLko9Kj65gcQ8qvMkuOoRkEagI90qi3F/Y7rm8eNYZHW8CY6BOIKwMH7a3YYzZYL90zf304cAHLFaZE0
Place userconf (or userconf.txt) plus an empty file named ssh (or ssh.txt) in the BOOT (FAT32) partition of the SD card.
Insert the SD card in the Raspberry Pi and it should boot with access to user 'pi' (password : raspberry) via SSH.
@M0LTE
M0LTE / fix-wifi.sh
Created October 2, 2023 19:25
Fix Raspberry Pi / UniFi wi-fi SSH hanging
sudo su
echo "IPQoS 0x00" >> /etc/ssh/sshd_config
sudo systemctl restart sshd
echo "IPQoS 0x00" >> /etc/ssh/ssh_config
@M0LTE
M0LTE / bpq32.cfg
Last active January 15, 2024 22:30
A minimal bpq32.cfg for fictional node MB7NAA
SIMPLE
NODECALL=MB7NAA
NODEALIAS=AANODE
LOCATOR=AA00aa
EnableM0LTEMap=1
PASSWORD=xxxxxxxx
AUTOSAVE=1
NODESINTERVAL=10
MINQUAL=10
CTEXT:
@M0LTE
M0LTE / bpq32.cfg
Created May 21, 2023 13:42
bpq32.cfg for MB7NGP
SIMPLE
NODECALL=MB7NGP
NODEALIAS=GILWEL
LOCATOR=JO01ap
PASSWORD=xxxxxxxx
AUTOSAVE=1
NODESINTERVAL=10
MINQUAL=10
IDINTERVAL=15
IDMSG:
@M0LTE
M0LTE / KISS_over_freedv_thoughts.md
Last active March 27, 2023 17:39
Idea for using FreeDV's data API as a drop-in replacement for KISS modems

KISS is a super simple framing technique for packet radio TNCs.

Simplistically, a KISS TNC can be commanded to send an AX.25 frame out of its first (or only) port by prefixing it with 0xC0 0x00. See http://www.symek.com/g/smack.html

As well as KISS over serial, BPQ can do KISS over TCP or UDP. I assume the Linux kernel can too.

FreeDV (codec2) has a data transmission API. Codec2 ships with a pair of minimalistic demo programs for transmitting and receiving arbitrary data through FreeDV via stdin/out. The transmit program takes data on stdin and outputs audio bytes to stdout. The receive program takes audio bytes on stdin and outputs the original data on stdout.

Source of the two programs:

@M0LTE
M0LTE / bpq32.cfg
Last active March 30, 2024 17:14
bpq32.cfg for GB7RDG
SIMPLE ; sets a lot of defaults
NODECALL=GB7RDG ; Node callsign
NODEALIAS=THURST ; Node alias (6 characters max)
LOCATOR=IO91lk ; Maidenhead locator
MAPCOMMENT=40m, 6m, 2m, 70cm
PASSWORD=xxxxxxxx
AUTOSAVE=1
EnableEvents=1
EnableM0LTEMap=1
#(as non-root, on a Pi 2B, Raspbian 11)
mkdir linbpq
cd linbpq
wget https://www.cantab.net/users/john.wiseman/Downloads/pilinbpq
mv pilinbpq linbpq
chmod +x linbpq
sudo setcap "CAP_NET_ADMIN=ep CAP_NET_RAW=ep CAP_NET_BIND_SERVICE=ep" linbpq
mkdir HTML
cd HTML
wget http://www.cantab.net/users/john.wiseman/Downloads/HTMLPages.zip
@M0LTE
M0LTE / DecodeMessage.cs
Created July 27, 2019 10:21
A .NET type which parses the format of UDP datagrams emitted from WSJT-X on UDP port 2237, for the Decode message type (the type emitted when WSJT-X decodes an FT8 frame)
using System;
using System.Linq;
using System.Net;
/// <summary>
/// A .NET type which parses the format of UDP datagrams emitted from WSJT-X on UDP port 2237,
/// for the Decode message type (the type emitted when WSJT-X decodes an FT8 frame)
/// </summary>
public class DecodeMessage
{
4.2V
3.7V
3.0V
5s = 21.0V -> 18.5V -> 15V
4s = 16.8V -> 14.8V -> 12V
3s = 12.6V -> 11.1V -> 9V
13.8V + 10% = 15.18V
13.8V - 10% = 12.42V