neulab/tldr huggingface dataset:
• Expressions and Watchpoints
• Generic Registers
• Peripheral Registers
• Memory Viewer
• Disassembly
• Multi-thread support
• A hot restart of an active debugging session .SS Contents
• Tutorials
Tutorials • Arduino In-circuit Debugging with PlatformIO
• ThingForward: First steps with PlatformIO’s Unified Debugger
• [VIDEO] ThingForward - Intro to PIO Unified Debugger using ARM mbed OS and PlatformIO IDE for VSCode
• tutorial_espressif32_arduino_debugging_unit_testing
• tutorial_nordicnrf52_arduino_debugging_unit_testing
• tutorial_stm32cube_debugging_unit_testing
Configuration PIO Unified Debugger can be configured from projectconf:
Tools & Debug Probes You can switch between debugging tools using projectconf_debug_tool option.
WARNING: You will need to install debug tool drivers depending on your operating system. Please check "Drivers" section for debugging tool below.
Altera / Intel USB-Blaster Download Cable
USB Blaster Download Cable is designed for ALTERA FPGA, CPLD, Active Serial Configuration Devices and Enhanced Configuration Devices, USB 2.0 connection to the PC and JTAG, AS, PS to the target device.  Official reference can be found here.
• Drivers
• Wiring Connections
• JTAG Interface
Configuration You can configure debugging tool using projectconf_debug_tool option in projectconf:
[env:myenv] platform = ... board = ... debug_tool = altera-usb-blaster
If you would like to use this tool for firmware uploading, please change upload protocol:
[env:myenv] platform = ... board = ... debug_tool = altera-usb-blaster upload_protocol = altera-usb-blaster
More options:
• projectconf_section_env_debug
• projectconf_section_env_upload
Drivers Please install official drivers.
Wiring Connections [image]
JTAG Interface ┌─────────────────┬────────────────┬─────────────────────┐ │USB-Blaster JTAG │ Board JTAG Pin │ Description         │ │10-Pin Connector │                │                     │ ├─────────────────┼────────────────┼─────────────────────┤ │1                │ TCK            │ JTAG Return Test    │ │                 │                │ Clock               │ ├─────────────────┼────────────────┼─────────────────────┤ │2                │ GND            │ Digital ground      │ ├─────────────────┼────────────────┼─────────────────────┤ │3                │ TDO            │ Test Data Out pin   │ ├─────────────────┼────────────────┼─────────────────────┤ │4                │ VCC            │ Positive Supply     │ │                 │                │ Voltage — Power     │ │                 │                │ supply for JTAG     │ │                 │                │ interface drivers   │ ├─────────────────┼────────────────┼─────────────────────┤ │5                │ TMS            │ Test Mode State pin │ ├─────────────────┼────────────────┼─────────────────────┤ │9                │ TDI            │ Test Data In pin    │ └─────────────────┴────────────────┴─────────────────────┘
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_nuclei │ Find professional RISC-V    │ │                │ Processor IP in Nuclei,     │ │                │ first professional RISC-V   │ │                │ IP company in Mainland      │ │                │ China, match all your       │ │                │ requirements in AIoT Era.   │ └────────────────┴─────────────────────────────┘
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_nuclei-sdk    │ Open Source Software        │ │                        │ Development Kit for the     │ │                        │ Nuclei N/NX processors      │ └────────────────────────┴─────────────────────────────┘
Boards NOTE: For more detailed board information please scroll tables below by horizontal.
┌────────────────────────────────────┬─────────────────┬──────────┬───────────────┬───────────┬───────┬──────┐
│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_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 │
└────────────────────────────────────┴─────────────────┴──────────┴───────────────┴───────────┴───────┴──────┘
Atmel-ICE is a powerful development tool for debugging and programming ARM® Cortex®-M based SAM and AVR microcontrollers with on-chip debug capability.  Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = atmel-ice
[env:myenv] platform = ... board = ... debug_tool = atmel-ice upload_protocol = atmel-ice
Drivers Windows When installing the Atmel-ICE on a computer running Microsoft Windows, the USB driver is loaded when the Atmel-ICE is first plugged in.
Mac    Not required.
Linux  Please install "udev" rules faq_udev_rules. If you already installed them before, please check that your rules are up-to-date or repeat steps.
Platforms ┌──────────────────┬─────────────────────────────┐ │Name              │ Description                 │ ├──────────────────┼─────────────────────────────┤ │platform_atmelsam │ Atmel | SMART offers Flash- │ │                  │ based ARM products based on │ │                  │ the ARM Cortex-M0+,         │ │                  │ Cortex-M3 and Cortex-M4     │ │                  │ architectures, ranging from │ │                  │ 8KB to 2MB of Flash         │ │                  │ including a rich peripheral │ │                  │ and feature mix.            │ └──────────────────┴─────────────────────────────┘
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_mbed    │ The mbed framework The mbed │ │                  │ SDK has been designed to    │ │                  │ provide enough hardware     │ │                  │ abstraction to be intuitive │ │                  │ and concise, yet powerful   │ │                  │ enough to build complex     │ │                  │ projects. It is built on    │ │                  │ the low-level ARM CMSIS     │ │                  │ APIs, allowing you to code  │ │                  │ down to the metal if        │ │                  │ needed. In addition to      │ │                  │ RTOS, USB and Networking    │ │                  │ libraries, a cookbook of    │ │                  │ hundreds of reusable        │ │                  │ peripheral and module       │ │                  │ libraries have been built   │ │                  │ on top of the SDK by the    │ │                  │ mbed Developer Community.   │ ├──────────────────┼─────────────────────────────┤ │framework_simba   │ Simba is an RTOS and build  │ │                  │ framework. It aims to make  │ │                  │ embedded programming easy   │ │                  │ and portable.               │ ├──────────────────┼─────────────────────────────┤ │framework_zephyr  │ The Zephyr Project is a     │ │                  │ scalable real-time          │ │                  │ operating system (RTOS)     │ │                  │ supporting multiple         │ │                  │ hardware architectures,     │ │                  │ optimized for resource      │ │                  │ constrained devices, and    │ │                  │ built with safety and       │ │                  │ security in mind.           │ └──────────────────┴─────────────────────────────┘
┌─────────────────────────────────────────────┬───────────────────┬──────────┬─────────────┬───────────┬────────┬───────┐
│Name                                         │ Platform          │ Debug    │ MCU         │ Frequency │ Flash  │ RAM   │
├─────────────────────────────────────────────┼───────────────────┼──────────┼─────────────┼───────────┼────────┼───────┤
│board_atmelsam_adafruit_circuitplayground_m0 │ platform_atmelsam │ External │ SAMD21G18A  │ 48MHz     │ 256KB  │ 32KB  │
├─────────────────────────────────────────────┼───────────────────┼──────────┼─────────────┼───────────┼────────┼───────┤
│board_atmelsam_adafruit_crickit_m0           │ platform_atmelsam │ External │ SAMD21G18A  │ 48MHz     │ 256KB  │ 32KB  │
├─────────────────────────────────────────────┼───────────────────┼──────────┼─────────────┼───────────┼────────┼───────┤
│board_atmelsam_adafruit_feather_m0           │ platform_atmelsam │ External │ SAMD21G18A  │ 48MHz     │ 256KB  │ 32KB  │
├─────────────────────────────────────────────┼───────────────────┼──────────┼─────────────┼───────────┼────────┼───────┤
│board_atmelsam_adafruit_feather_m0_express   │ platform_atmelsam │ External │ SAMD21G18A  │ 48MHz     │ 256KB  │ 32KB  │
└─────────────────────────────────────────────┴───────────────────┴──────────┴─────────────┴───────────┴────────┴───────┘
Black Magic Probe
The Black Magic Probe is a modern, in-application debugging tool for embedded microprocessors. It is able to control and examine the state of the target microprocessor using a JTAG or Serial Wire Debugging (SWD) port and on-chip debug logic provided by the microprocessor. The probe connects to a host computer using a standard USB interface.  Official reference can be found here.
Also, see debugging_tool_custom debugging configuration with Black Magic Probe.
• Serial Wire Mode Interface (SWD)
[env:myenv] platform = ... board = ... debug_tool = blackmagic debug_port = <CONFIGURE GDB PORT>
; ; Debug Port Examples ;
; Linux debug_port = /dev/ttyACM0
; Windows for COM1-COM9 debug_port = COM3 ; Windows for COM10-XXX debug_port = \\.\COM13
; macOS debug_port = /dev/cu.usbmodemE2C0C4C6
Black Magic Probe has 2 serial ports: UART and GDB. We will need "GDB" port.  Please use piohome > Devices or piocore and cmd_device_list command to list available ports. If you do not see "Black Magic Probe GDB" port, please try both. More details.
upload_port = <THE SAME AS DEBUG PORT>
; SWD interface upload_protocol = blackmagic
; JTAG interface upload_protocol = blackmagic-jtag
Drivers Not required.
Wiring Connections JTAG Interface [image]
┌──────────────────┬────────────────┬─────────────────────┐ │Black Magic Probe │ Board JTAG Pin │ Description         │ │10-Pin Connector  │                │                     │ ├──────────────────┼────────────────┼─────────────────────┤ │1                 │ VCC            │ Positive Supply     │ │                  │                │ Voltage — Power     │ │                  │                │ supply for JTAG     │ │                  │                │ interface drivers   │ ├──────────────────┼────────────────┼─────────────────────┤ │3                 │ GND            │ Digital ground      │ ├──────────────────┼────────────────┼─────────────────────┤ │2                 │ TMS            │ Test Mode State     │ ├──────────────────┼────────────────┼─────────────────────┤ │4                 │ TCLK           │ JTAG Return Test    │ │                  │                │ Clock               │ ├──────────────────┼────────────────┼─────────────────────┤ │6                 │ TDO            │ Test Data Out       │ ├──────────────────┼────────────────┼─────────────────────┤ │8                 │ TDI            │ Test Data In        │ ├──────────────────┼────────────────┼─────────────────────┤ │10                │ RESET          │ Connect this pin to │ │                  │                │ the (active low)    │ │                  │                │ reset input of the  │ │                  │                │ target CPU          │ └──────────────────┴────────────────┴─────────────────────┘
Serial Wire Mode Interface (SWD) [image]
┌──────────────────┬───────────────┬─────────────────────┐ │Black Magic Probe │ Board SWD Pin │ Description         │ │10-Pin Connector  │               │                     │ └──────────────────┴───────────────┴─────────────────────┘
│1                 │ VCC           │ Positive Supply     │ │                  │               │ Voltage — Power     │ │                  │               │ supply for JTAG     │ │                  │               │ interface drivers   │ ├──────────────────┼───────────────┼─────────────────────┤ │3                 │ GND           │ Digital ground      │ ├──────────────────┼───────────────┼─────────────────────┤ │2                 │ SWDIO         │ Data I/O            │ ├──────────────────┼───────────────┼─────────────────────┤ │4                 │ SWCLK         │ Clock               │ ├──────────────────┼───────────────┼─────────────────────┤ │10                │ RESET         │ Connect this pin to │ │                  │               │ the (active low)    │ │                  │               │ reset input of the  │ │                  │               │ target CPU          │ └──────────────────┴───────────────┴─────────────────────┘
┌─────────────────────────────────────────────┬───────────────────────────┬──────────┬──────────────────────┬───────────┬──────────┬──────────┐
│Name                                         │ Platform                  │ Debug    │ MCU                  │ Frequency │ Flash    │ RAM      │
├─────────────────────────────────────────────┼───────────────────────────┼──────────┼──────────────────────┼───────────┼──────────┼──────────┤
│board_ststm32_1bitsy_stm32f415rgt            │ platform_ststm32          │ External │ STM32F415RGT         │ 168MHz    │ 1MB      │ 128KB    │
└─────────────────────────────────────────────┴───────────────────────────┴──────────┴──────────────────────┴───────────┴──────────┴──────────┘
CMSIS-DAP
CMSIS-DAP is generally implemented as an on-board interface chip, providing direct USB connection from a development board to a debugger running on a host computer on one side, and over JTAG (Joint Test Action Group) or SWD (Serial Wire Debug) to the target device to access the Coresight DAP on the other.  Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = cmsis-dap
[env:myenv] platform = ... board = ... debug_tool = cmsis-dap upload_protocol = cmsis-dap
Drivers Windows Please install Windows serial driver and check "USB Driver Installation" guide for your board.
│board_nordicnrf52_vbluno52            │ platform_nordicnrf52      │ On-board │ NRF52832         │ 64MHz     │ 512KB │ 64KB  │
├──────────────────────────────────────┼───────────────────────────┼──────────┼──────────────────┼───────────┼───────┼───────┤
│board_wiznet7500_wizwiki_w7500        │ platform_wiznet7500       │ On-board │ WIZNET7500       │ 48MHz     │ 128KB │ 48KB  │
├──────────────────────────────────────┼───────────────────────────┼──────────┼──────────────────┼───────────┼───────┼───────┤
│board_wiznet7500_wizwiki_w7500eco     │ platform_wiznet7500       │ On-board │ WIZNET7500ECO    │ 48MHz     │ 128KB │ 48KB  │
├──────────────────────────────────────┼───────────────────────────┼──────────┼──────────────────┼───────────┼───────┼───────┤
│board_wiznet7500_wizwiki_w7500p       │ platform_wiznet7500       │ On-board │ WIZNET7500P      │ 48MHz     │ 128KB │ 48KB  │
├──────────────────────────────────────┼───────────────────────────┼──────────┼──────────────────┼───────────┼───────┼───────┤
│board_ststm32_sakuraio_evb_01         │ platform_ststm32          │ On-board │ STM32F411RET6    │ 100MHz    │ 1MB   │ 128KB │
├──────────────────────────────────────┼───────────────────────────┼──────────┼──────────────────┼───────────┼───────┼───────┤
│board_nxplpc_ubloxc027                │ platform_nxplpc           │ On-board │ LPC1768          │ 96MHz     │ 512KB │ 64KB  │
├──────────────────────────────────────┼───────────────────────────┼──────────┼──────────────────┼───────────┼───────┼───────┤
│board_ststm32_ublox_c030_n211         │ platform_ststm32          │ External │ STM32F437VG      │ 180MHz    │ 1MB   │ 256KB │
├──────────────────────────────────────┼───────────────────────────┼──────────┼──────────────────┼───────────┼───────┼───────┤
│board_ststm32_ublox_c030_u201         │ platform_ststm32          │ External │ STM32F437VG      │ 180MHz    │ 1MB   │ 256KB │
├──────────────────────────────────────┼───────────────────────────┼──────────┼──────────────────┼───────────┼───────┼───────┤
│board_nordicnrf51_nrf51822_y5_mbug    │ platform_nordicnrf51      │ On-board │ NRF51822         │ 16MHz     │ 256KB │ 16KB  │
└──────────────────────────────────────┴───────────────────────────┴──────────┴──────────────────┴───────────┴───────┴───────┘
ESP-Prog
ESP-Prog is one of Espressif’s development and debugging tools, with functions including automatic firmware downloading, serial communication, and JTAG online debugging. ESP-Prog's automatic firmware downloading and serial communication functions are supported on both the ESP8266 and ESP32 platforms, while the JTAG online debugging is supported only on the ESP32 platform. Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = esp-prog
[env:myenv] platform = ... board = ... debug_tool = esp-prog upload_protocol = esp-prog
Drivers Windows
• Step-by-step guide: Drivers, Zadig, Wiring
• Video tutorial
Mac    macOS contains default FTDIUSBSerialDriver driver which conflicts with debug tools which are based on this chip. FTDI Chip company recommends removing this default driver from a system. Everything should work after system rebooting. See detailed instruction in official application note (Page 16, Section 4: Uninstalling FTDI Drivers on OS X) AN134: FTDI Drivers Installation guide for MAC OS X
┌─────────────────────┬────────────────┬───────────────────┐ │ESP-Prog JTAG 10-Pin │ Board JTAG Pin │ Description       │ │Connector            │                │                   │ ├─────────────────────┼────────────────┼───────────────────┤ │1                    │ VDD            │ Positive Supply   │ │                     │                │ Voltage — Power   │ │                     │                │ supply for JTAG   │ │                     │                │ interface drivers │ ├─────────────────────┼────────────────┼───────────────────┤ │3                    │ GND            │ Digital ground    │ ├─────────────────────┼────────────────┼───────────────────┤ │2                    │ ESP_TMS        │ Test Mode State   │ ├─────────────────────┼────────────────┼───────────────────┤ │4                    │ ESP_TCK        │ JTAG Return Test  │ │                     │                │ Clock             │ ├─────────────────────┼────────────────┼───────────────────┤ │6                    │ ESP_TDO        │ Test Data Out     │ ├─────────────────────┼────────────────┼───────────────────┤ │8                    │ ESP_TDI        │ Test Data In      │ └─────────────────────┴────────────────┴───────────────────┘
Tutorials • Use the PlatformIO Debugger on the ESP32 Using an ESP-prog
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_espidf  │ Espressif IoT Development   │ │                  │ Framework. Official         │ │                  │ development framework for   │ │                  │ ESP32.                      │ ├──────────────────┼─────────────────────────────┤ │framework_simba   │ Simba is an RTOS and build  │ │                  │ framework. It aims to make  │ │                  │ embedded programming easy   │ │                  │ and portable.               │ └──────────────────┴─────────────────────────────┘
│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  │
└──────────────────────────────────────────────────┴──────────────────────┴──────────┴───────┴───────────┴────────┴────────┘
FTDI Chip
FTDI Chip develops innovative silicon solutions that enhance interaction with today’s technology. When a designer needs to add a USB port, rest assured that FTDI Chip has a full range of USB solutions to get the job done.  Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = ftdi
[env:myenv] platform = ... board = ... debug_tool = ftdi upload_protocol = ftdi
Platforms ┌─────────────────────┬─────────────────────────────┐ │Name                 │ Description                 │ ├─────────────────────┼─────────────────────────────┤ │platform_espressif32 │ Espressif Systems is a      │ │                     │ privately held fabless      │ │                     │ semiconductor company. They │ │                     │ provide wireless            │ │                     │ communications and Wi-Fi    │ │                     │ chips which are widely used │ │                     │ in mobile devices and the   │ │                     │ Internet of Things          │ │                     │ applications.               │ ├─────────────────────┼─────────────────────────────┤ │platform_riscv_gap   │ GreenWaves GAP8 IoT         │ │                     │ application processor       │ │                     │ enables the cost-effective  │ │                     │ development, deployment and │ │                     │ autonomous operation of     │ │                     │ intelligent sensing devices │ │                     │ that capture, analyze,      │ │                     │ classify and act on the     │ │                     │ fusion of rich data sources │ │                     │ such as images, sounds or   │ │                     │ vibrations.                 │ ├─────────────────────┼─────────────────────────────┤ │platform_shakti      │ Shakti is an open-source    │ │                     │ initiative by the RISE      │ │                     │ group at IIT-Madras, which  │ │                     │ is not only building open   │ │                     │ source, production grade    │ │                     │ processors, but also        │ │                     │ associated components like  │ │                     │ interconnect fabrics,       │ │                     │ verification tools, storage │ │                     │ controllers, peripheral IPs │ │                     │ and SOC tools.              │ ├─────────────────────┼─────────────────────────────┤ │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_shakti_artix7_35t          │ platform_shakti      │ On-board │ E-CLASS │ 50MHz     │ 0B    │ 128KB │
├─────────────────────────────────┼──────────────────────┼──────────┼─────────┼───────────┼───────┼───────┤
│board_shakti_artix7_100t         │ platform_shakti      │ On-board │ C-CLASS │ 50MHz     │ 0B    │ 128MB │
├─────────────────────────────────┼──────────────────────┼──────────┼─────────┼───────────┼───────┼───────┤
│board_sifive_e310-arty           │ platform_sifive      │ On-board │ FE310   │ 450MHz    │ 16MB  │ 256MB │
├─────────────────────────────────┼──────────────────────┼──────────┼─────────┼───────────┼───────┼───────┤
│board_espressif32_esp-wrover-kit │ platform_espressif32 │ On-board │ ESP32   │ 240MHz    │ 4MB   │ 320KB │
├─────────────────────────────────┼──────────────────────┼──────────┼─────────┼───────────┼───────┼───────┤
│board_riscv_gap_gapuino          │ platform_riscv_gap   │ On-board │ GAP8    │ 250MHz    │ 64MB  │ 8MB   │
├─────────────────────────────────┼──────────────────────┼──────────┼─────────┼───────────┼───────┼───────┤
│board_sifive_hifive-unleashed    │ platform_sifive      │ On-board │ FU540   │ 1500MHz   │ 32MB  │ 8GB   │
├─────────────────────────────────┼──────────────────────┼──────────┼─────────┼───────────┼───────┼───────┤
│board_sifive_hifive1             │ platform_sifive      │ On-board │ FE310   │ 320MHz    │ 16MB  │ 16KB  │
└─────────────────────────────────┴──────────────────────┴──────────┴─────────┴───────────┴───────┴───────┘
GD-LINK
GD-Link adapter is a three-in-one multi-function development tool for GD32 series of MCUs.  It provides CMSIS-DAP debugger port with JTAG/SWD interface.  Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = gd-link
[env:myenv] platform = ... board = ... debug_tool = gd-link upload_protocol = gd-link
Drivers Windows Check vendor recommendations.
Wiring Connections JTAG Interface ┌────────────────────┬────────────────┬─────────────────────┐ │GD-Link JTAG 20-Pin │ Board JTAG Pin │ Description         │ │Connector           │                │                     │ ├────────────────────┼────────────────┼─────────────────────┤ │+3V3                │ VCC            │ Positive Supply     │ │                    │                │ Voltage — Power     │ │                    │                │ supply for JTAG     │ │                    │                │ interface drivers   │ ├────────────────────┼────────────────┼─────────────────────┤ │TMS/IO              │ TMS            │ Test Mode State pin │ ├────────────────────┼────────────────┼─────────────────────┤ │TCK/CLK             │ TCK            │ JTAG Return Test    │ │                    │                │ Clock               │ ├────────────────────┼────────────────┼─────────────────────┤ │TDO/SWO             │ TDO            │ Test Data Out pin   │ ├────────────────────┼────────────────┼─────────────────────┤ │TDI                 │ TDI            │ Test Data In pin    │ ├────────────────────┼────────────────┼─────────────────────┤ │GDN                 │ GND            │ Digital ground      │ ├────────────────────┼────────────────┼─────────────────────┤ │TReset              │ RESET          │ Connect this pin to │ │                    │                │ the (active low)    │ │                    │                │ reset input of the  │ │                    │                │ target CPU          │ └────────────────────┴────────────────┴─────────────────────┘
Serial Wire Mode Interface (SWD) ┌───────────────────┬───────────────┬─────────────────────┐ │GD-Link SWD 20-Pin │ Board SWD Pin │ Description         │ │Connector          │               │                     │ ├───────────────────┼───────────────┼─────────────────────┤ │+3V3               │ VCC           │ Positive Supply     │ │                   │               │ Voltage — Power     │ │                   │               │ supply for JTAG     │ │                   │               │ interface drivers   │ ├───────────────────┼───────────────┼─────────────────────┤ │GND                │ GND           │ Digital ground      │ ├───────────────────┼───────────────┼─────────────────────┤ │TMS/IO             │ SWDIO         │ Data I/O            │ ├───────────────────┼───────────────┼─────────────────────┤ │TCK/CLK            │ SWCLK         │ Clock               │ ├───────────────────┼───────────────┼─────────────────────┤ │TReset             │ RESET         │ Connect this pin to │ │                   │               │ the (active low)    │ │                   │               │ reset input of the  │ │                   │               │ target CPU          │ └───────────────────┴───────────────┴─────────────────────┘
oddWires IOT-Bus JTAG
This IoT-Bus module provides JTAG debugging for the board_espressif32_iotbusio and board_espressif32_iotbusproteus boards (can be used with other boards too, see wiring connections below).  The board uses the FT232H to provide a USB controller with JTAG support. Both debugging and flashing is possible using this port.  Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = iot-bus-jtag
[env:myenv] platform = ... board = ... debug_tool = iot-bus-jtag upload_protocol = iot-bus-jtag
Wiring Connections ┌─────────────────┬────────────────┬─────────────────────┐ │IOT-Bus JTAG Pin │ Board JTAG Pin │ Description         │ ├─────────────────┼────────────────┼─────────────────────┤ │3V3              │ VCC            │ Positive Supply     │ │                 │                │ Voltage — Power     │ │                 │                │ supply for JTAG     │ │                 │                │ interface drivers   │ ├─────────────────┼────────────────┼─────────────────────┤ │GND              │ GND            │ Digital ground      │ ├─────────────────┼────────────────┼─────────────────────┤ │12               │ TDI            │ Test Data In pin    │ ├─────────────────┼────────────────┼─────────────────────┤ │14               │ TMS            │ Test Mode State pin │ ├─────────────────┼────────────────┼─────────────────────┤ │13               │ TCK            │ JTAG Return Test    │ │                 │                │ Clock               │ ├─────────────────┼────────────────┼─────────────────────┤ │15               │ TDO            │ Test Data Out pin   │ ├─────────────────┼────────────────┼─────────────────────┤ │EN               │ RESET          │ Connect this pin to │ │                 │                │ the (active low)    │ │                 │                │ reset input of the  │ │                 │                │ target CPU (EN for  │ │                 │                │ ESP32)              │ └─────────────────┴────────────────┴─────────────────────┘
Platforms ┌─────────────────────┬─────────────────────────────┐ │Name                 │ Description                 │ ├─────────────────────┼─────────────────────────────┤ │platform_espressif32 │ Espressif Systems is a      │ │                     │ privately held fabless      │ │                     │ semiconductor company. They │ │                     │ provide wireless            │ │                     │ communications and Wi-Fi    │ │                     │ chips which are widely used │ │                     │ in mobile devices and the   │ │                     │ Internet of Things          │ │                     │ applications.               │ ├─────────────────────┼─────────────────────────────┤ │platform_kendryte210 │ Kendryte K210 is an AI      │ │                     │ capable RISCV64 dual core   │ │                     │ SoC.                        │ └─────────────────────┴─────────────────────────────┘
│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_espidf                  │ Espressif IoT Development   │ │                                  │ Framework. Official         │ │                                  │ development framework for   │ │                                  │ ESP32.                      │ ├──────────────────────────────────┼─────────────────────────────┤ │framework_kendryte-standalone-sdk │ Kendryte Standalone SDK     │ │                                  │ without OS support          │ ├──────────────────────────────────┼─────────────────────────────┤ │framework_kendryte-freertos-sdk   │ Kendryte SDK with FreeRTOS  │ │                                  │ support                     │ ├──────────────────────────────────┼─────────────────────────────┤ │framework_simba                   │ Simba is an RTOS and build  │ │                                  │ framework. It aims to make  │ │                                  │ embedded programming easy   │ │                                  │ and portable.               │ └──────────────────────────────────┴─────────────────────────────┘
SEGGER J-Links are the most widely used line of debug probes available today.  They've proven their value for more than 10 years with over 400,000 units sold, including OEM versions and on-board solutions. This popularity stems from the unparalleled performance, extensive feature set, large number of supported CPUs, and compatibility with all popular development environments.  Official reference can be found here.
• J-Link Supported Devices
Also, see debugging_tool_custom debugging configuration with J-Link GDB Server.
• Custom Server
[env:myenv] platform = ... board = ... debug_tool = jlink
; SWD interface upload_protocol = jlink
; JTAG interface upload_protocol = jlink-jtag
Custom Server [env:debug_jlink] platform = ststm32 framework = mbed board = nucleo_f446re
debug_tool = jlink debug_port = :2331
debug_server = /full/path/to/JLinkGDBServerCL -singlerun -if SWD -select USB -port 2331 -device STM32F446RE
1. Start debugging session using pioide. PlatformIO will install J-Link software dependencies
2. Navigate to projectconf_pio_core_dir/packages/tool-jlink/USBDriver
3. Run InstDrivers.exe.
│platform_wiznet7500       │ The IOP (Internet Offload   │ │                          │ Processor) W7500 is the     │ │                          │ one-chip solution which     │ │                          │ integrates an ARM           │ │                          │ Cortex-M0, 128KB Flash and  │ │                          │ hardwired TCP/IP core for   │ │                          │ various embedded            │ │                          │ application platform        │ │                          │ especially requiring        │ │                          │ Internet of things          │ └──────────────────────────┴─────────────────────────────┘
│board_ststm32_mtb_ublox_odin_w2                   │ platform_ststm32          │ External │ STM32F439ZIY6        │ 168MHz    │ 2MB      │ 256KB    │
├──────────────────────────────────────────────────┼───────────────────────────┼──────────┼──────────────────────┼───────────┼──────────┼──────────┤
│board_nxplpc_lpc11u35_y5_mbug                     │ platform_nxplpc           │ External │ LPC11U35             │ 48MHz     │ 64KB     │ 10KB     │
├──────────────────────────────────────────────────┼───────────────────────────┼──────────┼──────────────────────┼───────────┼──────────┼──────────┤
│board_nordicnrf51_nrf51822_y5_mbug                │ platform_nordicnrf51      │ On-board │ NRF51822             │ 16MHz     │ 256KB    │ 16KB     │
└──────────────────────────────────────────────────┴───────────────────────────┴──────────┴──────────────────────┴───────────┴──────────┴──────────┘
Mini-Module FT2232H
The FT2232H Mini Module is a USB to dual channel serial/MPSSE/FIFO interface converter module based on the FT2232H USB Hi-Speed IC. The FT2232H handles all the USB signalling and protocol handling. The module provides access to device I/O interfaces via 2 double row 0.1" pitch male connectors.  The module is ideal for development purposes to quickly prove functionality of adding USB to a target design.  Official reference can be found here
[env:myenv] platform = ... board = ... debug_tool = minimodule
[env:myenv] platform = ... board = ... debug_tool = minimodule upload_protocol = minimodule
Wiring Connections ┌────────────────────┬────────────────┬─────────────────────┐ │FT2232H Mini-Module │ Board JTAG Pin │ Description         │ │Pin                 │                │                     │ ├────────────────────┼────────────────┼─────────────────────┤ │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     │ ├────────────────────┼────────────────┼─────────────────────┤ │RESET#              │ RESET          │ Connect this pin to │ │                    │                │ the (active low)    │ │                    │                │ reset input of the  │ │                    │                │ target CPU (EN for  │ │                    │                │ ESP32)              │ └────────────────────┴────────────────┴─────────────────────┘
You will also need to connect Vbus [CN3-1] to Vcc [CN3-3] of FT2232H Mini-Module to power the FTDI chip. See FT2232H Mini-Module Datasheet
Platforms ┌─────────────────────┬─────────────────────────────┐ │Name                 │ Description                 │ ├─────────────────────┼─────────────────────────────┤ │platform_espressif32 │ Espressif Systems is a      │ │                     │ privately held fabless      │ │                     │ semiconductor company. They │ │                     │ provide wireless            │ │                     │ communications and Wi-Fi    │ │                     │ chips which are widely used │ │                     │ in mobile devices and the   │ │                     │ Internet of Things          │ │                     │ applications.               │ ├─────────────────────┼─────────────────────────────┤ │platform_kendryte210 │ Kendryte K210 is an AI      │ │                     │ capable RISCV64 dual core   │ │                     │ SoC.                        │ ├─────────────────────┼─────────────────────────────┤ │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.                │ └─────────────────────┴─────────────────────────────┘
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_espidf                  │ Espressif IoT Development   │ │                                  │ Framework. Official         │ │                                  │ development framework for   │ │                                  │ ESP32.                      │ ├──────────────────────────────────┼─────────────────────────────┤ │framework_freedom-e-sdk           │ Open Source Software for    │ │                                  │ Developing on the SiFive    │ │                                  │ Freedom E Platform          │ ├──────────────────────────────────┼─────────────────────────────┤ │framework_kendryte-standalone-sdk │ Kendryte Standalone SDK     │ │                                  │ without OS support          │ ├──────────────────────────────────┼─────────────────────────────┤ │framework_kendryte-freertos-sdk   │ Kendryte SDK with FreeRTOS  │ │                                  │ support                     │ ├──────────────────────────────────┼─────────────────────────────┤ │framework_simba                   │ Simba is an RTOS and build  │ │                                  │ framework. It aims to make  │ │                                  │ embedded programming easy   │ │                                  │ and portable.               │ ├──────────────────────────────────┼─────────────────────────────┤ │framework_zephyr                  │ The Zephyr Project is a     │ │                                  │ scalable real-time          │ │                                  │ operating system (RTOS)     │ │                                  │ supporting multiple         │ │                                  │ hardware architectures,     │ │                                  │ optimized for resource      │ │                                  │ constrained devices, and    │ │                                  │ built with safety and       │ │                                  │ security in mind.           │ └──────────────────────────────────┴─────────────────────────────┘
MSP Debug The MSP debug stack (MSPDS) for all MSP430™ microcontrollers (MCUs) and SimpleLink™ MSP432™ devices consists of a static library on the host system side as well as an embedded firmware that runs on debug tools including the MSP-FET, MSP-FET430UIF or on-board eZ debuggers. It is the bridging element between all PC software and all MSP430 and SimpleLink MSP432 microcontroller derivatives and handles tasks such as code download, stepping through code or break points.  Official reference can be found here.
[env:myenv] platform = ... board = ... debug_tool = mspdebug
[env:myenv] platform = ... board = ... debug_tool = mspdebug upload_protocol = mspdebug
Drivers Windows Please "USB Driver Installation" guide for your board.
Platforms ┌──────────────────┬─────────────────────────────┐ │Name              │ Description                 │ ├──────────────────┼─────────────────────────────┤ │platform_timsp430 │ MSP430 microcontrollers     │ │                  │ (MCUs) from Texas           │ │                  │ Instruments (TI) are        │ │                  │ 16-bit, RISC-based,         │ │                  │ mixed-signal processors     │ │                  │ designed for ultra-low      │ │                  │ power. These MCUs offer the │ │                  │ lowest power consumption    │ │                  │ and the perfect mix of      │ │                  │ integrated peripherals for  │ │                  │ thousands of applications.  │ └──────────────────┴─────────────────────────────┘