The Flex Controller from Hori offers a way for disabled gamers to use alternative access methods with the Nintendo Switch and Windows PCs (10 & 8.1). The Flex Controller acts as an interface into which compatible joysticks and switches can be plugged.

The Flex Controller can also be used with eye gaze on a PC, however this article will not be covering this and will focus on its other features. The Technotools (who developed Flex Controller with HORI) website provides more information on using the Flex Controller with eye gaze: Eye Control — Flex Controller (flex-controller.com)
To jump down to a section, use the links below:
The information in this article is correct to the best of our knowledge at the time of writing (October 2021).
How to Connect
The Flex Controller can be used for gaming on the Nintendo Switch and on PC.
Nintendo Switch: The Flex Controller plugs into the Nintendo Switch dock via the USB cable on the back of the device.

To use it on the Nintendo Switch, the device needs to be in Nintendo Switch mode:

N.B The Flex Controller does not work with the Nintendo Switch Lite, and cannot be used in handheld mode. The Nintendo Switch needs to be in TV mode (used in the dock) for the Flex Controller to work.
The Flex Controller does not support the following functions: Gyro, Accelerometer, HD Rumble, NFC, IR Camera.
Windows PC (XInput): The Flex Controller is compatible with Windows 10 and 8.1 PCs. The Flex Controller plugs into the PC via the USB cable on the back of the device.
To use with Windows 8.1 you need to install the additional driver software: Driver Install (horiusa.com)
To use it on the PC, the Flex Controller needs to be in PC mode:

Joysticks and Switches
Joysticks
The Flex Controller allows compatible joysticks to be plugged in. This is helpful for people who find the joysticks on standard Nintendo Switch controllers difficult to use.
Compatible joysticks all plug into the L-Stick or R-Stick USB sockets on the Hori Flex. The USB socket that you plug the joystick into will depend on whether you want your joystick to act as left or right joystick. You can plug joysticks into both sides if you need access to both left and right stick.


Compatible Joysticks
*Update 23/03/2022: Hori have released an update for the Flex to allow for more joysticks to work. The following joysticks mentioned in this post are compatible joysticks that SpecialEffect regularly use.
UltraStik 360 joystick: The UltraStik 360 joystick is an analogue arcade joystick created by Ultimarc. This joystick is then mounted into a suitable case either by a supplier or as a DIY project. The two different types of UltraStik we use at SpecialEffect, are sourced from OneSwitch and Quadstick. They are ideal for people with good gross movement who find small joysticks difficult.

Zik-Zak: Zik-Zak joysticks are analogue joysticks created by OneSwitch. There are 3 different types of Zik-Zak available and a variety of different tops. This post gives more detail on the different types of Zik-Zak joysticks available: XAC Zik-Zak Joysticks – GameAccess

Optima Joystick by Pretorian Technologies – This large analogue joystick is one of the options we use at SpecialEffect for people who have gross movements and who may find smaller joysticks difficult. The Optima Joystick can be used for gaming with the Flex Controller on the Nintendo Switch and PC. It can also be used without the Flex Controller as a PC joystick mouse. It also works for gaming with the Xbox Adaptive Controller.

Hori Controllers – The analogue joysticks on the following controllers can be used in the Flex Controller:
- HORIPAD for Nintendo Switch
- Real Arcade Pro V Hayabusa for Nintendo Switch
- Battle Pad for Nintendo Switch
- Nintendo Switch HORIPAD Mini
These controllers also plug into the L-Stick USB or the R-Stick USB on the Flex Controller. When plugged in, only the joystick which corresponds to the USB it is plugged into will be functional. The buttons and second joystick on the controller will not function i.e. only the left stick is available when the controller is connected to the L-Stick USB and only the right stick is available when the controller is connected to the R-Stick USB.
Compatible Switches:
The Flex Controller is compatible with accessibility switches that have a 3.5mm jack plug. Switches are an option for individuals who cannot use the buttons on a standard controller and require a larger size, different force and/or custom placement. The type of switch you need will depend on the amount and type of movements that you have, as well as the games you want to play.
The following article gives further information on switches and how they can be used: Using Switches to Access Button Presses – GameAccess
The Flex Controller allows you plug switches in to act as L-Stick Button, R-Stick Button, Capture, -, ZL, L, Left, Up, Down, Right, Y, X, B, A, R, ZR, + and HOME Button.
The switch sockets are all fully labelled and most of the switches plug in along the bottom of the Flex Controller:

The switch sockets for L-Stick and R-Stick button are located on the sides next to the L- and R-Stick USB sockets.

The Flex Controller has additional buttons on the top which can be used for gameplay if they are accessible to the player, or to provide support for the user of the device e.g. in setting up a game:
The Flex has a ¼ inch camera fixing on the back so it can be mounted in place using a compatible mounting arm. This could help individuals access the buttons on the top of the Flex Controller more easily:

NB – The Mode button on the top of the Flex Controller cannot currently be accessed using an accessibility switch. The slider switch on the top of the Hori Flex that changes between PC and Nintendo Switch mode also must also be operated manually.
Joystick directions are not currently available as switch inputs. The only way to access these is to use a physical joystick in the L- or R-Stick USB.
Flex Controller Settings App
The Flex Controller Settings App is the Flex’s companion app that allows you to make changes to your button assignments and joysticks. To access the app, the Flex Controller needs to be plugged into a PC.
The app is only compatible with Windows 10 and 8.1 PCs and can be downloaded here: 株式会社 HORI | Flex Controller Settings App
Any changes you make are saved to the device under different profiles. You then use the Mode button on the Flex Controller to select the profile you want active while you are playing.
You can have up to 12 profiles saved on the Flex Controller, six for the Nintendo Switch and six for PC.
To make alterations, select the profile to want to edit. You can make a new profile or edit an existing one.
Once you have created a new profile or selected Edit, you can make changes to the joystick options or button remapping.
Joystick Options:
You can alter the following settings for the joystick:
Sensitivity – This makes the movement of the joystick faster or slower.
Deadzone – Changes the amount the joystick can move before it is recognised. Changing this could be useful to stop the joystick recognising accidental and unwanted movements.
Joystick Orientation – Changes the orientation of the joystick by 90° intervals.
You can also swap the left and right joystick functions over.
Button Options:
You can change the function of your switches that you have plugged into the Flex Controller.
To change the button assignments, select the profile that you want to edit, and then click on the button that you want to change. The button you have selected will turn green in the app.
You can make the following changes to button assignments:
Remapping – You can change the function of the button. For example, if you have a switch plugged into the A port, you could remap and make the switch act as another button. You can remap to any button on a standard Nintendo Switch controller.
Press, Hold and Double Press – You can assign three different buttons to one switch with the Press, Hold and Double Press feature. The switch in the example below was plugged into the A socket. If this switch is pressed once, it will still activate the A button. If the switch is held down, it will then act as X. If the button is double pressed, it will activate Home.

This option could be useful for individuals who can only access a few switches, as it could enable them to access a lot of controller buttons, with only a few inputs.
The length of time the switch needs to be held (Hold Time) and the speed required to activate the Double Press (Double Press Interval) can be altered to suit the individual.
You do not need to have all these options mapped. You can leave any options you don’t want blank.
Ignore Repeated Inputs – This option can be selected if the user wants accidental switch presses to be ignored. The amount of time that repeated inputs are ignored for can also be altered. This is a good option for people who have involuntary movements or tremors, who might accidentally press their switch.
Toggle – Toggle allows you to have up to five inputs for one button. You press the button the required number of times to toggle the control you want, then hold the button to activate it.
The time required to hold the switch to activate the press (Hold Time) can be altered from 0.5 – 3.0 seconds.
If Toggle options are selected then Press, Hold and Double Press options will be deactivated.
N.B: The built-in buttons on the top of the Flex Controller cannot be reassigned. When using the Hori Flex on the Nintendo Switch, system-level button remapping cannot be used. Buttons can only be remapped through the Flex Controller Settings App.
When you have finished making your changes in the Flex Controller Settings App, you need to click Save before closing the app, otherwise your changes will not be saved to the Flex Controller.
The number of joysticks and switches you need to use with your Flex Controller will depend on your movements and the games you are playing. If you have any questions about the Flex Controller, or accessible gaming, please contact us.
Links (unaffiliated):
Hori Flex Controller: https://www.pretorianuk.com/flex-controller
Oneswitch UltraStik: Accessible Gaming Shop – Ultra-Stik – OneSwitch.org.uk
Quadstick UltraStik: Ultimarc UltraStik 360 mounted in an enclosure — QuadStick
OneSwitch Large Zik-Zak: XAC Zik-Zak Joystick – OneSwitch.org.uk
OneSwitch Zik-Zak Small: XAC Zik-Zak MINI Joystick – OneSwitch.org.uk
Optima Joystick: https://www.pretorianuk.com/optima-joystick
Logitech Adaptive Gaming Kit: https://www.logitechg.com/en-gb/products/gamepads/adaptive-gaming-kit-accessories.943-000339.html
Manfrotto Variable Friction Arm: https://www.manfrotto.com/uk-en/photo-variable-friction-arm-italian-craftsmanship-244n/
Manfrotto Super Clamp: https://www.manfrotto.com/uk-en/super-photo-clamp-without-stud-aluminium-035/
Manfrotto Short Adapter Spigot 3/8”and1/4”: https://www.manfrotto.com/uk-en/short-adapter-spigot-3-8-and1-4-147/