Home Security Engineering Projects Research

Select Hardware and Software Projects


This section contains notes on various projects that I've spent time working. If you happen to be doing something similar, hopefully I will have saved you a couple of hours (or days) covering ground that I (or someone else) has already mapped.



This project is an experiment in robot vision (e.g. Open CV) and neural networks applied to the practical purpose of cleaning my apartment. My cat is not impressed.

Robot Control with MIT's "Scratch"

Scratch is a programming environment developed by the Lifelong Kindergarten group at MIT. It is intuitive and block-oriented and ideal for children (and adults) to get the basic concepts behind programming. In this section, I describe a rather extensive modification that I made to the Scratch programming environment in order to control robots through a simple serial protocol.

My approach at the time was to reach under the hood and modify Scratch itself directly in its native coding environment (SmallTalk in a Squeak VM). It appears that it may be easier (since Scratch 1.4) to add new buttons and extend the functionality. It also appears that the latest version of Scratch is being implemented in Javascript. However, if you feel the need to learn SmallTalk and poke around in Squeak, I have a some hints to help you get going.


Marvin is the longest-standing robot test-bed in my graveyard of robots. This robot was a favourite at my kid's school. If you are just getting into NXP "HC" series processors and you like to bare-metal program, then maybe Marvin has something you can use!

Sheldon Robot

If recent events have demonstrated that your body is too fragile to endure the vicissitudes of the world, then this is the project for you! We made a cheap telepresence robot similar to the one that Sheldon built on the Big Bang Theory. In this case, it wasn't made to avoid human contact but rather to enhance it.


My daughter's WallE robot. Edited so that it chases things. But not very well.


AVR Programming

This isn't a "project" so much as it is an exploration of working with Microchip (formerly ATMEL) AVR and ARM processors. There are lots of great websites out there that describe how to do this. These are my "notes to self". This is an ongoing endeavour.


Yet Another MAME Box (YAMB)

This project contains my notes on a MAME box that I built with my kids.

Its far from perfect. But I'm learning that perfection is an asshole who promises but never delivers. So I'm hanging out with goode enough now.