ls -la ~/projects
huginn/ — handheld cyberdeck [NEW]
pi-5-8gb
The big one: a fully custom handheld Linux deck named after Odin's raven. Pi 5 (8 GB) driving a Raspberry Pi Touch Display 2, a Pimoroni trackball wired over GPIO, and a 3D-printed enclosure modeled entirely in code — full CadQuery source, GPIO wiring map, and a complete build guide. Designed to be reproducible: anyone with a printer and a parts list can build one.
- parametric case — every dimension is a variable, not a guess
- GPIO-level integration: display, trackball, power
- documentation-first build (the tech-writer half of me insisted)
raspberry-pi-5cadquery3d-printinggpiodocumentation
pihole/ — network-wide ad blocking [NEW]
pi-3b+
A Pi 3B+ reborn as the household DNS sinkhole. Every device on the network gets ad and tracker blocking at the resolver level — no browser extensions required. Next up: Unbound as a local recursive resolver (goodbye upstream DNS providers) and a secondary Pi-hole so DNS survives a reboot.
pi-holednsnetworkingprivacy
valhalla/ — the homelab
proxmox-ve
A Proxmox VE node (Ryzen 5 5700X / RTX 3060 / 64 GB) running virtualized services. Getting here was a saga: a failing original NVMe, a BIOS update just to get the Samsung 990 Pro 4 TB detected, and the recurring boss fight of clearing leftover GPT signatures (wipefs / sgdisk) before the installer cooperates.
- n8n for workflow automation (LXC)
- Ollama serving local LLMs
- RTX 3060 GPU passthrough (in progress)
- Jellyfin media server (planned)
proxmoxdockervirtualizationlocal-AI
jarvis/ — offline voice assistant
wyoming-satellite
A fully local voice pipeline on a Pi 4B with a Google AIY Voice HAT, talking to Home Assistant on a Pi 5. faster-whisper for speech-to-text, Piper for text-to-speech, openWakeWord listening for "Hey Jarvis." Debugged a mono/stereo mic capture bug that was silently killing wake-word detection.
home-assistantraspberry-piwhisperpiper
wled/ — addressable lighting
esp32
ESP32-driven WS2811 strips with proper level-shifting and power injection. The unglamorous electronics work — clean 5V rails, logic-level conversion — that makes the pretty colors actually reliable.
esp32solderingelectronics
cyberdeck-mk1/ — pocket build
pi-zero-2w
The proof-of-concept that led to Huginn: Pi Zero 2 W, a KB2040 acting as a composite USB HID, an Xbox 360 Chatpad for keys, and a Pimoroni trackball for the pointer. Equal parts firmware puzzle and physical-fit puzzle.
rp2040usb-hidcircuitpython
ragnar/ — pen-testing companion
pi-zero-w
The Bjorn/Ragnar "CyberViking" build on a Pi Zero W with an e-ink display — a network reconnaissance toy that doubles as a lesson in how these tools work. Sorted out an e-ink rotation quirk via the shared JSON config.
securitye-inknetworking
liquidctl-pr/ — open-source contribution
upstream
Reverse-engineered support for an ASUS ROG Ryuo III 360 ARGB AIO, mapped it onto the AsusRyujin driver with the right register offsets, and prepped a pull request for the liquidctl project. My favorite kind of bug: one fix helps everyone with the same cooler.
pythonreverse-engineeringopen-source
pollinator-station/ — parametric 3D print
cadquery
A bee & butterfly hydration station modeled in code with CadQuery + trimesh and printed in PETG, including a faked 45° chamfer built from stacked extrusion slices so the insects get an easy climb out.
cadquery3d-printingpetg
--------------------------------------------------------------
# write-ups with photos and wiring diagrams are landing here project by project