# IDE 2.3.0 debugging esp32s3 using built-in usb jtag

**URL:** <https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051>\
**Category:** IDE 2.x\
**Created:** [February 10, 2024, 12:56am UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051 "2024-02-10T00:56:19Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![tcornall](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tcornall/32/1098976_2.png) [@tcornall](https://forum.arduino.cc/u/tcornall)\
**Post date:** [February 10, 2024, 12:56am UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/1 "2024-02-10T00:56:19Z")

</div>

I finally am able to use the Arduino IDE to do debugging using the USB JTAG built into the  
ESP32s3! It's not perfect yet, still some bugs and issues. Here's a brief description. Treat it  
as a series of hints. This was on a Windows 11 PC with Arduino IDE v 2.3.0. but I think Win 10 will be similar. The microprocessor board was an Adafruit QTPY esp32s3 but I think any esp32s3 using the native USB will be similar.  
You'll need to dig around for details (e.g. the Zadig drivers) and your actual experience may differ from mine because of platform, OS etc.  
I will not/can't help you with that, you'll have to work it out yourself. Just take heart that  
it is now possible.

What appears to work for me, at least somewhat consistently is:  
Make an arduino project for your esp32s3 device. Save it as usual.  
Added a debug.cfg file to the project folder, and put "adapter driver esp\_usb\_jtag" in it. (no quotes)  
Plugin your esp32s3 (not s2 as it doesn't support usb jtag interface....)  
See if Windows device manager can see either a new com port or a dew device labelled as a usb jtag/serial.  
If it's a pure serial com port, you might need to 'update' its driver to make it back into a usb jtag/serial unit (Use device manager, properties, browse, pick from list)  
Use Zadig to update drivers for usb jtag device interfaces. Use USB Serial(CDC) on interface 0 and libusk on interface 2  
(interface 2 might be hiding in the libusb devices)  
Hit the icon on the IDE top bar to start debugging. This should create a launch.json file. It might fail because it can't flash the device.  
Copy the debug config in launch.json and add it to the config array as a new config.  
Make it "attach" rather than "launch". Give it a new name, "my config"  
Restart the ide, open the debug window, make sure "my config" is selected from the dropdown.  
Reset the micro to make sure a program is running on the micro (i.e that it isn't in boot mode)  
hit the green triangle in the debug side window to start the debug  
hit the blue triangle to run continuously, then || to pause, step over etc. Set break points.  
Use dark theme, high contrast to better show line number in the source code. Be careful that it actually aligned. Try putting breakpoints in.  
If they don't all go where you click but appear a few lines offset, you might not be aligned.  
(i.e. you changed the source code since last compiling) Don't do that. It messes up the 'where am I in the source file" indication  
Stop the debugger and hit reset on the micro before trying to upload new code to it.  
Restart IDE after uploading new code if the debug window buttons all disappear. (Make sure to select "my config")  
Rinse and repeat.

My heartfelt thanks to all who are working to make this feature work!

---

<div class="post-metadata">

**Author:** ![ptillisch](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@ptillisch](https://forum.arduino.cc/u/ptillisch)\
**Post date:** [February 10, 2024, 1:23am UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/2 "2024-02-10T01:23:08Z")

</div>

Thanks @tcornall! Support for a more powerful and flexible system of configuring Arduino boards platforms for use with the Arduino IDE 2.x integrated sketch debugger was added in Arduino IDE 2.3.0. Although the previous system is still generally supported, the initial debugger support implementation in the "esp32" boards platform had to use a quite hacky approach in order to overcome the limitations of the previous system and that initial implementation was broken by the changes in Arduino IDE 2.3.0. This is the reason why the debugging experience with ESP32 boards in Arduino IDE 2.3.0 is currently not very user friendly.

The "esp32" boards platform has already been updated to a much better approach taking advantage of the new system:

> <https://github.com/espressif/arduino-esp32/pull/9116>
>
> \## Description of Change
> This PR replaces the current experimental sketch debug…ging description with a full implementation according to the finalized \[Arduino Platform Debug Specification\](https://arduino.github.io/arduino-cli/latest/platform-specification/#sketch-debugging-configuration).
> 
> \*\*The current experimental debug configuration will no longer be supported with the release of Arduino IDE 2.3.0.\*\*
> 
> The biggest improvement is that now the contents of \`launch.json\` can be fully customized from entries in \`platform.txt\`, so there is no need to copy files in the sketch folder and advanced customizations become possible.
> 
> In particular, \`debug\_custom.json\` is not used anymore.
> 
> \## Tests scenarios
> Tested on Arduino Nano ESP32 with current nightly IDE, available from \[here\](https://www.arduino.cc/en/software) in the Nightly Builds section, or 2.3.0+ when it becomes public.

That pull request was merged earlier today, but there hasn't been a new release of the "esp32" boards platform since that time. Since you already have found a way to proceed with the latest release versions, you are probably happy enough to carry on with that until the situation improves with the next release of the "esp32" boards platform, but for anyone else who is struggling with that I can offer two alternatives:

## Alternative A: Use Arduino IDE 2.2.1

As I mentioned above, the ESP32 debugging experience is currently more friendly with Arduino IDE 2.2.1. You can download Arduino IDE 2.2.1 from the links listed under the " **Assets**" section of the 2.2.1 release page in the IDE's GitHub repository:

> **[Release 2.2.1 · arduino/arduino-ide](https://github.com/arduino/arduino-ide/releases/tag/2.2.1)**
>
> Changed
> 
> Bump Arduino Firmware Uploader dependency to 2.4.1 (#2206)
> 
> Fixed
> 
> Fix missing translations for русский and Türkçe (#2201)
> 
> 
> Full Changelog: 2.2.0...2.2.1

You will get an update offer when you start Arduino IDE 2.2.1. You must decline that offer otherwise it will just update to 2.3.0.

You should watch for a new release of the " **esp32**" and/or " **Arduino ESP32 Boards**" (if you are using the [**Nano ESP32**](https://docs.arduino.cc/hardware/nano-esp32)) platforms. Once that release happens, update to Arduino IDE 2.3.0 again.

* * *

❗ Arduino IDE \>=2.3.0 is required for debugging boards of the "Arduino Mbed OS" boards platforms. If you want to debug those boards in addition to ESP32 boards, you can keep your Arduino IDE 2.3.0 installation in place in addition to the 2.2.1 installation and use the appropriate IDE version for the debugging session with each board.

* * *

## Alternative B: Use the development version of the "esp32" platform

The new debugger system is already in place in the development version of the "esp32" boards platform. Advanced users can follow the manual installation instructions here to get the development version of the platform:

> **[Windows Installer - Installing - - — Arduino ESP32 latest documentation](https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#windows-manual-installation)**

* * *

❗ This version of the platform is primarily intended to be used for beta testing and it might be unstable or not well supported.

* * *

---

<div class="post-metadata">

**Author:** ![tcornall](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tcornall/32/1098976_2.png) [@tcornall](https://forum.arduino.cc/u/tcornall)\
**Post date:** [February 10, 2024, 1:28am UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/3 "2024-02-10T01:28:47Z")

</div>

Thanks @ptillisch.  
I am embarrassed to admit that I initially forgot to add my greatest thanks for all the work of the Arduino team and other developers who are contributing to the ongoing efforts to get the IDE to meet everybody's expectations. The fact that I have toyed with VSC and ESP-IDF in order to use the debugger but have rushed back to the Arduino IDE just as soon as feasible speak to just how usable it is!

---

<div class="post-metadata">

**Author:** ![tcornall](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tcornall/32/1098976_2.png) [@tcornall](https://forum.arduino.cc/u/tcornall)\
**Post date:** [February 10, 2024, 4:13am UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/4 "2024-02-10T04:13:40Z")

</div>

The issues:

1. Debugger fails when trying to "launch" i.e. flash new code and then debug. I got around this using an "attach" configuration that uses existing uploaded code.
2. ~~The debug side-window goes blank after I upload a newly compiled project. I simply restart the IDE. I may have to reset the micro as well before gdb-server is happy~~
3. Trying to single-step thru the constructor in a class . Culprit seems to be a maths function used on one line. pow(). Up until then single-stepping was ok. After that it wasn't. Since it was 2 to a power, I used 2\<\<n instead and now single stepping works ok. (will be a problem elsewhere tho')
4. ~~Looking at local variables in the debug window and lots of them appear "optimized out" even though I have "optimize for debugging" turned on in the sketch settings~~
5. Small bother, but uploading newly compiled code WITHOUT first stopping the debugger causes problems. It'd be nice if that happened automagically.
6. Disabling a breakpoint has no effect. Still breaks at that point. So I remove them and put them back later. OK if I only have a few breakpoints but it's nice to have a list that I can turn off and on. Did find that if I disable/enable a break point, then stop debugging, then restart debugging, it DOES have an effect.
7. IDE 2.3.1 fixed the 'blank debug window' problem but introduced a new one. Now variables don't show. (This had been working in the nightly build I was using that also fixed the blank debug window but the released 2.3.1 has introduced this new problem)

---

<div class="post-metadata">

**Author:** ![ptillisch](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@ptillisch](https://forum.arduino.cc/u/ptillisch)\
**Post date:** [February 10, 2024, 6:00am UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/5 "2024-02-10T06:00:29Z")

</div>

> [@tcornall](#):
>
> The debug side-window goes blank after I upload a newly compiled project. I simply restart the IDE.

This is caused by a bug in Arduino IDE 2.3.0:

> <https://github.com/arduino/arduino-ide/issues/2354>
>
> \### Describe the problem
> 
> Arduino IDE has an \[integrated sketch debugger\](http…s://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-debugger). The debugger interface is presented in a view in the left side panel of the Arduino IDE window. When the user initiates a debug session by clicking the "Start Debugging" button on the Arduino IDE toolbar, the "\*\*DEBUG\*\*" opens and the user can use the interface to debug their sketch.
> 
> 🐛 On the first attempt to use the debugger with a given sketch, the "\*\*DEBUG\*\*" view is empty. It is only populated on the next IDE session.
> 
> \### To reproduce
> 
> 1. Connect one of the boards with debugger support to your computer as appropriate.
> 1. Select the board from the \*\*Tools \> Board\*\* menu.
> 1. Select \*\*File \> New Sketch\*\* from the Arduino IDE menus.
> 1. Select \*\*Sketch \> Verify/Compile\*\* from the Arduino IDE menus.
> 1. Wait for the compilation process to finish.
> 1. Click the "Start Debugging" button on the Arduino IDE toolbar.
> 
> 🐛 The left side panel opens, but the "\*\*DEBUG\*\*" view is blank:
> 
> !\[image\](https://github.com/arduino/arduino-ide/assets/8572152/a73e1ad0-4c5d-4af5-81d6-b16c773044e6)
> 
> \### Expected behavior
> 
> The "\*\*DEBUG\*\*" view is always populated with the UI after the user clicks the "Start Debugging" button.
> 
> \### Arduino IDE version
> 
> 2.3.0
> 
> \### Operating system
> 
> \- Windows
> \- Linux
> 
> \### Operating system version
> 
> \- Windows 11
> \- Ubuntu 22.04
> 
> \### Additional context
> 
> I haven't done a full bisection, but I am not able to reproduce the fault with Arduino IDE 2.2.1.
> 
> \----
> 
> I also sometimes encounter a partially populated view:
> 
> !\[image\](https://github.com/arduino/arduino-ide/assets/8572152/7bf024e8-bf9a-4679-b1b8-15e06d6029e6)
> 
> I haven't determined under which conditions that variant occurs vs. the fully blank view, but the workaround applies to both.
> 
> \<a name="workaround"\>\</a\>
> 
> \#### Workaround
> 
> 1. Select \*\*File \> Quit\*\* from the Arduino IDE menus.
> 1. Start Arduino IDE.
> 1. Select the window of the sketch you were attempting to use the debugger with previously.
> The "\*\*DEBUG\*\*" panel will now be populated with the standard debugger UI.
> 1. Click the "Start Debugging" button on the Arduino IDE toolbar.
> 
> The debugger will now be initialized and work as usual.
> 
> \### Issue checklist
> 
> \- \[X\] I searched for previous reports in \[the issue tracker\](https://github.com/arduino/arduino-ide/issues?q=)
> \- \[X\] I verified the problem still occurs when using the latest \[nightly build\](https://www.arduino.cc/en/software#nightly-builds)
> \- \[X\] My report contains all necessary details

The bug was fixed yesterday so if it is bothersome to you you can get the fix by using the latest nightly build of Arduino IDE. The nightly build download links are listed here:

[https://www.arduino.cc/en/software#nightly-builds](https://www.arduino.cc/en/software#nightly-builds)

Although the nightly build is generally intended to be used for beta testing, since the 2.3.0 release was made so recently the bug fix is the only difference between the release version and the current nightly build so the nightly should be as stable as the release version.

---

<div class="post-metadata">

**Author:** ![tcornall](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/tcornall/32/1098976_2.png) [@tcornall](https://forum.arduino.cc/u/tcornall)\
**Post date:** [February 11, 2024, 1:13am UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/6 "2024-02-11T01:13:43Z")

</div>

Thanks @ptillisch ! That bug _was_ bugging me.

---

<div class="post-metadata">

**Author:** ![ptillisch](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@ptillisch](https://forum.arduino.cc/u/ptillisch)\
**Post date:** [February 11, 2024, 2:47pm UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/7 "2024-02-11T14:47:07Z")

</div>

> [@tcornall](#):
>
> Looking at local variables in the debug window and lots of them appear "optimized out" even though I have "optimize for debugging" turned on in the sketch settings

The [configuration of the " **esp32**" platform](https://github.com/espressif/arduino-esp32/blob/2.0.14/platform.txt#L101C35-L101C42) causes [the `-Og` flag](https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-Og) to be used in the compilation commands when **Sketch \> Optimize for Debugging** is enabled. This flag disables the types of optimizations that would make it difficult for a human to get any useful understanding of a program by stepping with the debugger, but it doesn't disable optimization altogether. The compiler will still optimize out unused variables.

---

<div class="post-metadata">

**Author:** ![pert](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/pert/32/217111_2.png) [@pert](https://forum.arduino.cc/u/pert)\
**Post date:** [March 4, 2024, 10:46am UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/9 "2024-03-04T10:46:00Z")

</div>

Split this topic on March 4, 2024, 10:46am UTC

2 posts were split to a new topic: [PlatformIO debugger fails with LIBUSB\_ERROR\_NOT\_FOUND error](https://forum.arduino.cc/t/platformio-debugger-fails-with-libusb-error-not-found-error/1231394)

---

<div class="post-metadata">

**Author:** ![stevedspasap](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/stevedspasap/32/981911_2.png) [@stevedspasap](https://forum.arduino.cc/u/stevedspasap)\
**Post date:** [April 21, 2024, 2:50am UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/10 "2024-04-21T02:50:09Z")

</div>

An update that might help anyone "debugging esp32S3 using built-in JTAG".

After a bit of trial and error the debugger seems to work great with IDE 2.3.2 and ESP32 Arduino Core 2.0.15. The new core was released last week. I did not need to edit the cfg or json files as in @tcornall's workarounds. debug.cfg, debug.svd and debug\_custon.json files automatically showed up in the project folder. I did update the drivers with Zadig but I'm not sure it was necessary. I got a flash write error at one point but that might have gone away after updating the ESP32 Arduino Core. I'm not quite sure because it was trial and error at that point.

The board I'm using is a LilyGO T-Display-S3 AMOLED Touch. It's great having real source-level debugging.

Thanks to the Arduino team for enabling this functionality!

---

<div class="post-metadata">

**Author:** ![notahardwareguy](https://avatars.discourse-cdn.com/v4/letter/n/90ced4/32.png) [@notahardwareguy](https://forum.arduino.cc/u/notahardwareguy)\
**Post date:** [September 28, 2024, 11:01am UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/11 "2024-09-28T11:01:46Z")

</div>

OK, I am SO glad I found this thread as all else that I have tried was an absolute failure! As of now (today) this is what I did to enable ESP-32 "LilyGO T-Display-S3" debugging in Arduino IDE 2.3.3 under Win11 Home:

I did load the idf-env drivers from expressif using their powershell script from [expressif](https://docs.espressif.com/projects/esp-idf/en/v5.0/esp32c3/api-guides/jtag-debugging/configure-builtin-jtag.html#configure-usb-drivers). When the ESP-32 is plugged in I now see a "UST JTAG/serial debug unit" in device manager (don't believe that was there prior).

Then:

- Install/upgrade to "Arduino 2.3.3"
- Install the "esp32" boards by Espressif Systems, v3.0.5
- Install the "Arduino ESP32 Boards" by Arduino, 1.8.6 (not actually used but do anyway...)  
-- When prompted ALLOW the driver to be installed (critical step - apparently)
- Select the "LilyGo T-Display-S3" board from the esp32 board set
- Load your sketch (I tested with the "GetChipID" ino
- Plug in your board and make sure it is seen
- Select your brake-point(s)
- Compile and load sketch
- Start debugger

I did not load the zadig drivers.

It is/seems a little wonky at times AND can not currently use serial console while debugging BUT since I can trace/watch/break small price to pay. It is working now.

I have spend a couple of weeks on and off trying to get this to work. Very happy I can now use a "real" debugger/debugging on my STM32F(s) and ESP-32 C3(s)!

Update: I can now also use the serial monitor, not sure why as I changed nothing. Used the example "WiFiScan", can debug and also see console Serial.print output. Nice...

---

<div class="post-metadata">

**Author:** ![jurep2006](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/jurep2006/32/1099193_2.png) [@jurep2006](https://forum.arduino.cc/u/jurep2006)\
**Post date:** [November 20, 2024, 2:32pm UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/12 "2024-11-20T14:32:30Z")

</div>

> [@stevedspasap](#):
>
> unds. debug.c

This is really weird. I cannot get it to debug.  
Have Arduino IDE 2.3.3 and I always get connection error.

 ![image](https://europe1.discourse-cdn.com/arduino/original/4X/1/8/1/181e941bb7cf857ee765e6792f136c869bb6ba41.png)

The device manager shows this:

 ![image](https://europe1.discourse-cdn.com/arduino/original/4X/3/a/e/3aec26dba06897c29d99c26cb5a0fbc112864e3a.png)

Board has 2 USBs, one says COM, other says USB.  
I use COM for uploading and serial monitor which work flawlessly.  
Debugger does not work on any of the ports.

Tried following guidelines above, but no help.  
Any ideas?

Thanks,  
Jure

---

<div class="post-metadata">

**Author:** ![notahardwareguy](https://avatars.discourse-cdn.com/v4/letter/n/90ced4/32.png) [@notahardwareguy](https://forum.arduino.cc/u/notahardwareguy)\
**Post date:** [November 20, 2024, 8:55pm UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/13 "2024-11-20T20:55:37Z")

</div>

My success with ESP32 boards is hit/miss. Is it an S3 or better ESP32 (I think it needs to be to use the debugger)?

These worked:

- ESPSP32 WeMos LOLIN32
- ESP32 S3 - LILYGO T-Display S3 (ESP32-S3R8 WIFI BLE - 1.9 In 8bit LCD)

Could not get these to work (at least not yet):

- ESP32 C3 Super-Mini
- ESP32-CAM
- ESP32 TTGO T-Display

---

<div class="post-metadata">

**Author:** ![jurep2006](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/jurep2006/32/1099193_2.png) [@jurep2006](https://forum.arduino.cc/u/jurep2006)\
**Post date:** [November 21, 2024, 10:20am UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/14 "2024-11-21T10:20:32Z")

</div>

Hello @notahardwareguy ,

yes, it is S3. It's this board:

 ![esp32s3-1](https://europe1.discourse-cdn.com/arduino/original/4X/4/c/c/4ccac4a7bce94960d6075798360b4adbcaea7bdb.jpeg)  
 ![esp32s3-2](https://europe1.discourse-cdn.com/arduino/original/4X/5/c/0/5c0649dd928f79fd306fe26a6a7aa4753a4862db.jpeg)

I just can't get usb jtag connection, no matter what driver I use. Even with zadig.  
So, if we know some boards don't work it might be that....

---

<div class="post-metadata">

**Author:** ![Willem43](https://avatars.discourse-cdn.com/v4/letter/w/ea5d25/32.png) [@Willem43](https://forum.arduino.cc/u/Willem43)\
**Post date:** [November 21, 2024, 12:22pm UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/15 "2024-11-21T12:22:53Z")

</div>

I have the exact same board. Yes, I had a hard time to get the IDE debugging working, but works just fine. Debugging only works via the native USB port, the right one in your first picture.

What eventually worked for me was installing libusbk for interface 2 using zadig. Interface 0 was left as WinUSB.

I cannot find the site/page where I found the correct instruction - there is a lot of bad info on the web.

EDIT 1: If you want to use the onboard RGB NeoPixel you need to bridge the RGB solder tabs (I soldered a zero Ohm resistor to it - it connects to pin 48).

EDIT 2: Found the page. It is for the Dice Device but is eventually the same. Check it [here](https://mydicedevice.com/?p=514).

---

<div class="post-metadata">

**Author:** ![jurep2006](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/jurep2006/32/1099193_2.png) [@jurep2006](https://forum.arduino.cc/u/jurep2006)\
**Post date:** [November 21, 2024, 7:05pm UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/16 "2024-11-21T19:05:37Z")

</div>

Thank you very much for your time! I sure owe you a beer 😉  
I think I'll have some spare time during the weekend to check this out and let you guys know.

I'm using Arduino IDE for development, not VSCode. However, this should not make a difference.

Thanks,  
Jure

---

<div class="post-metadata">

**Author:** ![Willem43](https://avatars.discourse-cdn.com/v4/letter/w/ea5d25/32.png) [@Willem43](https://forum.arduino.cc/u/Willem43)\
**Post date:** [November 21, 2024, 7:36pm UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/17 "2024-11-21T19:36:06Z")

</div>

> [@jurep2006](#):
>
> I'm using Arduino IDE for development

So do I. The requirements seem to be the same across VSCode, PlatformIO and IDE. It certainly worked for me.

---

<div class="post-metadata">

**Author:** ![jurep2006](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/jurep2006/32/1099193_2.png) [@jurep2006](https://forum.arduino.cc/u/jurep2006)\
**Post date:** [November 22, 2024, 8:20am UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/18 "2024-11-22T08:20:53Z")

</div>

I only see one serial port device IF I plug usb into COM port (left on my first picture).  
If I plug into right port (USB port) I don't see USB/JTAG device as described in the web manual.

 ![Screenshot 2024-11-22 090638](https://europe1.discourse-cdn.com/arduino/original/4X/4/b/e/4be843df0b023a938a69669925972c08c081026d.png)

Maybe I need to connect some pins or jumper on the board?  
Tried with 2 boards, always the same.

Thank you,  
Jure

---

<div class="post-metadata">

**Author:** ![Willem43](https://avatars.discourse-cdn.com/v4/letter/w/ea5d25/32.png) [@Willem43](https://forum.arduino.cc/u/Willem43)\
**Post date:** [November 22, 2024, 11:46am UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/19 "2024-11-22T11:46:39Z")

</div>

> [@jurep2006](#):
>
> Maybe I need to connect some pins or jumper on the board?

No pins to connect. USB connected to the native port on the ESP.

I plugged my ESP32 S3 in, compiled a sketch for it with "Sketch -\> Optimize for debugging" selected, up-loaded it to the ESP (man is ESP32 compiling slow - especially after using AVR and SAMD) and checked debugging - still works.

I checked all my settings and listed them below.

sadic shows the following on my PC (Windows 10) - ESP must be plugged into native USB with correct board settings :

 ![sadic](https://europe1.discourse-cdn.com/arduino/original/4X/2/5/3/2533550556388f7071e34c7756cef6e430f531ea.png)  
sadic settings are usbser (v 10.0.19041.3636) for Interface 0 and libusbk (v3.1.0.0) for Interface 2.

IDE 2.3.4 Nightly Device Setup:

 ![IDE 2.3.4-Dev-Setup](https://europe1.discourse-cdn.com/arduino/original/4X/4/3/0/4300c53bdc32a89d9874797e911d6257e014b58b.png)

Windows Device Manager:

 ![Device Manager](https://europe1.discourse-cdn.com/arduino/original/4X/7/6/e/76e33ee4fd14ca7a10c3c4304845ff0c5b18bf6e.png)

I don't know what else I can tell you at this stage.

---

<div class="post-metadata">

**Author:** ![jurep2006](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/jurep2006/32/1099193_2.png) [@jurep2006](https://forum.arduino.cc/u/jurep2006)\
**Post date:** [December 5, 2024, 1:16pm UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/20 "2024-12-05T13:16:34Z")

</div>

Hello,

I did not have time to debug this, as there was a lot of digging to do - I just did not have device in device manager.

However, today Arduino IDE wanted to update to 2.3.4. After the update, I tried again just for fun. And it suddenly worked out of the box, just like that. Without any drivers, anything.

 ![image](https://europe1.discourse-cdn.com/arduino/original/4X/1/0/f/10f31fa7fe47c70e9b135d091a6b79e49c5a8fa2.png)

So I just installed Arduino IDE update and it works.  
Thanks for all the help!!

Rgds,  
Jure

---

<div class="post-metadata">

**Author:** ![greggtr](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/greggtr/32/1042535_2.png) [@greggtr](https://forum.arduino.cc/u/greggtr)\
**Post date:** [April 4, 2025, 9:10pm UTC](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051/21 "2025-04-04T21:10:31Z")

</div>

Has anyone tried debugging JTAG-style with a Mac and any Arduino IDE?

[Next page](https://forum.arduino.cc/t/ide-2-3-0-debugging-esp32s3-using-built-in-usb-jtag/1222051.md?page=2)
