This is part 1 of a series about building a CPU out of small components implemented in CPLD. Here's the rough outline of the series, I will update it as I write each post. The CPU is actually built and works well, so I'm looking forward to writing the later …
read moreOther articles
Better Bike Light Firmware Through Reverse Engineering
In mid-2015, I backed the “DING Bike Light” on Kickstarter. It seemed like a neat idea, Australian company, more bike light lumens more better. When it eventually arrived in mid-2017, it really lived up to the description. Awesome!
Because Eddy was riding her bike a lot more than I was …
read moreProgramming a XC9500XL CPLD with a Raspberry Pi
I have no idea why anyone would want to do this, but I have this largely-ill-conceived project in mind to make a functional CPU out of small building blocks, each implemented in a CPLD. The CPU is designed, simulated, has an assembler and a basic compiler with some simple programs …
read moreFixing a Wine compatibility bug — Part 1
I use an excellent program called Cut2D by Vectric for generating toolpaths for CNC milling, and SVG files for laser cutting. I find it much simpler to use than other programs, but still does everything I need for 2D machining. If only their more advanced programs (VCarve, Cut3D, etc) weren …
read moreZigbee packet capture
I’ve been struggling with getting the lights to work reliably. In particular one situation which is causing a lot of problems is when you turn on room, the lights should all send an “announce” ZDO. I find that the coordinator, on average, sees about 75% of them.
What this …
read moreModifying a Dillenger RPAS sensor
I got an electric conversion kit for my bike at the end of the last year. It’s fantastic -- I’m riding heaps more and loving it! But unfortunately I had a lot of difficulty making it fit my bike -- e.g. the manual mentioned “file off a thin layer …
read moreOsram Lightify REST API
I’ve made lots of progress on the home automation project. Lights, switches, groups, actions, colours, oh my!
The main part of this project is the Osram Lightify bulbs that we put in when we renovated the house. Basically very similar to the Phillips Hue but cheaper. However, when I …
read moreTwo weeks of projects: Day 12
Still really distracted by that amazing list of blogs from yesterday. Two (related) things in particular really caught my attention though and I spent a lot of time reading today:
- http://davidad.github.io/blog/2014/02/18/kernel-from-scratch/
- https://www.gitbook.com/book/0xax/linux-insides
Turns out, last time …
read moreTwo weeks of projects: Day 13
Time to talk about the home automation. I feel like this week has quickly turned into “Jim reads interesting stuff and writes about old projects while not actually making progress on those projects” but I’m OK with that. I lost a big chunk of today to other things that …
read moreTwo weeks of projects: Day 11
We arrived back from NZ first thing in the morning so the day was a bit of a write-off due to the very early start.
One of the most interesting blogs I follow posted a fantastic list of all of the best programming blogs to read. Even better, the post …
read moreTwo weeks of projects: Day 6–10
We went to New Zealand! Short trip, but lots of fun!
{% include figure.html url="/img/0*jk8KJ_OEUaAG_n4S.jpg" %}
I read “The Big Short” on the plane -- the movie was amazing and the book was just as good. I also really enjoyed “Flash Boys” so will have to check out …
read moreTwo weeks of projects: Day 5
Today felt productive but really that’s just because the things I was working on were easier. Lesson learnt!
Now I have a fully functional assembler and disassembler, and a mostly functional emulator. It can run that program from yesterday.
I spent a long time talking with some friends last …
read moreTwo weeks of projects: Day 4
Today was mostly spent on the CPU project again. With the lexer and parser done yesterday I pretty much finished the assembler. I’m still really slow in Go but it’s getting better.
Some background on the CPU design:
- It has 6 8-bit registers, A-F
- A is the accumulator …
Two weeks of projects: Day 3
First weekday and the first deviation from the project list while I spend time learning Go. This of course meant setting up a dev environment, so down the Emacs Lisp rabbithole. All set up now though and so far the Go+Emacs set up is probably one of the nicest …
read moreTwo weeks of projects: Day 2
Today I went sailing -- practice day for the upcoming CYCA Winter Series. There’s no such thing as a bad day on the harbour and today was no exception.

OK, I didn’t actually go up the mast today -- that photo is from a while ago. I did spend a …
read moreTwo weeks of projects
After over seven years there, Friday was my last day at Google. I’m going to be starting at my new job in two weeks time, so that gives me 16 days (over a million seconds!) of project time. I’ve been getting my workbench set up over the past …
read moreTwo weeks of projects: Day 1
After the leaving drinks and a big sleep-in it was a bit of a slow start. The garden got the first bit of attention -- a pair of Hardenbergias to grow up the pergola outside.

Then we spent a bunch of time looking at shelves for under the stairs. In the …
read more