Projects

I enjoy tackling interesting projects and here are a few that I've made some limited attempt to document. As many of these were carried out purely for fun, code quality and documentation may vary enormously. You have been warned.

Photo of Word Clockie

Word Clockie A 3D printed word clock for my wife.

Word clockie is a (yet another) word clock made as a first aniversary gift to my wonderful wife, Ann-Marie. It is a spiritual successor to Clockie, a count-down clock I made when we were living far appart when we had just started going out. Instead of counting down to our next meeting, Word Clockie counts up the time since we got married.
The display in action.

Line of Life A UV+Glow-in-the-Dark Cellular-Automaton Display

Line of Life is an unconventional computer display consisting of a large, slowly rotating glow-in-the-dark drum which is 'charged up' using 120 ultraviolet LEDs. The display has been donated to the School of Computer Science at the University of Manchester and is intended to explain the principles of celular automata to random passers by.
A threeboard of SpiNNaker boards.

SpiNNer Super-Computer Wiring Guide Generator

One of the challenges of building larger versions of the SpiNNaker super computer is physically connecting the 3600 wires that join the 1200 circuit boards together. SpiNNer contains a library designed for modelling different ways of positioning the circuit boards in space in order to minimise the length of the wires required to manageable levels. A script is also provided which creates illustrated wiring guides using LaTeX.
The N3 Logo

N3: No-Nonsense Navigation Hand-Held GPS Receiver

N3 (No-Nonsense Navigation) is a handheld GPS receiver, but without all the nonsense. A toggle switch turns the device on (and off) and as soon as it has a fix, the current position is displayed on the screen. While switched on, N3 also automatically logs your journey to an SD card so you can look at it later. It can run for about 10-12 hours on a pair of AA batteries which can be changed in the middle of nowhere if neccessary.
Bingo creator screenshot.

Bingo Card Maker A First-Try with Coffee/JavaScript

A bingo card creator for teachers which turns a list of questions and answers into bingo cards including a randomised sheet for the caller which also indicates when each bingo card will win for speedy vaildation of winning cards. This one-page utility was my first try at writing something in CoffeeScript/Javascript. Please do not judge me for the code!
A small counter._

Paper 3D Game Counters

By making use of the ability of a 2D cutter/plotter to print intricate designs it is possible improve on the old two-pieces-of-card sloted 3D game counter making a design which locks together.
Heart Rate Monitor Thumbnail

Webcam Heart-Rate Monitor

When the heart beats, blood is pumped around the body causing a momentary change in skin colour. This is not visible to the human-eye but counter surprisingly is visible to a cheap webcam. Using simple signal processing techniques, the frequency at which the colour of the skin changes, and thus the heart-rate can be extracted and monitored completely non-invasive.
A(T)Tiny(85) Piano

A(T)Tiny(85) Piano Taking a Birthday Card Way Too-Far

My brother recently turned 21 and to mark the occasion it seemed appropriate to send him a birthday card. My first idea was to make him a singing birthday card which plays Morning Mood by Grieg. Since he is training as a teacher, and this particular piece of music haunted us in every assembly we attended in school, it seemed like an appropriate wind-up. As I object to buying cards (albeit with a custom tune programmed in) I set out to make one using one of the aptly-named 8-pin ATtiny85's I had lying around. Unfortunately making small, battery powered electronics is hard so I decided that if it was going to be bulky anyway it might as well feature a fully playable piano keyboard...
A segment of a ConMan config file.

ConMan Configuration-file Manager

ConMan is tool for managing dotfiles and other config files on multiple Unix systems, each requiring largely the same set of files but with minor changes in each location. The system is built on the m4 macro processor which is widely installed and reasonably powerful.
Assorted Figures

Assorted Figures

This repository contains an informal library of figures created in various ways and for various purposes which may be of use to others. These figures are typically described in TikZ, Inkscape or generated by Python (usually by outputting machine generated SVG or TikZ source).
A 3D Printer 'Gear Cube'

Makebed 3D Printer Controller

Makebed is a system comprising of a set of 3D printer control electronics and the firmware that runs on them developed as part of my 3rd Year Project while at the University of Manchester for my undergraduate Computer Science degree. The project provided improvements over the Makerbot's ageing original electronics and added features such as network connectivity and improved motor control.
The Yet Another Level Up Logo

Yet Another Level Up A FVWM-Based Window Manager

YALU is a configuration for the powerful FVWM window manager that provides a number of neat features, fully graphical configuration (and also fully text-based configuration if you preffer), reasonable performance and less torture than its predecessor: AnotherLevelUp.
A drawing of Clockie being programmed.

Clockie

Clockie is a really simple clock I made for my girlfriend, Ann-Marie, when she moved away for her master's degree. It is based on an Arduino and a simple LCD character display and features a countdown until we next meet (d'awwwww). The time (and the date of our next meeting) is set by holding it up to a web page which literally flashes the time at a light sensor on the back of the clock.
A Silhouette Portrait Cutter

Plotter Silhouette Portrait Control Library

Library for driving the Silhouette Portrait cutter/plotter under Linux (or anything else supporting pyUSB) based on observations of USB trafic generated by the official software. This may also be compatible with the Silhouette Cameo cutter but support for that device is entirely untested and unintended.
A STUMP CPU on Sillicon

Stumpy A 50-Line STUMP CPU Emulator

A small (50 line) STUMP CPU emulator written in Python along with a quick-and-dirty example "test-bench" program for running STUMP binaries.
A D-Type Latch

Livegate SVG Logic Circuit Simulator

Livegate was an attempt animating one my ridiculous zero-abstraction gate-level drawings of a processor by adding a Javascript to the original SVG. In particular, development of logic circuits is possible entirely from within Inkscape.
The SHET Logo

SHET Home Automation

SHET House Event Tunneling was a major home-automation project undertaken by myself alongside my house mates during the 2nd and 3rd years of undergrad. During those years we built a surprisingly comprehensive home automation system connecting to everything from the washing machine and lights to the house IRC channel.
Thermduino Logo

Thermduino Arduino-Powered Thermostat Timer Addon

Thermduino is a simple Arduino + Python project which I hacked together in a few days to set a rotary thermostat based on time and date.
Perentie Logo

Perentie A Simple Microcontroller Debug Monitor

Perentie is a simple, graphical CPU monitor and debugger supporting a range of architectures. It was designed during a summer of work done for the
A thumbnail of a spinnaker packet-latency heatmap.

Gollywhomper A SpiNNaker Interconnect Simulation

A simulator of the SpiNNaker million-core super computer being built at the University of Manchester. This simulator was built as part of the COMP6062b Future Multicore Systems course and investigates the effects of the newly developed circuit board to circuit board connections currently being added to SpiNNaker.
Cooking like a Boss Logo.

Recipe Grid

A tool for generating tables similar to those on Cooking for Engineers to use as recipies. It provides the underlying format for recipes on Cooking like a Boss.