> Complete documentation index: [llms.txt](/llms.txt). Markdown versions of all pages are available by appending `.md` to page URLs.

# Install a Device Pack

> Get the CMSIS device family pack for the MCU and open it in Mission Control 3 to flash it with the Binho Atira.

Mission Control 3 flashes an MCU through the Binho Atira using the vendor's CMSIS device family pack (DFP) for that chip. The pack holds the chip's memory map and its flash algorithm. Binho does not ship vendor packs: download the pack under the vendor's license and open it in Mission Control 3.

The STM32H503 is built in and needs no pack.

Mission Control 3 9.1 or later and Atira firmware 1.1 or later are required.

The MCU Debugger's **Flash & debug** uses the same pack: open it once in the MCU Programmer, then pick the part in the MCU Debugger too (**Attach…** → **Target**).

If the MCU has no CMSIS pack (for example Nordic's nRF54L), Mission Control 3 can't flash it yet; pyOCD with the Atira works meanwhile.

## 1. Get the pack file

Use whichever tool is already installed. Each one leaves a pack file (`.pack`) on the computer; note where it is.

### Direct download

Search for the part at [keil.arm.com/packs](https://www.keil.arm.com/packs/) and download the device family pack. Its name ends in `_DFP`, for example `Keil.STM32H5xx_DFP` for the STM32H5 series. Some vendors also publish packs on their own sites; Microchip packs use the `.atpack` extension.

For STM32 parts, download the device family pack here too, even when using STM32CubeMX or STM32CubeIDE.

### pyOCD

```text
pyocd pack find <part>
pyocd pack install <part>
```

For example, `pyocd pack install stm32h503`. pyOCD keeps the pack at `<folder>/<Vendor>/<Pack>/<version>.pack`, where `<folder>` is:

| OS      | Folder                                                  |
| ------- | ------------------------------------------------------- |
| Windows | `%LOCALAPPDATA%\cmsis-pack-manager\cmsis-pack-manager`  |
| macOS   | `~/Library/Application Support/cmsis-pack-manager`      |
| Linux   | `~/.local/share/cmsis-pack-manager` (or `$XDG_DATA_HOME/cmsis-pack-manager`) |

### cpackget (CMSIS-Toolbox)

```text
cpackget add <Vendor>::<Pack>
```

For example, `cpackget add Keil::STM32H5xx_DFP`. cpackget installs into the pack root, `CMSIS_PACK_ROOT`. When that variable is not set, the pack root is:

| OS            | Pack root                |
| ------------- | ------------------------ |
| Windows       | `%LOCALAPPDATA%\Arm\Packs` |
| macOS, Linux  | `~/.cache/arm/packs`     |

The downloaded file is `<pack root>/.Download/<Vendor>.<Pack>.<version>.pack`.

### Keil MDK (µVision)

Install the pack with the Pack Installer. Keil uses the pack folder named by `RTEPATH` in its `TOOLS.INI` file, laid out like the cpackget pack root above: the downloaded file is in its `.Download` folder. A typical default location for older installs, with MDK in `C:\Keil_v5`, is `C:\Keil_v5\ARM\PACK`; newer MDK versions may keep packs elsewhere, so check `RTEPATH`.

## 2. Open the pack in Mission Control 3

1. Open the **MCU Programmer**.
2. On the **Pack** row, click **Open pack…** and choose the `.pack` or `.atpack` file. The `.pdsc` file of a pack that the tool installed (unzipped) can also be chosen, for example `<pack root>/<Vendor>/<Pack>/<version>/<Vendor>.<Pack>.pdsc`.
3. Pick the part in the target list.

Mission Control 3 remembers the pack across restarts. **Close pack** goes back to the built-in targets. Opening a pack needs the desktop app. If the Atira is on a remote Ground Control host, **Open pack…** is off: Mission Control 3 can't use a pack file from this computer, so open the file on the machine running Ground Control.

:::note
Mission Control 3 does not search the tools' pack folders. Open the pack file manually.

:::

## If the pack or part can't be used

| Message                                                | What to do |
| ------------------------------------------------------ | ---------- |
| ... is not a CMSIS pack                                | Open a `.pack` or `.atpack` file, or the `.pdsc` of an installed pack. |
| ... describes no MCU                                   | A software or board pack was opened. Open the device family pack (DFP) of the MCU. |
| The pack ... could not be read                         | The file may be damaged or incomplete. Download it again. |
| None of the parts in ... can be flashed yet           | The pack was read, but this version can't flash any of its parts. Check that it is the device family pack (DFP) of the MCU; if it is, the part isn't supported yet. |
| Pack file not found                                    | The file was moved or deleted. Open it again. |
| The pack ... could not be opened                       | The file may be unreadable for lack of permission, or it is a broken link. Check the file's permissions, or open the file itself instead of a link. |
| Not supported yet: needs vendor connect steps          | The pack declares vendor connect steps (`DebugPortStart`, `DebugPortSetup`) that the Atira doesn't run yet. Flashing and erasing are still possible, at the user's own risk: Mission Control 3 asks each time. Without those steps, flashing may fail or leave the MCU unreachable until the vendor's own tools recover it. |
| Not supported yet (with a reason)                      | This version can't flash the part: its pack has no `.FLM` flash algorithm for it, its flash is split into several separate regions, or its pack gives no RAM window for the flash algorithm. |

The parts in the target list come from the vendor's pack; Binho doesn't check each one.

Need help? Contact [support@binho.io](mailto:support@binho.io).