⚠️ ARCHIVE NOTICE ⚠️
This documentation is no longer being maintained!
- The new ArduSub docs are located in the ArduPilot wiki. Updated pages will be redirected.
- The Companion Computer Software is also archived, and has been replaced by BlueOS.
- For Control Station Software, see QGroundControl or Cockpit (our new alternative).
Joystick
A joystick (also known as a hand controller, gamepad, etc) when connected to the topside computer is how the user provides control inputs to the vehicle. These inputs may be in the form of movement (stick control) or action items (button presses).
QGroundControl has support for Microsoft's XInput Game Controller API meaning any controller which supports XInput may be used.
QGroundControl supports controllers with up to 4 control axes and 16 buttons.
Supported Commercial Joysticks
The following joysticks have been tested and are supported:
- Logitech F310 (wired)
- Logitech F710 (wireless)
- Microsoft Xbox One controllers (wired and wireless)
- Sony PlayStation 4 controllers (wired only)
Custom Joysticks
With the inclusion of industry standard drivers and APIs, custom controllers can be built using a joystick control board and standard buttons and sticks.
Marine Simulation wrote a quick tutorial on how to do so: Custom Hand Controller Design
The following control boards have been known to work:
- Leo Bodnar Electronics
- Ultimarc
Custom Joystick Examples
Below are some examples of custom joysticks created by ArduSub users.