The Egyptian coin box
Sat 5 August 2023
I have invented a new magic trick. It involves a very thin wooden box with 5 locations for coins inside, each
labelled with one of the 5 bodily senses.
A spectator places a coin inside, without telling the magician where it is. The magician
then makes a show of listening to the box, sniffing the box, etc., and successfully determines where the coin was
placed. Read more
The crank position sensor works
Sat 6 May 2023
I have now used the 3d-printed light gate as a crank
position sensor on the Wig-Wag, and the first impression is
that it works well. Read more
A quick 3d-printed light gate
Thu 4 May 2023
I need to affix a rotary encoder to my oscillating steam engine to
measure the crank rotation, so that I can plot pressure-volume diagrams from the real engine to compare to
the simulation. Rather than buy a rotary encoder,
I decided to make a light gate and slotted disc myself. I haven't done the slotted disc yet, but it will be
a pretty trivial 3d print. Read more
The KRC-2 regenerative receiver kit: a review
Tue 25 April 2023
I recently learnt about regenerative radio receivers. They
reintroduce some of the output of an amplifying transistor back into the input, to get more gain.
It's a step up from crystal radios, and not as complex as
superheterodynes. I bought a KRC-2
kit and this post is my review. Read more
Cheating at chess with a computer for my shoes
Sat 30 July 2022
I have come up with a new way to win at chess:
I have connected up a Raspberry Pi Zero in my pocket to some buttons and vibration motors in my shoes,
so that I can surreptitiously communicate with a chess engine running on the Pi. The project is called "Sockfish" because
it's a way to operate Stockfish with your socks. Read more
Do I really want a lambda calculus cyberdeck?
Wed 13 July 2022
A cyberdeck is an inconvenient portable computing device, often with a retro sci-fi aesthetic.
Lambda calculus is an inconvenient mathematical model of computing. A lambda calculus cyberdeck, therefore,
is an inconvenient device for inconvenient computing. Read more
An Arduino-based USB interface to the Psion Organiser II
Sat 5 February 2022
I built a hacky USB interface to the Psion Organiser II that
lets you send messages to it over USB serial via an Arduino Nano. It involves the organiser executing machine code stored in a string
in its BASIC-like language, and it totally abuses the CPU's bus design. But it's simple and it works. Read more
I made an adjustable loaded die
Tue 2 November 2021
I made a loaded die with a tiny servo hidden inside that can move the weight around to change the
distribution of roll probabilities. Read more
Towards a high-resolution grid of tiny electromagnets
Tue 21 September 2021
I'd like to build a high-resolution grid of tiny electromagnets. It would work a lot like an LED matrix display, except instead
of the pixels emitting light, they emit magnetic fields. I have made a small proof-of-concept, but I need help
to learn more physics to improve the strength of the field and the density of the pixels. Read more
The case for SCAMP
Thu 2 September 2021
All of the SCAMP hardware is now mounted properly inside the case, with no Arduino or breadboard required.
I'm now well into the "long tail" of tasks on this project, where it takes increasingly large amounts of time to
produce increasingly small improvements. Read more
SCAMP update
Thu 24 June 2021
I've made a bit more progress on my SCAMP CPU. I/O performance is
improved significantly since last time, the CompactFlash card now lives on a PCB instead of a breadboard, I'm
using a real (ish) serial console instead of an FTDI cable, and I have a more
permanent power supply instead of the bench power supply. Read more
SCAMP has booted up to the shell for the first time
Sun 25 April 2021
I reached another good milestone on SCAMP this week: the physical hardware booted all the way up to the shell.
Granted, it only happened once, and I couldn't type any input once it got there. But it suggests that there are
no fundamental problems with the hardware design that will prevent the computer from working, which I am very happy about. Read more
SCAMP is alive
Sun 21 March 2021
I have reached a good milestone on the SCAMP hardware: it can now execute code! It runs all the way through the
test program
correctly. Read more
Front panels for SCAMP
Sun 28 February 2021
I've put together the memory card for the SCAMP CPU, including the front panel with LEDs to show
the bus contents and address register. Read more
How to use an AT28C16 EEPROM with an Arduino Uno without a port expander
Wed 17 February 2021
The AT28C16 EEPROM stores 2048 bytes, which means to access it all you need to control 11 address lines and 8 data lines. You also need to operate
"chip enable" (pull low to enable the AT28C16), "output enable" (pull low to enable output), and "write enable" (pull low to enable
writing). That means in total you need to control 22 pins, but the Arduino Uno only has 12 general-purpose digital IO pins. Problem. Fortunately,
there are some tricks that make it workable. Read more
My second attempt at milling a PCB
Mon 15 February 2021
The day after my first attempt at milling a PCB, my new tooling
arrived (a 1 mm drill bit and a 10° engraving tool), so I had another go at making a PCB. Read more
My first attempt at milling a PCB
Fri 12 February 2021
I'm going to get most of the PCBs for SCAMP made by JLCPCB, but I'd like
to try to mill the backplane on the CNC machine because it is both large (expensive at
JLCPCB) and simple (single-sided, no vias, easy to make). Yesterday some small pieces of copper-clad
board arrived and today I had a first attempt to see what would go wrong. Read more
Making a start on the SCAMP ALU cards
Sat 6 February 2021
I'm pretty happy with the CPU design now and am ready to proceed to making it physically exist. I
am still finding the odd microcode bug, but these can be fixed at any time. I'm at least not finding any
architecture-level bugs. Read more
Progress on my TTL CPU design
Sun 24 January 2021
I want to make a CPU out of physical 74xx TTL chips. I have now implemented most of the parts using a subset of Verilog that
maps directly to TTL chips, and I wanted to write a bit about the design. Read more
Adventures in CPU design
Fri 15 January 2021
On Graham's recommendation, I recently bought an iCE40 FPGA and
have been learning a bit about how to use it. The iCE40 is good to get because there is good open-source tooling that supports it.
I was originally going to get the iCEstick evaluation board,
but there are other alternatives available more cheaply and with more logic elements. I ended up getting an iceFun
and have found it to be quite easy to use. The example projects are helpful. Read more
How to convert a 6040 CNC machine to Grbl
Wed 30 September 2020
The 6040 CNC machine comes in 2 flavours: parallel port and USB. I don't have a parallel port on the laptop I was
intending to operate it with, so I chose the USB option. This is possibly a "mistake" as the USB option uses
a proprietary USB interface board which is only compatible with Mach3
and therefore only compatible with Windows. But now that I've got it set up with Grbl, I think I prefer this system to
what I would have with a parallel port controlled by LinuxCNC. Read more
I made an optical inline fuel sensor
Mon 28 September 2020
We could automatically detect whether the racing mower is about to run out of fuel
by shining a light through a section of clear fuel hose with a sensor on the other side. The idea is
that when the fuel has disappeared the received light intensity will change, and we can detect this with a microcontroller. We can then turn on an LED on the dashboard to alert the driver
so that he makes a pit stop instead of spluttering to a halt at the opposite end of the track. Read more
Another new switch tester, test results, and thoughts on the keyboard design
Wed 15 July 2020
Just an update on the keyboard switch project. I've built the new 10-way testing machine, ran a (somewhat inconclusive) test to work out the best
thickness for the leaf springs, and thought a bit on how I'm going to design the actual keyboard. Read more
I made a macro keypad with 3d-printed switches
Mon 6 July 2020
Latest on the 3d-printed keyboard switch project: I've reached a switch design that I think is probably reliable enough,
and I've put 3 of them together to form a macro keypad just to see how it all goes together before I commit to a
full keyboard. I don't have a number for how many presses the switch lasts, other than to say that
the motor on the testing machine stopped working before the switch did (after about 250,000 presses). Read more
Keyboard switch progress & test results
Thu 25 June 2020
Status on the 3d-printable keyboard switch is that the latest test managed 110,000 presses
before failure, on the spinning cam tester. Read more
A better automatic keyboard switch tester
Sat 20 June 2020
Since breaking the last switch, I re-printed the same design in PETG
to see if it would last any longer, and it did! It reached over 100,000 presses under the gentle testing regime without
showing any failures, a big improvement over failing at 13,907. Read more
I broke my first 3D-printed keyboard switch
Tue 16 June 2020
Overnight I did my first test of a homemade keyboard switch on the automatic tester.
The spring in the switch broke after 13907 presses. That makes Martin our
competition winner, with a guess of 10000. Read more
Automatic keyboard switch tester
Sun 14 June 2020
I'm working on designing an open source 3D-printable keyboard switch at the moment,
with a view to eventually making my own mechanical keyboard using minimal off-the-shelf
components (just an Arduino, wire, and diodes, with homemade parts for switches, keycaps, and case). I have not
made a keyboard yet, but yesterday I made a device to test how many presses a switch can withstand
before it stops working. Read more
Autopatzer: my automatic chess board
Wed 6 May 2020
My automatic chess board (the "Autopatzer") has reached the point where last night I was able to
play its first online game against a real person using lichess's Boards API. Read more
Automatic chess board design
Sat 14 March 2020
Lichess has recently released a Boards API, allowing anybody to
interface a physical chess board with lichess in order to play online games using an automatic board. I previously thought about implementing my Strange
Chess Clock using an automatic board, but never got round to it. With lichess now supporting online play with an automatic board, it's hard to justify not making one! Read more
I built an antweight combat robot
Mon 27 January 2020
If you've ever seen Robot Wars or BattleBots,
you'll know what a combat robot is. An antweight combat robot is the same concept, except it has to weigh no more than 150g and fit inside a 4-inch cube. I've
built one, called "Wedge of Glory", and have my first competition this weekend! Read more
Design and Implementation of a Z80 Computer Front Panel
Tue 12 November 2019
I designed and built a front panel for my RC2014. It allows you to view
and alter the contents of memory, read and write to IO devices, and single-step through instructions.
The RC2014 backplane basically just puts the Z80 CPU pins directly on the bus, so the same panel would work
unmodified against almost any Z80-based computer, as long as you broke out the bus onto the 60-pin ribbon cable. Read more
The RC2014 Z80 Microcomputer
Mon 21 October 2019
I recently came across the RC2014. It is a simple computer sold in kit form, and using a Zilog Z80 CPU. Read more
My Arduino-based industrial process controller
Sun 1 September 2019
For my 3d metal printing project, I need the sintering furnace to stick to a pre-defined temperature
profile. Unfortunately, the controller that my furnace came with only allows you to set a constant temperature. It maintains
a constant temperature very well, but the operator frequently has to manually update the temperature in order to stick to the defined profile. Read more
How to make a rev limiter with an Arduino
Mon 22 July 2019
My racing mower has a tendency to
over-rev on long straights. To avoid damaging the engine, we have been lifting off the throttle, but a more reliable
solution would be an electronic rev limiter.
I did buy a commercial rev limiter made by AccuSpark, but was unable to fit
it to my mower because the AccuSpark unit needs access to both sides of the ignition coil, and my ignition coil
is inaccessible, inside a black box with all the other ignition electronics. So my solution was to make a rev limiter with an Arduino. Read more
My PiKon telescope hardware
Mon 3 December 2018
Since the last post I've been working on the hardware of my telescope.
I think the hardware is basically done, I just have a bit more software to write, and then need to wait for a convenient and
cloud-free night in which to try it out. Read more
What's inside an HSBC SecureKey?
Thu 12 July 2018
You've probably seen an HSBC SecureKey. It's a 2-factor authentication device for online banking.
I was given one because the previous owner had
started using the bank's smartphone app and no longer needed the SecureKey. It looks like this: Read more
My homemade ebike control panel
Fri 1 June 2018
I wrote before about dismantling the control panel from my ebike to find out how it works, and had some ideas for an improved design. Read more
Reverse engineering an ebike 3-mode PAS LED panel
Fri 11 May 2018
I bought an electric bicycle recently. It is an incredible machine, and I think everyone
should get one. The thing I never liked about cycling is how tired you get going up hills, and the
electric bicycle solves this problem without taking away any of the fun parts of cycling. A truly incredible machine. Read more
How to control a digital speedometer
Tue 12 December 2017
As part of my YX140 scooter project
(now finished)
I discovered that the scooter's speedometer is controlled digitally. There was a sensor in the original engine
which generated pulses to signal the speed of rotation of the gearbox output shaft.
The new engine has no such sensor, so I had to do a little electronics to make the speedo work. Read more
Secrets of the Medtronic MyCareLink Patient Monitor
Sun 4 December 2016
I have acquired a "Medtronic MyCareLink Patient Monitor 24950" and have been
playing with it a little this weekend. It looks like this: Read more