Ham Radio — K4DIZ

A working amateur station in Middle Tennessee, wired into the homelab.

The Station

K4DIZCallsign
2m / 70cmBands
144.39APRS IGate freq (MHz)
24/7Unattended uptime

Amateur radio is the original decentralized network — no towers to pay, no accounts to lock you out. This station does three jobs: it feeds the national APRS network as a round-the-clock gateway, it's becoming a local crossband repeater so a handheld can reach a distant machine, and — the fun part — it bridges radio messages straight into a group chat and back.

The Hardware

Yaesu FTM-2980 APRS

A 2 m FM mobile dedicated full-time to the APRS gateway on 144.39 MHz — the always-on ears of the station.

Yaesu FTM-310DR BOT / REPEATER

C4FM/FM dual-band mobile, crossband-repeat capable — reserved for the local crossband repeater and the coming voice-command bot.

ZimaBoard + Direwolf

A fanless x86 board runs Direwolf, a software TNC decoding 1200-baud packet on 144.39 MHz — receiving, digipeating, and gating APRS between the air and the internet.

DigiRig interface

A compact sound-card + PTT link between the FTM-310DR and the ZimaBoard — the wiring for the voice bot and data modes to come.

On the Road

Two mobile rigs ride along — both with built-in APRS and GPS, so they beacon their position as they move (which is how the farm knows a truck is heading home) and let me send APRS or work the repeater from anywhere.

Yaesu FTM-400 F-250

C4FM dual-band with a color touchscreen, built-in APRS TNC and GPS — the work-truck rig.

Yaesu FTM-500 SANTA FE

The newer dual-band C4FM mobile, built-in APRS and GPS — the daily-driver rig.

What We're Doing

APRS Gateway & Digipeater LIVE

A 24/7 node in the worldwide APRS network — decoding local packets, repeating them for stations that can't reach far, and feeding them to the internet backbone.

APRS ↔ Discord Bridge LIVE

Radio text messages land in a group chat; typed replies go back out over the air — to one operator or to everyone. Delivery-confirmed. Detailed below.

Local Crossband Repeater IN PROGRESS

Linking a low-power handheld up to a distant repeater (the W4CAT machine in La Vergne) by relaying 70 cm ↔ 2 m through the home station. Radio in hand, programming underway.

Voice-Command Bot ROADMAP

Talk to the station over the air — ask for weather, homelab status, or the day's duck fact — and hear a spoken answer. Speech-to-text and text-to-speech, entirely self-hosted.

Feature: Radio Meets Chat

APRS can send text messages, but typing on a radio keypad is miserable. The phone is great at typing; the radio is great at reaching people off-grid. This bridge — a small program on the ZimaBoard, tapping the packet stream read-only — lets each do what it's good at. There are two ways to put words on the air, and APRS handles them differently.

Reaching one operator — directed & confirmed

You type a bare callsign in chat. The bridge figures out which of that person's radios is actually on the air, sends it over the internet to a gateway near them, and waits for their radio's automatic acknowledgment — retrying until it lands.

1:1 · Directed message

Bare callsign in, delivery confirmation out.

You, in #APRS Discord
Type a reply — no device suffix needed.
@km4tst roger, loud and clear
🎯
Bridge finds his live radio aprs.fi
Picks the device heard most recently — you never track which one he's using.
KM4TST → freshest = KM4TST-7 (heard 8 min ago)
via internet — APRS-IS
🌐
Injected to the APRS backbone
K4DIZ::KM4TST-7 :roger, loud and clear{07
back to the air — RF
📡
A gateway near him transmits it
His radio receives the message and auto-sends an acknowledgment.
📻
His radio acks KM4TST-7
KM4TST-7 :ack07
confirmation returns
Discord confirms delivery
✅ Delivered — KM4TST acknowledged

No ack? It retries on a decaying schedule (~5 tries over ~13 min, the APRS convention) then reports plainly that it may not have reached them. You always know.

Reaching everyone — the bulletin

A bulletin is APRS's broadcast: addressed to a bulletin line instead of a person, it appears on every listening station's board. No acknowledgment — you can't collect a receipt from "everyone" — so it's sent once and seen widely.

1:∞ · Bulletin

One message, no addressee, no ack.

You, in #APRS
@all Field day setup at the farm, 0800 Saturday
via internet — APRS-IS
🌐
Broadcast as a bulletin
K4DIZ::BLN1     :Field day setup at the farm, 0800 Saturday
📻
Every station's bulletin board
Local radios via gateways, plus everyone on the network. Sent once; no ack expected.

When someone calls you

Inbound is the mirror — and it fans out to wherever you'll notice, plus a bit of good manners:

📢
Alexa announces it aloud — by name: "message from KM4TST."
🔔
Discord pings you — an @mention that makes a sound, so only your mail is loud.
📧
Email lands — a durable copy, sender name resolved from FCC data.
🤝
Their radio gets an ack — auto-answered so the sender knows it arrived and stops retrying.

Built entirely on gear already on the network — no cloud services, no monthly fees. Python on a ZimaBoard, Direwolf, APRS-IS, and Discord, wired together.