Affordable DIY Quad Stick for Limited Mobility

by margaret_reed23 in Circuits > Assistive Tech

298 Views, 3 Favorites, 0 Comments

Affordable DIY Quad Stick for Limited Mobility

IMG_2599.jpeg

I made an affordable DIY mouth controller for people with limited mobility, that allows them to control devices such as a game on a computer, using only head movements. It includes a sip and puff sensor connecting to a mouth controlled joystick, an IR sensor allowing the user to activate a key with their tongue, and a small tactile button to be pressed by the nose. This device efficiently uses many different head movements for fast and easy control of games and computer. The 3D printed base makes it affordable, efficient, able to customize and a quick process.

Supplies

Print and Adjust

Photo on 12-16-25 at 10.45 AM.jpg

Print the STL file and gather supplies, Adjust the base if needed with sand paper or x-acto knife and remove supports.

Assemble the PCB and Arduino

IMG_2580.jpg
IMG_2581.jpg
IMG_2582.jpg
IMG_2583.jpg

Begin by soldering two rows (of 6) of PCB pins onto the PCB: one for 5V and one for GND. These pins provide shared power and ground for all components mounted on the PCB. Connect the 5V pin on the PCB to the 5V pin on the Arduino Leonardo, and connect the GND pin on the PCB to GND on the Arduino. All components on the PCB draw power and ground from these two pins only. Each component’s signal wires are then routed directly from the device to their assigned pins on the Arduino. This approach keeps the PCB simple while allowing the Arduino to handle all input and output processing. Once powered, each device operates independently through its dedicated signal connection.

Pin Connections for Each Device

Joystick Module (5-pin)

  1. VCC → PCB 5V
  2. GND → PCB GND
  3. VRx → Arduino A0
  4. VRy → Arduino A1
  5. SW → Arduino D2

IR Sensor (3-pin)

  1. VCC → PCB 5V
  2. GND → PCB GND
  3. OUT → Arduino D3

Pressure / Vacuum Switch (2-pin)

  1. One pin → PCB GND
  2. Other pin → Arduino D4

Small Pushbutton

  1. One side → PCB GND
  2. Other side → Arduino D6

LED with Resistor

  1. Arduino D5220 Ω resistor → LED positive (long leg)
  2. LED negative (short leg) → PCB GND

Assemble the Quadstick

IMG_2584.jpeg
IMG_2586.jpeg
IMG_2587.jpeg
IMG_2588.jpeg
IMG_2589.jpeg
IMG_2590.jpeg
IMG_2591.jpeg
IMG_2592.jpeg
IMG_2593.jpeg
IMG_2594.jpeg
IMG_2595.jpeg
IMG_2596.jpeg
IMG_2597.jpeg
IMG_2598.jpeg
IMG_2599.jpeg

Install the Arduino Leonardo/Micro

Slide the Arduino board into position inside the case where there’s space for the USB port. Make sure the USB port lines up with the opening in the case, so you can plug in the cable after assembly.

Mount the PCB

Place your PCB (with only the 5V and GND pins soldered as power rails) into the location on the case that fits it best. The PCB should sit flat and not interfere with the Arduino or sensors. Use hot glue or small screws to fix it in place so it won’t move.

Install the Joystick and Sensors

  1. Joystick: Thread the joystick through the cutout on the case front. Align it in the top box
  2. IR Sensor: Push the IR module through the opening so the sensing end is exposed.
  3. Pressure Switch and Button: Place the silicone tubing and small pushbutton into the designated slots/ holes, ensuring they sit flush and are accessible from the outside.

Next slide it the small rectangular piece in the top box, over the joystick to hold it in place, when that is completed connect the mouth piece with slots onto the joystick. Thread the Ir sensor and Button into their designated slots and the silicone tubing in its slot and out of the top.


IMG_2599.jpeg

Download and run the Leonardo code