A Low-Cost DIY Adaptive Quadstick

by theabonanno in Circuits > Assistive Tech

17 Views, 0 Favorites, 0 Comments

A Low-Cost DIY Adaptive Quadstick

IMG_0127.jpg
IMG_0127.jpg

This DIY quadstick is an adaptive technology device designed to improve accessibility and user independence. It is made for users with limited hand and arm mobility to control a computer by using their mouth to operate a joystick. The device uses infrared (IR) sensors, sip-and-puff controls, and an LED for visual feedback, allowing users to interact with a computer in multiple ways. The quadstick is fully customizable to meet individual needs and preferences, with parts made using 3D printing for an affordable and adjustable design.

Supplies

STL File

Download and print STL file below.

Downloads

Code

Download and run the Arduino Leonard code below.

Downloads

Assemble PCB

Screenshot 2025-12-17 at 9.44.21 AM.png

Assemble the PCB by soldering pins onto the board. You will need three 5-volt pins and five ground pins. To prevent short circuits, place the pins a few rows apart. After positioning them, solder the back of the board so that all the 5-volt pins are connected together and all the ground pins are connected together. This allows each entire row to be powered from a single Arduino pin, saving space and simplifying wiring. One pin from each row will then be connected to the appropriate pin on the Arduino to supply power to all components.

Set Up Joystick

Screenshot 2025-12-17 at 9.44.48 AM.png

Use the following steps to wire the joystick. If, during testing, the X and Y axes are reversed, simply swap the VRx and VRy connections on the joystick. As shown in the image, each joystick pin is clearly labeled, making correct connections easier.

Joystick Module (5 Pins):

  1. Joystick +5V → + rail
  2. Joystick GND → – rail
  3. Joystick VRx → A0
  4. Joystick VRy → A1
  5. Joystick SW → D2

This setup allows the joystick to control directional movement and register button presses correctly.


Set Up Sit and Puff

IMG_3233.jpg

Set Up Sip and Puff

Use the following steps to set up the sip-and-puff switch. It does not matter which wire is connected to ground or to the digital pin on the switch. No external resistor is needed because the Arduino’s internal pull-up resistor is used.

Pneumatic Pressure / Vacuum Switch (Normally Open, Low-Voltage):

  1. Switch wire #1 → GND
  2. Switch wire #2 → D4

This configuration allows the sip-and-puff input to register correctly when pressure or vacuum is applied.

Set Up IR Sensor

IMG_0122.jpg

Set Up IR Sensor

Use the following steps to wire the IR sensor. The sensor uses three pins for power and signal.

IR Sensor (3-Pin):

  1. IR VCC → + rail
  2. IR GND → – rail
  3. IR OUT → D3

This setup allows the IR sensor to send an output signal to the Arduino when it detects input, enabling it to be used as a control or input trigger.

Set Up LED

IMG_0123.jpg

Set Up LED Indicator

Use the following steps to set up the LED light. First, solder a 220Ω resistor to the long leg (anode) of the LED, then solder the other end of the resistor to a male pin so it can plug into the Arduino. The long leg with the resistor will plug directly into Arduino pin D5. The short leg (cathode) of the LED should be connected to a ground pin on the Arduino, not to the PCB ground rail.

LED Indicator:

  1. LED long leg → 220Ω resistor → D5
  2. LED short leg → GND

This ensures the LED lights safely and correctly when activated.

  1. The legs are reversed
  2. The resistor is missing
  3. The LED burned out
  4. D5 is not wired to the resistor



Asseble

IMG_0127.jpg
IMG_0126.jpg
IMG_0125.jpg
  1. Start by threading the IR sensor and LED through the cutouts
  2. Thread the power into the Arduino
  3. Then fit the wired Arduino into the box
  4. Add sip and puff and PCB to box
  5. Fit weird joysick in the outside compartment
  6. Test
  7. Glue on the top