ESP32JTAG

A multifunction, wireless JTAG tool powered by an ESP32 and an FPGA

Available for pre-order

View Purchasing Options
Jun 17, 2026

Project update 10 of 10

Getting Started With ESP32JTAG

by Andrew Li

Chapter 1: Unboxing and Hardware Overview

1.1 Package Contents

Note: No printed manual is included. This document is the primary reference.

Fig 1.1 - Unboxing

1.2 Device Overview

Fig 1.2a - Device Front Side Views
Fig 1.2b - Device Back Side Views

1.3 Port Naming and Orientation

The 4 ports are located on the same side of the device, named PA, PB, PC, and PD in sequence. The housing at both ends of the port array is marked with "A" and "D" for orientation reference: the port closest to "A" is PA, the port closest to "D" is PD, and the two ports in between are PB (adjacent to PA) and PC (adjacent to PD).

Fig 1.3 - Ports Close-up

1.4 Port Cable Assembly Description

Each Cable Assembly Consists of Two Parts

Fig 1.4a - Fly-wire Overview

Pin-to-Color Mapping for Port Connections (Quick Reference)

Fig 1.4b - Pin-to-Color Mapping

To simplify wiring, the device’s pin layout, connector key position, and flying lead colors follow a strict, absolute one-to-one correspondence. Refer to the table below when making connections:

Wire ColorPort APort BPort CPort D
RedPA00 (Pin 1)PB00 (Pin 11)PC00 (Pin 21)PD00 (Pin 31)
BrownPA01 (Pin 3)PB01 (Pin 13)PC01 (Pin 23)PD01 (Pin 33)
GreenPA02 (Pin 5)PB02 (Pin 15)PC02 (Pin 25)PD02 (Pin 35)
BluePA03 (Pin 7)PB03 (Pin 17)PC03 (Pin 27)PD03 (Pin 37)
Black (×4)GND (2/4/6/8)GND (12/14/16/18)GND (22/24/26/28)GND (32/34/36/38)

1.5 Port Modes and Pin Functions

Fig 1.5 - Pinout - Mode Mapping

Port Mode Quick Reference

PortAvailable ModesFactory Default
PALogic AnalyzerLogic Analyzer
PBLogic Analyzer · Vtarget + UART + SResetLogic Analyzer
PCLogic Analyzer · BMP SWD/JTAGSWD/JTAG
PDLogic Analyzer · FPGA XVC · Counter Lo @ 132 MHz · Counter Hi @ 132 MHz · GPIO Direct (125 Hz / 250 Hz / 500 Hz / 1 kHz)Logic Analyzer

Note: Operating modes are configured and switched through the web interface. Select the required mode before wiring or using a port.

Fig 1.5a - Port Configuration On Website</p>

Mode 1: Logic Analyzer (supported by Port A / B / C / D)

PinWire ColorPAPBPCPD
PX00RedCH0CH4CH8CH12
PX01BrownCH1CH5CH9CH13
PX02GreenCH2CH6CH10CH14
PX03BlueCH3CH7CH11CH15

Note: X represents the port letter A/B/C/D.

Mode 2: UART with Target Sensing & Reset Control (Port B only)

PinWire ColorFunctionDescription
PB00RedTXDevice transmits, target receives
PB01BrownVtargetUsed to sense/measure the target board's voltage
PB02GreenRXTarget transmits, device receives
PB03BlueSResetConnected to the target board's RESET pin to manage target resets
Fig 1.5b - SReset Function On Website

Mode 3: Target MCU JTAG/SWD Debugger (Port C only)

The Port C supports both JTAG and SWD interfaces for ARM Cortex MCU debugging with automatic detection (JTAG connection is attempted first, reverting to SWD if unsuccessful).

For using as JTAG port:
PinWire ColorFunctionDescription
PC00RedTDOTest Data Output
PC01BrownTCKTest Clock
PC02GreenTMSTest Mode Select
PC03BlueTDITest Data Input
For using as SWD port:
PinWire ColorFunctionDescription
PC00RedNCNo Connection
PC01BrownSWCLKSerial Wire Clock
PC02GreenSWDIOSerial Wire Debug Data Input/Output
PC03BlueNCNo Connection

Mode 4: FPGA XVC (Port D only)

The Port D supports AMD (Xilinx) FPGA XVC protocol for programming and debugging via Vivado.

PinWire ColorFunctionDescription
PD00RedTDOTest Data Output: Receives serial data from the target FPGA
PD01BrownTCKTest Clock: Drives the JTAG clock signal to the FPGA
PD02GreenTMSTest Mode Select: Controls the FPGA's JTAG state machine
PD03BlueTDITest Data Input: Transmits serial data into the target FPGA

Mode 5: Signal Generator (Port D only)

When Port D is configured as a signal generator, it functions as a signal output source for clock injection or circuit excitation. Depending on your target requirements, you can select one of the three sub-modes below.

PinWire ColorFunctionOutput Frequency
PD00RedBit 0~66 MHz
PD01BrownBit 1~33 MHz
PD02GreenBit 2~16.5 MHz
PD03BlueBit 3~8.25 MHz
PinWire ColorFunctionOutput Frequency
PD00RedBit 4~4.13 MHz
PD01BrownBit 5~2.06 MHz
PD02GreenBit 6~1.03 MHz
PD03BlueBit 7~0.52 MHz

1.6 Safety Notes

Please read the following safety requirements before using this device.

Voltage limits: The recommended operating voltage range is 1.2 V–3.3 V. Each port is equipped with ESD protection to withstand transient overvoltage, but continuous input exceeding 3.3 V is not recommended.

Adjustable voltage: The target board reference voltage (VTref / VIO_VAR) is controlled by the device’s PWM output and can be configured through the web interface without requiring an external power supply.

Common ground requirement: Regardless of the operating mode, the target board GND must be connected to the ESP32JTAG via the black wire in the cable assembly.

No hot-plugging: Do not insert or remove the cable assemblies while the device or target board is powered; doing so may cause ESD damage.

Power off before wiring: It is recommended to complete all wiring with power removed, then verify all connections before applying power.

Chapter 2: Powering On and Initial Connection

The ESP32JTAG is ready to use immediately after power-on — no driver installation is required. The device automatically broadcasts a Wi-Fi hotspot, and all configuration can be completed through the built-in web interface accessed via a browser. This chapter covers how to power on the device, connect to the hotspot, and access the web interface.

2.1 Power-On and LCD Display Overview

Fig 2.1 - LCD Startup

Field Descriptions

FieldDescription
AP modeThe device is currently in AP mode, acting as a Wi-Fi hotspot
IPWeb interface address; fixed at 192.168.4.1 in AP mode
SSIDHotspot name
PSWDHotspot password
XVC:2542XVC server port, used by FPGA tools such as Vivado
GDB:4242BMP GDB server port, used by debuggers such as Cortex-Debug
PA / PB / PC / PDCurrent operating mode of each of the four physical ports

Note: The characters after the underscore in the SSID (XXYY) are the "device suffix", the last 2 bytes of the device’s MAC address. The suffix is unique to each unit and is also shown on the LCD.

2.2 Connecting to the Device Hotspot (AP Mode)

  1. Open the Wi-Fi settings on your computer or smartphone.
  2. Search for the hotspot named esp32jtag-XXYY. The device shown in the figure has the suffix 999D.
Fig 2.2 - Wi-Fi List
  1. Enter the password esp32jtag to complete the connection.

Note: After connecting to the device hotspot, your computer will temporarily lose access to its previous network. This is expected behavior.

2.3 Accessing the Web Interface

  1. Open a browser (Chrome, Edge, or Firefox recommended).
  2. Type https://192.168.4.1 in the address bar and press Enter.
  3. The browser will display a security warning — this is because the device uses a self-signed TLS certificate and is completely normal.
    Click "Advanced""Proceed to 192.168.4.1" (exact wording varies by browser, but the steps are the same).
Fig 2.3a - Browser Warning
  1. When the login prompt appears, enter the default credentials:
    • Username: admin
    • Password: admin
Fig 2.3b - Login Page
  1. Click Login to enter the main web interface.

2.4 Web Interface Overview

After logging in, five functional tabs are displayed at the top of the interface, providing access to all device operations.

Fig 2.4 - Web Interface

Tab Descriptions

TabDescription
System ConfigurationsPort mode configuration, Wi-Fi settings, and advanced options. Default landing page.
Logic AnalyzerLogic analyzer waveform capture and viewing
UART Web TerminalSerial terminal for sending and receiving UART data directly from the browser
Firmware UpdateOver-the-air (OTA) firmware upgrade
ESP32JTAG HELPBuilt-in user guide

Note: At this point, the device has completed its initial setup and is ready for use.

Chapter 3: Joining a Local Network (Switching to Station Mode)

By default, the ESP32JTAG operates in AP mode, which requires your computer to switch to the device’s hotspot in order to access the web interface. After switching to Station mode, the device joins your existing Wi-Fi network, allowing your computer to access it directly without changing networks — this is the recommended way to use the device on a day-to-day basis. This chapter starts from the AP mode state at the end of the previous chapter and walks through switching to and configuring Station mode.

  1. In the web interface, go to System ConfigurationsWi-Fi Configuration.
  2. Select ST mode and enter the SSID and password of your local Wi-Fi network.
  3. Click Save settings & Restart and wait for the device to apply the configuration.
Fig 3.1 - Wi-Fi Configuration
  1. After the device reboots, the LCD switches to show ST mode and the newly assigned IP address.
Fig 3.2 - LCD Display Under Station Mode
  1. Switch your computer back to your original Wi-Fi network, then access the web interface using the new IP address.
Fig 3.3 - Access Web Interface With New IP

Note: ESP32JTAG currently supports 2.4 GHz Wi-Fi only.

If the device does not appear on your network after switching to Station mode, check the SSID and password first. If you cannot access the web interface, restore factory settings using the procedure in Chapter 4 to return the device to AP mode.

Chapter 4: Wireless Firmware Upgrade (OTA)

The ESP32JTAG supports fully wireless firmware upgrades. The entire process requires no USB cable and can be completed entirely through a browser. This chapter covers how to check the current firmware version, obtain new firmware, perform the upgrade, and recover from unexpected situations.

4.1 Checking the Current Firmware Version

Open the web interface, navigate to the System Configurations tab, and scroll to the Version Information section at the bottom of the page.

Fig 4.1a - Version Information

Alternatively, the top of the Firmware Update tab displays a concise summary of the current firmware (e.g., Current firmware: 0.2.0 (build Apr 3 2026 16:54:59 commit 41f3034)), making it a convenient way to confirm the version before upgrading.

Fig 4.1b - Current firmware

4.2 Obtaining the Latest Firmware

Firmware releases are available at https://github.com/EZ32Inc/esp32jtag_firmware/releases

Each release contains two files, distinguished by their filename suffix:

File SuffixPurpose
_ota.binFor OTA wireless upgrades only — use this file for the procedure in this chapter
_full.binFactory flashing / USB wired flashing — use only in emergency recovery scenarios

Example filename format: esp32jtag_v0.2.0_20260403_165459_41f3034_ota.bin, which encodes the version number, build timestamp, and Git commit in sequence for easy version comparison.

Caution: Do not use _full.bin for OTA upgrades. The OTA process only accepts _ota.bin; uploading the wrong file will cause the upgrade to fail.

Note: The device does not check for updates automatically. Users must download the firmware manually and upload it themselves.

4.3 Uploading and Performing the Upgrade

  1. Click the Firmware Update tab in the top navigation bar of the web interface.
  2. Confirm the current firmware version information shown at the top of the page.
  3. Drag and drop the downloaded _ota.bin file into the dashed box in the center of the page, or click the box to manually select the file.
  4. Click the Upload & Update button. A progress bar will appear and display the upload status in real time.
Fig 4.3 - Firmware Upload
  1. Once the upload is complete, the device automatically finishes the upgrade and reboots.
  2. Reconnect to the web interface and verify that the version number has been updated in the Version Information section.

Caution: Do not cut power during the upgrade process. If the upload is interrupted mid-way, the device retains the original firmware and can be safely retried.

4.4 Restoring Factory Settings

If you need to clear all configuration and restore the device to its factory state (Wi-Fi returns to AP mode, all port configurations are reset), there are two methods:

Method 1 (Recommended): Via the Web Interface

On the System Configurations page, click the Set to default button. After confirmation, the device automatically clears all configuration stored in Flash and reboots.

Fig 4.4a - Set to default

Method 2: USB Wired Flashing

If an OTA failure causes firmware corruption or the device enters a boot loop, the web interface will be inaccessible. In this case, recovery must be performed using the browser-based one-click flashing tool.

Use Chrome or Edge for this procedure. The WebSerial flashing tool requires Web Serial support, which is not available in Firefox or Safari. Also make sure the USB-C cable supports data, not only charging.

First, enter Download Mode by following these steps:

  1. Power off the device.
  2. Press and hold the BOOT0 button without releasing it.
  3. Plug in the USB cable to apply power.
  4. Hold for approximately 1 second, then release BOOT0.
  5. The LCD shows no display (black screen) → the device has entered ROM download mode. This is expected behavior.

Then, complete the browser-based one-click flashing:

  1. Open the following page: https://adafruit.github.io/Adafruit_WebSerial_ESPTool/. Click the Connect button on the page.
Fig 4.4b - Adafruit WebSerial ESPTool
  1. A small browser dialog will appear (as shown below). Select your device from the list (Windows shows COM3 etc.; Mac shows cu.usbserial), then click Connect. The page will automatically detect the chip.
Fig 4.4c - Chips Detected View
  1. Load the firmware and configure the settings:
    • In the Offset field, enter: 0x0.
    • Click Choose a file and select your esp32jtag_vXXX_full.bin file from the dialog.
Fig 4.4d - Firmware Settings

Caution: You must use the _full.bin file here. It is a complete Flash image including the bootloader and partition table. The _ota.bin file is not valid in this mode.

  1. Click the Program button and wait for the process to complete.
  2. When programming finishes, unplug and reconnect the USB-C cable to reboot the device.
  3. Confirm that the LCD turns on and shows AP mode again.
  4. Reconnect to the esp32jtag-XXYY hotspot, open https://192.168.4.1, and verify the firmware version in the web interface.

Sign up to receive future updates for ESP32JTAG.

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects