The v0.1 circuit reads a bipolar EEG signal and sends the signal out along an audio cable, for use in a smartphone,
tablet, laptop, etc.
EEG signals are difficult to work with as they are very faint, and easily interfered with by other signals, including muscle movements and mains electricity - both of which are much more powerful. Also, the interesting frequencies range between 4Hz to 32Hz (depending on the intended use), but a smartphone sound card will filter out all signals below 20Hz.
Thus, the v0.1 circuit:
amplifies the signals that comes from the electrodes, boosting them from the microvolt to the millivolt range;
uses amplitude modulation to add a 1kHz carrier tone, allowing the signal to bypass the 20Hz high-pass filter behind the phone's audio jack.
For more details of the circuit, visit the hardware repo. The circuit design files are open source: please use them, and improve upon them.
The signal can be used by any software that accepts and uses signals from an audio port. We describe, below, two apps that are in development alongside the hardware. In both cases, frequency analysis is performed on the input signal, to extract the features of the original EEG signal. There is an example of an android app that does this whole process in
2x alcohol swabs (to clean skin, electrodes following use)
1x resealable bag (to store Ten20 conductive gel)
1x bathing cap (separately)
kitchen foil (separately; to SHLD electrodes)
Please check your kit before assembly/use. You'll need a knife to cut the electrode ends and a small flat head screw driver to connect these cables ...
Check if your kit is complete :)
Braid/twist the three electrodes to reduce independent interference. Leave 20cms at the electrode end to allow flexible placement.
Prepare to attach the electrodes to the screw terminal
high quality connection (recommended; see image with yellow, red, blue leads): gently strip the ends of the electrode terminals (NOT the wires, nor at the cup end), exposing the gold contacts; OR
less antenna interference: cut the electrode wires short to mount the board (hot glue, etc.) directly to the cap
Tightly wrap the braided part of the electrodes in tin foil to further reduce signal interference
Attach the croc clip to the tin foil
Attach the jumper wire to the croc clip and the SHLD terminal on the PCB
Connect the electrodes to the screw terminal:
A 1st electrode to scalp
B 2nd electrode to scalp (order unimportant)
COM ground to ear lobe or mastoid (if measuring from back) or middle of forehead (if from front)
3.5mm audio cable into the audio jack of both the PCB and the smartphone/tablet/device (n.b. the audio cable can be temperamental -
you can check it with a regular audio signal)
Connect the battery. If your board has a blue screw terminal, the positive and negative battery
terminals are reversed. Do not use the board in this configuration.
If your board is correctly configured, the terminal labeled "+" will have flanges. If the battery terminals are
reversed, attach the battery to the terminals the wrong way around, using twist ties or coated
using the board
do NOT use icibici while your phone is connected to the mains (i.e. charging)
fill the electodes' cups with conductive gel. (Do not use the cups as scoops: they will snap.)
cleaning up after use
unplug the battery
clean the electrodes for re-use (the conductive gel promotes corrosion)
Blue screw terminal board
Running the current in reverse through the boards (e.g. by attaching a battery directly to the battery terminals on
a board with a blue screw terminal) should not harm the boards.
On 8 October 2017, we tested this
by attaching an external signal generator to a positive and negative terminal separated by a saline solution in which
the icibici electrodes were immersed: a functioning board should be able to read the signal crossing the saline
solution. We first ran current backwards through the boards. We then re-inserted the battery the right way around
and immersed the electrodes in the saline solution: they continued to correctly read the test signal.
In both early
cases, the boards did not initially read the signals correctly. After we successfully read the signals on later
boards that we had run in reverse, we re-tested the initial boards, and found that they did read the signals
correctly. We have not sought to identify why our two initial tests were unsuccessful.
If you have questions about whether your board is functioning properly, attaching it to a
signal generator like this is the cleanest test we have found so far.
Gerber, Eagle, diptrace, .asc files and BOM are here.
We've not put an open-source licence on this yet, but please treat it as such.
Xiao Mi Redmi Note: basic Android APK can either generate tone, or receive signal from board, but not both at once.
which variant for electrode preparation is better: hard, gold contacts, or shorter antenna wires?
board design: would adding less than a 1 kHz carrier tone require less power, and distort the signal less? We don't think so: we think anything less than 650 Hz would be physiologically meaningful; a higher frequency carrier signal samples the neural signal more finely. (The Nyquist rate puts a lower bound on the sample rate.) You can experiment by changing the carrier signal in software.
board design: can we simplify the circuit / make it less expensive?
PCB design: generate XYRS files to ease future production.
Basic sanity checks
As EEG signals are very faint, it can make sense to first test for stronger signals. One of the easiest ways to do this is to connect the ici·bici to a computer and analyse the incoming signal using something like Audacity or Matlab (see the code here):
electrocardiogram (ECG): attach the A and B electrodes to your chest, the COM electrode to an arm or leg, and see whether the signal looks like a heart beat;
electromyogram (EMG): this site shows various locations for electrode placement. We have placed the A and B electrodes on the jaw (the COM on the neck) to pick up gnashing of teeth.
The team is composed by an amazing and heavily heterogeneous group of people that have voluntarily contributed in many different ways. This project would not have been possible without input and help from all the fellow travellers on this journey so far. In no particular order, many thanks to: