Skip to content

Board IDs

Chris Reed edited this page Jun 15, 2021 · 4 revisions

This page documents the board IDs used by DAPLink. There is no other available specification except perhaps in internal Arm and/or Mbed OS documents.

Board IDs originally come from Mbed OS and the Mbed Enabled program. (pyocd and DAPLink were originally Mbed projects, but now pyocd is no longer part of Mbed, though it is still used by Mbed, and DAPLink is only tenuously associated.)

A board ID is a 4-character code that uniquely identifies a board. It also identifies an Mbed platform: the same ID is used for both (which is actually a problem).

Board ID definition:

  • 4-character code.
    • Board IDs currently are all hex numeric, but it's actually a string.
    • There may be problems raised in some components if you tried to use a non-hex char).
  • First 2 characters identify the vendor.
    • There are multiple cases of boards from different vendors being incorrectly allocated in another vendor's namespace, so this cannot solely be relied upon. It's only really useful for grouping of IDs.
  • Reserved values::
    • "C0xx" is reserved for "community" boards, i.e. open source hardware and non-commercial projects.
    • "0000" is reserved to mean "no on-board target". That is, the debug probe is standalone must be connected to the target with a cable.

Currently these debug probe firmware support board IDs:

  • DAPLink, via the first 4 chars of the USB serial number
  • STLinkV2-1 and V3, via an .htm file on the associated USB mass storage volume.

The board_ids.py source file in pyOCD contains a list of board IDs known to pyOCD, with some extra data such as target type and test firmware file name. This is not a comprehensive list of board IDs, however.

You can see the full list of public Mbed platforms at https://os.mbed.com/api/v3/platforms/. The productcode key is the board ID. This list only reports boards that are Mbed platforms. Any non-Mbed-enabled boards with an allocated board ID are marked as hidden (because this database is also used to generate the Mbed platforms web site), and thus will not be visible through this API.

To request a new board ID, fill out the form here: https://os.mbed.com/request-board-id

(This content is based on the wiki page written for pyOCD: https://github.com/pyocd/pyOCD/wiki/Board-IDs)

Clone this wiki locally