Page 1 of 1

Manufacturing Flash via JTAG

Posted: Thu Oct 30, 2025 5:37 pm
by Shawn Lord
Does ESP have any documentation or tools for using the JTAG interface for factory flashing of the module. Specifically the ESP32s3 WROOM module. I am looking into this as a way to speed up programming time at the factory. Since JTAG is a clocked protocol theoretically it should be able to reach faster transfer times for code transfer. However I see no documentation that esptool supports flashing over JTAG.

Thanks,
Shawn

Re: Manufacturing Flash via JTAG

Posted: Sat Nov 01, 2025 2:32 am
by Sprite
esptool does not support that, it's usually OpenOCD that's used for JTAG. Note that JTAG isn't usable out of the box like that, though: normally, JTAG is routed to the built-in USB-serial-JTAG converter, and you'd need to blow a fuse (via the serial port, usually) to get GPIO JTAG to work.

(In my experience, if you use either UART at a relatively high clock speed or USB, most of the bottleneck wrt writing flash actually is in the erase/write speed of the flash rather than the transport mechanism, by the way.)

Re: Manufacturing Flash via JTAG

Posted: Sat Nov 01, 2025 4:51 am
by username
We just use a ESP32-S3 with 16MB of flash, and have 8MB set apart for NVS storage that is loaded with the production firmware.
Then use a USB-C male to male cable from it to the production product to flash it. Just takes a few seconds.
We also made the programmer so that when its powered up if it detects it's plugged into a PC it acts like a portable hard drive.
So you can just simply drag your .bin files to it.

Re: Manufacturing Flash via JTAG

Posted: Sat Nov 01, 2025 4:52 am
by username
We just use a ESP32-S3 with 16MB of flash, and have 8MB set apart for NVS storage that is loaded with the production firmware.
Then use a USB-C male to male cable from it to the production product to flash it. Just takes a few seconds.
We also made the programmer so that when its powered up if it detects it's plugged into a PC it acts like a portable hard drive.
So you can just simply drag your .bin files to it.