Skip to content

PaBu04/OpenPrintSense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿงค OpenPrintSense - 3D Printed BLE Flex Sensor Glove

OpenPrintSense Banner

An open-source 3D-printed smart glove that measures finger flexion using stretch sensors and transmits data via Bluetooth Low Energy (BLE) to an Android app in real-time.

Platform Android License

๐Ÿ“– Overview

OpenPrintSense is an open-source project that combines 3D printing, hardware, and software to create a wearable finger tracking system. The key innovation is a fully 3D-printed flex sensor that uses conductive TPU filament - as the sensor bends, its electrical resistance changes, allowing precise measurement of finger flexion. Data is transmitted wirelessly via BLE to an Android smartphone.

How It Works

The 3D-printed sensor combines flexible TPU with conductive filament. When you bend your finger:

  1. The conductive filament stretches
  2. This increases the electrical resistance
  3. The microcontroller reads the resistance change via analog input
  4. The bend angle is calculated and sent to the app

Use Cases

  • ๐ŸŽฎ Gesture-based game controllers
  • ๐Ÿค– Robot hand control
  • ๐Ÿฅ Rehabilitation therapy tracking
  • ๐ŸŽต Musical instrument interfaces
  • ๐Ÿ“Š Motion capture for research

๐Ÿ”ง Hardware Requirements

Electronics

  • Microcontroller: Seeed XIAO nRF52840 Sense
  • Power: USB-C or 3.7V LiPo battery
  • Wires: For connecting sensor to microcontroller

3D Printing Materials

CAD Files

The 3D model is available in /CAD Files/OpenPrintSense.step - compatible with all major CAD software and slicers.

Wiring Diagram

3D Printed Sensor โ”€โ”€โ”ฌโ”€โ”€ A0 (Analog Input)
                    โ”‚
                    โ””โ”€โ”€ GND (with pull-down resistor)

Printing Tips

  • Print the TPU base at 230ยฐC, bed 35ยฐC
  • Print conductive filament at 250ยฐC with 105% Flow
  • Use multi-material printing or manual filament swap
  • Ensure good layer adhesion for reliable conductivity

๐Ÿ“ฑ Software Components

Arduino Firmware (/nRF52840)

  • BLE service with multiple characteristics
  • Real-time sensor reading and transmission
  • Manual calibration support via BLE
  • Unique device ID for multi-glove setups

Android App (/AndroidApp)

  • Material Design UI with dark theme
  • Real-time flex percentage display
  • Manual calibration workflow
  • Multi-language support (English/German)
  • Device ID display

๐Ÿš€ Getting Started

1. Flash the Arduino Firmware

  1. Install Arduino IDE
  2. Add Seeed nRF52 board support:
    • Go to File โ†’ Preferences
    • Add to "Additional Board URLs":
      https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
      
  3. Install "Seeed nRF52 mbed-enabled Boards" from Board Manager
  4. Select Seeed XIAO nRF52840 Sense as your board
  5. Open /nRF52840/nRF52840.ino and upload

2. Build the Android App

  1. Open /AndroidApp in Android Studio
  2. Wait for Gradle sync to complete
  3. Build and install on your Android device (API 26+)

3. Calibration

  1. Put on the glove
  2. Connect via the app
  3. Press "Start Calibration"
  4. Fully bend your finger โ†’ Press "Set Min"
  5. Fully extend your finger โ†’ Press "Set Max"
  6. Done! The app now shows accurate flex percentage

๐Ÿ“ก BLE Protocol

UUID Name Properties Description
19B10001-... Stretch Read, Notify Flex percentage (0-100%)
19B10002-... Raw Read, Notify Raw sensor value (0-1023)
19B10003-... Device ID Read Unique device identifier
19B10004-... Min Cal Read, Write Calibration min value
19B10005-... Max Cal Read, Write Calibration max value
19B10006-... Calibrated Read, Notify Calibration status

๐Ÿ“ Project Structure

OpenPrintSense/
โ”œโ”€โ”€ CAD Files/
โ”‚   โ””โ”€โ”€ OpenPrintSense.step   # 3D model for printing
โ”œโ”€โ”€ nRF52840/
โ”‚   โ””โ”€โ”€ nRF52840.ino          # Arduino firmware
โ”œโ”€โ”€ AndroidApp/
โ”‚   โ”œโ”€โ”€ app/
โ”‚   โ”‚   โ””โ”€โ”€ src/main/
โ”‚   โ”‚       โ”œโ”€โ”€ java/         # Kotlin source code
โ”‚   โ”‚       โ””โ”€โ”€ res/          # Layouts, drawables, themes
โ”‚   โ”œโ”€โ”€ build.gradle.kts
โ”‚   โ””โ”€โ”€ settings.gradle.kts
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ README.md

๐Ÿ› ๏ธ Customization

Change Device ID

Edit in nRF52840.ino:

const char* DEVICE_ID = "SG-002";  // Change for each glove

Add More Sensors

The firmware can be extended to support multiple flex sensors for full hand tracking.

๐Ÿ› Troubleshooting

Problem Solution
Upload fails Double-tap RESET button to enter bootloader mode
App can't find device Enable Bluetooth AND Location on Android
Raw value always 0 Check sensor wiring to A0 pin
Calibration not working Ensure you're connected before calibrating

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“ฌ Contact

E-Mail: mailto:kontakt@paulbuda.de


โญ If you find this project useful, please give it a star!

About

๐Ÿงค Open-source 3D-printed smart glove with BLE flex sensors. Tracks finger movements in real-time via Android app. Built with Seeed XIAO nRF52840 & Kotlin. Perfect for gesture control, robotics, rehab therapy & motion capture. Fully customizable & maker-friendly!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors