Difference between revisions of "Programmable Chip EEG"

From OpenCircuits
Jump to navigation Jump to search
Line 15: Line 15:
  
 
== News ==  
 
== News ==  
The design is switching from LT switcher CAD (aka [http://www.nuhorizons.com/xpresstrack/ltcswitcher/ LTspice SwitcherCAD]) to EAGLE CAD, because the auto-router is excellent for open-source productivity. It will allow the design to evolve faster and with less work with a wider selection of [[PCB Manufacturers]].  
+
The design is switching from LT switcher CAD (aka [http://www.nuhorizons.com/xpresstrack/ltcswitcher/ LTspice SwitcherCAD]) to EAGLE CAD, because the auto-router is excellent for open-source productivity. It will allow the design to evolve faster and with less work with a wider selection of [[PCB Manufacturers]]. Batch PCB from sparkfun.com worked well.
  
 
The robot arm interface by [http://www.answers.com/topic/miguel-nicolelis Miguel Nicolelis]is very inspiring. He used implanted electrodes to monitor and allow monkeys to control a robot arm as if it was their own. Could the PCEEG do the same with its electrodes on the scalp. Only the future will show.
 
The robot arm interface by [http://www.answers.com/topic/miguel-nicolelis Miguel Nicolelis]is very inspiring. He used implanted electrodes to monitor and allow monkeys to control a robot arm as if it was their own. Could the PCEEG do the same with its electrodes on the scalp. Only the future will show.

Revision as of 10:18, 22 June 2008

The Programmable Chip EEG

Welcome to the PCEEG Wiki, where everyone can add to this EEG brain-computer interface!

PCEEG, What it is and why it can be the best

  • The The Programmable Chip EEG gets its name because its hardware and software can be adjusted digitally from a home pc.
  • The Programmable Chip EEG is a Modular Multi-channel electroencephalograph.
  • This can be used for a brain-computer interface with biofeedback using a flex sensor or servo to detect fingure movements.
  • The LT1168 Programmable-Gain Precision Instrumentation Amplifier is used to amplify the weak electric signals coming from the brain through electrodes attached to the scalp, and has internal protection circuitry for the user.
  • Several matched LT1114 Low Power Precision OP-Amps are used for amplification and filtering of the signals.
  • ESD Protection in LT1168 Programmable-Gain Precision Instrumentation Amplifier Chips have been chosen that fallow the human body model of esd protection this can be seen in the 1168 datasheet.
  • To reduce noise in the readout of the analog part of this circuit, a common-mode feedback is passed back into the body by the driver right leg circuit, for example, 60Hz noise from nearby A/C power wiring.
  • The analog signal prossesing board will digitize the signal and pass the data to the control board. The control board is based on the AVR Mega168 which will, further process the signals, and provide an interface to a computer.
  • we are using the AVR Mega 168 or Mega8.
  • AVR C and the AVR Mega 168 allows for a complete open source system...

News

The design is switching from LT switcher CAD (aka LTspice SwitcherCAD) to EAGLE CAD, because the auto-router is excellent for open-source productivity. It will allow the design to evolve faster and with less work with a wider selection of PCB Manufacturers. Batch PCB from sparkfun.com worked well.

The robot arm interface by Miguel Nicolelisis very inspiring. He used implanted electrodes to monitor and allow monkeys to control a robot arm as if it was their own. Could the PCEEG do the same with its electrodes on the scalp. Only the future will show.

Status

  • Editing the code of the Open EEG and Monolith EEG to be more portable and utilize avr-libc libraries more.
  • Using the open Boarduno design to prototype the design.

Hardware Overview

Here is a diagram of how the analog signal processing boards and the microprocessor board will come together. Pceeg.jpg Here is how the analog signal prossesing board will come together. Newpceeghddesign.png

Description of How it Works

Neurons in the brain are not perfectly insulated -- some of their electrical activity leaks out and causes (very faint) electrical signals on the skin.

Dry skin is an excellent insulator, so "electrode gel" (typically skin lotion or shampoo) is used to help conduct the electrical signals to the electrode. The researcher tapes the gel-coated electrodes to the skin, or uses a headband to press the electrodes through the hair against the skin. Insulated wires attached to the electrodes bring the signals to the signal processing daughter board.

The signal processing daughter board is responsible for filtering and digitizing the signals from the body. Then the signals are passed to the control board that is the motherboard. The motherboard then can pass the signal to a larger computer.

On the signal processing daughter board is an anti-aliasing filter, an amplifier, and a analog to digital converter. The instrumentation amplifier amplifies the differential analog signal on the input wires. Then the signal is digitized by a a/d converter. The a/d converter has approximately 20 bits accuracy so the signal does not have to be conditioned or filtered as much.

The "right leg driver" circuit on the daughter board is intended to decrease common mode signal. That circuit inverts the common mode signal from the instrumentation amp, sums the result from each instrumentation amp, and sends the total back to the body.

The ADCs simultaneously digitize all the analog signals (really?). The ADCs send bits of information (representing the original analog electrical signals) to the controller motherboard.

The controller board is the mother board of the system. All the signal processing daughter boards plug into the mother board. The controller board is based off the open hardware Boarduino design. The controller board includes a Atmel AVR Mega 168. The controller board can be programmed using AVR GCC.

UCschematicardunonmonolith.png Here is the circuit board of it.

PCEEG Version 1.02 Alpha 05-09-08 uCBrd.png

Partlist

Exported from PCEEG_Version_1.02_Alpha_05-09-08_uC.sch at 6/16/2008 3:41:30 PM

EAGLE Version 5.0.0 Copyright (c) 1988-2008 CadSoft

Part Value Device Package Library Sheet

B2 RB1A RB1A rectifier 1 C0 1000uf CPOL-USE5-13 E5-13 rcl 1 C1 .1uf CAPNP-5@2 C-5@1 DISCRETE 1 C2 1µF ELC-2,5 EL25B DISCRETE@2 1 C3 330uf CPOL-USE5-10.5 E5-10,5 rcl 1 C4 .1uf CAPNP-5 C-5 DISCRETE 1 C5 47µF ELC-5 EL25B DISCRETE 1 C6 .1uf CAPNP-5@2 C-5@1 DISCRETE 1 C7 .01uf CAPNP-5 C-5 DISCRETE 1 C8 .1uf CAPNP-5 C-5 DISCRETE 1 C9 47µF ELC-5 EL25B DISCRETE 1 C13 0.1uF C-US025-025X050 C025-025X050 minimidi 1 C14 0.1uF C-US025-025X050 C025-025X050 minimidi 1 D1 Green LED3MM LED3MM minimidi 1 D2 RED LED5 LED5 LED 1 IC1 78XXS 78XXS v-reg 1 IC2 ATMEGA168P ATMEGA168PROUND DIL28/3 avr 1 IC105 TMV0505S TMV0505 TMADCDC MODEEG 1 J1 2.1MMJACK 2.1MMJACK PJ-102A minimidi 1 JP1 PINHD-2X3 2X03 pinhead-ez 1 L1 22µH L-10 R-12,5 DISCRETE@2 1 L2 22µH L-10 R-12,5 DISCRETE@2 1 OK1 6N137 6N137 DIL08 optocoupler 1 OK2 6N137 6N137 DIL08 optocoupler 1 OK3 6N137 6N137 DIL08 optocoupler 1 R1 1k R-US_0207/5V 0207/5V rcl 1 R2 10k R-US_0207/5V 0207/5V rcl 1 R3 1k R-US_0207/5V 0207/5V rcl 1 R4 1k R-US_0207/5V 0207/5V rcl 1 R5 1k R-US_0207/5V 0207/5V rcl 1 R6 1k R-US_0207/5V 0207/5V rcl 1 R7 1k R-US_0207/5V 0207/5V rcl 1 R8 1k R-US_0207/5V 0207/5V rcl 1 R9 1k R-US_0207/5V 0207/5V rcl 1 S2 RESET 10-XX B3F-10XX switch-omron 1 SV1 MA03-1 MA03-1 con-lstb 1 SV2 MA09-1 MA09-1 con-lstb 1 SV3 MA03-1 MA03-1 con-lstb 1 SV4 MA03-1 MA03-1 con-lstb 1 SV7 MA06-1 MA06-1 con-lstb 1 SV8 MA08-1 MA08-1 con-lstb 1 USB.I/O MA06-1 MA06-1 con-lstb 1 X2 16.00MHz CERMOSCILL CERM_OSC digg 1

Working on some other improvements... C123 with 1uF is much too small. Use 1000uF or so instead.

Adschematicad1256devbrdnmonolith.png Here is the circuit board of it. PCEEG Version 1.34 Alpha 06-15-08 ADBrd.png

Partlist

Exported from PCEEG_Version_1.34_Alpha_06-15-08_AD.brd at 6/16/2008 1:58:25 PM

EAGLE Version 5.0.0 Copyright (c) 1988-2008 CadSoft

Part Value Package Library Position (mil) Orientation

C1 .01uf C-5 DISCRETE (3800 2950) R90 C2 .1uf C-5 DISCRETE (3550 2950) R90 C3 49uF EL25B DISCRETE (3200 3000) R270 C4 .01uf C-5 DISCRETE (3000 2750) R90 C5 10µF EL25B DISCRETE (2000 2850) R270 C6 47µF EL25B DISCRETE@2 (1700 3000) R270 C7 .01uf C-5@1 DISCRETE (1400 2950) R270 C8 .01uf C-5@1 DISCRETE (1600 2700) R90 C9 .1uf C-5@1 DISCRETE (1250 2750) R90 C10 .1uf C-5@1 DISCRETE (1100 2950) R90 C11 47uf .Tant. EL25B DISCRETE@3 (200 2450) R270 C12 .1uf C-5 DISCRETE (200 1600) R0 C13 47µF EL25B DISCRETE (150 950) R180 C14 .01uf C-5 DISCRETE (200 1250) R0 C15 100pf C-5 DISCRETE (900 1950) R270 C16 .1uf C-5 DISCRETE (700 1850) R0 C17 47µF EL25B DISCRETE (700 1650) R180 C18 .1uf C-5 DISCRETE (1750 650) R180 C19 18pf C-5 DISCRETE (2050 1550) R180 C20 18pf C-5 DISCRETE (2050 900) R180 C21 .1uf C-5 DISCRETE (3700 2050) R90 C22 .1uf C-5 DISCRETE (2950 2050) R270 C23 .001 C-5 DISCRETE (200 2700) R0 C24 .001 C-5 DISCRETE (650 2500) R180 D101 1N5818 D-10 DISCRETE (2750 2800) R90 IC3 5.0V-3.3V REG 78LXX v-reg (350 700) R90 IC201 TLC277P DIL-08 BURR (700 2850) R270 L3 22µH R-12,5 DISCRETE@2 (3450 2700) R0 Q1 7.68mhz HC49U70 crystal (2050 1200) R90 R1 100 0204V rcl (3000 3000) R90 R2 470 0204V rcl (2300 3000) R90 R3 9.1k 0204V rcl (2300 2800) R90 R4 15k 0204V rcl (2300 2600) R90 R5 10k 0204V rcl (1800 2750) R90 R6 10k 0204V rcl (1800 2550) R90 R7 100 0204V rcl (2200 550) R180 R8 100 0204V rcl (1200 400) R90 R9 100 0204V rcl (2500 2050) R180 R10 100 0204V rcl (2500 1850) R180 R11 100 0204V rcl (2500 1650) R180 R12 100 0204V rcl (2500 2250) R180 R13 100 0204V rcl (2500 1350) R180 R14 100k 0204V rcl (150 400) R90 R15 100k 0204V rcl (350 400) R90 R16 100k 0204V rcl (550 400) R90 R17 100k 0204V rcl (750 400) R90 R18 49.9 0204V rcl (600 1350) R90 R19 49.9 0204V rcl (850 1350) R90 R20 200k 0204V rcl (200 3000) R180 SV1 AIN.0-7+AINCON MA10-1 con-lstb (1700 100) R0 SV2 AINCON. jump MA03-2 con-lstb (3650 900) R180 SV3 D0-D3 MA04-1 con-lstb (400 100) R0 SV4 Digital.I/O MA09-1 con-lstb (2750 100) R0 SV5 Vref+jump MA04-2 con-lstb (3300 600) R180 SV6 Vref-jump MA03-2 con-lstb (2700 600) R180 SV7 V.REF MA03-1 con-lstb (3550 100) R0 SV8 DRL.I/O MA04-1 con-lstb (900 100) R0 SV10 High Z.jump MA03-1 con-lstb (3350 2350) R0 U$1 ADS1256 DIL28-6 brog-ads1256_#7_ (1500 1500) R270 U$2 CD40109BE DIL16 brog-cd40109be_#Done_ (3350 1600) R0 ZD 4V TO92-CLP v-reg (2500 2850) R270

Parts used in the PCEEG:

ESD Protection in 1168

Chips have been chosen that fallow the human body model of esd protection this can be seen in the 1168 datasheet.


To reduce noise in the readout of the analog part of this circuit, a common-mode feedback is passed back into the body by the driver right leg circuit. Band reject filter may also be used (to reject, for example, 60Hz noise from nearby A/C power wiring).

The analog signal prossesing board will digitise the signal and pass the data to the control board. The control board is based on the UBW which will, further process the signals, and provide an interface to a computer & lcd display.

A/D Converters

The programmable chip EEG needs an A/D converter to convert the analog signal (at the output of the instrumentation amplifier) into digital bits. We expect this project to require at least 20 bit ADC. It will amplify the signal less requiring less analog signal processing and use the more sensitive a/d converter to make up for less amplification and cause less signal attenuation.

  • $12.00 The ads1255 or ads1256 by ti is a great a2d converter it has programmable gain and digital low pass filtering with 24 bits of resolution 30KSPS. It is a 20-SSOP so it can be soldered by a hotplate or hot air rework tool.

The newest system is a dc amplifier without a high-pass, and all the low-pass filtering is digital

Electrical Isolation From the PC.

This isolates the PCEEG from the computer when used with a DC to DC converter.

DC to DC converter

The design is based on the modular eeg and monolith eeg they use a TMV0505S, but it is not available in many places. It will be replaced with NMV0505SA. This converter has a rather high output voltage (6-7 V) at very light loads. Therefore, when building the digital board measure the voltage in the +5V/3 of modular eeg designnet, e.g. at IC103 pin 8.

The voltage should be LESS than 6V. If not, you must reduce the value of R127 (near the LED), in order to present the DCDC converter with a higher load.

Optocoupler

A optocoupler by Fairchild 6N137 is used to transfer data from the microprossesor to the Rs232 converter by light.

"The MonolithEEG uses 6N137 opto-couplers which can reliably transmit data at rates above 1MBaud. This provides a simple way to higher sampling rates for the MonolithEEG"

"The ModularEEG allows the replacement of the 6N139 with the faster 6N137. Soley the resistors R125 and R130 on the digital board have to be taken out otherwise both receivers would be disabled permanently."

Software Tools

  • EAGLE CAD is being used to create the first PCB. surface mount is used to save space.
  • gEDA tools may be a option for opening this design to a wider audience.
  • Maxima a computer algebra system s used for graphing and math displays.
  • SPI interface code for a/d converters from TI for developers

How You Can Help

  1. . get the tools

Open Source Circuit Design

ideas for future work

Currently most EEGs (and EKGs) have "passive electrodes" -- it's a conductive button pressed against the skin, with a long wire that takes the faint signal to the amplifier in the box.

A few EEGs have "active electrodes" -- the amplifier is on top of the conductive button, and sends a strong analog signal down the long wire to the ADC in the box.

User:DavidCary is thinking about going one step further: put the amplifier and the ADC on the electrode, sending out digital packets to the box. Can I do all that with a single chip -- an 8-pin PSoC? Also, instead of each electrode having its own dedicated wire to the data collection box, all the PSoCs are connected in a string (or some other network), forwarding packets from one to the next, so no matter how many electrodes are connected, only about 4 wires (2 power + 2 digital data) are connected. I haven't decided yet whether it's better to have every node do both -- sample data and forward packets -- or if I should split them up, with PSoCs sampling data and sending it to a hub, and hubs (perhaps not PSoCs) forwarding data from a few local PSoCs and from other hubs. --DavidCary 08:50, 10 October 2007 (PDT)


Open source (public) results!

PHP will be used to create a database of users and what they sample and choose to share with the open source community.

The database will give statistical analysis on users recordings.

Also the extension of SETI called BIONIC could be used as a distributed library creation of artifacts and data mining.

Please contribute and make the PCEEG a great tool for researching brain computer interfaces.


See also: