ESP32-S3 native USB interface and Serial Monitor missing first messages

Hi,
I have managed (with the help of this support site) to connect PlatformIO to my ESP32-S3-DevKitC kit, using the microUSB connector (labeled USB), that is wired to the native USB interface (GPIO 19/20).

Upload, Serial Monitor and Debug work by using a single USB cable (that I understand provides the COM port and Interface 2).

I am wondering if somebody has found out how to replace a “delay(…)” after Serial.begin(), with a pooling function or callback signaling scheme, that would guarantee that any subsequent printf will be catched by SerialMonitor?

Regards

p.s. Of course a second cable on the UART interface (not affected by the CPU reset) would probably not require a delay nor a smarter scheme to catch all printf’s. Only drawback would be to lose two GPIO’s

I am not on my PC right now, so I can’t test it.
But you should be able to catch the ARDUINO_USB_CDC_CONNECTED_EVENT

Thanks
Hi, I tested adding the code but got into the warning:
“This sketch should be used when USB is in OTG mode”

Will read a bit more (tomorrow) to understand better or find another way to test for ARDUINO_USB_CDC_CONNECTED_EVENT

Regards

My bad. I thought you were using HWCDC, which is used in OTG mode.
But you are using USBCDC.
So this should work for you to capture the connect and disconnect events:

Serial.onEvent(ARDUINO_USB_CDC_CONNECTED_EVENT, [](void* event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
  // do what to do when connected
});

Serial.onEvent(ARDUINO_USB_CDC_DISCONNECTED_EVENT, [](void* event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
  // do what to do when disconnected
});

Hi,
I forgot to mention (not sure if relevant) that I am using the “Arduino” framework and in platformio.ini I am using the COM port for two purposes.

monitor_speed = 115200
upload_port = COM34
monitor_port = COM34

Probably due to that, the Serial.onEvent you mention does not have the prototype
void onEvent(arduino_usb_event_t event, esp_event_handler_t callback);
but only
void onEvent(esp_event_handler_t callback);

With esp_event_handler_t defined as

typedef void         (*esp_event_handler_t)(void* event_handler_arg,
                                        esp_event_base_t event_base,
                                        int32_t event_id,
                                        void* event_data); /**< function called when an event is posted to the queue */

For some reason I then got to this URL
https://docs.espressif.com/projects/arduino-esp32/en/latest/api/usb_cdc.html

Which has the example code at the end, that was supposed to be used when USB is in OTG mode.

So (due to my ignorance) it is not clear to me if using the “Serial” object (your code example) makes the difference, opposed to the “USBSerial” or the “USB” object, mentioned in the example of the previous URL?
I searched on google for these two strings and unless I overlooked something I found nothing that could help me out.
arduino USBCDC events management
arduino USBCDC serial monitor events

Since you mentioned delay and Serial.begin in your initial post, this was clear.

Please show your complete platformio.ini.

I think there might be missing a

build_flags=
  -DARDUINO_USB_CDC_ON_BOOT=1

(if it is not set by your boards.json automatically)

With ARDUINO_USB_CDC_ON_BOOT=1 && ARDUINO_USB_MODE=0 the Serial object is an instance of USBCDC instead of HardwareSerial

See

Here is the declaration of USBCDC::onEvent():

The code worked perfectly when I did a test a few hours ago.

Please see

Bottom left: PIO’s builtin Serial monitor connected to the UART port of ESP32-S3
Bottom right: VS Code ext. “Serial monitor” connected to USBCDC of ESP32-S3

Here is the platformio.ini

The code is not even compiling :frowning:

; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:esp32-s3-devkitc-1-n8r2]
platform = espressif32
board = esp32-s3-devkitc-1-n8r2
framework = arduino
monitor_speed = 115200
upload_port = COM34
monitor_port = COM34
build_flags =
-DARDUINO_USB_CDC_ON_BOOT=1
; -DBOARD_HAS_PSRAM
monitor_dtr = 1
monitor_rts = 1

I assume that being “Serial” a valid object and “doEvents” a valid member function, the type event_handler_arg didn’t require any additional include file, but it seems to be the problem if I am not mistaken?

I hope I do not make a fool of myself having a syntax or stupid overlooked error in the code!

CODE

#include "Arduino.h"

bool serial_monitor_connected = false;

void recognize_connected(event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {

  serial_monitor_connected = true;
}

void recognize_disconnected(event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {

  serial_monitor_connected = true;
}

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);

  Serial.onEvent(ARDUINO_USB_CDC_CONNECTED_EVENT, &recognize_connected);

  Serial.onEvent(ARDUINO_USB_CDC_DISCONNECTED_EVENT, &recognize_disconnected);

  size_t psram_size = esp_spiram_get_size();
  printf("PSRAM size: %d bytes\n", psram_size);
}

void loop() {
  if (serial_monitor_connected) {
    Serial.printf("Serial monitor connected!\n");
  }
  else {
    // We know this will not be displayed on Serial Monitor
    Serial.printf("Serial monitor dis-connected!\n");
  }
  delay(1000);
}

COMPILE

Executing task: C:\Users\tmagdahl\.platformio\penv\Scripts\platformio.exe run 

Processing esp32-s3-devkitc-1-n8r2 (platform: espressif32; board: esp32-s3-devkitc-1-n8r2; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-s3-devkitc-1-n8r2.html
PLATFORM: Espressif 32 (6.6.0) > Espressif ESP32-S3-DevKitC-1-N8R2 (8 MB QD FLASH, 2 MB QD PSRAM)
HARDWARE: ESP32S3 240MHz, 320KB RAM, 8MB Flash
DEBUG: Current (esp-builtin) On-board (esp-builtin) External (cmsis-dap, esp-bridge, 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.20014.231204 (2.0.14)
 - tool-esptoolpy @ 1.40501.0 (4.5.1)
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
 - toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 33 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio\build\esp32-s3-devkitc-1-n8r2\src\main.cpp.o
src/main.cpp:5:26: error: variable or field 'recognize_connected' declared void
 void recognize_connected(event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
                          ^~~~~~~~~~~~~~~~~
src/main.cpp:5:26: error: 'event_handler_arg' was not declared in this scope
src/main.cpp:5:26: note: suggested alternative: 'esp_event_handler_t'
 void recognize_connected(event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
                          ^~~~~~~~~~~~~~~~~
                          esp_event_handler_t
src/main.cpp:5:62: error: expected primary-expression before 'event_base'
 void recognize_connected(event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
                                                              ^~~~~~~~~~
src/main.cpp:5:82: error: expected primary-expression before 'event_id'
 void recognize_connected(event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
                                                                                  ^~~~~~~~
src/main.cpp:5:92: error: expected primary-expression before 'void'
 void recognize_connected(event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
                                                                                            ^~~~
src/main.cpp:10:29: error: variable or field 'recognize_disconnected' declared void
 void recognize_disconnected(event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
                             ^~~~~~~~~~~~~~~~~
src/main.cpp:10:29: error: 'event_handler_arg' was not declared in this scope
src/main.cpp:10:29: note: suggested alternative: 'esp_event_handler_t'
 void recognize_disconnected(event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
                             ^~~~~~~~~~~~~~~~~
                             esp_event_handler_t
src/main.cpp:10:65: error: expected primary-expression before 'event_base'
 void recognize_disconnected(event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
                                                                 ^~~~~~~~~~
src/main.cpp:10:85: error: expected primary-expression before 'event_id'
 void recognize_disconnected(event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
                                                                                     ^~~~~~~~
src/main.cpp:10:95: error: expected primary-expression before 'void'
 void recognize_disconnected(event_handler_arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
                                                                                               ^~~~
src/main.cpp: In function 'void setup()':
src/main.cpp:19:18: error: 'ARDUINO_USB_CDC_CONNECTED_EVENT' was not declared in this scope
   Serial.onEvent(ARDUINO_USB_CDC_CONNECTED_EVENT, &recognize_connected);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/main.cpp:19:18: note: suggested alternative: 'ARDUINO_HW_CDC_CONNECTED_EVENT'
   Serial.onEvent(ARDUINO_USB_CDC_CONNECTED_EVENT, &recognize_connected);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  ARDUINO_HW_CDC_CONNECTED_EVENT
src/main.cpp:19:52: error: 'recognize_connected' was not declared in this scope
   Serial.onEvent(ARDUINO_USB_CDC_CONNECTED_EVENT, &recognize_connected);
                                                    ^~~~~~~~~~~~~~~~~~~
src/main.cpp:19:52: note: suggested alternative: 'serial_monitor_connected'
   Serial.onEvent(ARDUINO_USB_CDC_CONNECTED_EVENT, &recognize_connected);
                                                    ^~~~~~~~~~~~~~~~~~~
                                                    serial_monitor_connected
src/main.cpp:21:18: error: 'ARDUINO_USB_CDC_DISCONNECTED_EVENT' was not declared in this scope
   Serial.onEvent(ARDUINO_USB_CDC_DISCONNECTED_EVENT, &recognize_disconnected);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/main.cpp:21:18: note: suggested alternative: 'ARDUINO_HW_CDC_CONNECTED_EVENT'
   Serial.onEvent(ARDUINO_USB_CDC_DISCONNECTED_EVENT, &recognize_disconnected);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  ARDUINO_HW_CDC_CONNECTED_EVENT
src/main.cpp:21:55: error: 'recognize_disconnected' was not declared in this scope
   Serial.onEvent(ARDUINO_USB_CDC_DISCONNECTED_EVENT, &recognize_disconnected);
                                                       ^~~~~~~~~~~~~~~~~~~~~~
*** [.pio\build\esp32-s3-devkitc-1-n8r2\src\main.cpp.o] Error 1
======================================================================================================== [FAILED] Took 4.23 seconds ========================================================================================================

 *  The terminal process "C:\Users\tmagdahl\.platformio\penv\Scripts\platformio.exe 'run'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it.

esp32-s3-devkitc-1-n8r2.json file in boards directory

{
  "build": {
    "arduino": {
      "ldscript": "esp32s3_out.ld",
      "partitions": "default_8MB_devkitc_n8r2.csv",
      "memory_type": "qio_qspi"
    },
    "core": "esp32",
    "extra_flags": [
      "-DARDUINO_ESP32S3_DEV",
      "-DARDUINO_USB_MODE=1",
      "-DARDUINO_RUNNING_CORE=1",
      "-DARDUINO_EVENT_RUNNING_CORE=1",
      "-DBOARD_HAS_PSRAM"
    ],
    "f_cpu": "240000000L",
    "f_flash": "80000000L",
    "flash_mode": "qio",
    "psram_type": "qio",
    "hwids": [
      [
        "0x303A",
        "0x1001"
      ]
    ],
    "mcu": "esp32s3",
    "variant": "esp32s3"
  },
  "connectivity": [
    "wifi",
    "bluetooth"
  ],
  "debug": {
    "default_tool": "esp-builtin",
    "onboard_tools": [
      "esp-builtin"
    ],
    "openocd_target": "esp32s3.cfg"
  },
  "frameworks": [
    "arduino",
    "espidf"
  ],
  "platforms" : [
    "espressif32"
  ],  
  "name": "Espressif ESP32-S3-DevKitC-1-N8R2 (8 MB QD FLASH, 2 MB QD PSRAM)",
  "upload": {
    "flash_size": "8MB",
    "maximum_ram_size": 327680,
    "maximum_size": 8388608,
    "require_upload_port": true,
    "speed": 921600
  },
  "url": "https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html",
  "vendor": "Espressif"
}

Yepp there are a few issues in here:

The type "void*"of the first argument is missing:

void recognize_connected(
  event_handler_arg, // errror is here
  esp_event_base_t event_base, 
  int32_t event_id, 
  void* event_data) {

should be:

void recognize_connected(
  void* event_handler_arg, 
  esp_event_base_t event_base, 
  int32_t event_id, 
  void* event_data) {

The same applies to recognize_disconnected.


  Serial.onEvent(ARDUINO_USB_CDC_CONNECTED_EVENT, &recognize_connected);
  Serial.onEvent(ARDUINO_USB_CDC_DISCONNECTED_EVENT, &recognize_disconnected);

Should be

  Serial.onEvent(ARDUINO_USB_CDC_CONNECTED_EVENT, recognize_connected);
  Serial.onEvent(ARDUINO_USB_CDC_DISCONNECTED_EVENT, recognize_disconnected);

(without “&”!)


Your board.json comes with -DARDUINO_USB_MODE=1
You have to unflag this by

bulid_unflags = 
  -DARDUINO_USB_MODE

It worked!
I have to be honest that I am not very familiar of this type of nameless function declaration in the argument of a member function, so I decided to copy-paste it out. Certainly not a very good copy-paste!!! After that, despite the compiler pionting out the error I was not even able to recognize that you need a type and a name (what a moron :-)).

I changed in the JSON file

ARDUINO_USB_MODE=0

Thanks for pointing out the dumb errors and wasting your time is such basic stuff.
Thanks a lot for your help (a luxury!)

1 Like

For the sake of completeness:

ARDUINO_USB_CDC_ON_BOOT USB_MODE UART
(RX/TX)
USB
(native)
0 0 Serial
HardwareSerial
n/a
0 1 Serial
HardwareSerial
USBSerial
HWCDC
1 0 Serial0
HardwareSerial
Serial
USBCDC
1 1 Serial0
HardwareSerial
Serial
HWCDC

Hi,

I was yesterday mostly compile-success oriented, particularly with making the “doEvent” member function to work, but later when trying to upload, things failed.

I imagine this is the place to deal with it as it expands the compiling solution, but correct me if it has to be done with a new post.

I decided not to ask immediately, assuming I was doing some obvious mistake, so I have been testing and researching until now, but without much success.

As a matter of fact, I went back to a simpler program that was not dealing with the serial port status monitoring (but able to upload/monitor/debug on native USB).

I went back to this configuration (described at the end of this post using UART) that does allow me to upload (ARDUINO_USB_MODE=1):

-DARDUINO_USB_MODE=1 (In JSON file)
build_flags = -DARDUINO_USB_CDC_ON_BOOT=1 (in platformio.ini file)

Because in this test code I have no “doEvent” calls to inquire for a connected Serial Monitor (my final goal), I can compile, upload, monitor and debug.

Under these settings the ESP32-S3-DevKitC-1.1 is exposing interface 0 and interface 2 and the upload_port and monitor_port COM port, is COM34 on interface 0. Interface 2 was exposed as an USB device.

imagen

So far so good, but I need to get back to “Serial Monitor” event checking (doEvent), to know when it is ok to send printf strings. For that I have to go back to -DARDUINO_USB_MODE=0 (In JSON file).
I have no problem to compile and before going into a debug, I upload the binary and as soon as it finishes, the PC OS (W10) gives me a “ding” announcing something changed in the SW/HW. So I go to Zadig and Device Manager to find out ESP32-S3 is now missing interface 2 and interface 0 has changed name to “TinyUSB CDC” instead of “USB JTAG/serial debug unit”, and instead of being on COM34, it has changed to COM36.

My first thought is that I only need to go to platformio.ini and change upload_port and monitor_port from COM34 to COM36 and continue, but now I can not upload anymore.

imagen

Executing task: C:\Users\tmagdahl\.platformio\penv\Scripts\platformio.exe run --target upload 

Processing esp32-s3-devkitc-1-n8r2 (platform: espressif32; board: esp32-s3-devkitc-1-n8r2; framework: arduino)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32-s3-devkitc-1-n8r2.html
PLATFORM: Espressif 32 (6.6.0) > Espressif ESP32-S3-DevKitC-1-N8R2 (8 MB QD FLASH, 2 MB QD PSRAM)
HARDWARE: ESP32S3 240MHz, 320KB RAM, 8MB Flash
DEBUG: Current (esp-builtin) On-board (esp-builtin) External (cmsis-dap, esp-bridge, 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.20014.231204 (2.0.14)
 - tool-esptoolpy @ 1.40501.0 (4.5.1)
 - tool-mkfatfs @ 2.0.1
 - tool-mklittlefs @ 1.203.210628 (2.3)
 - tool-mkspiffs @ 2.230.0 (2.30)
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
 - toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 34 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Adafruit NeoPixel @ 1.12.2
Building in release mode
Retrieving maximum program size .pio\build\esp32-s3-devkitc-1-n8r2\firmware.elf
Checking size .pio\build\esp32-s3-devkitc-1-n8r2\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=         ]   9.5% (used 31104 bytes from 327680 bytes)
Flash: [=         ]   8.9% (used 296745 bytes from 3342336 bytes)
Configuring upload protocol...
AVAILABLE: cmsis-dap, esp-bridge, esp-builtin, esp-prog, espota, esptool, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa
CURRENT: upload_protocol = esptool
Looking for upload port...
Using manually specified: COM36
Uploading .pio\build\esp32-s3-devkitc-1-n8r2\firmware.bin
esptool.py v4.5.1
Serial port COM36
Connecting......................................

A fatal error occurred: Failed to connect to ESP32-S3: No serial data received.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html
*** [upload] Error 2
================================================================================================ [FAILED] Took 11.60 seconds ================================================================================================
 *  The terminal process "C:\Users\tmagdahl\.platformio\penv\Scripts\platformio.exe 'run', '--target', 'upload'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it.

So, my conclusion is that when a binary compiled with -DARDUINO_USB_MODE=0 is uploaded, something gets changed to the on chip CDC (the two interfaces), exposing this new single interface 0 that is not good for uploading.

My first naive idea to get back to successful uploading again was to recompile the code with -DARDUINO_USB_MODE=1, and upload, but COM36 is still useless for upload.

The only way to revert it, is to change the cable to the UART connector of the kit (COM28 pops up), change upload_port and monitor_port from COM36 to COM28 and while still on -DARDUINO_USB_MODE=1 do the upload (UART is not that picky).

You change the cable from the UART to the USB connector and now both interfaces are available again and Interface 0 is on COM34 again.

Any clue what I am missing or doing wrong? I am close to end of week so I might get back on Monday.

So here I reached a dead end, because I need to change -DARDUINO_USB_MODE=0 so to have “doEvents” working and be able to monitor the availability of Serial Monitor.

I hope “doEvent” is just a typo and you meant “onEvent”.

If ARDUINO_USB_CDC_ON_BOOT is set to 0, the native USB port can be used for uploading without further action.

Otherwise, the ESP must be set to upload mode manually:

  • press and hold the BOOT button
  • short press on the RESET button
  • release the BOOT button

Note: It is possible that the COM port will change - check the device list.

In general:
When using the native USB port to upload new firmware, a manual reset must be performed after the upload for the new sketch to become active. There is no auto-reset as with the UART interface.

Addendum: This could be due to a bug in the Arduino Framework 2.x.x, which was fixed with version 2.0.17.

Hi https://community.platformio.org/u/sivar2311

Yes (onEvent), sorry it was a typo, my fault!

After clearing out of all Monday morning meetings I was able to upload, after doing the button reset sequence, therefore solving with it my upload problem. Thanks!

After setting ARDUINO_USB_CDC_ON_BOOT=0 I was able to upload without doing the button reset sequence too.

The problem I am having now and after a couple of hours of searching for a solution without success, is that the native debugger is now misbehaving. It will not stop at the breakpoints and if I stop it manually (pause) and restart it (play) it will not stop even when the breakpoint is in the loop() routine.

This happens with ARDUINO_USB_CDC_ON_BOOT=0 and with =1.

I even tryed to lower debug_speed = 500 as suggested in some posts with no better result.

The output of the debug console is (sorry for the length):

undefinedC:\Users\tmagdahl\.platformio\packages\toolchain-xtensa-esp32s3\bin\xtensa-esp32s3-elf-gdb.exe: warning: Couldn't determine a path for the index cache directory.
Reading symbols from c:\Data\Project\Guardian\NewPCB_2\Code\PIO\Test\TestDevKit_01\TestDevKit_01\.pio\build\esp32-s3-devkitc-1-n8r2\firmware.elf...
PlatformIO Unified Debugger -> https://bit.ly/pio-debug
PlatformIO: debug_tool = esp-builtin
PlatformIO: Initializing remote target...
Open On-Chip Debugger  v0.11.0-esp32-20220706 (2022-07-06-15:48)
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.org/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
Info : esp_usb_jtag: VID set to 0x303a and PID to 0x1001
Info : esp_usb_jtag: capabilities descriptor set to 0x2000
adapter speed: 40000 kHz

Warn : Transport "jtag" was already selected
adapter speed: 500 kHz

Info : tcl server disabled
Info : telnet server disabled
Error: libusb_open() failed with LIBUSB_ERROR_NOT_SUPPORTED
Info : esp_usb_jtag: serial (DC:DA:0C:61:9E:3C)
Info : esp_usb_jtag: Device found. Base speed 40000KHz, div range 1 to 255
Info : clock speed 500 kHz
Info : JTAG tap: esp32s3.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : JTAG tap: esp32s3.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : [esp32s3.cpu0] Debug controller was reset.
Info : [esp32s3.cpu0] Core was reset.
Error: Unexpected OCD_ID = 00000000
Error: Unexpected OCD_ID = 00000000
Error: Unexpected OCD_ID = 00000000
Error: Unexpected OCD_ID = 00000000
Warn : target esp32s3.cpu1 examination failed
Error: Unexpected OCD_ID = 00000000
Error: Unexpected OCD_ID = 00000000
Info : starting gdb server for esp32s3.cpu0 on pipe
Info : accepting 'gdb' connection from pipe
Info : [esp32s3.cpu0] Target halted, PC=0x40041A79, debug_reason=00000000
Info : Set GDB target to 'esp32s3.cpu0'
Warn : No symbols for FreeRTOS!
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : Flash mapping 0: 0x10020 -> 0x3c030020, 54 KB
Info : Flash mapping 1: 0x20020 -> 0x42000020, 164 KB
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : Auto-detected flash bank 'esp32s3.cpu0.flash' size 8192 KB
Info : Using flash bank 'esp32s3.cpu0.flash' size 8192 KB
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : Flash mapping 0: 0x10020 -> 0x3c030020, 54 KB
Info : Flash mapping 1: 0x20020 -> 0x42000020, 164 KB
Info : Using flash bank 'esp32s3.cpu0.irom' size 168 KB
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : Flash mapping 0: 0x10020 -> 0x3c030020, 54 KB
Info : Flash mapping 1: 0x20020 -> 0x42000020, 164 KB
Info : Using flash bank 'esp32s3.cpu0.drom' size 56 KB
Info : New GDB Connection: 1, Target esp32s3.cpu0, state: halted
Warn : negative reply, retrying
Warn : negative reply, retrying
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (1817 ms). Workaround: increase "set remotetimeout" in GDB
0x40041a79 in ?? ()
Error: FreeRTOS maximum used priority is unreasonably big, not proceeding: 246
Info : JTAG tap: esp32s3.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : JTAG tap: esp32s3.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
JTAG tap: esp32s3.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
JTAG tap: esp32s3.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Error: Unexpected OCD_ID = 00000000
Info : [esp32s3.cpu0] requesting target halt and executing a soft reset
Unexpected OCD_ID = 00000000
[esp32s3.cpu0] requesting target halt and executing a soft reset
Info : [esp32s3.cpu0] Debug controller was reset.
Info : [esp32s3.cpu0] Core was reset.
[esp32s3.cpu0] Debug controller was reset.
[esp32s3.cpu0] Core was reset.
Info : [esp32s3.cpu0] Target halted, PC=0x500000EF, debug_reason=00000000
[esp32s3.cpu0] Target halted, PC=0x500000EF, debug_reason=00000000
Info : [esp32s3.cpu1] requesting target halt and executing a soft reset
Error: Target not examined yet
Info : [esp32s3.cpu0] Core was reset.
[esp32s3.cpu1] requesting target halt and executing a soft reset
Target not examined yet
[esp32s3.cpu0] Core was reset.
Info : [esp32s3.cpu0] Target halted, PC=0x40000400, debug_reason=00000000
Info : [esp32s3.cpu1] Debug controller was reset.
Info : [esp32s3.cpu1] Core was reset.
[esp32s3.cpu0] Target halted, PC=0x40000400, debug_reason=00000000
[esp32s3.cpu1] Debug controller was reset.
[esp32s3.cpu1] Core was reset.
Info : [esp32s3.cpu1] Target halted, PC=0x40000400, debug_reason=00000000
[esp32s3.cpu1] Target halted, PC=0x40000400, debug_reason=00000000
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (3516 ms). Workaround: increase "set remotetimeout" in GDB
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (3516 ms). Workaround: increase "set remotetimeout" in GDB
Info : Flash mapping 0: 0x10020 -> 0x3c030020, 54 KB
Info : Flash mapping 1: 0x20020 -> 0x42000020, 164 KB
Flash mapping 0: 0x10020 -> 0x3c030020, 54 KB
Flash mapping 1: 0x20020 -> 0x42000020, 164 KB
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (3327 ms). Workaround: increase "set remotetimeout" in GDB
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (3327 ms). Workaround: increase "set remotetimeout" in GDB
Info : Auto-detected flash bank 'esp32s3.cpu1.flash' size 8192 KB
Info : Using flash bank 'esp32s3.cpu1.flash' size 8192 KB
Auto-detected flash bank 'esp32s3.cpu1.flash' size 8192 KB
Using flash bank 'esp32s3.cpu1.flash' size 8192 KB
** Programming Started **
** Programming Started **
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (3166 ms). Workaround: increase "set remotetimeout" in GDB
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (3166 ms). Workaround: increase "set remotetimeout" in GDB
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (1018 ms). Workaround: increase "set remotetimeout" in GDB
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (1018 ms). Workaround: increase "set remotetimeout" in GDB
Info : PROF: Erased 16384 bytes in 1017.36 ms
PROF: Erased 16384 bytes in 1017.36 ms
Info : PROF: Data transferred in 701.125 ms @ 22.8205 KB/s
PROF: Data transferred in 701.125 ms @ 22.8205 KB/s
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : PROF: Wrote 16384 bytes in 1815.95 ms (data transfer time included)
** Programming Finished in 14334 ms **
PROF: Wrote 16384 bytes in 1815.95 ms (data transfer time included)
** Programming Finished in 14334 ms **
** Verify Started **
** Verify Started **
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : PROF: Flash verified in 934.062 ms
** Verify OK **
PROF: Flash verified in 934.062 ms
** Verify OK **
Info : JTAG tap: esp32s3.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : JTAG tap: esp32s3.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
JTAG tap: esp32s3.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
JTAG tap: esp32s3.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : [esp32s3.cpu0] requesting target halt and executing a soft reset
[esp32s3.cpu0] requesting target halt and executing a soft reset
Info : [esp32s3.cpu0] Debug controller was reset.
Info : [esp32s3.cpu0] Core was reset.
[esp32s3.cpu0] Debug controller was reset.
[esp32s3.cpu0] Core was reset.
Info : [esp32s3.cpu0] Target halted, PC=0x500000EF, debug_reason=00000000
[esp32s3.cpu0] Target halted, PC=0x500000EF, debug_reason=00000000
Info : [esp32s3.cpu1] requesting target halt and executing a soft reset
Info : [esp32s3.cpu0] Core was reset.
[esp32s3.cpu1] requesting target halt and executing a soft reset
[esp32s3.cpu0] Core was reset.
Info : [esp32s3.cpu0] Target halted, PC=0x40000400, debug_reason=00000000
Info : [esp32s3.cpu1] Debug controller was reset.
Info : [esp32s3.cpu1] Core was reset.
[esp32s3.cpu0] Target halted, PC=0x40000400, debug_reason=00000000
[esp32s3.cpu1] Debug controller was reset.
[esp32s3.cpu1] Core was reset.
Info : [esp32s3.cpu1] Target halted, PC=0x40000400, debug_reason=00000000
[esp32s3.cpu1] Target halted, PC=0x40000400, debug_reason=00000000
** Programming Started **
** Programming Started **
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (3169 ms). Workaround: increase "set remotetimeout" in GDB
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (3169 ms). Workaround: increase "set remotetimeout" in GDB
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : PROF: Erased 4096 bytes in 938.725 ms
PROF: Erased 4096 bytes in 938.725 ms
Info : PROF: Data transferred in 184.693 ms @ 21.6576 KB/s
PROF: Data transferred in 184.693 ms @ 21.6576 KB/s
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : PROF: Wrote 4096 bytes in 1278.48 ms (data transfer time included)
PROF: Wrote 4096 bytes in 1278.48 ms (data transfer time included)
** Programming Finished in 6735 ms **
** Verify Started **
** Programming Finished in 6735 ms **
** Verify Started **
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : PROF: Flash verified in 923.968 ms
** Verify OK **
PROF: Flash verified in 923.968 ms
** Verify OK **
Info : JTAG tap: esp32s3.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : JTAG tap: esp32s3.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
JTAG tap: esp32s3.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
JTAG tap: esp32s3.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : [esp32s3.cpu0] requesting target halt and executing a soft reset
[esp32s3.cpu0] requesting target halt and executing a soft reset
Info : [esp32s3.cpu0] Debug controller was reset.
Info : [esp32s3.cpu0] Core was reset.
[esp32s3.cpu0] Debug controller was reset.
[esp32s3.cpu0] Core was reset.
Info : [esp32s3.cpu0] Target halted, PC=0x500000EF, debug_reason=00000000
[esp32s3.cpu0] Target halted, PC=0x500000EF, debug_reason=00000000
Info : [esp32s3.cpu1] requesting target halt and executing a soft reset
Info : [esp32s3.cpu0] Core was reset.
[esp32s3.cpu1] requesting target halt and executing a soft reset
[esp32s3.cpu0] Core was reset.
Info : [esp32s3.cpu0] Target halted, PC=0x40000400, debug_reason=00000000
Info : [esp32s3.cpu1] Debug controller was reset.
Info : [esp32s3.cpu1] Core was reset.
[esp32s3.cpu0] Target halted, PC=0x40000400, debug_reason=00000000
[esp32s3.cpu1] Debug controller was reset.
[esp32s3.cpu1] Core was reset.
Info : [esp32s3.cpu1] Target halted, PC=0x40000400, debug_reason=00000000
[esp32s3.cpu1] Target halted, PC=0x40000400, debug_reason=00000000
** Programming Started **
** Programming Started **
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (3169 ms). Workaround: increase "set remotetimeout" in GDB
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (3169 ms). Workaround: increase "set remotetimeout" in GDB
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : PROF: Erased 8192 bytes in 967.331 ms
PROF: Erased 8192 bytes in 967.331 ms
Info : PROF: Data transferred in 334.935 ms @ 23.8852 KB/s
PROF: Data transferred in 334.935 ms @ 23.8852 KB/s
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : PROF: Wrote 8192 bytes in 1432.59 ms (data transfer time included)
** Programming Finished in 6917 ms **
PROF: Wrote 8192 bytes in 1432.59 ms (data transfer time included)
** Programming Finished in 6917 ms **
** Verify Started **
** Verify Started **
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : PROF: Flash verified in 929.185 ms
** Verify OK **
PROF: Flash verified in 929.185 ms
** Verify OK **
Info : JTAG tap: esp32s3.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : JTAG tap: esp32s3.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
JTAG tap: esp32s3.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
JTAG tap: esp32s3.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : [esp32s3.cpu0] requesting target halt and executing a soft reset
[esp32s3.cpu0] requesting target halt and executing a soft reset
Info : [esp32s3.cpu0] Debug controller was reset.
Info : [esp32s3.cpu0] Core was reset.
[esp32s3.cpu0] Debug controller was reset.
[esp32s3.cpu0] Core was reset.
Info : [esp32s3.cpu0] Target halted, PC=0x500000EF, debug_reason=00000000
[esp32s3.cpu0] Target halted, PC=0x500000EF, debug_reason=00000000
Info : [esp32s3.cpu1] requesting target halt and executing a soft reset
Info : [esp32s3.cpu0] Core was reset.
[esp32s3.cpu1] requesting target halt and executing a soft reset
[esp32s3.cpu0] Core was reset.
Info : [esp32s3.cpu0] Target halted, PC=0x40000400, debug_reason=00000000
Info : [esp32s3.cpu1] Debug controller was reset.
Info : [esp32s3.cpu1] Core was reset.
[esp32s3.cpu0] Target halted, PC=0x40000400, debug_reason=00000000
[esp32s3.cpu1] Debug controller was reset.
[esp32s3.cpu1] Core was reset.
Info : [esp32s3.cpu1] Target halted, PC=0x40000400, debug_reason=00000000
[esp32s3.cpu1] Target halted, PC=0x40000400, debug_reason=00000000
** Programming Started **
** Programming Started **
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (3166 ms). Workaround: increase "set remotetimeout" in GDB
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (3166 ms). Workaround: increase "set remotetimeout" in GDB
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (1362 ms). Workaround: increase "set remotetimeout" in GDB
keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (1362 ms). Workaround: increase "set remotetimeout" in GDB
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : PROF: Erased 299008 bytes in 1866.29 ms
PROF: Erased 299008 bytes in 1866.29 ms
Info : PROF: Data transferred in 12167.2 ms @ 23.9989 KB/s
PROF: Data transferred in 12167.2 ms @ 23.9989 KB/s
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Info : PROF: Wrote 299008 bytes in 13355.2 ms (data transfer time included)
** Programming Finished in 19745 ms **
PROF: Wrote 299008 bytes in 13355.2 ms (data transfer time included)
** Programming Finished in 19745 ms **
** Verify Started **
** Verify Started **
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (1049 ms). Workaround: increase "set remotetimeout" in GDB
[esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (1049 ms). Workaround: increase "set remotetimeout" in GDB
Info : PROF: Flash verified in 1088.9 ms
PROF: Flash verified in 1088.9 ms
** Verify OK **
** Verify OK **
Info : JTAG tap: esp32s3.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : JTAG tap: esp32s3.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
JTAG tap: esp32s3.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
JTAG tap: esp32s3.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : [esp32s3.cpu0] requesting target halt and executing a soft reset
[esp32s3.cpu0] requesting target halt and executing a soft reset
Info : [esp32s3.cpu0] Debug controller was reset.
Info : [esp32s3.cpu0] Core was reset.
[esp32s3.cpu0] Debug controller was reset.
[esp32s3.cpu0] Core was reset.
Info : [esp32s3.cpu0] Target halted, PC=0x500000EF, debug_reason=00000000
[esp32s3.cpu0] Target halted, PC=0x500000EF, debug_reason=00000000
Info : [esp32s3.cpu1] requesting target halt and executing a soft reset
Info : [esp32s3.cpu0] Core was reset.
[esp32s3.cpu1] requesting target halt and executing a soft reset
[esp32s3.cpu0] Core was reset.
Info : [esp32s3.cpu0] Target halted, PC=0x40000400, debug_reason=00000000
Info : [esp32s3.cpu1] Debug controller was reset.
Info : [esp32s3.cpu1] Core was reset.
[esp32s3.cpu0] Target halted, PC=0x40000400, debug_reason=00000000
[esp32s3.cpu1] Debug controller was reset.
[esp32s3.cpu1] Core was reset.
Info : [esp32s3.cpu1] Target halted, PC=0x40000400, debug_reason=00000000
[esp32s3.cpu1] Target halted, PC=0x40000400, debug_reason=00000000
Hardware assisted breakpoint 1 at 0x420039ec: file C:/Users/tmagdahl/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp, line 56.
PlatformIO: Initialization completed
PlatformIO: Resume the execution to `debug_init_break = thb app_main`
PlatformIO: More configuration options -> https://bit.ly/pio-debug
Note: automatically using hardware breakpoints for read-only addresses.
Info : [esp32s3.cpu0] Target halted, PC=0x403B2482, debug_reason=00000001
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (9383 ms). Workaround: increase "set remotetimeout" in GDB
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (6052 ms). Workaround: increase "set remotetimeout" in GDB
Warn : negative acknowledgment, but no packet pending

It seems the problem could be solved with Workaround: increase "set remotetimeout" in GDB

I have been searching on how to “set remotetimeout” to something longer but every related post ends up diverting for a different solution with other issues, to the point that I have not been able to even find where gdb’s remotetimeout can be inspected.

Even searched at the Help-->Show all Commands textbox with no success.

Now, maybe I tackled things in the wrong order and as a first, I had to do the “Arduino Framework 2.x.x, which was fixed with version 2.0.17” upgrade, but I had no idea from where to make it (I notice there is a ZIP file and a couple of JSON files) so I do not wreck my now working environment. :crazy_face:

So to put things clear and in perspective (here we say that the “excellent” is the enemy of the “good”), by keeping ARDUINO_USB_CDC_ON_BOOT=1 and ARDUINO_USB_MODE=0, I am more than satisfied as adding a delay after Serial.begin() is more than adequate for my actual needs.

But in your first post you asked for an alternative :thinking: :laughing:

I haven’t used the debugger yet. So I can’t help you here.

I’m waiting for a new release (6.8.0?) which will have Arduino 2.0.17 containing all the new fixes.

Yes, I recall what I wrote, but after so many posts asking for guidance I felt guilty as hell. :rofl:

Any idea where to set that “remote timeout” variable to keep trying?

Now it is working! :upside_down_face:

Did not changed a single thing!

Closed VSC and disconnected the USB cable.
Connected and started VSC again and that was it.

It seems GDB was in some weird state despite it was stopped.

Thanks for your time and patience!

1 Like