Saturday, 11 April 2026

My Project Workflow

Projects can take a long time to bring to fruition. This means that I often have several on the go at the same time, which in turn can cause me to miss out some important steps. So I thought I'd gather all of the tips and tricks I've learned in one place as a reference.

The idea
  • scratch an itch
  • read other makers (for example on hackaday)
  • that new-fangled youtube can be useful too
Prototype
  • use a breadboard and dupont connectors for speed
  • sketch the schematic on paper as you go
  • use an llm for advice or as a search engine to find similar projects
  • plagiarise other people's designs, you might find one which does everything you need
Schematic
  • break out KiCad or similar and copy the paper schematic
  • separate subsystems and connect with labels
  • add test points (and expansion points if that makes sense)
  • use the electrical rules checker
  • rebuild the schematic on breadboard to test it
PCB Design
  • add component footprints
  • use the design rules checker
  • print the PCB at 1:1 on paper and check footprints
  • make holes in the paper with a pin and check footprints again!
  • use a ground plane and mounting holes
  • use the silk-screen for component values, labels and version information
  • add your email address (you never know)
  • use a plugin to send your design for fabrication (for example to PCBWay)
  • save the design and its firmware in version control (for example GitHub)
Board Assembly
  • don't rush!
  • add low-profile components first
  • socket everything you might want to reuse
  • solder up each subsystem and test immediately
  • clean off flux with isopropyl alcohol and a toothbrush
Post Mortem
  • if it works, document it on a blog like this one
  • if it doesn't, fix it immediately, update the version, and document it on a blog like this one
  • don't worry about anyone caring about your successes or failures!


Friday, 10 April 2026

Emulating a Commodore Chessmate

 A couple of years ago, Hackaday published a short piece on the Commodore Chessmate. As is usual with their articles, its shortness of length was more than made up by the breadth of its links. The last of these led to Hans Otten's Retro Computing page. 

(One of the few comments beneath the article is by Peter Jennings, creator of the original Microchess program, linking to his reminiscences about the Chessmate: well worth a read!)

Chessmate by Commodore

Anyway the article caught my attention because I'd had one of these as a nerdy kid. I remember opening it up, hoping to find... I don't know what, maybe a sort of PET? but not recognising many of the components; nowadays I could just Google it, and probably end up at Hans's page.

Among a wealth of other information, Hans provides ROM dumps and a memory map. I thought, should be pretty easy to write an emulation of that, and so it was. (The hardest part was probably mapping the 7-segment LEDs onto the TFT screen, which is to say: not very. Probably about a weekend in all.)

Chessmate by me

(The emulation uses r65emu, my emulator library for Arduino, running on an esp8266 connected to a TFT screen.)

Time passed and r65emu slowly improved. One update was to support other kinds of displays and keyboards besides the original TFT and PS/2. Sometime after this I decided to build a retro-modern version of the Chessmate with an anachronous mix of whatever parts I had lying around, and knocked it together on a couple of breadboards. 

I don't have a picture of that, but it was an unholy mess of wires, and languished on the side of my desk for over a year before I sat down with KiCad to turn it into something more permanent. I must have been in a rush because I made several mistakes with that PCB, getting some footprints wrong. I fixed them and parked the design, slightly depressed.

Things might have stayed like that for yet another couple of years, had I not been contacted out-of-the-blue by Liam from PCBWay who expressed interest in sponsoring r65emu. And so...
Chessmate by me and PCBWay

This uses a node32s microcontroller, push-button switches, a buzzer and 7-segment LED displays. The four status LEDs are represented by decimal points. Its software and hardware lives on GitHub.

It would be interesting to run a modern chess program on this hardware; one possible candidate is by Sergey Urusov.

(Incidentally, Michael Gardi has a much nicer modern rebuild of the Chessmate, complete with 3D-printed replica case!)