Design of a portable, mobile Bluetooth Low Energy connected Electromyographic Recorder for Serious Games. More information: http://blog.multimedia-communications.net/
2. KOM – Multimedia Communications Lab 2
A quick Reminder: Goal of the Project
Analog-digital-converter
Bluetooth Low
Energy
LiPo battery
Power supply
system
Microcontroller
Mobile phone
Portable BLE connected EMG system
3. KOM – Multimedia Communications Lab
3
Agenda
Image: Jeff Victor (http://www.jeffvictor.com/images/good_bad_ugly.jpg)
4. KOM – Multimedia Communications Lab 4
Hard- and Software
•Custom PCB
•Firmware for Teensy, using
open-source libraries
•nRF8001 library
(P. Stoffregen, Adafruit)
•ADS129X library
(own work, Conor Russomano)
Android App, using
•BTLE code by Tony Dicola
•AndroidPlot (Apache 2.0 licensed)
5. KOM – Multimedia Communications Lab 5
Hard- and Software
Basic firmware was implemented
Communication over BTLE or USB
App shows data of a single channel
Offset is subtracted, gain setting
6. KOM – Multimedia Communications Lab
6
Additional Achievements
Rewrote ADS129X library for Arduino
Export of readings to .wav file
Live-display of readings
Created two Python scripts
8. KOM – Multimedia Communications Lab
8
Major Challenges
General Challenges
1.PCB Design: 4-layers, mixed-signal design, custom PSU circuit
2.Finding Arduino libraries that work on ARM
3.Getting started with Android Specific Problems
1.The RDATAC problem: cmd not accepted by ADS1298
2.The RESET pin bug: both pull-down and –up resistor
3.The CS pin bug: ADS1298 interferes with SPI when off
9. KOM – Multimedia Communications Lab
9
Mistakes & Disadvantages
No real Show-Stopper
10. KOM – Multimedia Communications Lab
10
Mistakes & Disadvantages
But…
•Low through-put of Bluetooth Low Energy
•Higher gain necessary to use full-scale of ADC
•Python not fast enough for more than a single-channel at 4 kSPS
•Signal is burried in noise and has a high offset
•Botch wire necessary to wake up Teensy from sleep mode
11. KOM – Multimedia Communications Lab
11
•Host-software in C/C++
•Optimized firmware (e.g. compression)
•Benchmark of Android BTLE stack
Optimization of Android App
•iOS App
•DSP in host-software / App
•Soft-shutdown to save battery
•Changing to ADS1299 (max. gain 24x)
•Replace Bluetooth LE with regular Bluetooth
•Designing a case
Improvements & Future Work
12. KOM – Multimedia Communications Lab
12
Acknowledgements
This work was made possible through the use of Open-Source software:
ADS129X library: Conor Russomano
nRF8001 Arduino library: Paul Stoffregen, the Adafruit team and Nordic Semiconductor
Arduino: the Arduino team
Teensy 3.1 and Teensyduino: Paul Stoffregen
Python: the Python team
Matplotlib: John Hunter, Michael Droettborn, et. al.
AndroidPlot: the AndroidPlot team
BTLEtest: Tony Dicola
OpenBCI schematics: the OpenBCI team