DIY QuadBox

by Sbnov in Circuits > Assistive Tech

13 Views, 0 Favorites, 0 Comments

DIY QuadBox

final product thing.jpg

This project outlines the fabrication of a cost-effective assistive mouse controller designed for individuals with limited upper-body mobility, such as those with Cerebral Palsy. While commercial Quadsticks use complex optical arrays, this DIY version utilizes accessible modular components—specifically an analog joystick module and a digital sip/puff switch—to emulate a USB Human Interface Device (HID). The device allows the user to control a computer cursor via mouth movement and perform clicks via breath pressure. The addition of LED indicators provides immediate visual feedback on the device's mode or status.

Supplies

Electronics:

  1. 1x Arduino Leonardo (Essential for USB HID) – Amazon Arduino Leonardo
  2. 1x 5-Pin Joystick Module (Analog Stick) – Amazon Analog Joystick Module
  3. 1x Pressure/Vacuum Switch (2-Pin Sip/Puff) – Two Pin Pressure Switch
  4. 1x IR Sensor Module (3-Pin) – IR sensor
  5. 3x LEDs (Standard 5mm, any color) – 2 Pin LEDs
  6. 3x 220 Ω Resistors220 ohm Resisters
  7. 1x Perfboard (Prototyping PCB) – Prototype Soldering Board
  8. 1x Spool of 22 AWG Wire (Solid Core recommended) – 22 AWG Wire
  9. 1x Straw/Tubing for pressure sensor - 1/8 ID * 3/8 OD Silicon Tube

Hardware & Tools:

  1. 1x Microphone Boom Arm Screw Insert (3/8" to 5/8" adapter) – Boom Arm Screw Insert
  2. 1x 3D Printer & PLA Filament1.75mm Filament
  3. 1x Soldering Iron Set upSolder Iron Kit

3D Printing the Housing & Faceplate

The housing creates the physical interface for the user. It must accommodate the joystick module and the sip/puff tube.

  1. Action: Print the Main Body and Faceplate files.
  2. Settings: Use PLA filament, 20% infill, and 0.2mm layer height.
  3. Post-Processing: Ensure the mounting holes are clear so the joystick module can sit flush.

Preparing the Electronics

perfboard.png

Before soldering, lay out your components on the perfboard to ensure efficient spacing.

  1. Action: Insert the LEDs and Resistors into the perfboard.
  2. Action: Determine the placement for the Joystick module wiring (the module itself may need to be mounted remotely in the 3D print, connected via wires).
  3. Action: Prepare your wire lengths. You will need wires long enough to run from the sensors (in the head of the controller) to the Arduino (in the body).

Wiring the Inputs (Joystick & Sensors)

Follow this wiring schema exactly to match the code requirements.

  1. Joystick (5-pin Module):
  2. Connect VCC → Arduino 5V
  3. Connect GND → Arduino GND
  4. Connect VRx → Arduino A0 (Analog Pin 0)
  5. Connect VRy → Arduino A1 (Analog Pin 1)
  6. Note: The SW pin is not used.
  7. Pressure/Vacuum Switch (Sip/Puff):
  8. Connect Pin 1 → Arduino Digital Pin 3
  9. Connect Pin 2 → Arduino GND
  10. Note: The code uses internal pull-up resistors, so no external resistor is needed here.
  11. IR Sensor (3-pin):
  12. Connect VCC → Arduino 5V
  13. Connect GND → Arduino GND
  14. Connect OUT → Arduino Digital Pin 2

Wiring the Outputs (LEDs)

Follow this wiring schema exactly to match the code requirements.

  1. Joystick (5-pin Module):
  2. Connect VCC → Arduino 5V
  3. Connect GND → Arduino GND
  4. Connect VRx → Arduino A0 (Analog Pin 0)
  5. Connect VRy → Arduino A1 (Analog Pin 1)
  6. Note: The SW pin is not used.
  7. Pressure/Vacuum Switch (Sip/Puff):
  8. Connect Pin 1 → Arduino Digital Pin 3
  9. Connect Pin 2 → Arduino GND
  10. Note: The code uses internal pull-up resistors, so no external resistor is needed here.
  11. IR Sensor (3-pin):
  12. Connect VCC → Arduino 5V
  13. Connect GND → Arduino GND
  14. Connect OUT → Arduino Digital Pin 2

Final Power & Assembly

FXW1UE6MJAQ9QD0.jpg
  1. Action: Tie the 5V and GND rails on your perfboard directly to the Arduino's 5V and GND pins to power all components.
  2. Action: Carefully glue the components into the 3D-printed body. Ensure the Joystick is centered in the opening.
  3. Action: Melt the microphone insert into the base. [BE CAREFUL OF FUMES – DO OUTSIDE]
  4. Action: Upload the code to the Arduino Leonardo via USB.

NOTE: Yours should look much better than the photo provided.

Downloads