Rebuilding a 1990s MIDI Studio
A MOTU Timepiece II, a rack of E-mu and Roland modules, an Amiga 500 and an Atari STE — glued together by a headless Debian box that speaks SysEx, captures PAL video and plays MT-32 soundtracks.
Writing
A MOTU Timepiece II, a rack of E-mu and Roland modules, an Amiga 500 and an Atari STE — glued together by a headless Debian box that speaks SysEx, captures PAL video and plays MT-32 soundtracks.
Build a PS/2 keyboard to USB HID adapter around a SparkFun Pro Micro: PCB, firmware, KVM-friendly HID-only mode, and safe-mode flashing.
As AI drives down the cost of building features, the companies that win will be the ones that understand real customer value better than their competitors.
Rebuilding an Amiga 3000 from a broken motherboard using a motherboard from John Hertell
All of the mods and updates I made to my 128D to make it as useful as possible
AI can accelerate software delivery, but only when it is forced to operate inside a disciplined engineering loop.
Getting the Amiga 500 and 1200 on the net with a Wi-Fi AT modem.
ESP8266-based PID temperature controller with MQTT connectivity for IoT heating and cooling applications.
Hardware and firmware for a fun DIY audio synthesizer toy with multiple sound generation modes.
Complete network diagnostic and UPnP SOAP control documentation for 2007-era Pioneer receivers.
Adapter for using PS/2 keyboards with Commodore Amiga computers, bringing modern keyboard comfort to classic hardware.
KiCad project and firmware for a PS/2 mouse to Amiga adapter, bringing modern mouse support to classic Commodore Amiga computers.
KiCad project for a personal high-fidelity audio amplifier with complete schematic and PCB design.
ESP8266-based weather station with temperature, humidity, and lightning detection, capable of MQTT Wi-Fi and LoRa transmission.
Minimal PWM fan controller for adjustable cooling in electronic projects and enclosures.
Raspberry Pi Pico firmware for converting EGA/CGA TTL video signals to VGA, with resistor DAC output and mode switching buttons.
Building a daughterboard with GAL and 74LS74 to run the Commodore 128's Z80 processor at dot clock frequency, effectively doubling CP/M performance.
A well-designed NAS based on FreeBSD and ZFS, focused on core functionality without unnecessary features.
OpenBSD-based firewall with declarative configuration, content filtering, and VPN routing — all without editing pf.conf by hand.
KiCad plugin fork that exports PCB data as JSON for React applications, with optional LZ compression and base64 encoding.