Firmware and Hardware for the JPL BioSleeve V2

Image from NASA-JPL. The JPL BioSleeve is a system for classifying static and dynamic hand gestures for eventual use in space suits to control robots. The BioSleeve measures forearm surface potentials via EMG and measures movement via an IMU. The version of the BioSleeve I helped to improve used a custom DAQ system to measure the forearm surface potentials and wirelessly send signals to a computer running a classifier to determine the gesture being produced.

I programmed the BioSleeve V2's new DAQ as my summer 2014 project. The custom DAQ consisted of a 16-bit ADC and a PIC32 microcontroller. I wrote the firmware for the PIC in C++ to control the ADC, sample the forearm's surface potentials, filter the measurements, and wirelessly transmit measurements to an adjacent computer. I also integrated and programmed the system's Bluetooth module and assembled the sleeve's 32 active electrodes. Further, I wrote drivers in both Python and MATLAB to integrate the new BioSleeve hardware with the existing classification software.

Further Information

I worked on this project while I was a Summer Undergraduate Research Fellow at NASA's Jet Propulsion Laboratory. JPL is known for, among other things, its Mars rovers including Sojourner, Spirit, Opportunity, and Curiosity. I interned in section 347A during Summer 2014 and worked under Dr. Chris Assad. The BioSleeve was mentioned in IEEE Spectrum and I was acknowledged in a technical review paper for my contributions. My project's abstract was included in the 2014 Caltech SURF program.

Skills and Tools Used

  • Circuit Assembly
  • Circuit Testing
  • PIC Microcontrollers, C++
  • MATLAB and Python


  • PA Space Grant Consortium: Research and Travel Grant