Hardware

ROMBO

Somewhere near the start of our adventure, Rich showed Ed his UK101 emulator (written in Java) and gave away the existence of ROMBO - an i2c project, nicely boxed and with a handy user interface, which can emulate an EEPROM up to 2k in size, or program one. A recent upgrade allows it to program larger EEPROMs - up to 32k. Here's a before-and-after with slightly disconcerting perspective:

Serial Busses

Rich has a fondness for the i2c protocol, and coincidentally quite a collection of i2c peripheral devices. Before we bought a pair of the wonderful USB-I2C adaptors, he was able to drive his ROMBO device using a serial-i2c board he'd made up, which was in turn driven from a USB-serial adaptor. That was effective, but not efficient. With the new adaptors, we can drive i2c from python - like this unsophisticated example:

import serial
ser = serial.Serial( "/dev/ttyUSB0", 19200, timeout=1, stopbits=serial.STOPBITS_TWO)
while 1:
   ser.write( "\x5A\x10\x00\x77")
   raw_input('Press Enter...')
   ser.write( "\x5A\x10\x01\x77")
   raw_input('Press Enter...')
ser.close()

Working with PCBs

Our journey has taken us from breadboard and stripboard, through verowire, to manufactured PCBs

The Level 1B design has over 200 connections which would have been a long slog with verowire, and as a double-sided PCB it has well over 100 vias, which we felt was beyond our patience for drilling.

So, we didn't think very hard about etching our own PCBs - we went with PCBPool although we also considered PCB Train - there wasn't much to choose between them, but PCB Pool had a slightly quicker turnaround (at a slightly higher price) and we wanted to have everything delivered before Christmas.

As it turned out, soldering up each PCB took only a few hours and worked well - we were up and running within a week.

Notes on PCB construction and a complete parts list can be found here.