VID/PID: The standard OpenPilot values (0x20A0/0x415a to 0x415c)
- OpenPilot VendorID: 0x20a0
- OpenPilot Mainboard = 0x415a
- OpenPilot CopterControl = 0x415b,
- OpenPilot PipXtreme = 0x415c
BCDDevice: This is a 2 byte field that has the following breakdown:
|Board Model (MS-Byte)||Board state|
|OpenPilot MainBoard v1||0x01||0x01 : bootloader 0x02: running|
|INS (no USB though but reserving for future)||0x02|
|PipX v1||0x03||0x01: BL; 0x02: run|
|CopterControl v1||0x04||0x01:BL; 0x02: run|
The Bootloader also has a concept of board model in its “DeviceID”: the board model follows the same convention as in the table above.
Note: the Board Model used in bcdDevice is obsolete by now, since the OpenPilot project has purchased several distinct ProductIDs for its various boards. It is kept as it is today until we find another need for this byte. Before we had several ProductIDs, it was used to distinguish which board was behind the (unique) VID/PID.
Vendor String: openpilot.org
Product String: This should indicate what the device is (OP-Board, PipX, etc.)
Note: this is partly obsolete, as we use bcdDevice to differenciate between bootloader & running mode.
Usage Page: 0xff (Custom device)
|Bootloader||Direct Communication||Serial pass through (PipX)|
In principle we could just have bootloader and non-bootloader, but then we would need to look at the BCDDevice field to know if it is a PipX or main board directly and unfortunately that’s not currently part of the rawhid implementation.