~/projects/mimu-glove

← all projects

MiMU Glove

A wireless glove that records and plays back audio with hand gestures. Bare-metal C on an STM32 (Cortex-M4), built for EECS 373.

  • C
  • STM32
  • Cortex-M4
  • bare metal
  • EECS 373
0
RTOS
6+
peripherals
3
buses
<20 ms
gesture latency

Overview

The glove reads hand motion and finger bends, recognizes gestures, and uses them to control audio: start a recording, play it back, or stop. Everything runs bare metal with no RTOS, so all peripheral timing is handled with interrupts and DMA.

inputs outputs IMU I2C flex sensors ADC microphone ADC wireless UART SD card SPI speaker DAC STM32 Cortex-M4
The STM32 talks to each part directly. Each wire is colored by its bus: I2C, ADC, UART, SPI, or DAC.

Gesture control

Sensor reads are triggered by a timer interrupt. Each sample is checked against simple thresholds, and a small state machine turns gestures into actions.

recording idle playing fist open hand swipe right swipe left
How gestures move the glove between idle, recording, and playback.

Key features

  • No RTOS: 6+ peripherals over SPI, I2C, and UART, all in bare-metal C
  • Interrupt-driven gesture recognition
  • DMA for audio sampling so the CPU stays free for gesture processing
  • Recordings saved to an SD card

What I learned

Without an RTOS, every timing decision is yours. I learned to set interrupt priorities carefully, keep handlers short, and read datasheets closely to get each peripheral working.