James Stanley


Tagged: all | software | 3dprinting | electronics | cnc | cpu | science | bitcoin | puzzle | metalwork | smsprivacy | philosophy | chess | futurology | keyboard | wigwag | cryptography | cybercrime | lawnmower | magic | protohackers | banglejs | clocks | ipfs | pikon | rc2014 | steganography | tor | ricochet

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