Embedded & hardware
ESP-IDF JTAG
A general-purpose JTAG programmer on an ESP32.
An ESP-IDF v6.0 component that turns any ESP32 into a standalone JTAG programmer with a browser UI — scan chains, program FPGAs, flash XMOS xCORE, play SVF files. Two backends: GPIO bit-bang on any ESP32 (1–5 MHz) or PARLIO + DMA on the ESP32-P4 (up to 40 MHz).
Background
Built for the moment you need to flash a JTAG device on a production line or at a remote bring-up without a PC. The component detects every device on the chain (XMOS, Lattice, Xilinx, Espressif, ARM DAPs) by IDCODE, renders the chain diagram in a browser, and handles full xCORE programming — loading .xe firmware into RAM, programming SPI flash via a JTAG-loaded stub, and per-tile debug register access. Boundary scan support auto-detects BSR length and live-refreshes pin states from the UI.
Specifications
- Two backends: GPIO bit-bang (1–5 MHz) or PARLIO + DMA (up to 40 MHz) on ESP32-P4
- Chain auto-detection by IDCODE — XMOS xCORE.ai / XS2 / XS1, Lattice ECP5 & iCE40, Xilinx 7-series, ARM CoreSight DAPs, Espressif SoCs
- Full XMOS programming: .xe parser, RAM boot, SPI flash via JTAG stub, PSWITCH/SSWITCH debug
- Boundary-scan with auto BSR length detection and live pin-state refresh
- Browser UI with chain diagram, firmware inspector, one-click flash — no tools to install
- 1.8 V target support via level shifter; ESP32-P4-NANO's LDO_VO4 supplies the low-voltage rail
More from Embedded & hardware
-
AD732x ADC DriverDMA-backed SPI driver for the 500 kSPS true-bipolar AD732x ADC.
An ESP-IDF component for the Analog Devices AD732x — a 500 kSPS, 8-channel, software-selectable true-bipolar 12-bit + sign SAR ADC. DMA-backed SPI transfers so the CPU stays out of the sample stream.
-
AudioBus64-channel audio + I/O multiplexing over a single twisted pair.
An ESP-IDF component that carries up to 64 channels of 32-bit audio, plus SPI/I2C/GPIO/MIDI tunneling, over a single Cat5 pair using commodity LVDS transceivers. Daisy-chainable, hot-pluggable, deterministic and zero-jitter.
-
Self-tuning Si5351Self-calibrating multi-output clock generator.
Si5351A driver and web control surface for the ESP32-P4-Nano, with hardware frequency counting on the PCNT peripheral, three-phase auto-calibration to ~1 ppm, and a background PI controller that compensates crystal thermal drift over hours.
-
RomEMUSPI flash & I2C EEPROM emulator with a real-time web UI.
Turns an ESP32-S3 or ESP32-P4 into a drop-in replacement for common SPI flash and I2C EEPROM chips. Upload images over WiFi or Ethernet, switch slots instantly, and the target boots from PSRAM — no chip flashing required.
-
PARLIO Audio TXI2S, TDM, ADAT and S/PDIF — all from one peripheral.
An ESP32-P4 audio transmitter that creatively repurposes the parallel-IO peripheral as a deep multi-protocol digital audio output. APLL drives the I2S MCLK, the same GPIO is fed back into PARLIO as an external clock, and DMA buffers shift out pre-encoded bit patterns on 16 parallel data lines — synthesizing I2S, TDM-8/16, ADAT and S/PDIF in software.
-
ADAT for ESP32-P48-channel ADAT lightpipe TX/RX in software.
ADAT optical I/O on the ESP32-P4: I2S+APLL generates the exact bit clock for transmit, while the RMT peripheral measures pulse durations from a TOSLINK module to recover the receive clock — no external PLL needed.