Project: Vortex Ring – Introduction and Theory


Now that I have finally wrapped up EOGee/EOGlass I can focus on my next project. I decided to do something with magnetics because I wanted to build a little more applied intuition and understanding of magnetic sensors and actuators. My original plan was to investigate building my own electro-permanent magnets, because I can think of some interesting applications for a switchable magnet. However in the process of my research I came up with a new idea for a wearable communication technology.

Human Body Communication (HBC) is a catch-all term for communication methods that use the human body as a communication channel. This means that the signals are contained within the human body and do not travel through a wire or through the air. This is potentially useful in wearable devices that may need to communicate with each other, for example a smart-watch can communicate with a heart rate monitor on the user’s chest, or an accelerometer on their leg, or even a medical device like pacemaker or cochlea implant. In such a network, all devices can communicate with a central hub (e.g. smart-watch) that then communicates to the user’s phone or other device to deliver the data to the user. Advantages of this approach potentially include reduced power consumption (due to the body’s higher channel gain compared to air), reduced network congestion (as each human will constitute a separate network rather than all sharing the air), as well as increased security and/or privacy (since the signals are constrained to the user’s body).

There are two broad classes of HBC – galvanic (where current is used to transmit information) and capacitive coupling (where voltage is used to transmit information). These are described in the paper A Review on Human Body Communication: Signal Propagation Model, Communication Performance, and Experimental Issues by Zhao et al.

Galvanic and Capacitive Coupling Human Body Communication
Continue reading “Project: Vortex Ring – Introduction and Theory”

Project: EOGee – Injecting Fake Signals with FakeEyes for Frequency Analysis

In order to further characterise and test the EOGee prototypes, it is important to be able to inject known signals and measure the output. This is not trivial, as the devices are configured to measure micro-volts of signal and a normal signal generator cannot synthesising a signal of such small magnitude. Secondly, the device takes a differential measurement, and so a differential signal is required rather than a single-ended one, as most signal generators produce.

To fix this issue I designed FakeEyes, a PCB to take a 3.3V peak single ended signal and convert it into a 1700uV peak differential signal.

Continue reading “Project: EOGee – Injecting Fake Signals with FakeEyes for Frequency Analysis”

Project: EOGee – Hardware Noise Analysis

Having previously improved the drift performance of EOGlass, I decided to look a little into the sources of noise. It’s pretty clear that there is a lot of noise on the signal.

Noise on the signal

It’s actually pretty tricky to know exactly what is noise, given that I don’t really know exactly what my eyes were supposed to be doing and, even if I did, the eyes often make micro-saccades that the conscious brain isn’t aware of. If I zoom into a section that looks like I was keeping my eye relatively still, the noise turns out to be about 60 ADC counts peak-to-peak. This is equivalent to approximately 21863nVpkpk, when referred to the input (ie before amplification) (12-bit ADC, 3.3V range, gain of 2211).

I wanted to know how much of this noise was coming from the hardware, and how much was coming from the user. For this I decided to analyse the noise contributions from each stage of the signal chain. Texas Instruments have a good application note on noise analysis.

Continue reading “Project: EOGee – Hardware Noise Analysis”

Project: Recreating ShArc

I first came across “ShArc” on a twitter post. ShArc is a novel bend/shape sensor by Fereshteh Shahmiri and Paul H. Dietz that they write about in their 2020 paper, “ShArc: A Geometric Technique for Multi-Bend/Shape Sensing“.

Figure 1 from the paper shows the bendable sensor made from a stack of flexible circuit boards and the reconstructed curve that is sensed.

The sensor is made of two flexible circuit boards (“flexes”) stacked either side of multiple layers of polyimide material, which is the same material used for the flex substrate. Both flexes are constrained together at one end, and when the flexes are bent, they slide relative to each other. The topmost flex (TX Flex) has a series of transmit electrodes along its length, while the bottom most flex (RX Flex) has a series of corresponding receive electrodes along its length. As the two flexes slide relative to each other, the capacitance between each TX and RX electrode pair changes. By measuring this capacitance the system can infer the relative slide between the two flexes and in turn infer the bend radius.

Continue reading “Project: Recreating ShArc”

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”