Project: MicroLit – PCB V1

This project ultimately just uses the power of the BBC Microbit to communicate via radio and control the LED strips, therefore this board started out purely as a passive breakout board to mount the MicroBit and connect it to the LED strip but quickly became more complex.

Continue reading “Project: MicroLit – PCB V1”


Mini Project: Single Pixel

I have an interest in capacitive touch at the moment – I have no particular project in mind but I wanted to see the current state of cap-touch solutions so that I could use it in a future project.

To test it out I made a board with a single touch pixel. I can use this board in other projects as a drop in touch solution. I decided to go with Microchip’s (formerly Atmel’s) qTouch library with their Peripheral Touch Controller (PTC).

Continue reading “Mini Project: Single Pixel”

HP2VGA: Project Write Up


This project started about two and half years ago when I took an FPGA class at MIT and the professor happened to give me an HP1662AS logic analyser that MIT were throwing out. Despite the fact that I lived in the UK and this thing is massive and weighs 20kg I took it anyway. I thought it would be a cool project to replace the cathode ray tube with a larger, LCD display. I thought I would get this done before I left the US three months later… Little did I know it was going to take me another two years (although not of continuous work). Now I am nearly done, and just in time to ship it back to the US when I move back for work.


The HP1662AS on the desk where it was left for me in MIT

Continue reading “HP2VGA: Project Write Up”

The Atmel’s Universal Serial Interface (USI) sucks for I2C

Quick Intro to I2C

Along with USART and SPI, I2C is definitely the most common interface used by a microcontroller to communicate with peripherals. In order to implement an I2C bus all you need is two open-collector collector pins, one for the SCL (clock) line and one for the SDA (data) line.  It has to be open-collector because there are times during the protocol when two devices drive the clock line at the same time which can lead to a short circuit if one device drives it high and one drives it low. This way, the bus lines are high by default due to the pull up resistors –  if a device wants a line to go low, it just shorts it to ground via an internal transistor. There is no path from VCC to GND that does not contain a high-valued resistor.

Continue reading “The Atmel’s Universal Serial Interface (USI) sucks for I2C”