Introduction: ParaMouse the Computer Mouse for Paralyzed People

Hello, in this tutorial I will describe how to build a computer mouse for disabled, paralyzed or quadriplegic people.

This particular device is easy to build and very low cost, only a small screwdriver and cutting knife will be more than enough for this project.

Estimated building time (if all supplies are available): ~2 Hours

Estimated project cost (components and materials): ~30 USD



Small screwdriver

Cutter or utility knife


Arduino Leonardo (1pc)

Male A plug to male Micro-B plug USB 2.0 cable for Arduino Leonardo to PC connection (1pc)

Push button module (2pc)

Joystick module (1pc)

Small breadboard for connection cables (1pc)

Connecting cables compatible with Arduino (~2pc Male-Male, ~11pc Male-Female)

Flexible table lamp (1pc)

Expanded polystyrene (EPS) plate (1pc)

Expanded polystyrene glue Screws for wood (~18pc)

Plastic wrap

Step 1: Polystyrene Plate Cutting

The first step is to create the Support Plate and Button Holder Plate. Take 1 polystyrene plate which should be around 15mm thick and cut it on the red lines presented on the picture above. The larger plate (Support Plate) will carry all the electronics and will be glued to the felxible lamp. The size of the Support Plate should be 80mm x 140mm if you did the cutting right. You can cut the corners of this plate for a better look, but it is not necessary. The Button Holder plate (the smaller) should be 40mm x 70mm. This plate will be glued to the Support Plate. Don't cut the corners of this plate!

Step 2: Assembling the Device (non-electronic Parts)

When the cutting is done, you should have a larger plate (Support Plate) and a smaller one (Button Holder Plate). In this step, take the polystyrene glue and unite the Support Plate with the head of the flexible lamp and with the Button Holder Plate. You can see a Joystick module above the Button Holder Plate which is around 25mm tall, so you should place the Button Holder Plate ~30mm lower than the top edge of the Support Plate. The lamp's head should be placed at the top of the Support Plate in a centered position. Optionally, you can glue the joystick button to the jostick module, to avoid the accidental dislocation of the joystick.

Notes: It will take a few hours for the glue to become strong enough to hold the pieces together. The Button Holder Plate on the picture is smaller, because the device on the picture is an older version.

Step 3: Mounting the Electronic Parts and Wiring

In this step, we will mount the electronic components to the Support Plate and the Button Holder Plate. Position the Push Buttons near the corners of the Button Holder Plate (or where is convenient for the user). The plate is intentionally bigger than both of the push buttons, because different users may require different positioning. The Joystick should be positioned in a central position, slightly over the Button Holder Plate. You can see this on the 2. and 3. pictures. The 4. picture shows the backside of device (mounted with screws and wired). As you can see the Arduino Leonardo is positioned right under the flexible lamp's head. Under the Arduino you can see a Breadboard with connections. This component is necessary because the Arduino has only a single +5V power pin, but we need three for the buttons and the joystick. We distribute the voltage and the ground through this breadboard. You can see the wiring diagram on the first picture. I used generic 20 cm long connecting cables for Arduino to connect the components. You will need 11 pieces of father-mother connectors for the buttons and joystick and 2 pieces of father-father for the breadboard. The mounting is done with M2.5 x 16mm long carbon steel screws. These are just generic screws for wood (screws for metal are not good) and you will need ~18 pieces for 1 device.

Step 4: Uploading the Software

If you are familiar with Arduino, this step will be very easy. Just download the attached file (ParaMouse.ino) and put it in a folder named the same way (Paramouse) and upload it to the Arduino Leonardo using the micro usb cable mentioned in the components section.

If you are not familiar with Arduino, then follow the steps below:
1. Download and Install the Arduino software package. 2. Open the attached file. 3. Go to => Tools => Board => Select "Arduino Leonardo" 4. Go to => Tools => Ports => Select the Port where you inserted the usb cable (ex.: for me is "COM7") Notes: If you can't find the Port and you are using Windows, go to => Start Menu => Device Manager => Ports (COM & LPT) => you should see the Arduino Leonardo near an assigned port value (ex.: "COM7"). This particular device will use the 5V USB port at your PC as a power supply, therefore no external power supply is needed.

Step 5: Final Preparations Before Use

If you have reached this phase, the device is ready for testing. Rotate the Joystick button up&down and right&left

to see if the mouse cursor is moving along. Push the right and left buttons to see if you can click on the screen. If everything is working fine, then you should do the final preparations before use.

1. Make sure the clamp of the flexible lamp is attached to the edge of the desk in a stable way!

2. The material on the Joystick button is unknown to me and it probably wasn't designed to stay hours in someone's mouth. The saliva might dissolve the unknown plastic material which probably isn't too healthy for the user. To address this problem cut some food grade plastic wrap and cover the Joystick button like it is covered on the picture above. You can even use some rope or fastener to keep the wrap in place. This practice is also important to maintain basic hygiene, therefore replacing the protective wrap every day is recommended.


Using the device is very simple. The Joystick is placed inside the mouth of the user, like a baby pacifier. The Push Button can be pushed with the lower lip which is pushed by the tongue. This configuration is convenient because the the tongue never touches the buttons, it indirectly transfers the push through the skin.

Arduino Contest 2020

Participated in the
Arduino Contest 2020