Enabled-Controller

Background:

Operating computers and smartphones typically requires using a traditional input device like a mouse, keyboard, joystick, touch screen, or touch pad. However, this input methods can be difficult or even impossible to operate for some users, such as those with low hand dexterity or limited range of motion in their hands.  

There are a variety of adaptive switches that can be used as an alternative input method depending on the needs of the user, but they are often unable to connect directly to the host device and they require a device that can convert switch input signals to a compatible format acceptable by the host devices.  These devices commonly known as switch interfaces, convert adaptive switch enclosures to USB or Bluetooth human interface device or HID commands.

Project Information:

Enabled Controller is an open-source switch controller interface that enables those with limited or no hand movement to use Adaptive switches and analog joysticks in one device as inputs.

Enabled Controller acts as a switch interface which can act as an alternative input method to traditional input methods such as mice and keyboard.

Enabled Controller aims to provide a more affordable and customizable switch interface alternative to available commercial switch interfaces. All the components can be purchased online, the custom PCB can be fabricated using online PCB fabrication services, and the enclosure files can be downloaded and 3D printed from project repository.

Usage:

Enabled Controller allows the end user to connect up to eight adaptive switches and two dual axis analog joysticks to their host device through eight 3.5mm stereo jacks and two 3.5mm headphone jacks. The two 3.5mm headphone jacks can be used to connect up to two X-Y dual axis analog joysticks. Enabled Controller can operate in multiple modes and the end user can switch between the modes by simply holding and pressing Switch D for two seconds.

The device is connected to the host device through USB connection. Each switch can then be mapped to a specific action using switch control accessibility feature available in the host device.

Versions:

Enabled Controller is offered in two different flavors:

  • USB Version
  • Joystick Version

Please refer to Enabled-Controller-Wireless project for the bluetooth-enabled version.

Features:

Modes:

Enabled Controller USB supports the following switch modes:

  • Switch Access Mode ( HID Keyboard ) : Teal Led
  • Morse Keyboard Mode ( HID Keyboard ) : Purple Led
  • Morse Mouse Mode ( HID Mouse ) : Pink Led
  • Mouse Mode ( HID Mouse ) : Green Led
  • Settings Mode : Orange Led

Enabled Controller Joystick supports the following switch modes:

  • Joystick Mode ( HID Joystick ) : Teal Led
  • Settings Mode : Orange Led

Enabled Controller Joystick supports following switch actions:

  • Switch A: Button press 1 : Blue Led
  • Switch B: Button press 2 : Red Led
  • Switch C: Button press 3 : Green Led
  • Switch D: Button press 4 : Yellow Led
  • Switch Up: Button press 5 : Yellow Led
  • Switch Right: Button press 6 : Yellow Led
  • Switch Down: Button press 7 : Yellow Led
  • Switch Left: Button press 8 : Yellow Led
  • Joystick X1: Move analog joystick in x-axis : Yellow Led
  • Joystick Y1: Move analog joystick in y-axis : Yellow Led
  • Joystick X2: Move analog joystick in x-axis : Yellow Led
  • Joystick Y2: Move analog joystick in y-axis : Yellow Led

You can change the modes by holding switch number 4 or D for 2 seconds.

Other:

The joystick firmware allows the users to operate Xbox Adaptive Controller using Enabled Controller to perform custom switch combinations.

Instructions:

All the required assembly documentation, software, hardware are documented in the project github repository. All the necessary electronics for this project are listed and can be purchased online via provided hyperlinks in the bill of materials (BOM) file.

Compatibility:

Enabled Controller can be used to interact with a host device and as a method of navigation through the user interface of following Operating systems:

  • Android : You need to enable the Switch Access feature. This feature is called Universal Switch in Samsung devices.
  • iOS: You need to enable the Switch Control feature. Only the wireless version of Enabled Controller is detected by iOS.
  • macOS: You need to enable the Switch Control feature.
  • Windows: Windows doesn’t support switch interfaces by default, but additional third-party software can be installed to allow interacting with host device via adaptive switches.
Category:
Assistive Technology
Tags:
3D Printing, Electronics, Printed Circuit Board, Arduino Programming
Enabled-Controller resources and documentation