Skip to content

Board IDs

Chris Reed edited this page Jun 6, 2024 · 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.

Introduction

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.)

Definition

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.
    • “D0xx” is reserved for boards that are not also Mbed platforms, mostly DAPLink firmware.
    • "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.

Lists

The test/info.py file contains a list of board IDs for the DAPLink firmware builds.

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, an effort is made to keep it in sync with DAPLink, and the list is thus a superset of the IDs provided by DAPLink firmware builds.

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. Be aware that the page take a long time to fully load. You may wish to use a tool like curl to download the page as JSON instead.

Getting a new ID

IDs in the DAPLink Dxxx range may be allocated on the relevant wiki page.

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


(Note: there is a copy of this page for pyOCD: https://github.com/pyocd/pyOCD/wiki/Board-IDs)

Clone this wiki locally