neulab/tldr huggingface dataset:
┌──────────────────────────────┬───────────────────┬──────────┬──────────────┬───────────┬─────────┬──────┐
│Name                          │ Platform          │ Debug    │ MCU          │ Frequency │ Flash   │ RAM  │
├──────────────────────────────┼───────────────────┼──────────┼──────────────┼───────────┼─────────┼──────┤
│board_timsp430_lpmsp430fr5739 │ platform_timsp430 │ On-board │ MSP430FR5739 │ 16MHz     │ 15.37KB │ 1KB  │
├──────────────────────────────┼───────────────────┼──────────┼──────────────┼───────────┼─────────┼──────┤
│board_timsp430_lpmsp430f5529  │ platform_timsp430 │ On-board │ MSP430F5529  │ 25MHz     │ 47KB    │ 8KB  │
├──────────────────────────────┼───────────────────┼──────────┼──────────────┼───────────┼─────────┼──────┤
│board_timsp430_lpmsp430fr2311 │ platform_timsp430 │ On-board │ MSP430FR2311 │ 16MHz     │ 3.75KB  │ 1KB  │
├──────────────────────────────┼───────────────────┼──────────┼──────────────┼───────────┼─────────┼──────┤
│board_timsp430_lpmsp430fr2433 │ platform_timsp430 │ On-board │ MSP430FR2433 │ 8MHz      │ 15KB    │ 4KB  │
├──────────────────────────────┼───────────────────┼──────────┼──────────────┼───────────┼─────────┼──────┤
│board_timsp430_lpmsp430fr4133 │ platform_timsp430 │ On-board │ MSP430FR4133 │ 8MHz      │ 15KB    │ 2KB  │
├──────────────────────────────┼───────────────────┼──────────┼──────────────┼───────────┼─────────┼──────┤
│board_timsp430_lpmsp430fr5969 │ platform_timsp430 │ On-board │ MSP430FR5969 │ 8MHz      │ 47KB    │ 2KB  │
├──────────────────────────────┼───────────────────┼──────────┼──────────────┼───────────┼─────────┼──────┤
│board_timsp430_lpmsp430fr5994 │ platform_timsp430 │ On-board │ MSP430FR5994 │ 16MHz     │ 256KB   │ 4KB  │
├──────────────────────────────┼───────────────────┼──────────┼──────────────┼───────────┼─────────┼──────┤
│board_timsp430_lpmsp430fr6989 │ platform_timsp430 │ On-board │ MSP430FR6989 │ 8MHz      │ 47KB    │ 2KB  │
├──────────────────────────────┼───────────────────┼──────────┼──────────────┼───────────┼─────────┼──────┤
│board_timsp430_lpmsp430g2231  │ platform_timsp430 │ On-board │ MSP430G2231  │ 1MHz      │ 2KB     │ 256B │
├──────────────────────────────┼───────────────────┼──────────┼──────────────┼───────────┼─────────┼──────┤
│board_timsp430_lpmsp430g2452  │ platform_timsp430 │ On-board │ MSP430G2452  │ 16MHz     │ 8KB     │ 256B │
├──────────────────────────────┼───────────────────┼──────────┼──────────────┼───────────┼─────────┼──────┤
│board_timsp430_lpmsp430g2553  │ platform_timsp430 │ On-board │ MSP430G2553  │ 16MHz     │ 16KB    │ 512B │
└──────────────────────────────┴───────────────────┴──────────┴──────────────┴───────────┴─────────┴──────┘
Olimex ARM-USB-OCD-H
High-speed 3-IN-1 fast USB ARM/ESP32 JTAG, USB-to-RS232 virtual port and power supply 5VDC device.  Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = olimex-arm-usb-ocd-h
[env:myenv] platform = ... board = ... debug_tool = olimex-arm-usb-ocd-h upload_protocol = olimex-arm-usb-ocd-h
┌─────────────────────┬────────────────┬─────────────────────┐ │Olimex ARM-USB-OCD-H │ Board JTAG Pin │ Description         │ │JTAG 20-Pin          │                │                     │ │Connector            │                │                     │ ├─────────────────────┼────────────────┼─────────────────────┤ │1                    │ VCC            │ Positive Supply     │ │                     │                │ Voltage — Power     │ │                     │                │ supply for JTAG     │ │                     │                │ interface drivers   │ ├─────────────────────┼────────────────┼─────────────────────┤ │4                    │ GND            │ Digital ground      │ ├─────────────────────┼────────────────┼─────────────────────┤ │5                    │ TDI            │ Test Data In pin    │ ├─────────────────────┼────────────────┼─────────────────────┤ │7                    │ TMS            │ Test Mode State pin │ ├─────────────────────┼────────────────┼─────────────────────┤ │9                    │ TCK            │ JTAG Return Test    │ │                     │                │ Clock               │ ├─────────────────────┼────────────────┼─────────────────────┤ │13                   │ TDO            │ Test Data Out pin   │ └─────────────────────┴────────────────┴─────────────────────┘
│3                    │ RESET          │ Connect this pin to │ │                     │                │ the (active low)    │ │                     │                │ reset input of the  │ │                     │                │ target CPU (EN for  │ │                     │                │ ESP32)              │ └─────────────────────┴────────────────┴─────────────────────┘
Olimex ARM-USB-OCD
3-IN-1 fast USB ARM/ESP32 JTAG, USB-to-RS232 virtual port and power supply 5-9-12VDC device (supported by OpenOCD ARM debugger software). Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = olimex-arm-usb-ocd
[env:myenv] platform = ... board = ... debug_tool = olimex-arm-usb-ocd upload_protocol = olimex-arm-usb-ocd
┌───────────────────┬────────────────┬─────────────────────┐ │Olimex ARM-USB-OCD │ Board JTAG Pin │ Description         │ │JTAG 20-Pin        │                │                     │ │Connector          │                │                     │ ├───────────────────┼────────────────┼─────────────────────┤ │1                  │ VCC            │ Positive Supply     │ │                   │                │ Voltage — Power     │ │                   │                │ supply for JTAG     │ │                   │                │ interface drivers   │ ├───────────────────┼────────────────┼─────────────────────┤ │4                  │ GND            │ Digital ground      │ ├───────────────────┼────────────────┼─────────────────────┤ │5                  │ TDI            │ Test Data In pin    │ ├───────────────────┼────────────────┼─────────────────────┤ │7                  │ TMS            │ Test Mode State pin │ ├───────────────────┼────────────────┼─────────────────────┤ │9                  │ TCK            │ JTAG Return Test    │ │                   │                │ Clock               │ ├───────────────────┼────────────────┼─────────────────────┤ │13                 │ TDO            │ Test Data Out pin   │ ├───────────────────┼────────────────┼─────────────────────┤ │3                  │ RESET          │ Connect this pin to │ │                   │                │ the (active low)    │ │                   │                │ reset input of the  │ │                   │                │ target CPU (EN for  │ │                   │                │ ESP32)              │ └───────────────────┴────────────────┴─────────────────────┘
Olimex ARM-USB-TINY-H
Low-cost and high-speed ARM/ESP32 USB JTAG.  Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = olimex-arm-usb-tiny-h
[env:myenv] platform = ... board = ... debug_tool = olimex-arm-usb-tiny-h upload_protocol = olimex-arm-usb-tiny-h
┌────────────────────┬────────────────┬─────────────────────┐ │Olimex              │ Board JTAG Pin │ Description         │ │ARM-USB-TINY-H JTAG │                │                     │ │20-Pin Connector    │                │                     │ ├────────────────────┼────────────────┼─────────────────────┤ │1                   │ VCC            │ Positive Supply     │ │                    │                │ Voltage — Power     │ │                    │                │ supply for JTAG     │ │                    │                │ interface drivers   │ ├────────────────────┼────────────────┼─────────────────────┤ │4                   │ GND            │ Digital ground      │ ├────────────────────┼────────────────┼─────────────────────┤ │5                   │ TDI            │ Test Data In pin    │ ├────────────────────┼────────────────┼─────────────────────┤ │7                   │ TMS            │ Test Mode State pin │ ├────────────────────┼────────────────┼─────────────────────┤ │9                   │ TCK            │ JTAG Return Test    │ │                    │                │ Clock               │ ├────────────────────┼────────────────┼─────────────────────┤ │13                  │ TDO            │ Test Data Out pin   │ ├────────────────────┼────────────────┼─────────────────────┤ │3                   │ RESET          │ Connect this pin to │ │                    │                │ the (active low)    │ │                    │                │ reset input of the  │ │                    │                │ target CPU (EN for  │ │                    │                │ ESP32)              │ └────────────────────┴────────────────┴─────────────────────┘
│board_espressif32_lolin_d32_pro                   │ platform_espressif32 │ External │ ESP32 │ 240MHz    │ 4MB    │ 320KB  │
├──────────────────────────────────────────────────┼──────────────────────┼──────────┼───────┼───────────┼────────┼────────┤
│board_espressif32_lolin32                         │ platform_espressif32 │ External │ ESP32 │ 240MHz    │ 4MB    │ 320KB  │
├──────────────────────────────────────────────────┼──────────────────────┼──────────┼───────┼───────────┼────────┼────────┤
│board_espressif32_wemos_d1_mini32                 │ platform_espressif32 │ External │ ESP32 │ 240MHz    │ 4MB    │ 320KB  │
├──────────────────────────────────────────────────┼──────────────────────┼──────────┼───────┼───────────┼────────┼────────┤
│board_espressif32_wemosbat                        │ platform_espressif32 │ External │ ESP32 │ 240MHz    │ 4MB    │ 320KB  │
├──────────────────────────────────────────────────┼──────────────────────┼──────────┼───────┼───────────┼────────┼────────┤
│board_espressif32_xinabox_cw02                    │ platform_espressif32 │ External │ ESP32 │ 240MHz    │ 4MB    │ 320KB  │
├──────────────────────────────────────────────────┼──────────────────────┼──────────┼───────┼───────────┼────────┼────────┤
│board_espressif32_iotbusio                        │ platform_espressif32 │ External │ ESP32 │ 240MHz    │ 4MB    │ 320KB  │
├──────────────────────────────────────────────────┼──────────────────────┼──────────┼───────┼───────────┼────────┼────────┤
│board_espressif32_iotbusproteus                   │ platform_espressif32 │ External │ ESP32 │ 240MHz    │ 4MB    │ 320KB  │
└──────────────────────────────────────────────────┴──────────────────────┴──────────┴───────┴───────────┴────────┴────────┘
Olimex ARM-USB-TINY
[env:myenv] platform = ... board = ... debug_tool = olimex-jtag-tiny
[env:myenv] platform = ... board = ... debug_tool = olimex-jtag-tiny upload_protocol = olimex-jtag-tiny
┌────────────────────┬────────────────┬─────────────────────┐ │Olimex ARM-USB-TINY │ Board JTAG Pin │ Description         │ │20-Pin Connector    │                │                     │ ├────────────────────┼────────────────┼─────────────────────┤ │1                   │ VCC            │ Positive Supply     │ │                    │                │ Voltage — Power     │ │                    │                │ supply for JTAG     │ │                    │                │ interface drivers   │ ├────────────────────┼────────────────┼─────────────────────┤ │4                   │ GND            │ Digital ground      │ ├────────────────────┼────────────────┼─────────────────────┤ │5                   │ TDI            │ Test Data In pin    │ ├────────────────────┼────────────────┼─────────────────────┤ │7                   │ TMS            │ Test Mode State pin │ ├────────────────────┼────────────────┼─────────────────────┤ │9                   │ TCK            │ JTAG Return Test    │ │                    │                │ Clock               │ ├────────────────────┼────────────────┼─────────────────────┤ │13                  │ TDO            │ Test Data Out pin   │ ├────────────────────┼────────────────┼─────────────────────┤ │3                   │ RESET          │ Connect this pin to │ │                    │                │ the (active low)    │ │                    │                │ reset input of the  │ │                    │                │ target CPU (EN for  │ │                    │                │ ESP32)              │ └────────────────────┴────────────────┴─────────────────────┘
QEMU is a free and open-source emulator that performs hardware virtualization.  Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = qemu
Platforms ┌────────────────┬─────────────────────────────┐ │Name            │ Description                 │ ├────────────────┼─────────────────────────────┤ │platform_sifive │ SiFive brings the power of  │ │                │ open source and software    │ │                │ automation to the           │ │                │ semiconductor industry,     │ │                │ making it possible to       │ │                │ develop new hardware faster │ │                │ and more affordably than    │ │                │ ever before.                │ └────────────────┴─────────────────────────────┘
┌──────────────────────────────┬─────────────────┬──────────┬───────┬───────────┬───────┬───────┐
│Name                          │ Platform        │ Debug    │ MCU   │ Frequency │ Flash │ RAM   │
├──────────────────────────────┼─────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_sifive_e310-arty        │ platform_sifive │ On-board │ FE310 │ 450MHz    │ 16MB  │ 256MB │
├──────────────────────────────┼─────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_sifive_hifive-unleashed │ platform_sifive │ On-board │ FU540 │ 1500MHz   │ 32MB  │ 8GB   │
├──────────────────────────────┼─────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_sifive_hifive1          │ platform_sifive │ On-board │ FE310 │ 320MHz    │ 16MB  │ 16KB  │
└──────────────────────────────┴─────────────────┴──────────┴───────┴───────────┴───────┴───────┘
Renode
Renode is a development framework which accelerates IoT and embedded systems development by letting you simulate physical hardware systems - including both the CPU, peripherals, sensors, environment and wired or wireless medium between nodes.  For more information, see Renode's official website.
Configuration You can configure Renode as a debugging tool using projectconf_debug_tool option in projectconf:
[env:myenv] platform = ... board = ... debug_tool = renode
Installation We will automatically install for you the latest Renode package using PlatformIO package manager. The only requirement is to install Mono/.NET framework.
Windows On Windows 7, download and install .NET Framework 4.7.  Windows 10 ships with .NET by default, so no action is required there.
Mac    Install Homebrew and the mono package using brew install mono.
Linux  Install the mono-complete package as per the installation instructions for various Linux distributions which can be found on the Mono project website.
Check the official Renode installation guide for more details.
┌───────────────────────────────────┬─────────────────┬──────────┬───────┬───────────┬───────┬───────┐
│Name                               │ Platform        │ Debug    │ MCU   │ Frequency │ Flash │ RAM   │
├───────────────────────────────────┼─────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_sifive_e310-arty             │ platform_sifive │ On-board │ FE310 │ 450MHz    │ 16MB  │ 256MB │
├───────────────────────────────────┼─────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_sifive_hifive-unleashed      │ platform_sifive │ On-board │ FU540 │ 1500MHz   │ 32MB  │ 8GB   │
├───────────────────────────────────┼─────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_sifive_hifive1               │ platform_sifive │ On-board │ FE310 │ 320MHz    │ 16MB  │ 16KB  │
├───────────────────────────────────┼─────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_sifive_hifive1-revb          │ platform_sifive │ On-board │ FE310 │ 320MHz    │ 16MB  │ 16KB  │
├───────────────────────────────────┼─────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_sifive_sparkfun_redboard_v   │ platform_sifive │ On-board │ FE310 │ 320MHz    │ 16MB  │ 16KB  │
├───────────────────────────────────┼─────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_sifive_sparkfun_thing_plus_v │ platform_sifive │ On-board │ FE310 │ 320MHz    │ 16MB  │ 16KB  │
└───────────────────────────────────┴─────────────────┴──────────┴───────┴───────────┴───────┴───────┘
RV-LINK RISC-V emulator implemented with RISC-V development board. Unlike other emulators: RV-LINK interacts directly with GDB via a USB serial port and does not require an intermediary such as OpenOCD. Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = rv-link
[env:myenv] platform = ... board = ... debug_tool = rv-link upload_protocol = rv-link
┌────────────────────────────────────┬─────────────────┬──────────┬───────────────┬───────────┬───────┬──────┐
│Name                                │ Platform        │ Debug    │ MCU           │ Frequency │ Flash │ RAM  │
├────────────────────────────────────┼─────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_nuclei_gd32vf103v_eval        │ platform_nuclei │ External │ GD32VF103VBT6 │ 108MHz    │ 128KB │ 32KB │
├────────────────────────────────────┼─────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_nuclei_gd32vf103v_rvstar      │ platform_nuclei │ On-board │ GD32VF103VBT6 │ 108MHz    │ 128KB │ 32KB │
├────────────────────────────────────┼─────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_gd32v_gd32vf103v-eval         │ platform_gd32v  │ External │ GD32VF103VBT6 │ 108MHz    │ 128KB │ 32KB │
├────────────────────────────────────┼─────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_nuclei_hbird_eval             │ platform_nuclei │ On-board │ HUMMINGBIRD   │ 5MHz      │ 64KB  │ 64KB │
├────────────────────────────────────┼─────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_gd32v_sipeed-longan-nano      │ platform_gd32v  │ External │ GD32VF103CBT6 │ 108MHz    │ 128KB │ 32KB │
├────────────────────────────────────┼─────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_gd32v_sipeed-longan-nano-lite │ platform_gd32v  │ External │ GD32VF103C8T6 │ 108MHz    │ 64KB  │ 20KB │
├────────────────────────────────────┼─────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_gd32v_wio_lite_risc-v         │ platform_gd32v  │ External │ GD32VF103CBT6 │ 108MHz    │ 128KB │ 32KB │
└────────────────────────────────────┴─────────────────┴──────────┴───────────────┴───────────┴───────┴──────┘
simavr simavr is a lean, mean and hackable AVR simulator.  Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = simavr
Platforms ┌──────────────────┬─────────────────────────────┐ │Name              │ Description                 │ ├──────────────────┼─────────────────────────────┤ │platform_atmelavr │ Atmel AVR 8-bit MCUs        │ │                  │ deliver a unique            │ │                  │ combination of performance, │ │                  │ power efficiency and design │ │                  │ flexibility. Optimized to   │ │                  │ speed time to market-and    │ │                  │ easily adapt to new         │ │                  │ ones-they are based on the  │ │                  │ industry's most             │ │                  │ code-efficient architecture │ │                  │ for C and assembly          │ │                  │ programming                 │ └──────────────────┴─────────────────────────────┘
Sipeed RV Debugger
[env:myenv] platform = ... board = ... debug_tool = sipeed-rv-debugger
[env:myenv] platform = ... board = ... debug_tool = sipeed-rv-debugger upload_protocol = sipeed-rv-debugger
Wiring Connections ┌───────────────────┬────────────────┬─────────────────────┐ │Sipeed RV Debugger │ Board JTAG Pin │ Description         │ │Connector          │                │                     │ ├───────────────────┼────────────────┼─────────────────────┤ │1                  │ GND            │ Digital ground      │ ├───────────────────┼────────────────┼─────────────────────┤ │2                  │ TDI            │ Test Data In pin    │ ├───────────────────┼────────────────┼─────────────────────┤ │6                  │ TMS            │ Test Mode State pin │ ├───────────────────┼────────────────┼─────────────────────┤ │10                 │ TCK            │ JTAG Return Test    │ │                   │                │ Clock               │ ├───────────────────┼────────────────┼─────────────────────┤ │8                  │ TDO            │ Test Data Out pin   │ ├───────────────────┼────────────────┼─────────────────────┤ │4                  │ RST            │ Connect this pin to │ │                   │                │ the (active low)    │ │                   │                │ reset input of the  │ │                   │                │ target CPU          │ └───────────────────┴────────────────┴─────────────────────┘
Platforms ┌─────────────────────┬─────────────────────────────┐ │Name                 │ Description                 │ ├─────────────────────┼─────────────────────────────┤ │platform_gd32v       │ The GigaDevice GD32V device │ │                     │ is a 32-bit general-purpose │ │                     │ microcontroller based on    │ │                     │ the RISC-V core with an     │ │                     │ impressive balance of       │ │                     │ processing power, reduced   │ │                     │ power consumption and       │ │                     │ peripheral set.             │ ├─────────────────────┼─────────────────────────────┤ │platform_kendryte210 │ Kendryte K210 is an AI      │ │                     │ capable RISCV64 dual core   │ │                     │ SoC.                        │ └─────────────────────┴─────────────────────────────┘
Frameworks ┌──────────────────────────────────┬─────────────────────────────┐ │Name                              │ Description                 │ ├──────────────────────────────────┼─────────────────────────────┤ │framework_arduino                 │ Arduino Wiring-based        │ │                                  │ Framework allows writing    │ │                                  │ cross-platform software to  │ │                                  │ control devices attached to │ │                                  │ a wide range of Arduino     │ │                                  │ boards to create all kinds  │ │                                  │ of creative coding,         │ │                                  │ interactive objects, spaces │ │                                  │ or physical experiences.    │ ├──────────────────────────────────┼─────────────────────────────┤ │framework_gd32vf103-sdk           │ GigaDevice GD32VF103        │ │                                  │ Firmware Library (SDK)      │ ├──────────────────────────────────┼─────────────────────────────┤ │framework_kendryte-standalone-sdk │ Kendryte Standalone SDK     │ │                                  │ without OS support          │ ├──────────────────────────────────┼─────────────────────────────┤ │framework_kendryte-freertos-sdk   │ Kendryte SDK with FreeRTOS  │ │                                  │ support                     │ └──────────────────────────────────┴─────────────────────────────┘
┌───────────────────────────────────────┬──────────────────────┬──────────┬───────────────┬───────────┬───────┬──────┐
│Name                                   │ Platform             │ Debug    │ MCU           │ Frequency │ Flash │ RAM  │
├───────────────────────────────────────┼──────────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_gd32v_gd32vf103v-eval            │ platform_gd32v       │ External │ GD32VF103VBT6 │ 108MHz    │ 128KB │ 32KB │
├───────────────────────────────────────┼──────────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_gd32v_sipeed-longan-nano         │ platform_gd32v       │ External │ GD32VF103CBT6 │ 108MHz    │ 128KB │ 32KB │
├───────────────────────────────────────┼──────────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_gd32v_sipeed-longan-nano-lite    │ platform_gd32v       │ External │ GD32VF103C8T6 │ 108MHz    │ 64KB  │ 20KB │
├───────────────────────────────────────┼──────────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_kendryte210_sipeed-maix-bit      │ platform_kendryte210 │ External │ K210          │ 400MHz    │ 16MB  │ 6MB  │
├───────────────────────────────────────┼──────────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_kendryte210_sipeed-maix-bit-mic  │ platform_kendryte210 │ External │ K210          │ 400MHz    │ 16MB  │ 6MB  │
├───────────────────────────────────────┼──────────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_kendryte210_sipeed-maix-go       │ platform_kendryte210 │ External │ K210          │ 400MHz    │ 16MB  │ 6MB  │
├───────────────────────────────────────┼──────────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_kendryte210_sipeed-maix-one-dock │ platform_kendryte210 │ External │ K210          │ 400MHz    │ 16MB  │ 6MB  │
├───────────────────────────────────────┼──────────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_kendryte210_sipeed-maixduino     │ platform_kendryte210 │ External │ K210          │ 400MHz    │ 16MB  │ 6MB  │
├───────────────────────────────────────┼──────────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_kendryte210_sipeed-MF1           │ platform_kendryte210 │ External │ K210          │ 400MHz    │ 16MB  │ 6MB  │
├───────────────────────────────────────┼──────────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_gd32v_wio_lite_risc-v            │ platform_gd32v       │ External │ GD32VF103CBT6 │ 108MHz    │ 128KB │ 32KB │
└───────────────────────────────────────┴──────────────────────┴──────────┴───────────────┴───────────┴───────┴──────┘
ST-LINK
The ST-LINK is an in-circuit debugger and programmer for the STM8 and STM32 microcontroller families. The single wire interface module (SWIM) and JTAG/serial wire debugging (SWD) interfaces are used to communicate with any STM8 or STM32 microcontroller located on an application board. Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = stlink
[env:myenv] platform = ... board = ... debug_tool = stlink upload_protocol = stlink
Drivers Windows Please install official ST-LINK USB driver.
JTAG Interface ┌────────────────────┬────────────────┬─────────────────────┐ │ST-Link JTAG 20-Pin │ Board JTAG Pin │ Description         │ │Connector           │                │                     │ ├────────────────────┼────────────────┼─────────────────────┤ │1                   │ VCC            │ Positive Supply     │ │                    │                │ Voltage — Power     │ │                    │                │ supply for JTAG     │ │                    │                │ interface drivers   │ ├────────────────────┼────────────────┼─────────────────────┤ │4                   │ GND            │ Digital ground      │ ├────────────────────┼────────────────┼─────────────────────┤ │5                   │ TDI            │ Test Data In pin    │ ├────────────────────┼────────────────┼─────────────────────┤ │7                   │ TMS            │ Test Mode State pin │ ├────────────────────┼────────────────┼─────────────────────┤ │9                   │ TCK            │ JTAG Return Test    │ │                    │                │ Clock               │ ├────────────────────┼────────────────┼─────────────────────┤ │13                  │ TDO            │ Test Data Out pin   │ ├────────────────────┼────────────────┼─────────────────────┤ │15                  │ RESET          │ Connect this pin to │ │                    │                │ the (active low)    │ │                    │                │ reset input of the  │ │                    │                │ target CPU          │ └────────────────────┴────────────────┴─────────────────────┘
Serial Wire Mode Interface (SWD) ┌───────────────────┬───────────────┬─────────────────────┐ │ST-Link SWD 20-Pin │ Board SWD Pin │ Description         │ │Connector          │               │                     │ ├───────────────────┼───────────────┼─────────────────────┤ │1                  │ VCC           │ Positive Supply     │ │                   │               │ Voltage — Power     │ │                   │               │ supply for JTAG     │ │                   │               │ interface drivers   │ ├───────────────────┼───────────────┼─────────────────────┤ │4                  │ GND           │ Digital ground      │ ├───────────────────┼───────────────┼─────────────────────┤ │7                  │ SWDIO         │ Data I/O            │ ├───────────────────┼───────────────┼─────────────────────┤ │9                  │ SWCLK         │ Clock               │ ├───────────────────┼───────────────┼─────────────────────┤ │15                 │ RESET         │ Connect this pin to │ │                   │               │ the (active low)    │ │                   │               │ reset input of the  │ │                   │               │ target CPU          │ └───────────────────┴───────────────┴─────────────────────┘
Platforms ┌─────────────────────┬─────────────────────────────┐ │Name                 │ Description                 │ └─────────────────────┴─────────────────────────────┘
TI-ICDI Tiva™ C Series evaluation and reference design kits provide an integrated In-Circuit Debug Interface (ICDI) which allows programming and debugging of the onboard C Series microcontroller.  Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = ti-icdi
[env:myenv] platform = ... board = ... debug_tool = ti-icdi upload_protocol = ti-icdi
Platforms ┌────────────────┬────────────────────────────┐ │Name            │ Description                │ ├────────────────┼────────────────────────────┤ │platform_titiva │ Texas Instruments TM4C12x  │ │                │ MCUs offer the industrys   │ │                │ most popular ARM Cortex-M4 │ │                │ core with scalable memory  │ │                │ and package options,       │ │                │ unparalleled connectivity  │ │                │ peripherals, advanced      │ │                │ application functions,     │ │                │ industry-leading analog    │ │                │ integration, and extensive │ │                │ software solutions.        │ └────────────────┴────────────────────────────┘
┌─────────────────────────────┬─────────────────┬──────────┬─────────────────┬───────────┬───────┬───────┐
│Name                         │ Platform        │ Debug    │ MCU             │ Frequency │ Flash │ RAM   │
├─────────────────────────────┼─────────────────┼──────────┼─────────────────┼───────────┼───────┼───────┤
│board_titiva_lplm4f120h5qr   │ platform_titiva │ On-board │ LPLM4F120H5QR   │ 80MHz     │ 256KB │ 32KB  │
├─────────────────────────────┼─────────────────┼──────────┼─────────────────┼───────────┼───────┼───────┤
│board_titiva_lptm4c1230c3pm  │ platform_titiva │ On-board │ LPTM4C1230C3PM  │ 80MHz     │ 256KB │ 32KB  │
├─────────────────────────────┼─────────────────┼──────────┼─────────────────┼───────────┼───────┼───────┤
│board_titiva_lptm4c1294ncpdt │ platform_titiva │ On-board │ LPTM4C1294NCPDT │ 120MHz    │ 1MB   │ 256KB │
└─────────────────────────────┴─────────────────┴──────────┴─────────────────┴───────────┴───────┴───────┘
TIAO USB Multi-Protocol Adapter (TUMPA)
The TIAO USB Multi Protocol Adapter (TUMPA) is a multi-functional USB communication adapter for hobbyists or engineers. The adapter is based on FDTI's flagship communication chip FT2232H, a USB 2.0 Hi-Speed (480Mb/s) to UART/FIFO IC. It has two multi-protocol synchronous serial engines (MPSSEs) which allow for communication using JTAG, I2C and SPI on two channels simultaneously.  Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = tumpa
[env:myenv] platform = ... board = ... debug_tool = tumpa upload_protocol = tumpa
JTAG Interface ┌──────────────────┬────────────────┬─────────────────────┐ │TUMPA JTAG 20-Pin │ Board JTAG Pin │ Description         │ │Connector         │                │                     │ ├──────────────────┼────────────────┼─────────────────────┤ │1                 │ VCC            │ Positive Supply     │ │                  │                │ Voltage — Power     │ │                  │                │ supply for JTAG     │ │                  │                │ interface drivers   │ ├──────────────────┼────────────────┼─────────────────────┤ │4                 │ GND            │ Digital ground      │ ├──────────────────┼────────────────┼─────────────────────┤ │5                 │ TDI            │ Test Data In pin    │ ├──────────────────┼────────────────┼─────────────────────┤ │7                 │ TMS            │ Test Mode State pin │ ├──────────────────┼────────────────┼─────────────────────┤ │9                 │ TCK            │ JTAG Return Test    │ │                  │                │ Clock               │ ├──────────────────┼────────────────┼─────────────────────┤ │13                │ TDO            │ Test Data Out pin   │ ├──────────────────┼────────────────┼─────────────────────┤ │15                │ RESET          │ Connect this pin to │ │                  │                │ the (active low)    │ │                  │                │ reset input of the  │ │                  │                │ target CPU (EN for  │ │                  │                │ ESP32)              │ └──────────────────┴────────────────┴─────────────────────┘
Serial Wire Mode Interface (SWD) ┌─────────────────┬───────────────┬─────────────────────┐ │TUMPA SWD 20-Pin │ Board SWD Pin │ Description         │ │Connector        │               │                     │ ├─────────────────┼───────────────┼─────────────────────┤ │1                │ VCC           │ Positive Supply     │ │                 │               │ Voltage — Power     │ │                 │               │ supply for JTAG     │ │                 │               │ interface drivers   │ ├─────────────────┼───────────────┼─────────────────────┤ │4                │ GND           │ Digital ground      │ ├─────────────────┼───────────────┼─────────────────────┤ │7                │ SWDIO         │ Data I/O            │ ├─────────────────┼───────────────┼─────────────────────┤ │9                │ SWCLK         │ Clock               │ ├─────────────────┼───────────────┼─────────────────────┤ │15               │ RESET         │ Connect this pin to │ │                 │               │ the (active low)    │ │                 │               │ reset input of the  │ │                 │               │ target CPU          │ └─────────────────┴───────────────┴─────────────────────┘
UM232H
The UM232H is a USB-to-serial/FIFO development module in the FTDI product range which utilizes the FT232H USB Hi-Speed (480Mb/s) single-port bridge chip to handle the USB signaling and protocols.  Official reference can be found here
[env:myenv] platform = ... board = ... debug_tool = um232h
[env:myenv] platform = ... board = ... debug_tool = um232h upload_protocol = um232h
Wiring Connections Please read 4. UM232H Pin Out and Signal Descriptions section for details.
┌───────────┬────────────────┬──────────────────┐ │UM232H Pin │ Board JTAG Pin │ Description      │ ├───────────┼────────────────┼──────────────────┤ │GND        │ GND            │ Digital ground   │ ├───────────┼────────────────┼──────────────────┤ │AD0        │ TCK            │ JTAG Return Test │ │           │                │ Clock            │ ├───────────┼────────────────┼──────────────────┤ │AD1        │ TDI            │ Test Data In     │ ├───────────┼────────────────┼──────────────────┤ │AD2        │ TDO            │ Test Data Out    │ ├───────────┼────────────────┼──────────────────┤ │AD3        │ TMS            │ Test Mode State  │ └───────────┴────────────────┴──────────────────┘
You will also need to connect VIO to V3V and USB to 5V0 of UM232H to power the FTDI chip and board. See UM232H Datasheet
Platforms ┌───────────────┬─────────────────────────────┐ │Name           │ Description                 │ ├───────────────┼─────────────────────────────┤ │platform_gd32v │ The GigaDevice GD32V device │ │               │ is a 32-bit general-purpose │ │               │ microcontroller based on    │ │               │ the RISC-V core with an     │ │               │ impressive balance of       │ │               │ processing power, reduced   │ │               │ power consumption and       │ │               │ peripheral set.             │ └───────────────┴─────────────────────────────┘
┌────────────────────────────────────┬────────────────┬──────────┬───────────────┬───────────┬───────┬──────┐
│Name                                │ Platform       │ Debug    │ MCU           │ Frequency │ Flash │ RAM  │
├────────────────────────────────────┼────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_gd32v_gd32vf103v-eval         │ platform_gd32v │ External │ GD32VF103VBT6 │ 108MHz    │ 128KB │ 32KB │
├────────────────────────────────────┼────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_gd32v_sipeed-longan-nano      │ platform_gd32v │ External │ GD32VF103CBT6 │ 108MHz    │ 128KB │ 32KB │
├────────────────────────────────────┼────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_gd32v_sipeed-longan-nano-lite │ platform_gd32v │ External │ GD32VF103C8T6 │ 108MHz    │ 64KB  │ 20KB │
├────────────────────────────────────┼────────────────┼──────────┼───────────────┼───────────┼───────┼──────┤
│board_gd32v_wio_lite_risc-v         │ platform_gd32v │ External │ GD32VF103CBT6 │ 108MHz    │ 128KB │ 32KB │
└────────────────────────────────────┴────────────────┴──────────┴───────────────┴───────────┴───────┴──────┘
Custom Configuration projectconf_debug_tool = custom
PIO Unified Debugger can be configured from projectconf:
Examples • J-Link and ST Nucleo
• J-Link as debugger and uploader
• ST-Util and ST-Link
• OpenOCD and ST-Link
• pyOCD and CMSIS-DAP
J-Link and ST Nucleo Segger J-Link probe and ST Nucleo F446RE board in pair with J-Link GDB Server:
• Install J-Link GDB Server
• Convert ST-LINK On-Board Into a J-Link
NOTE: You can use configuration below in pair with other boards, not only with ST Nucleo F446RE. In this case, please replace STM32F446RE with your own device name in debug_server option.
See full list with J-Link Supported Devices.
[env:debug_jlink] platform = ststm32 framework = mbed board = nucleo_f446re
debug_tool = custom debug_port = :2331
debug_init_cmds = define pio_reset_halt_target monitor reset monitor halt end define pio_reset_run_target monitor clrbp monitor reset monitor go end target extended-remote $DEBUG_PORT monitor clrbp monitor speed auto pio_reset_halt_target $LOAD_CMDS $INIT_BREAK
J-Link as debugger and uploader Segger J-Link probe as debugger and uploader for a custom board.  If you plan to use with other board, please change device MK20DX256xxx7 to a valid identifier. See supported J-Link devices at debugging_tool_jlink.
[env:jlink_debug_and_upload] platform = teensy framework = arduino board = teensy31 extra_scripts = extra_script.py upload_protocol = custom debug_tool = jlink debug_server = /full/path/to/JLinkGDBServerCL -singlerun -if SWD -select USB -port 2331 -device MK20DX256xxx7
Place this file on the same level as projectconf.
from os import makedirs from os.path import isdir, join Import('env')
def _jlink_cmd_script(env, source): build_dir = env.subst("$BUILD_DIR") if not isdir(build_dir): makedirs(build_dir) script_path = join(build_dir, "upload.jlink") commands = ["h", "loadbin %s,0x0" % source, "r", "q"] with open(script_path, "w") as fp: fp.write("\n".join(commands)) return script_path
env.Replace( __jlink_cmd_script=_jlink_cmd_script, UPLOADER="/full/path/to/JLink", UPLOADERFLAGS=[ "-device", "MK20DX256xxx7", "-speed", "4000", "-if", "swd", "-autoconnect", "1" ], UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS -CommanderScript ${__jlink_cmd_script(__env__, SOURCE)}' )
ST-Util and ST-Link On-board ST-Link V2/V2-1 in pair with ST-Util GDB Server:
[env:debug] platform = ststm32 framework = mbed board = ... debug_tool = custom debug_port = :4242 debug_server = $PLATFORMIO_CORE_DIR/packages/tool-stlink/bin/st-util
OpenOCD and ST-Link On-board ST-Link V2/V2-1 in pair with OpenOCD GDB Server:
[env:debug] platform = ststm32 framework = mbed board = ... debug_tool = custom debug_server = $PLATFORMIO_CORE_DIR/packages/tool-openocd/bin/openocd -f $PLATFORMIO_CORE_DIR/packages/tool-openocd/scripts/board/st_nucleo_f4.cfg
pyOCD and CMSIS-DAP Using pyOCD for CMSIS-DAP based boards
Firstly, please install pyOCD and check that pyocd-gdbserver --version command works.
[env:debug] platform = ... board = ... framework = mbed debug_tool = custom debug_server = pyocd-gdbserver
BluzDK
┌──────────────────────────┬──────────────────────┬──────────┬──────────┬───────────┬───────┬──────┐
│Name                      │ Platform             │ Debug    │ MCU      │ Frequency │ Flash │ RAM  │
├──────────────────────────┼──────────────────────┼──────────┼──────────┼───────────┼───────┼──────┤
│board_nordicnrf51_bluz_dk │ platform_nordicnrf51 │ External │ NRF51822 │ 32MHz     │ 256KB │ 32KB │
└──────────────────────────┴──────────────────────┴──────────┴──────────┴───────────┴───────┴──────┘
Calliope
┌────────────────────────────────┬──────────────────────┬──────────┬──────────┬───────────┬───────┬──────┐
│Name                            │ Platform             │ Debug    │ MCU      │ Frequency │ Flash │ RAM  │
├────────────────────────────────┼──────────────────────┼──────────┼──────────┼───────────┼───────┼──────┤
│board_nordicnrf51_calliope_mini │ platform_nordicnrf51 │ On-board │ NRF51822 │ 16MHz     │ 256KB │ 16KB │
└────────────────────────────────┴──────────────────────┴──────────┴──────────┴───────────┴───────┴──────┘
Controllino
┌───────────────────────────────────────────┬───────────────────┬──────────┬────────────┬───────────┬─────────┬─────┐
│Name                                       │ Platform          │ Debug    │ MCU        │ Frequency │ Flash   │ RAM │
├───────────────────────────────────────────┼───────────────────┼──────────┼────────────┼───────────┼─────────┼─────┤
│board_atmelavr_controllino_maxi            │ platform_atmelavr │ On-board │ ATMEGA2560 │ 16MHz     │ 248KB   │ 8KB │
├───────────────────────────────────────────┼───────────────────┼──────────┼────────────┼───────────┼─────────┼─────┤
│board_atmelavr_controllino_maxi_automation │ platform_atmelavr │ On-board │ ATMEGA2560 │ 16MHz     │ 248KB   │ 8KB │
├───────────────────────────────────────────┼───────────────────┼──────────┼────────────┼───────────┼─────────┼─────┤
│board_atmelavr_controllino_mega            │ platform_atmelavr │ On-board │ ATMEGA2560 │ 16MHz     │ 248KB   │ 8KB │
├───────────────────────────────────────────┼───────────────────┼──────────┼────────────┼───────────┼─────────┼─────┤
│board_atmelavr_controllino_mini            │ platform_atmelavr │ On-board │ ATMEGA328P │ 16MHz     │ 31.50KB │ 2KB │
└───────────────────────────────────────────┴───────────────────┴──────────┴────────────┴───────────┴─────────┴─────┘
DFRobot
┌───────────────────────────────┬──────────────────────┬──────────┬───────┬───────────┬───────┬───────┐
│Name                           │ Platform             │ Debug    │ MCU   │ Frequency │ Flash │ RAM   │
├───────────────────────────────┼──────────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_espressif32_firebeetle32 │ platform_espressif32 │ External │ ESP32 │ 240MHz    │ 4MB   │ 320KB │
└───────────────────────────────┴──────────────────────┴──────────┴───────┴───────────┴───────┴───────┘
DOIT
┌──────────────────────────────────────┬──────────────────────┬──────────┬───────┬───────────┬───────┬───────┐
│Name                                  │ Platform             │ Debug    │ MCU   │ Frequency │ Flash │ RAM   │
├──────────────────────────────────────┼──────────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_espressif32_esp32doit-devkit-v1 │ platform_espressif32 │ External │ ESP32 │ 240MHz    │ 4MB   │ 320KB │
└──────────────────────────────────────┴──────────────────────┴──────────┴───────┴───────────┴───────┴───────┘
DSTIKE
┌─────────────────────────────┬──────────────────────┬──────────┬───────┬───────────┬───────┬───────┐
│Name                         │ Platform             │ Debug    │ MCU   │ Frequency │ Flash │ RAM   │
├─────────────────────────────┼──────────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_espressif32_d-duino-32 │ platform_espressif32 │ External │ ESP32 │ 240MHz    │ 4MB   │ 320KB │
└─────────────────────────────┴──────────────────────┴──────────┴───────┴───────────┴───────┴───────┘
Digistump
┌──────────────────────────────┬───────────────────┬──────────┬─────────────┬───────────┬────────┬──────┐
│Name                          │ Platform          │ Debug    │ MCU         │ Frequency │ Flash  │ RAM  │
├──────────────────────────────┼───────────────────┼──────────┼─────────────┼───────────┼────────┼──────┤
│board_atmelavr_digispark-tiny │ platform_atmelavr │ On-board │ ATTINY85    │ 16MHz     │ 5.87KB │ 512B │
├──────────────────────────────┼───────────────────┼──────────┼─────────────┼───────────┼────────┼──────┤
│board_atmelsam_digix          │ platform_atmelsam │ External │ AT91SAM3X8E │ 84MHz     │ 512KB  │ 96KB │
└──────────────────────────────┴───────────────────┴──────────┴─────────────┴───────────┴────────┴──────┘
Dongsen Technology
┌────────────────────────────┬──────────────────────┬──────────┬───────┬───────────┬───────┬───────┐
│Name                        │ Platform             │ Debug    │ MCU   │ Frequency │ Flash │ RAM   │
├────────────────────────────┼──────────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_espressif32_pocket_32 │ platform_espressif32 │ External │ ESP32 │ 240MHz    │ 4MB   │ 320KB │
└────────────────────────────┴──────────────────────┴──────────┴───────┴───────────┴───────┴───────┘
DycodeX
┌─────────────────────────────┬──────────────────────┬──────────┬───────┬───────────┬───────┬───────┐
│Name                         │ Platform             │ Debug    │ MCU   │ Frequency │ Flash │ RAM   │
├─────────────────────────────┼──────────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_espressif32_espectro32 │ platform_espressif32 │ External │ ESP32 │ 240MHz    │ 4MB   │ 320KB │
└─────────────────────────────┴──────────────────────┴──────────┴───────┴───────────┴───────┴───────┘
ESP32vn
┌──────────────────────────────────┬──────────────────────┬──────────┬───────┬───────────┬───────┬───────┐
│Name                              │ Platform             │ Debug    │ MCU   │ Frequency │ Flash │ RAM   │
├──────────────────────────────────┼──────────────────────┼──────────┼───────┼───────────┼───────┼───────┤
│board_espressif32_esp32vn-iot-uno │ platform_espressif32 │ External │ ESP32 │ 240MHz    │ 4MB   │ 320KB │
└──────────────────────────────────┴──────────────────────┴──────────┴───────┴───────────┴───────┴───────┘
Electronut Labs
┌───────────────────────────┬──────────────────────┬──────────┬──────────┬───────────┬───────┬──────┐
│Name                       │ Platform             │ Debug    │ MCU      │ Frequency │ Flash │ RAM  │
├───────────────────────────┼──────────────────────┼──────────┼──────────┼───────────┼───────┼──────┤
│board_nordicnrf52_bluey    │ platform_nordicnrf52 │ External │ NRF52832 │ 64MHz     │ 512KB │ 64KB │
├───────────────────────────┼──────────────────────┼──────────┼──────────┼───────────┼───────┼──────┤
│board_nordicnrf52_hackaBLE │ platform_nordicnrf52 │ External │ NRF52832 │ 64MHz     │ 512KB │ 64KB │
└───────────────────────────┴──────────────────────┴──────────┴──────────┴───────────┴───────┴──────┘
ElectronutLabs
┌───────────────────────────────────┬──────────────────────┬──────────┬──────────┬───────────┬───────┬───────┐
│Name                               │ Platform             │ Debug    │ MCU      │ Frequency │ Flash │ RAM   │
└───────────────────────────────────┴──────────────────────┴──────────┴──────────┴───────────┴───────┴───────┘