Maestro - Finger Mounted Input Device to Control the Cursor.




Maestro is wearable input device using the orientation of the finger. Wearable small devices on the finger has been investigated to provide easy access to PC and surrounding environment (NailO, HandSight). Maestro enables user to do pointing and scrolling based on the orientation of the finger and contact between fingers.


This Instructable was made as part of the CS graduate course "Tangible Interactive Computing" at the University of Maryland, College Park taught by Professor Jon Froehlich. Please see for more details.


Step 1: 3D Printing the Rings

To mount the components in Maestro, rings are used. Download the stl file and print it with 3D printer.

Step 2: Connect IMU Sensor Stick to Arduino

To mount the circuit to the finger, the circuit should be small. Therefore, Arduino Pro Mini is used. Connect the IMU sensor stick to Arduino Pro Mini as shown in the schematic. The detail of using IMU sensor stick is here.

Step 3: Connect Electrodes to Make Touch Sensors

As shown in the schematic above, 3 electrodes are used as a touch sensor. The touch sensor will be used to activate/deactivate the cursor movement and scroll.

Step 4: Upload the Arduino Code

The arduino code computes the orientation of IMU sensor and the proximity of finger to the touch sensor. The code is composite of these two tutorials. See them for detail.

IMU sensor code

Touch sensor code

Step 5: Putting It All Together

Put all electrical components as shown in the figure in the previous step.

Step 6: Install the Mouse Event Injection Code

You can download the mouse event injection code from the github repository.

In the repository, the java project named JavaBrowser is the mouse event injection program.

Step 7: Check the Serial Port and Set It in the JavaBrowser Code

The final step is changing the port name in the JavaBrowser code. Open the Arduino program and check what is the name of serial port connected to Arduino.

Find the line

CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("/dev/tty.usbserial-AE01COQ2");

in the and change the parameter to the name of your serial port.

Step 8: Try It!

That's it. You can try Maestro.



    • IoT Challenge

      IoT Challenge
    • Party Challenge

      Party Challenge
    • Woodworking Contest

      Woodworking Contest

    12 Discussions


    2 years ago

    Can I use this sensor like a substitute of the 9axis 9DOF IMU Sensor Breakout Board Module Gyroscope Compass for Arduino?

    miss perfect

    3 years ago

    i m confused where to join the USB cable to connect it with pc........................ive seen following comments ...u guys dont answer our question thats really bad......i request u to solve our queries as soon as possible.


    3 years ago

    Great instructable.
    I have a question:
    Can I use this sensor like a substitute of the 9DOF IMU sensor?


    3 years ago

    Which other component I can use as a substitute of 9DOF IMU sensor stick


    3 years ago on Introduction

    I don't see anywhere to plug in a USB, was the original sensor 9DOF IMU sensor stick modified? The one I'm trying to buy does not have a USB port, same with the Arduino Pro Mini.


    4 years ago

    good inspiration. would love to buy the finished product together with an api making it accessible more dev

    1 reply

    4 years ago on Introduction

    What is holding the resistors, the jump wires to the arduino board, and the wires connecting the electrodes together? It looks like a conductive gel

    1 reply

    Reply 4 years ago on Introduction

    The resistors and wires are soldered and covered by silicone extruded from the glue gun. The bare connecting part is weak, so the silicone make it stronger. The electrodes are attached to transparent tape.