Mouth Operated Mouse

by 0_o, published

Mouth Operated Mouse by 0_o Oct 24, 2015

Featured Thing!

3 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps

Design Tools



Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag


Thing Statistics

39217Views 3153Downloads Found in Computer



This project was intended to prove if it is possible to build a pointing device (mouse) for people with disabilities for under 20 USD, using only components which are widely available as well as a 3D printer. The result is a basic mouth operated mouse which can be connected via USB to nearly every PC. The case allows to mount it on standard tripods using a 1/4 inch screw.


The user moves the cursor by using a mouthpiece which basically works like a joystick. The right mouse button is operated by pushing the mouthpiece towards the case. The left mouse button is emulated by a sensor that recognizes if the user sucks air trough it.


I used open source hardware and software if possible. The system is controlled by an Arduino Pro Micro. The Firmware was written as an Arduino sketch. I'm not really a fan of the Arduino "IDE" but for this project it simply worked. Other parts where purchased from ebay or a local hardware store.

Print Settings










Supports are included in the STL files.


Bill Of Material

3D printed parts

1x mouthpiece (should be printed with non-toxic material)
1x front
1x joystick mount
1x cable box
1x back

Parts To Buy (~18 USD)

4x M3 35mm screw (~0.40 USD hardware store)
4x M3 nut (~0.10 USD hardware store)
4x self tapping screw 2.9mm diameter 6.5mm length (~0.20 USD hardware store)
1x 1/4 inch nut (~0.30 USD hardware store)
15cm 6mm food-safe PVC tubing (~0.40 USD hardware store)
8x jumper wires (female/female) (ebay ~2 USD for 40 pcs.)
1x disposable electronic cigarette (ebay ~5 USD)
1x Arduino Pro Micro (5V version) (ebay ~7 USD)
1x Thumbstick on PCB (ebay ~2 USD)
1x micro USB cable (ebay 1 USD)
some heat shrink tubing
some solder


soldering iron
side cutters
hobby knife


soldering (basics)
electronics (for the wiring)
3D printing
Ikea furniture assembling skills ;-)

Build Instructions

Step 1

Print all of the printable parts provided as STL, remove the supports and build the sensor (sensor build instructions below).

Step 2

Cut the top of the joystick using side cutters and solder the pinheaders from the front to the back of the PCB. I used new pinheaders for this but if you are careful, you can reuse the original ones after desoldering.

Step 3

Remove the plastic piece from the top of the joystick and screw it onto the "joystick mount" printed part using self tapping screws.

Step 5

The assembled part can be put aside. Push the 1/4 inch nut into its hole on the bottom of the printed middle piece. You should hear a 'click' if it is in the right position. Now the Arduino Pro Micro can be mounted onto the back of the same part. Also the sensor should be pushed onto the connector on the inner wall.

The printed back part can be mounted to enclose the Arduino board.

Step 6

Now it is time to wire everything up. First, connect the sensor. As a second step, the five jumper wires for the joystick should be connected to the Arduino board and the joystick board.

Arduino Connection
RAW <==> Joystick 5V
GND <==> Joystick GND
2 <==> Joystick SW
A0 <==> Joystick AXIS_X
A1 <==> Joystick AXIS_Y
3 <==> Sensor signal (blue)
VCC <==> Sensor 5V (red)
GND <==> Sensor GND (black)
Step 7

Put all wires carefully into the case and screw all parts together using the four M3 screws.

Step 8

Connect the PVC tube to the mouthpiece and the connector on the case. You should rotate the tube until it does not put any force on the joystick.

Step 9

Last but not least, connect the Arduino to your PC and flash the firmware. You can use Xloader to flash the HEX file provided. Or you can use the sketch file and the Arduino software if you want to modify the firmware. For compilation you will also need the TimerOne library.

The device should now be detected as an HID device and is ready to use.

Sensor Assembly

I think this might be the hardest part of building the device. First of all you need to buy one of those cheap electronic cigarettes. You can buy them on ebay for less than 5 USD incl. shipping. You should buy one with an acceptable flavour because after disassembly, your bench will smell like this for a while. The sensor itself is on the front part of the metal tube. There are three wires. The red is positive, black is ground and blue is the signal. The sensor works fine at +5V. If you use +3.3V it detects a low battery. Assuming a 4 cell rechargeable battery it is designed for +4.8V. The sensor outputs a low frequency PWM signal which can be easily used with a microcontroller.

There are several good teardown videos on YouTube you should watch before you start: https://www.youtube.com/results?search_query=e+cigarette+teardown

After you successfully salvaged the sensor from its smelly home, you are left with something like this:

Especially the red wire is very short because it only connects to the positive side of the battery. I decided to resolder the connections using jumper wires. If you don't trust your soldering skills, you should solder the jumper wires onto the existing wiring (so leave it as long as possible). Be careful, the existing wires are likely to break.

To mount the sensor to the 3D printed case, I used some PVC tubing. Luckily, I had some tubing with the right inner diameter lying around. It should also be possible to use heat shrink to mount the sensor on the case. In ether case, you need app. 1cm of tubing.

You should add something for strain relief, otherwise the wires might break during assembly.

Some Thoughts

There are a lot of things that can be made different/improved. The currently used sensor only detects a vacuum. Another sensor could detect both directions of the air flow. The BMP180 with a filter might be suitable (mine was a bit too sensitive for humidity..oops). Companies like Freescale offer a broad range of promising sensors that might work (~10 USD in low volume).
The used joystick requires the ability to slightly move the head. Other devices, like they are used for e.g. Track Points, might allow to operate the device only by using the lips or the tongue.
The USB connection could be replaced by Bluetooth or another kind of wireless connection.
The firmware only supports a mouse emulation for the moment. Keyboard or gamepad emulation could be implemented in the future.
A single PCB solution would result in a much smaller, more professional and easier-to-build device.
Unfortunately it is a bit inconvenient to clean the mouthpiece.
I would be happy if someone would like to contribute in any way to this project. The design is modular. Every part can be modified to fit your needs. If you have questions, please don't hesitate to contact me. If someone needs help with the electronics for a project that enables people to play games, surf the internet or simply helps with the everyday life, you are also welcome to contact me.

More from Computer

view more

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

This is absolutely amazing. Thank you very much for this.

I'm a software developer who's been trying to help others understand accessible UI/UX. I'd like to make one of these then bring it in to work & ask people in the company to operate our product with an accessibility tool such as this. I think it'll help them understand why accessible UX/UI is important and not just a "money sink".

which size when ordering mm cm in thanks for feed back my wrist has carpel tunnel and would be interested in this thingi

This is awesome! I think everyone, even disabled people should be able to experience video games, and the internet.

Bellissimo progetto!

so cool project ....

i built this with my printer but i bought a '2 pcs Analog Stick Thumbstick Replacement for Xbox 360 Controller' and no pcb. can you tell me the pins for four cables on the pro micro 5v/16mhz? also, do you think can i wire an old wheelchair joystick to the pro micro?

I think this should work without any problems. I just need some pictures or links to the devices to figure out how to connect them.


out of curiosity what would a medical entity charge for such a pointing device?

0_o - in reply to nt86

I don't know what a medical entity would charge for such a device. On the online market it starts from a couple of hundreds to quite more than a thousand.

Was building one of these for a friend with MS, problem is that it seems to want a "Mouse.h" that I have had no luck finding :-( (tried several that I found, but apparently not the right one(s).

Using the Adafruit Pro Trinket (5V).

0_o - in reply to fox3

Hi fox3, I had a look on the Adafruit page and it seems like they are using the ATmega328 on this board. Unfortunately it doesn't have Hardware USB support. It might be possible to use a software USB stack but this isn't possible with the current Arduino library (as far as I know). The easiest way to get it running would be to get an Arduino Pro Micro which uses the ATmega32U4 (Hardware USB support). Sorry.

fox3 - in reply to 0_o

Thanks for the reply, I suspected as much after much futzing.

Will see if I can track down one with the 32U4,

Again, much appreciated!

very nice work man

Awesome!!! Will try this, without the sucking air function. If there's another way to trigger a second click, then the hygiene problem will be minimised!

Keep me updated. Maybe a capacitive button on the tip could work.

yes,it's cool!

not bad.

yes,it's cool!

I wish you best in the future work.
The world needs people like you.

Really nice !

Nice tutorial too !

You made a great job!

Amazing and great design!!!

Congratulations, you deserve the win.
Enjoy the printer.

congratulations on the challenge win :)
a really cool thing you done here.. :)

perfect for special peoples.....

Congratulations, I love to see people like you out there making a better world for everyone

I totally want to see a video of this in use :P

Dec 19, 2015 - Modified Dec 19, 2015
0_o - in reply to Bassna

There is a video in the Thing details or you can follow this Link https://www.youtube.com/watch?v=wqipsuNKptk :-)

You should build a stand for it as well

I decided to leave this to the user. Therefore I used a standard tripod mounting nut on the bottom of the device. This allows to use any standard tripod on the market. Several aluminium arm tripods with joints and clamps are available on the market. Many of them are designed for DSLRs which make them pretty stable. I think this will be hard to achieve with 3D printing.

I think the best 3D printed stand I've seen is the The qInch project (http://www.thingiverse.com/thing:668017), plus its based around 1/4-20 hardware so it will thread right up to the tripod mounting nut. Most of the parts are reasonably stable, though probably not quite as good as a tripod for a 5lb camera.

The qInch Project

This is an amazing design!

Chapeau, great work !

Congrats man you deserve it! Amazing work!

This is revolutionary! Congrats!

Congratulation for the first price.
Nice and simple idea with low cost material.

congratulations!!! great idea.

Thank you very much. The same to you.