Small fixes. The modular-half-dual board is final now.
[openmind.git] / README.md
blob34989f3aceb0b1dc673634918c005b488f40b9b4
1 Disclaimer
2 ----------
3 These schematics and code are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even
4 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5 Do not build this stuff or even connect it to any living thing unless you ABSOLUTELY KNOW WHAT YOU ARE DOING!
6 (Sorry for all the shouting. Although I do not like disclaimers, I have the bad feeling one might be necessary here...
7 tell me if you know otherwise)
9 What is it?
10 -----------
11 OpenMind is a take on an open source electroencephalograph, i.e. a device to capture "brain waves" - the tiny electrical
12 signals your brain emits when working. By itself, the hardware can also be used as "just" a pretty high-resolution
13 albeit slow ADC to upgrade your arduino (imagine gaining 12 bits of resolution...). I suspect that the hardware should
14 also easily be sensible enough to directly measure muscle action potentials.
16 Introduction
17 ------------
18 This repository contains the third version of the hardware. This is a modular system: Each PCB can (depending on what
19 chip you put on it and what you want to do) measure signals on one or two channels with one (absolute) or two
20 (differential) electrodes each. The chips used are ADS129X, 24-bit ADCs with integrated AC hum filter and preamplifier
21 with differential inputs. The ADS1291 contains one, the ADS1292 two channels.
22 In a single-channel configuration one board is the digital equivalent of a conventional EEG's active electrode.
24 All these "digital active electrodes" can be connected on one SPI bus with one !CS-line per module - so a bunch of eight
25 of them can be controlled via three SPI pins and 8 !CS pins (which themselves can be multiplexed from three pins using a
26 small logic IC)
28 Electrode Connections
29 ---------------------
30 ### Electrode modes
31 In absolute mode you connect one electrode to each channel's positive (non-inverting) input, and connect the negative
32 (inverting) input to the reference signal (as denoted on the schematic/PCB).
33 In differential mode you connect one electrode to each of the two inputs of each channel and the device will measure the
34 potential between each pair.
36 ### Right-leg drive (RLD)
37 The RLD is an op-amp which is used to cancel out LF interference with the EEG signal. It works by continuously comparing
38 a reference potential (normally VDD/2) with an average of all electrode signals and driving a dedicated reference
39 electrode with the difference. This signal is very weak and thus not noticable except in the measurements.
40 Multiple devices can be cascaded by connecting their ``RLD_INV`` pins together and powering down all but one RLD. This
41 RLD's output signal is used to provide the reference voltage.
42 The active RLD can be selected at runtime, and you could even select the reference electrode at runtime from any
43 electrode connected to one of the inputs - sacrificing that one electrode.
45 ### Lead-off detection
46 The ADS12XX does contain a pretty neat lead-off-detection, which can be used to measure the connection of the electrode
47 to the skin and the connection of the RLD electrode to the skin. This could e.g. be used to signify the electrodes
48 connection status with the on-board LEDs.
50 Miscellaneous
51 -------------
52 The ``RLDIN/RLDREF`` signal can be routed to any of the device's electrodes (whatever that might be needed for) *and/or*
53 any of the ADC inputs - so you can connect some auxiliary signal to this pin and measure it with any ADC.
55 The pad on the bottom side of the board is intended to be used to surface-mount type 261k or 269k 9v battery connectors
56 (available at digikey). I did not yet physically check it, but I will as soon as I order at digikey.
58 Software/driver
59 ---------------
60 The interfacing of these ADCs is pretty straightforward. A driver for AVRs currently only supporting the ADS1194
61 (16-bit, 4ch version) can be found at https://github.com/jaseg/OpenMind-firmware
63 What to do with this?
64 ---------------------
65 Just a bunch of ideas:
67 * http://www.instructables.com/id/Animatronic-Cat-Ears/
68 * A sleep cycle-detector that wakes you up by using some LEDs to simulate dawn at *exactly* the right time
69 * A muscle-computer-interface, i.e. a device that senses when you physically move your muscles by measuring the pretty
70   strong signals your brain sends to them. For reference see William Gibson: Burning Chrome (though, in comparision to
71   the one used there, openmind is still one-way).