Project: EOGee – Sending the Analog Signal Over USB

In the first article, I showed the amplified electrooculography signals on my oscilloscope. In the second article I showed the STM32 streaming a synthesised saw-tooth wave over USB to a simple python plotting script on my Mac.

The next step was to enable the ADC on the STM32 to digitise the analog signal and send that over the USB.

Continue reading “Project: EOGee – Sending the Analog Signal Over USB”

Project: EOGee – Beginning and PCB Analogue bringup

I’ve seen some cool tricks you can do by measuring the electrical signals of the body. One of these was using electrooculography (the measurement of the electrical signals of the eye) to detect movement of the eyes.

I looked about online and found the Spiker Shield by Backyard Brains, which is a board designed to interface with Arduino and measure EEG/EOG/ECG signals but it didn’t quite match my requirements – I wanted multiple channels and I wanted to work with an ARM processor. Luckily their design is open source so I took their basic analog design and built my own digital interface.

Continue reading “Project: EOGee – Beginning and PCB Analogue bringup”

Project: MicroLit – PCB V2


A couple of things went wrong on the first PCB. Firstly, the fab I used did not support V-grooves, which meant that instead of being able to mount the BBC MicroBit vertically by snapping off the top section of the PCB, it had to mount horizontally. Secondly, I needed to include level translation so that the MicroBit (which operates at 3.3V) could talk to the LEDs (which operate at 5V).

Continue reading “Project: MicroLit – PCB V2”

Project: SpinBalance – Introduction

I don’t have a good track record with mechanical projects – anything that moves. I do much better with purely electrical devices. As soon as you have moving parts you have to deal with things like friction, backlash, wear, tolerances, inductive spikes… I don’t like any of those things. Every couple of years I forget this and think it’ll be different this time, so here is another mechanical project.

A couple of years ago while still at university I started a balancing robot project. I quickly gave up. The reason was that my robot was free standing and balanced on two wheels. There were a number of issues:

  1. The robot would run around and I didn’t have enough space of my desk to allow it to balance
  2. The programming cable would restrain the robot so I also had to unplug my programming cable each time I wanted to test it – not ideal for quick iteration
  3. It was hard to control the environment and get the motors aligned
  4. The robot could not have an external power source so had to rely on batteries

This time I am still going for a balancing robot but I am going for a rotational robot, rather than a free standing robot.


A “sketch” (Sketchy drawing)

Continue reading “Project: SpinBalance – Introduction”

Mini Project: Guitar Amplifier (old!)

Playing guitar and electronics have been two of my favourite things for a long time now. When I was about 14, I combined these two for the first time and built a pretty simply 32W amplifier. While the design is super simple, it actually has a really nice clean tone and does not distort the sound at all. It’s capable of diving an 8 ohm or 4 ohm load. Today I decided to give it a bit of a clean and check if it still worked.

Continue reading “Mini Project: Guitar Amplifier (old!)”

Project: Nixie Clock (upgrade) – SPI Bus Chip Select/GPIO Contention

As discussed in the previous article, the display is controlled by a number of shift registers. Shift registers can be controlled directly by a SPI bus, which is useful as most microcontrollers (including our ATtiny87) have a built in SPI bus peripheral. This means that writing a byte to the shift register is almost as easy as just writing a byte to a register.

Continue reading “Project: Nixie Clock (upgrade) – SPI Bus Chip Select/GPIO Contention”

Project: Nixie Clock (upgrade) – Using 74HC595 Shift Registers

My Nixie tubes have 11 active pins each: a common anode and one cathode per digit (ten in total). The anode is connected to +180V via a 47k current-limiting resistor and each cathode is connected to the collector of a high voltage bipolar transistor (MPSA42) so that current can be controlled through each of them via the base of the transistor. This gives a total of 29 transistors that need to be individually controlled (24 hour clock requires 3 possible numbers for the first digit, 10 for the second, 6 for the third and 10 for the fourth). I chose to do this by using four 8-bit shift registers, connected in series to make one, 32-bit shift register.

Continue reading “Project: Nixie Clock (upgrade) – Using 74HC595 Shift Registers”