Arduino Based USB Paper Gesture Mouse




About: jugad is a colloquial Hindi and Punjabi word that can mean finding a low cost solution to any problem in an intelligent way, used for solutions that bend rules, or a resource that can be used as such, or a p...

Please vote for me in the conests

I have always been pretty amazed by the Capacitive sensor library of Arduino, It makes me feel like a super human, I can make any non conductive material to act like a touch enabled controller for various use cases, So here I thought of controlling my PC with the power of Capacitive Sensors and build a mouse using an Arduino Pro Micro and some home built Capacitive Sensors and a sheet of paper, So let's start...

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Material Required to Build Something Awesome!

(You can get a cheap deal for these components on AliExpress but I would only recommend that if you can wait for more than 30 days for the item to be delivered.)

  • An Arduino Pro Micro or A Leonardo.
  • 5x 1MΩ Resistors.
  • Single strand insulated wire.
  • A Bread Board(Or you can directly solder all the components on a PCB).
  • A Sheet of foil paper.
  • Electrical tape.
  • 2x A4 size paper sheets.
  • A Printer.
  • Lots of love and enthusiasm for DIY ❤️??(Mandatory).

Step 2: Making the Capacitive Sensors.

  • Cut 5 pieces of aluminium foil. 2 pieces of size(70 X 35)MM, 2 pieces of size(36 X 86)MM and 1 piece of size(150 X 19)MM (Or you can simply print the back side layout provided in the next step on a fresh sheet of paper and cut the aluminium foil sheet using the printed layout as template) I don't have a Cricut Maker but I think that if I had one it would have made this step easy as pie and I hope I win the Paper contest and win a Cricut Maker ❤️.
  • Add a wire to each of the foil using an electrical tape.
  • Our sensors are now complete, so let's move on to the next step...

Step 3: Making the Paper Mouse

  1. In the file attached bellow, you can find 2 design files in it, print them on both the sides of an A4 size sheet of paper (The name of the design files are according to how they are supposed to be printed i.e. The file which is supposed to be printed on the front side consists of the keyword "(Front)" in it's file name and the file which is supposed to be printed on the back consists of the keyword "(Back)" in it's file name).
  2. Stick the Capacitive Sensors we made in the previous step according to their size on the back side of the printed A4 size sheet using the electrical tape.

Step 4: Setting Up the Arduino to Wrap Up the Awesome Work!

Connecting The Pins

  • Plug in the 1MΩ resistors to the following pins: (4 , 2) (5 , 3) (8 , 6) (9 , 7) (15 , 16) As shown in the image above.
  • Connect all the Capacitive sensors to the following pins:
  1. Top Sensor to Pin- 2.
  2. Right Sensor to Pin- 3.
  3. Left Sensor to Pin- 6.
  4. Bottom Sensor to Pin- 7.
  5. Select Sensor to Pin- 16.

Setting Up The Code

Extract the file, Edit the code if you make any changes with the pins else keep it as it is and upload the code on to your Arduino Pro micro Or Leonardo board.

Step 5: Finally Testing Our Awesome Work!

You can follow all the instructions on my blog Check out some other cool stuff out there on

Step 6: Known Issues and Future Capabilities (To Make This Awesome Work Even Better)

Known Issues:-

  • After uploading the code when we replug the USB sometimes, the Paper Mouse begins to respond very slowly(Like, really very slow!) and if we re-upload the code it starts to respond normally back again.
  • The paper sometimes moves here and there along with user's finger which oftenly gets very annoying (Possible solution: We can stick the bottom of the A4 sheet to an ivory sheet or some other heavier object.)

Future Capabilities:-

  • 4 more sensors can be added for all 8 directions(i.e. Top, Top Right, Right, Bottom Right, Bottom, Bottom Left, Left, Top Left) to make the mouse more user friendly.
  • 2 Sensors can be added in the middle to add the scroll feature.
  • Right Click button can also be added(Actually I forgot to do that?).
  • A matrix arrangement of Sensors can be used to implement all these features together which would use lesser pins and lesser wires.
  • We can add bluetooth capability to make the whole system wireless (This video by Evan Kale can be helpful to achieve this goal.)
  • The wires and Arduino should be hidden.
  • The design can be further improved but I like mine to be minimalistic.

I hope to come up with a newer version of the Paper Mouse to overcome all the issues and with added features as discussed above, ASAP.

And Please vote for me in the Paper Contest so that I can win a CricutMaker and come up with better and high end projects.

(Please drop in your comments below and let me know how can I overcome these issues or if you have some other suggestions)

Epilog Challenge 9

Participated in the
Epilog Challenge 9

Paper Contest 2018

Participated in the
Paper Contest 2018

Be the First to Share


    • Assistive Tech Contest

      Assistive Tech Contest
    • Reuse Contest

      Reuse Contest
    • Made with Math Contest

      Made with Math Contest

    14 Discussions

    Priya chaluvadi

    Question 1 year ago

    The moment of the cursor is continuous it is not moving in the direction that we have given .what should be the problem

    1 answer
    jugadu_inPriya chaluvadi

    Answer 11 months ago

    Please share more details. Make sure you have connected all the sensors on correct pins. Also take a close look at Step 4 in order to better understand how the connections have been made. Please let me know if you need any other assistance.


    Question 1 year ago on Step 4

    The code that you have provided doesn't compile. It gives error "Mouse not found" after adding mouse.h library.

    1 answer

    Answer 1 year ago

    Hi there, I can see here that you are using an arduino uno which doesn't supports HID capabilities for which you have to use Arduino pro micro or leonardo board. Also please check that you have the mouse.h Library installed and If not then you can download it from here -->

    Please let me know if you get any luck.

    Ratty Bunyip

    1 year ago

    Got to make one of these. I already have a little arduino project with an IR range sensor that sends WIndow L and hence locks the computer when I walk away. Regarding the issue with wandering paper, I wondered if something could be done with a paper laminator

    1 reply
    jugadu_inRatty Bunyip

    Reply 1 year ago

    I am sorry I don't get it what do you mean by a paper laminator?


    1 year ago

    you have done a great job! I will definitely vote for you. All the best! <3

    1 reply

    1 year ago

    Wow Great innovation thanks for your efforts

    1 reply

    1 year ago

    Very nice but you're statement "I can make any non conductive material to act like a touch enabled controller" isn't possible... The material must be conductive to act like a touch enabled controller!!

    1 reply

    Reply 1 year ago

    Thank you so much Floris!❤️ By the way, You can actually do that... In fact that is what I did here, I made a paper to act like a touchpad mouse. and that is possible because we are using an aluminium foil as a capacitive sensor (Here's a video to describe that). Also as quoted by the official website of Arduino...

    "Capacitive sensing may be used in any place where low to no force human touch sensing is desirable. An Arduino and the library may be used to sense human touch through more than a quarter of an inch of plastic, wood, ceramic or other insulating material (not any kind of metal though), enabling the sensor to be completely visually concealed. A capacitive sensor covered with paper or other insulator also acts as fairly good (human touch) pressure sensor with an approximately logarithmic response. In this regard it may surpass force sensing resistors in some applications."

    The link to which can be found here.

    (Please correct me if I am wrong anywhere.)