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:
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()
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.