Skip to content

Instantly share code, notes, and snippets.

View hemna's full-sized avatar
🏠
Working from home

Walter A. Boring IV hemna

🏠
Working from home
  • Appomattox, VA
View GitHub Profile
@hemna
hemna / direwatch-pi5-gpu-test.py
Created September 14, 2026 20:36
direwatch Pi 5 GPU scaling test: 400x240 to 800x480
#!/usr/bin/python3 -W ignore::SyntaxWarning
# direwatch
"""
Craig Lamparter KM6LYW, 2026, MIT Licnese
Code derived from Adafruit PIL python example
Usage:
@hemna
hemna / direwatch-pi5-debug-commands.sh
Last active September 14, 2026 19:22
direwatch Pi 5 debugging commands
#!/bin/sh
# Clean direwatch Pi 5 diagnostic run.
set -u
echo '=== stop existing direwatch processes ==='
pids=$(pgrep -f '[d]irewatch-pi5.py' || true)
if [ -n "$pids" ]; then
echo "$pids"
kill $pids || true
@hemna
hemna / direwatch-pi5.py
Last active September 14, 2026 21:33
direwatch Pi 5 pykms plane commit fix
#!/usr/bin/python3 -W ignore::SyntaxWarning
# direwatch
"""
Craig Lamparter KM6LYW, 2026, MIT Licnese
Code derived from Adafruit PIL python example
Usage:
@hemna
hemna / direwatch-pi5.py
Created September 14, 2026 18:53
direwatch Pi 5 pykms segfault fix
#!/usr/bin/python3 -W ignore::SyntaxWarning
# direwatch
"""
Craig Lamparter KM6LYW, 2026, MIT Licnese
Code derived from Adafruit PIL python example
Usage:
@hemna
hemna / direwatch-pi5-pykms-fix.txt
Created September 14, 2026 18:48
direwatch.py Pi 5 pykms segfault fix
direwatch.py Pi 5 pykms segfault fix
The crash is reported at:
req.add_plane(plane, fb, crtc, None, (0, 0, mode.hdisplay, mode.vdisplay))
The framebuffer is created as XR24, but the plane is reserved for NV12:
fb = pykms.DumbFramebuffer(card, width, height, "XR24")
plane = res.reserve_generic_plane(crtc, pykms.PixelFormat.NV12)
@hemna
hemna / direwolf-dashboard-v1.1.0-features.md
Created August 29, 2026 17:19
Direwolf Dashboard v1.1.0 — New Features Guide
@hemna
hemna / INSTALL.md
Last active July 30, 2026 15:33
APRS Chat Debug — Android install instructions

Installing APRS Chat Debug (Android)

APRS Chat Debug is a small, temporary tool for diagnosing Bluetooth (BLE) connection problems with Benlink / Benshi radios (VGC VR-N7500, VR-N7600, UV-Pro, GA-5WB, etc.).

Its only job is to reproduce the radio connection, capture a detailed debug log of every step, and let you email that log to the developer. It uses the exact same Bluetooth code as the full APRS Chat app, so whatever fails here fails there too.

It installs alongside the normal APRS Chat app — they don't conflict.

@hemna
hemna / aprs-ota-integration-proposal.md
Last active July 23, 2026 16:40
APRS OTA Integration Proposal for APRS Chat

APRS OTA Integration Proposal for APRS Chat

Author: Walt Boring IV, WB4BOR
Date: July 2025
To: Jared, K0TFU
Re: APRS OTA + APRS Chat mobile app integration


About APRS Chat

@hemna
hemna / HAMAPI_PROTOCOL_BETA.md
Last active June 3, 2026 14:07
HAMAPI Protocol Reference (BETA) - Callsign watchlist notification protocol for APRS

HAMAPI Protocol Reference (BETA)

Overview

HAMAPI is a callsign watchlist and notification service for APRS. It lets users subscribe to callsigns they want to monitor and receive periodic APRS message notifications when those callsigns are active on the network.

What it does:

@hemna
hemna / check_db.py
Created May 13, 2026 23:01
Diagnostic: show station/packet ages from direwolf-dashboard packets.db
#!/usr/bin/env python3
"""Quick diagnostic: show station and packet age from packets.db."""
import sqlite3
import time
import sys
from datetime import datetime, timezone
DB_PATH = "/tmp/direwolf-dashboard/packets.db"
if len(sys.argv) > 1:
DB_PATH = sys.argv[1]