Inspiration
We wanted our project to improve the way people interact with digital environments. Standard 2D mechanical peripherals artificially restrict human input bandwidth, forcing complex spatial intentions through a dimensional bottleneck. We wanted to eliminate the unnecessary contact between elements and give people an opporuntity to utilize their devices from the comfort of their couch.
What it does
Magic Glove is a Wearable Human-Computer Interaction (HCI) device that transforms native spatial geometry and physical gestures into direct digital execution. It functions as low-latency, 3-Degree-of-Freedom (3DoF) spatial peripheral. Operating on a dynamic state machine, it features two core profiles:
Profile A (Spatial Mouse): Translates real-time Pitch, Roll, and Yaw data into 2D cursor movement. It utilizes fingertip electrodes as Boolean left/right clicks and a dedicated physical clutch for spatial tracking activation.
Profile B (Macro Interface): Remaps the physical inputs into programmable ASCII character outputs (e.g., 'a', 's', 'k', 'l') to automate repetitive software workflows, data entry, or gaming mechanics.
How we built it
Hardware: The core processing is handled by a Seeed Studio XIAO ESP32-S3. Spatial data is acquired via an I2C-connected MPU-6050 IMU. The actuation mechanism relies on high-sensitivity conductive nodes at the distal phalanges (fingertips) interacting with a centralized palmar grounding plane. The components are housed in a custom 3D-printed ergonomic chassis with an integrated high-density battery.
Firmware: The microcontroller is configured as a Bluetooth Low Energy Human Interface Device over GATT Profile (HOGP) utilizing the NimBLE-Arduino stack.
Kinematic Engine: The spatial tracking algorithm fuses raw angular velocity with calculated discrete angular acceleration (derivative feed-forward) to eliminate input lag and detect instantaneous movement intent. Profile switching is managed via a global interrupt controller.
Challenges we ran into
Intermittent Connectivity & System Deadlock: Physical movement during wear induced brief pin disconnections (contact bounce). This caused the synchronous read functions to wait indefinitely for a data return, resulting in a complete system deadlock.
Kinematic Input Lag: Mapping cursor displacement solely to raw angular velocity (ω) created perceptive mechanical drag, as the system could not differentiate between steady movement and intentional wrist flicks until velocity peaked.
Accomplishments that we're proud of
Software Optimization: Successfully integrated the NimBLE-Arduino stack, which significantly reduced the memory footprint and achieved the thread-safe, sub-millisecond BLE telemetry required for fluid HCI.
Deadlock Resolution: Implemented a strict 5 ms hardware timeout protocol. Unresponsive I/O packets are instantly discarded, preventing main thread blocking and ensuring continuous system execution regardless of physical contact stability.
Predictive Kinematics: Integrated discrete angular acceleration into the kinematic algorithm as a predictive feed-forward parameter, completely eliminating mechanical drag and maximizing input responsiveness.
What we learned
We used our code to find that architectural protocol selection (NimBLE vs. Bluedroid) directly dictates hardware autonomy and processing bandwidth. Furthermore, we determined that physical input interfaces reliant on biological conductivity require robust, low-level asynchronous programming to survive real-world mechanical inconsistencies.
What's next for Magic Glove
In the future, we plan to add more features, such as more sensors, easier connectivity, longer battery life, and create a more user friendly experience.
Log in or sign up for Devpost to join the conversation.