Microprocessor based Design for Biomedical Applications MBE 3 – MDBA XI : Project Outlooks
Resumee of our Project Works (1) We built 4 AVR Evaluation Board Kits and used them for basic firmware projects with the ATmega8 : ● AVR-GCC, make, AVRStudio toolchains ● Firmware download via direct SPI access ● GPIO, Timer Interrupts, ISRs ● UART, Interrupt driven communication ● Analog/Digital Conversion ● Transfer of multiple channels, data packets
Resumee of our Project Works (2) We brought up 4 Monolith-EEGs : ● soldered and debugged the SMD-boards ● soldered the extension boards with SPI connectors ● understood the analog and digtial schematics (nearly ;-) ● ported the firmware to the ATmega168 ● used the FTDI UART-USB converter ICs ● investigated the bootloader-mechansim ● evaluated our designs with realtime EEG / ECG recordings
So I would say : We did a great job !
For sure, this project could be extended. Here come a few ideas ….
Possible Hardware extensions : ● an EEPROM to store configuration data ● battery driven (offline) operation: what batteries / accus ? Stepup converter ? ● wireless communication: add a bluetooth or zigbee module ● on-board data-logging: interface with a MMD / SD memory card ● new sensors: GSR/EDA, temperature, pulse, acceleration.. ● evaluate active (dry) electrodes and alternative electrode caps
The Serial Peripheral Interface Miso: master in slave out Mosi: master out slave in SCK: clock SS: slave select
SD / MMC – Interface : SPI - Bus
TWI – The Two Wire Interface (IIC Bus) SDA : serial Data SCL : serial Clock R1, R2 : Pullup Resistors on the Bus lines, devices tri-state their outputs line level goes low if any of the connected device outputs 0 START: SDA goes low during SCL high STOP: SDA goes high during SCL high
TWI – The Two Wire Interface (IIC Bus) ● only two Bus Lines needed for bidirectional communication ● Master and Slave Operation ● Device can Operate as Transmitter or Receiver ● 7-bit Address Space Allows up to 128 Different Slave Addresses ● Multi-master Arbitration Support ● Up to 400 kHz Data Transfer Speed ● Noise Suppression Circuitry Rejects Spikes on Bus Lines ● Wake-up when AVR is in sleep mode and slave address detected as ever: the AVR datasheet has the details …
TWI – example: EEPROM interface to AVR
Some Ideas for Software extensions …
Possible Software extensions at the uC (firmware) side: ● on-board filtering ( configure FIR / IIR filters for channels ) ● on-board feature extraction ( pulse rate ? ) ● Bidirectional communication : change baud- and sampling rate at runtime select relevant channels allow access to I/O-pins ( Events ? ERP-recording ? ) error detection / correction for data transfer … some of these features are already present in the p21-firmware:
Possible Software extensions at the PC (host) side: ● write our own data packet parser ● write a simple biosignal tracing and recording software in a platform independent environment (JAVA? C++ & GTK / QT / SDL ?) ● investigate algorithms for feature extraction (pattern recognition ? LDA / AR-Filter for SSVEP or μ -BCI ?)
BrainBay - extensions Configurations: ● design Biosignal protocols with midi / optical feedback Alpha / Theta Training ? REM-Detection ? Muscle Rehabilitation Training ? Extend / improve the software: ● add new modules ● remove OS-dependent parts ● improve signal handling …
Conclusions: ● This project has lots of potential for future improvements ● in the optimal case, Open Source Projects are a win-win situation I hope you enjoyed the show - have a good time and much Alpha-Activity !