Thanks for visiting.
I occasionally make things that might by useful to other people. I thought it was time I shared some of them. I've also added some commentary.
Most of the code examples are on GitHub
See also my company Software Machines Ltd.
![]() |
FPGA I2S to SPDIF audio switcher, written in Amaranth HDL. |
SoC in Verilog wrapping the SERV RISC-V soft processor |
![]() |
Make your own remote web proxy server. To secure your communications and prevent hostile governments eavedropping. Or just because it is none of their business. |
![]() |
A replacement bootloader for the Arduino to allow OTA (over-the-air) programming.
Code updates can be sent to a device over a radio network and saved on an I2C EEPROM. The bootloader can then flash the processor with the new code. This allows remote updates to Arduino based radio devices.
|
![]() |
Reading the dial on an old gasmeter - using a mouse chip as a video camera.
Featured on Hackaday |
![]() |
Code for generating DXF files for a laser cutter |
![]() |
UK maps showing linguistic clusters of placenames |
|
Modified RANSAC algorithm, part of an image processing project to detect the position of a guitar neck. |
![]() |
Why it may make your code worse. |
|
Remote controlled phase controlled mains switch |
|
Monitor your houshold electricity supply Featured on Hackaday |
![]() |
Power control using an Arduino and a triac. Use all your excess solar power without having to import any. |
|
An Arduino based project to read Watt-hour data from an Elster A100C electricity meter. Featured on Hackaday |
|
A simple way to make 3D photos (red-green) with any digital camera. |
|
A very cheap and easy to make stand for a mobile phone. |
|
Reverse Engineering a commercial reversing sonar product. |







