JTAG not connecting to PIO

I’m trying to setup JTAG debug on PIO.
I don’t know what the issue is. OpenOCD and the FTDI drivers seem to be correct.

Any ideas will be greatly appreciated.


I modified the file esp32_devkitj_v1.cfg in an editor. It can be found in the directory:
C:\Users\jake.platformio\packages\tool-openocd-esp32\share\openocd\scripts\interface\ftdi.
See below:
//Driver for the FT2232H JTAG chip on the Espressif DevkitJ board

interface ftdi
ftdi_vid_pid 0x0403 0x6010 0x0403 0x6014 <== I moded this

// interface 1 is the uart
ftdi_channel 0
// just TCK TDI TDO TMS, no reset
ftdi_layout_init 0x0008 0x000b
reset_config none


The Platformio.ini file:
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
upload_port = COM3
monitor_port = COM3
debug_tool = esp-prog
debug_init_break = tbreak setup
upload_protocol = esp-prog


PIO Terminal output:

Executing task in folder Test_MemAlloc: C:\Users\jake.platformio\penv\Scripts\platformio.exe debug <

Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino)
---------------------------------------------------------------------------------------------Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: Redirecting...
PLATFORM: Espressif 32 (1.11.2) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:

  • framework-arduinoespressif32 3.10004.200129 (1.0.4)
  • tool-esptoolpy 1.20600.0 (2.6.0)
  • tool-openocd-esp32 1.1000.20190709 (10.0)
  • toolchain-xtensa32 2.50200.80 (5.2.0)
    LDF: Library Dependency Finder → Library Dependency Finder (LDF) — PlatformIO latest documentation
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 31 compatible libraries
    Scanning dependencies…
    Dependency Graph
    |-- 1.0
    |-- <SD(esp32)> 1.0.5
    | |-- 1.0
    | |-- 1.0
    |-- 1.0
    Building in debug mode
    Compiling .pio\build\esp32dev\src\main.cpp.o
    Generating partitions .pio\build\esp32dev\partitions.bin
    Compiling .pio\build\esp32dev\lib1cb\FS\FS.cpp.o
    Compiling .pio\build\esp32dev\lib1cb\FS\vfs_api.cpp.o
    Compiling .pio\build\esp32dev\libcb7\SPI\SPI.cpp.o
    Compiling .pio\build\esp32dev\libdd6\SD\SD.cpp.o
    Compiling .pio\build\esp32dev\libdd6\SD\sd_diskio.cpp.o
    Compiling .pio\build\esp32dev\libdd6\SD\sd_diskio_crc.c.o
    Archiving .pio\build\esp32dev\libFrameworkArduinoVariant.a
    Indexing .pio\build\esp32dev\libFrameworkArduinoVariant.a
    Archiving .pio\build\esp32dev\libcb7\libSPI.a
    Indexing .pio\build\esp32dev\libcb7\libSPI.a
    Compiling .pio\build\esp32dev\FrameworkArduino\Esp.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\FunctionalInterrupt.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\HardwareSerial.cpp.o
    src\main.cpp: In function ‘int* add(int, int)’:
    src\main.cpp:24:33: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 2 has type ‘int*’ [-Wformat=]
    printf(“addr: val = %x\n”, val);
    ^
    src\main.cpp:24:33: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 2 has type ‘int*’ [-Wformat=]
    Compiling .pio\build\esp32dev\FrameworkArduino\IPAddress.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\IPv6Address.cpp.o
    Archiving .pio\build\esp32dev\lib1cb\libFS.a
    Compiling .pio\build\esp32dev\FrameworkArduino\MD5Builder.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\Print.cpp.o
    Indexing .pio\build\esp32dev\lib1cb\libFS.a
    Archiving .pio\build\esp32dev\libdd6\libSD.a
    Compiling .pio\build\esp32dev\FrameworkArduino\Stream.cpp.o
    Indexing .pio\build\esp32dev\libdd6\libSD.a
    Compiling .pio\build\esp32dev\FrameworkArduino\StreamString.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\WMath.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\WString.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\base64.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\cbuf.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-adc.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-bt.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-cpu.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-dac.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-gpio.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-i2c.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-ledc.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-matrix.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-misc.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-psram.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-rmt.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-sigmadelta.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-spi.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-time.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-timer.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-touch.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-uart.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\libb64\cdecode.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\libb64\cencode.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\main.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\stdlib_noniso.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\wiring_pulse.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\wiring_shift.c.o
    Archiving .pio\build\esp32dev\libFrameworkArduino.a
    Indexing .pio\build\esp32dev\libFrameworkArduino.a
    Linking .pio\build\esp32dev\firmware.elf
    Building .pio\build\esp32dev\firmware.bin
    Retrieving maximum program size .pio\build\esp32dev\firmware.elf
    Checking size .pio\build\esp32dev\firmware.elf
    Advanced Memory Usage is available via “PlatformIO Home > Project Inspect”
    RAM: [ ] 4.7% (used 15436 bytes from 327680 bytes)
    Flash: [== ] 16.5% (used 216785 bytes from 1310720 bytes)
    esptool.py v2.6
    =============================== [SUCCESS] Took 12.47 seconds ===============================

Terminal will be reused by tasks, press any key to close it.

Executing task in folder Test_MemAlloc: C:\Users\jake.platformio\penv\Scripts\platformio.exe debug <

Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: Redirecting...
PLATFORM: Espressif 32 (1.11.2) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:

  • framework-arduinoespressif32 3.10004.200129 (1.0.4)
  • tool-esptoolpy 1.20600.0 (2.6.0)
  • tool-openocd-esp32 1.1000.20190709 (10.0)
  • toolchain-xtensa32 2.50200.80 (5.2.0)
    LDF: Library Dependency Finder → Library Dependency Finder (LDF) — PlatformIO latest documentation
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 31 compatible libraries
    Scanning dependencies…
    Dependency Graph
    |-- 1.0
    |-- <SD(esp32)> 1.0.5
    | |-- 1.0
    | |-- 1.0
    |-- 1.0
    Building in debug mode
    Retrieving maximum program size .pio\build\esp32dev\firmware.elf
    Checking size .pio\build\esp32dev\firmware.elf
    Advanced Memory Usage is available via “PlatformIO Home > Project Inspect”
    RAM: [ ] 4.7% (used 15436 bytes from 327680 bytes)
    Flash: [== ] 16.5% (used 216785 bytes from 1310720 bytes)
    ====================================================== [SUCCESS] Took 2.39 seconds ======================================================
    Terminal will be reused by tasks, press any key to close it.

Debug Console output: