USB IDs in ArduPilot

ArduPilot uses a range of USB IDs for various flight controllers and devices. This document describes the IDs in active use as well as past IDs that may be on some boards.

Composite Devices

In the information below some IDs are marked as being for composite USB devices. These are for boards which will present two serial interfaces for one USB connection. Boards that use composite IDs will have both OTG1 and OTG2 in their SERIAL_ORDER declaration in the hwdef.dat for the board. These devices should have a different USB VID/PID pair from non-composite boards to allow the correct driver to be loaded on Microsoft Windows.

When a board uses a composite USB ID two serial ports are presented to the host. The user can configure what protocols these two ports use using the SERIALn_PROTOCOL parameter. SERIAL0_PROTOCOL is the first USB interface, and SERIALn_PROTOCOL for the largest value of n on the board is the 2nd USB interface. Typically the 2nd interface is used to give a SLCAN interface for CAN diagnostics and configuration.

VID=0x0483 PID=0x5740

This ID is one from ST Microelectronics, and was used by ArduPilot in the initial ChibiOS port until January 2020. It is a non-composite serial ID.

VID=0x1209 PID=0x5740

This ID is one from http://pid.codes/, and is used by ArduPilot since December 2019. It is a composite serial ID, with interface 0 labelled as MAVLink and interface 2 labelled as SLCAN. It is the default USB ID for boards capable of composite USB devices.

VID=0x1209 PID=0x5741

This ID is one from http://pid.codes/, and is used by ArduPilot since January 2020. It is a non-composite serial ID. It is the default USB ID for boards non-composite USB devices, including bootloaders and all F4 based boards.

VID=0x16D0 PID=0x0E65

This ID is one from https://www.mcselec.com, and is reserved for use by ArduPilot in the future.

VID=0x26AC PID=various

The 0x26AC vendor ID is owned by 3D Robotics, and was used for most ArduPilot compatible boards up until 2018. Some boards still ship with a bootloader that uses that VID.

VID=0x2DAE PID=various

The 0x2DAE vendor ID is owned by Hex, and is used for Hex flight controllers from 2018 onwards.

Specific PIDs are:

  • 0x1101 CubeBlack+

  • 0x1001 CubeBlack bootloader

  • 0x1011 CubeBlack

  • 0x1016 CubeOrange (composite)

  • 0x1005 CubePurple bootloader

  • 0x1015 CubePurple

  • 0x1002 CubeYellow bootloader

  • 0x1012 CubeYellow (composite)

VID=0x3162 PID=various

The 0x3612 vendor ID is owned by Holybro, and is used for Holybro flight controllers from 2019 onwards.

Specific PIDs are:

  • 0x004B Durandal (composite)

VID=0x27AC PID=various

The 0x27AC vendor ID is used by Laser Navigation for their line of VRBrain flight controllers.

Specific PIDs are:

  • 0x1151 VRBrain-v51

  • 0x1152 VRBrain-v52

  • 0x1154 VRBrain-v54

  • 0x1910 VRCore-v10

  • 0x1351 VRUBrain-v51