What is DAPLink?DAPLink (full name Arm Mbed DAPLink) is essentially a “small brain” that runs on a development board and is specifically responsible for “handshaking” with the computer. It is installed on a secondary MCU, connected to the main MCU’s SWD/JTAG port, and then bridges the computer, debugger, and programmer via USB. In other words, your computer only needs to plug in one cable to flash firmware as easily as dragging and dropping files, view logs as simply as opening a terminal, and even debug without installing any drivers—this is the magic of DAPLink.
What Pain Points Does DAPLink Solve?
| Common Pain Points | Traditional Approach | DAPLink’s Solution |
| Driver Hassles | Each board requires proprietary drivers, and reinstalling them on a new computer is necessary. | Uses CMSIS-DAPv2 WinUSB, WebUSB, no drivers needed on Windows, Linux, or macOS. |
| Non-intuitive Flashing | Using an IDE requires several steps to “write”, and when errors occur, only stack information remains. | MSC (Mass-Storage Class) mode allows firmware to be dragged into the USB drive, as simple as copying files. |
| Difficult Log Retrieval | Requires additional serial adapters or specialized debugging tools. | CDC virtual serial port allows logs/traces to be viewed with the computer’s built-in terminal software. |
| Poor Board Compatibility | Each vendor’s debugger protocol is not standardized, requiring relearning when switching boards. | CMSIS-DAP standard allows almost all Arm Cortex development boards to be used directly. |
| Complicated Upgrades and Maintenance | Firmware upgrades often require specialized tools or programmers. | With DAPLink’s built-in “Update Firmware” feature, firmware can be refreshed directly on the computer. |
Installation & Usage in One Go
- 1. Prepare Hardware
- • Any development board that supports SWD/JTAG (e.g., NUCLEO, LPC-Link2, ST-LINK V2, etc.)
- • A standard USB-A to Micro-B (or USB-C) data cable
- • Visit the DAPLink official Release page and download the corresponding board’s
<span>.hex</span>file. - • Use an existing debugger (J-Link, ST-LINK) to flash the
<span>.hex</span>file, or directly use the vendor’s “DFU mode” to flash it.
- • Plug in the USB, and the system will pop up the DAPLink USB Composite Device, which includes three sub-devices: MSC, CDC, and CMSIS-DAP.
- • Windows will automatically recognize WinUSB, while Linux/macOS will mount it as a disk.
- • Compile to generate a
<span>.bin</span>or<span>.hex</span>, and drag it to the root directory of the DAPLink mounted disk to complete flashing in seconds. - • If using IDEs like VS Code, Keil, or IAR, simply select “DAPLink” as the debugging/downloading interface.
- • Open a terminal (e.g., PuTTY, minicom), select the corresponding COM port, and you can see the
<span>printf</span>output in real-time. - • Start debugging in the IDE, and DAPLink will automatically convert GDB/LLDB commands into SWD signals, supporting single-step, breakpoints, and variable viewing.
Tip: In Windows, press
<span>Win+R</span>and enter<span>devmgmt.msc</span>to see the “CMSIS-DAP” device. Right-click → “Properties” → “Details” to view the firmware version, making it easy to confirm if it has been updated to the latest version.
Clear Advantages and Disadvantages
| Advantages | Description |
| Driver-free Plug and Play | WinUSB, WebUSB, cross-platform zero drivers. |
| Drag-and-Drop Flashing | MSC mode allows firmware to be flashed as simply as copying files. |
| Unified Multi-Protocol | Supports CMSIS-DAPv1/v2, CDC, WebUSB, compatible with almost all debugging tools. |
| Active Open Source Community | Frequent contributions from official, vendors, and individuals, with rapid feature iterations. |
| Low Cost | Based on a secondary MCU, no need for an additional expensive debugger. |
| Disadvantages | Description |
| Secondary Flashing Requirement | Initial flashing of DAPLink still requires an external debugger or DFU mode. |
| Functionality Limited by Secondary MCU | Some advanced debugging features (like real-time tracing) still require specialized hardware. |
| USB Compatibility | Older Windows 7/8 requires manual installation of WinUSB drivers. |
| Firmware Size | Not suitable for extremely resource-constrained MCUs (e.g., 8 KB RAM). |
Conclusion: Why You Should Start Using DAPLink ImmediatelyIf you are tired of reinstalling drivers every time you switch boards and clicking “a bunch of buttons” every time you flash, then DAPLink is your savior. It condenses “debugging/flashing/logging” into a single USB device, making the development process as natural as opening a phone folder. More importantly, it is open-source, allowing you to view the source code, customize features, and even contribute firmware for your own hardware. Don’t hesitate any longer, unplug the old debugger, and equip your development board with DAPLink, making coding as easy as drinking coffee.
Project Address: https://github.com/ARMmbed/DAPLink