Switch Interfaces

Rocket Switch Interface

Overview

The Rocket Switch Interface is a switch interface device which enables users to operate their computer or smartphone devices using assistive switches. The Rocket Switch Interface supports up to two 3.5 mm assistive switches.

Usage

Both switches can be used as inputs when short pressed, switch 1 can be used to change the operation mode when it’s pressed and hold for 4 seconds. The device can operate in several modes:

  • Switch Mode: This mode can be used along switch control software available for Windows and Android Operating Systems. Switch 1 outputs A key and switch 2 outputs B key.
  • Switch Mac Mode: This mode can be used along switch control software available for Mac Operating Systems. Switch 1 outputs F1 key and Switch 2 outputs F2 key.
  • Mouse Mode: This mode can be used to simulate a mouse button click. Switch 1 performs left mouse click and Switch 2 performs right mouse click.
  • Settings Mode: The settings mode allows the user to adjust the reaction time between switch presses.  The minimum reaction time is 50 ms (Level 10) and maximum reaction time is 500 ms (Level 1). The default reaction time is Switch 1 decrements the reaction level by 1 level and switch 2 increments the reaction level by 1 level as well.

Cost

$45 ($15.16 Components and 3D prints; ~$30 for order of custom PCBs)

Build Instructions

The Rocket Switch Interface consists of 3D printed parts, electronic components, and custom Arduino program. The Assembly Guide is available at the GitHub repository.

Skills Required

  • 3D Printing
  • Soldering
  • Custom PCB
  • Microcontroller programming

Time Required

3D Printing Time: 49 Minutes

Assembly Time: 20 Minutes

Software Setup Time: 15 Minutes

Tools

  • Soldering Iron and 60/40 electronics solder
  • Needle nose pliers
  • Side cutters
  • Medium Phillips screwdriver
  • Optional clamp or vise to align PCB’s.

Components

  • 1X Rocket Switch Interface PCB
  • 1X Adafruit Rotary Trinkey (i.e., https://www.adafruit.com/product/4964)
  • 2X SJ-43514 3.5mm Jack Stereo
  • 2X 7 kOhms 1/4W Through Hole Resistor
  • 1X Light Pipe
  • 1X M3 6MM Pan Head Machine Screw Phillip

3D Printing

  • 1X Top Case (3D)
  • 1X Bottom Case (3D)
  • 1X Assembly Jig (3D)

Custom PCB

This design utilizes a custom PCB. Five boards (minimum quantity) can be obtained for approximately $30 CAD (shipping included).

Programming

A custom Arduino code (Rocket_Switch_Interface.ino) needs to be flashed using Arduino IDE.

Design

The PCB was designed using Autodesk EAGLE, and the enclosure was designed using Autodesk Fusion 360.

Attribution

Designed by Makers Making Change

Designer:

  • Milad Hajihassan, Makers Making Change

Contributors:

  • Derrick Andrews, Makers Making Change

Wireless Assistive Switch Link

Overview

The Wireless Assistive Switch Link is a device that enables a wireless connection between an assistive switch and an output device that has a 3.5 mm jack. In addition to momentary control, the device also has the option of pre-set timed latches of 10 seconds, 1 minute, or 5 minutes. This device may be useful for someone who would benefit from a wireless connection between the switch and the output device or using the latching feature for output devices.

Usage

An assistive switch is connected to the 3.5 mm jack on the transmitter. The 3.5 mm plug on the receiver is then connected to the input of the device to be controlled. With the receiver powered on, the receiver will activate the output device when the assistive switch is activated.

The device can operate in several modes:

  • Momentary Switch: The output device will turn off about 0.5 seconds after the user stops pressing the switch.
  • Toggle Switch: Activating the assistive switch will activate the output device. The output device will remain on until the assistive switch is released, and pressed again.
  • 10 Second Latched Timer: After the assistive switch is pressed and released, the output device will remain on for 10 seconds and then turn off.
  • 1 Minute Latched Timer: After the assistive switch is pressed and released, the output device will remain on for 1 minute and then turn off.
  • 5 Minute Latched Timer: After the assistive switch is pressed and released, the output device will remain on for 5 minutes and then turn off.

The mode can be changed by pressing the Mode Button on the Receiver. See the User Guide for instructions.

Cost

This device can be built for approximately $40.

Build Instructions

This build consists of 3D printable parts and some commercial off-the-shelf hardware. Refer to the Assembly Guide, Bill of Materials, and 3D Print Guide for instructions on what parts to obtain, and how to print the parts.

Skills Required

  • Soldering
  • 3D Printing
  • Mechanics

 

Time Required

3D Printing Time: 5 hours 30 minutes

Assembly Time: < 1 hour

Tools

  • Small Phillips screwdriver
  • Soldering Iron and Solder
  • Wire Strippers

 

Components

  • Wireless Relay Remote
  • Battery holder for 3 AA batteries
  • 3 x AA batteries
  • 2x Latching Switches
  • 1x 3.5mm Male to Female Cable

 

3D Printing

Refer to the Maker Guide for 3D Printing Instructions.

Design

This device was designed in Autodesk Fusion 360. Original design files are in the repository.

Attribution

Designed by Kerilyn Kennedy – Makers Making Change

Documentation by Neil Squire / Makers Making Change

Dual Mono-Stereo Adapter

Overview 

The Dual Mono-Stereo Adapter provides a way to connect two assistive switches with standard 3.5 mm mono plugs to a single 3.5 mm stereo input on a compatible assistive technology device. This device is functionally equivalent to a 3.5 mm TRS to Dual 3.5 mm TSF Stereo Breakout Cable (Amazon Link, ~$16).

Usage 

To use the Dual Mono-Stereo Adapter, connect the two assistive switches to the mono inputs labelled L (left) and R (right). Then use a stereo male-to-male audio cable to connect the adapter to the AT device’s 3.5 mm stereo input.

The Dual Mono-Stereo Adapter can also be used with the LipSync Switch Input Module.

Build Instructions 

The Dual-Mono-Stereo Adapter consists of some electronic components and a 3D printed enclosure. Detailed build instructions can be found in the GitHub link.

Skills Required 

  • 3D Printing
  • Soldering 

Tools

  • Soldering Iron
  • Solder
  • Wire Strippers

Components

3D Printing 

Print the top and bottom enclosure pieces following the 3D printing guide. 

Attribution 

Design by Makers Making Change

Enabled Controller Wireless

Overview

The Enabled Controller Wireless is an open-source switch interface that enables adaptive switches and analog joysticks to be used with a compatible Bluetooth device such as a computer, tablet, or phone. The switches and/or joysticks can be used to input keyboard, mouse, or joystick commands, depending on how the device is configured. The device accepts up to 8 adaptive switches (3.5 mm) and up to two dual axis analog joysticks as inputs.

The Enabled Controller Wireless can emulate a Bluetooth keyboard or a Bluetooth mouse.

Usage

  1. Connect assistive switch(es) to the appropriate input port(s). The switch input ports are labeled  A, B, C, D, Left, Down, Right, Up.
  2. Connect analog joysticks to the desired joystick input ports. The joystick input ports are labelled A1 and A2.
  3. Connect a micro USB cable to the Power Bank to power the Enabled Controller Wireless if you are not using the internal battery.
  4. Connect the Enabled Controller Wireless to the host device (e.g. computer, tablet) via Bluetooth.
    • Turn On the Bluetooth feature on the host device.
    • Scan and find a device named “Enabled-Controller”.
    • Pair and connect the host device to the “Enabled-Controller”
    • The RGB LED will turn to blue on successful connection attempt.
  5. Activation of the switches or movement of the joysticks will result in different actions depending on the software version and operating mode.

Features:

The Wireless version emulates a keyboard or a mouse. Refer to the Enabled Controller Wireless User Manual for more details.

The USB version offers the following four modes:
1) Keyboard switch

When a connected switch is activated, the device transmits a customizable keystroke.

2) Keyboard Morse Code

Two connected switches are used to input Morse code dots and dashes. Theses dots and dashes are converted to characters and transmitted as keystrokes.

3) Mouse Morse Code

Two connected switches are used to input Morse code dots and dashes. These dots and dashes are converted to and transmitted as mouse commands.

4) Mouse

5) Settings

( Used to change reaction time )

The mode is changed by performing a long press on a switch connected to input D.

Build Instructions

A complete set of documentation, including Bill of Materials, Assembly Guide, and User guide are available at the GitHub link.

The estimated cost of the Enabled Controller Wireless is $77 CAD. The device consists of a number of off-the-shelf electronic components, a custom printed circuit board, a 3d printed enclosure, and some mechanical fasteners.

ATMakers KeySwitch

Overview

The ATMakers Keyswitch is a low-cost assistive switch interface that allows a user to connect up to 5 external assistive switches with 3.5 mm plugs to a computer, tablet, smartphone, or AAC device with a USB port.  The Keyswitch sends keystrokes and/or mouse movement when the external switches are activated, and can easily be configured to change the keystrokes that are sent.

Usage

Connect one and up to 5 assistive switches to the ATMakers Keyswitch. Plug the USB cable into the computer, tablet, smartphone, or AAC device with a USB port.

Build Instructions

Bill of Materials

To assemble the mount with the switch, you will need:
1 – 3D Printed Enclosure Base (~14 g of filament, $0.40; 1hr 15m)

1 – 3D Printed Enclosure Top (~ 7 g of filament, $0.20; 0hr 25m)

10 – Breakaway Male Headers (~1.20 CAD, https://www.digikey.ca/en/products/detail/wurth-electronics-inc/61301611121/4846854)

1 – ATMakers KeySwitch Custom PCB

5  – 3.5 mm jacks (~$1 ea, https://www.digikey.ca/product-detail/en/cui-inc/SJ1-3535NG/CP1-3535NG-ND/738699)

1 – Trinket M0 (~$12 CAD, https://www.digikey.ca/en/products/detail/adafruit-industries-llc/3500/7623049; https://www.adafruit.com/product/3500 )

1 – USB Micro to USB A Cable

2 – M2.6x 8 mm or #4-40 screws

Tools

  • Soldering iron
  • Wire strippers / wire cutters
  • Screwdriver

Custom PCB

The files for the custom PCB are stored on the ATMaker Hardware Github repository (https://github.com/ATMakersOrg/ATMakers-Hardware/tree/master/KeySwitchBoard). A board will need to be ordered from a suitable PCB manufacturer.

3D Printing

Both the enclosure and the base are designed to print without support. There are two version of the top – one designed for translucent filament and one for opaque filament. The print files are available on Thingiverse (https://www.thingiverse.com/thing:3159609).

Assembling the KeySwitch

See the attached PDF for detailed step-by-step assembly instructions. There is also a video of the assembly process available: https://www.youtube.com/watch?v=Tr9n-Ne0utA

Programming the Trinket

The instructions and code for programming the Trinket are available at the ATMaker KeySwitch repository (https://github.com/ATMakersOrg/KeySwitch).

Attribution

The ATMaker Keyswitch was designed by ATMakers. Written assembly instructions were created by Makers Making Change.

 

Enabled Controller Mini

Overview

The Enabled Controller Mini is an open-source switch interface that enables adaptive switches and analog joysticks to be used with a compatible USB device such as a computer, tablet, or phone. The switches and/or joysticks can be used to input keyboard, mouse, or joystick/gamepad commands, depending on how the device is configured. The device accepts up to 4 adaptive switches (3.5 mm) and one dual axis analog joysticks as inputs. The Enabled Controller Mini is smaller and more affordable version of the Enabled Controller.

The Enabled Controller Mini is available in 2 software versions. The USB version emulates a keyboard or a mouse. The Joystick version emulates a gamepad.  Both versions use the same hardware. It is possible to change software versions using a computer and a moderately involved process.

Usage

  1. Connect one to four assistive switches to the appropriate input ports. The switch input ports are labeled  A, B, C, D.
  2. Connect analog joystick to the desired joystick input port. The joystick input port is labelled Analog.
  3. Connect a micro USB cable to the USB C port on the Enabled Controller Mini.
  4. Connect the USB cable to the host device (e.g. computer, tablet).
  5. Activation of the switches or movement of the joystick will result in different actions depending on the software version and operating mode.

USB Version

The USB version emulates a keyboard or a mouse. Refer to the Enabled Controller Mini USB User Manual for more details.

The USB version offers the following four modes:
1) Keyboard switch

When a connected switch is activated, the device transmits a customizable keystroke.

2) Keyboard Morse Code

Two connected switches are used to input Morse code dots and dashes. Theses dots and dashes are converted to characters and transmitted as keystrokes.

3) Mouse Morse Code

Two connected switches are used to input Morse code dots and dashes. These dots and dashes are converted to and transmitted as mouse commands.

4) Settings

( Used to change reaction time )

The mode is changed by performing a long press on a switch connected to input D.

Joystick Version

The Joystick version of the software turns the Enabled Controller Mini to an adaptive gaming controller for your computer or other host device. Refer to the Enabled Controller Mini Joystick User Manual for more details.

Build Instructions

A complete set of documentation, including Bill of Materials, Assembly Guide, and User guide are available at the GitHub link.

The estimated cost of the Enabled Controller Mini is $35 CAD. The device consists of a number of off-the-shelf electronic components, a custom printed circuit board, a 3d printed enclosure, and some mechanical fasteners.

Enabled Controller

Overview

The Enabled Controller is an open-source switch interface that enables adaptive switches and analog joysticks to be used with a compatible USB device such as a computer, tablet, or phone. The switches and/or joysticks can be used to input keyboard, mouse, or joystick/gamepad commands, depending on how the device is configured. The device accepts up to 8 adaptive switches (3.5 mm) and up to two dual axis analog joysticks as inputs.

The Enabled Controller is available in 2 software versions. The USB version emulates a keyboard or a mouse. The Joystick version emulates a gamepad.  Both versions use the same hardware. It is possible to change software versions using a computer and a moderately involved process.

Usage

  1. Connect assistive switch(es) to the appropriate input port(s). The switch input ports are labeled  A, B, C, D, Left, Down, Right, Up.
  2. Connect analog joysticks to the desired joystick input ports. The joystick input ports are labelled A1 and A2.
  3. Connect a micro USB cable to the USB port on the Enabled Controller.
  4. Connect the USB cable to the host device (e.g. computer, tablet).
  5. Activation of the switches or movement of the joysticks will result in different actions depending on the software version and operating mode.

USB Version

The USB version emulates a keyboard or a mouse. Refer to the Enabled Controller USB User Manual for more details.

The USB version offers the following four modes:
1) Keyboard switch

When a connected switch is activated, the device transmits a customizable keystroke.

2) Keyboard Morse Code

Two connected switches are used to input Morse code dots and dashes. Theses dots and dashes are converted to characters and transmitted as keystrokes.

3) Mouse Morse Code

Two connected switches are used to input Morse code dots and dashes. These dots and dashes are converted to and transmitted as mouse commands.

4) Settings

( Used to change reaction time )

The mode is changed by performing a long press on a switch connected to input D.

Joystick Version

The Joystick version of the software turns the Enabled Controller to an adaptive gaming controller for your computer or other host device. Refer to the Enabled Controller Joystick User Manual for more details.

Build Instructions

A complete set of documentation, including Bill of Materials, Assembly Guide, and User guide are available at the GitHub link.

The estimated cost of the Enabled Controller is $55 CAD. The device consists of a number of off-the-shelf electronic components, a custom printed circuit board, a 3d printed enclosure, and some mechanical fasteners.

FAIO Multiplexer Wireless

The Feather All-in-One (FAIO) Multiplexer Wireless is an open-source Assistive technology wing for Adafruit Feather boards with on-board Bluetooth modules which enables those with limited or no hand movement to wirelessly use Adaptive switches as input to operate in multiple input modes. The FAIO Multiplexer Wireless uses an Adafruit Feather Bluefruit board, a custom PCB, components such as 3.5 mm audio jacks, RGB LED, and a 3D printed enclosure.

FAIO Multiplexer Wireless allows you to convert 3.5 mm inputs to switch or Morse keyboard or Morse mouse actions via a Bluetooth HID interface.

FAIO Multiplexer Wireless supports following switch modes:

Switch Access Mode ( HID Keyboard )
Morse Keyboard Mode ( HID Keyboard )
Morse Mouse Mode ( HID Mouse )
Joystick Mode ( HID Joystick )

The device costs US $40 to US $60 depending on the version of Adafruit Feather board.

Future changes will include:

  • Improving Morse code library
  • Wireless version of software

FAIO Multiplexer

The FAIO Multiplexer is an open-source Assistive technology wing for Adafruit Feather boards which enables those with limited or no hand movement to use Adaptive switches as input to operate in multiple input modes. FAIO Multiplexer uses an Adafruit Feather board, a custom PCB, electronic components such as 3.5 mm audio jacks and an RGB led, and a 3D printed enclosure.

FAIO Multiplexer allows you to convert 3.5 mm inputs to switch or joystick actions via USB interface.

FAIO Multiplexer supports following switch modes:

  • Switch Access Mode ( HID Keyboard )
  • Morse Keyboard Mode ( HID Keyboard )
  • Morse Mouse Mode ( HID Mouse )
  • Joystick Mode ( HID Joystick )

Additional firmware to operate Xbox Adaptive Controller using switch module is available as well.

The device costs US $40 to US $60 depending on the version of Adafruit Feather board.

Future changes will include:

  • Improving Morse code modes of the software
  • Wireless version of software
  • Updated enclosure for joystick connection

Switch Modifier

Overview

The switch modifier is an affordable accessibility device that enables specific switch output functions. With the provided Arduino code, the switch modifier outputs a momentary switch signal for a specific hold duration, in response to a digital input signal. Regardless of the duration of the input signal, the output can be set to any duration from 20 to 500 milliseconds. Manually turning a potentiometer allows for adjustment in output duration.

Usage

With the provided Arduino code, the intended usage is for applications that require fast, short duration switch activation, where the user’s motor control is too slow to achieve such movement. To achieve multiple switch activations, the user must release the input switch first before activating it again. Minor adjustments to the code may provide for longer output durations, or latching functionality.

Disclaimer: Construction, use and modification of this device is the responsibility of the end user. The Stan Cassidy Centre for Rehabilitation and its employees are not responsible for any damages or harm as a result of the construction or use of this device.

Build Instructions

Bill of Materials

See link below.

Tools Required

– Soldering Iron
– Screw Driver
– Wire Cutters / wire strippers
– Super Glue

3D Printing

The lid and the base are printed face up with no supports. The middle piece is printed in its intended usage orientation (lettering upright) and will require supports in the bottom battery compartment, and port holes in the walls. The original box was printed on a Raise3D N2 printer using PLA. Speed printing is approximately 7.5 hours and high quality is approximately 18.5 hours.

Assembling the Circuit

Take care in the placement of the electronics on the proto board to allow for everything to fit. Only attach the back end of the nano controller up to pins D2 and A7 (inclusive). The remaining portion of the controller will overhang and rest on the support structure. Ensure the nano controller will line up with the access port on the side wall of the 3D printed box.
Please refer to the following diagram for assembling the rest of the circuit.
Note: Do not solder the battery holder wires on until the 3D printed box is ready and the wires can be passed through the access hole.

Assembling the Box

1. Remove all 3D printed supports from the middle section of the box.
2. Feed the battery holder wires through the access hole and mount it in the bottom compartment using two M2x6 screws.
3. Mount the assembled proto board to the standoffs in the upper compartment using two M2x6 screws.
4. Solder the battery wires to the appropriate locations on the proto board. Ensure not to melt the plastic box.
5. Mount the auxiliary mono jacks in the appropriate port holes in the walls of the box.
6. Mount the ON/OFF switch in the remaining port hole in the wall of the box using super glue. Ensure not to glue the switch stuck in the ON or OFF position.
7. Attach the lid of the box using four M2x20 screws. Ensure not to over torque the screws and damage the lid. Also, ensure that no wires are pinched between the lid and the walls of the box.
8. Insert four AA batteries (not included in list of materials) into the battery holder.
9. Attach the base of the box using found M2x20 screws. Ensure not to over torque the screws and damage the base.

Arduio Code

// Created by Rachelle Bernier
// Stan Cassidy Centre for Rehabilitation, Rehabilitation Engineering Department
// September 2019
// Switch Modifier

unsigned long potPin = A7; //potentionmeter input
unsigned long enterPin = 3; //digital input signal
unsigned long exitPin = 2; //digital output signal
int temp; //temporary placeholder for alaog input value from potentiometer
int holdTime; //output momentary signal duration
boolean flag = 0; //identifier to ensure user releases input before another activation can be completed
void setup() {
pinMode(potPin, INPUT);
pinMode(enterPin, INPUT_PULLUP);
pinMode(exitPin, OUTPUT);
digitalWrite(exitPin, LOW);
//Serial.begin(9600); //uncomment for testing purposes
delay(500);
}
void loop() {
// SECTION A: The following section of code sets a threshold for a momentary output signal duration givent the input from the potentiometer.
temp = analogRead(potPin);
holdTime = map(temp, 0, 920, 20, 500);

//Serial.println(holdTime); //uncomment for testing purposes
if ((digitalRead(enterPin) == LOW) && flag == 0) {
flag = 1;
digitalWrite(exitPin, HIGH);
delay(holdTime);
digitalWrite(exitPin, LOW);
}
if (digitalRead(enterPin) == HIGH)
{
flag = 0;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
// SECTION B: The following section of code sets the switch modifier to latching mode. Comment out section A if you would like the modifier to be in latching mode.
// if ((digitalRead(enterPin) == LOW) && flag == 0) {
// flag = 1;
// digitalWrite(exitPin, HIGH);
// }
// if ((digitalRead(enterPin) == LOW) && flag == 1) {
// flag = 0;
// digitalWrite(exitPin, LOW);
// }
//////////////////////////////////////////////////////////////////////////////////////////////////////////
}