I am using IDE V2.3.4 ESP32 core 3.3.5
noted you have Tools>Boards selected Arduino Nano ESP32
try ESP32S3 Dev Module
what does the Win11 Device Manager show under COM ports?
I am using IDE V2.3.4 ESP32 core 3.3.5
noted you have Tools>Boards selected Arduino Nano ESP32
try ESP32S3 Dev Module
what does the Win11 Device Manager show under COM ports?
looks like you are running the latest ESP32 core development release V3.3.6-RC1
try installing v3.3.5 and Tools>Boards selecting ESP32S3 Dev Module
Hi Horace, You are the man! Switched Board Manager from "Arduino ESP32 Boards" to "esp32" ver 3.3.5 and got this result:
under File>Preferences which board manager have you loaded
from esp32 installing-using-arduino-ide
https://espressif.github.io/arduino-esp32/package_esp32_index.json
This is what is on this end at this time:
https://jihulab.com/esp-mirror/espressif/arduino-esp32/-/raw/gh-pages/package_esp32_dev_index_cn.json
It has been switched over to https://espressif.github.io/arduino-esp32/package_esp32_index.json
but same result with attempting to debug...
never used debug
does the program run OK without debug?
what appears on the serial monitor?
Does not seem to be running (using the Blink example sketch). It compiles and goes through the upload sequence, and this is the last line of the Output
Hard resetting via RTS pin...
Seems to be hung there. The Serial monitor does not start, so nothing there
(FWIW, I had this working pretty good with the Arduino Nano R4)
TY!
after setting Tools>Board ESP32S3 Dev Module did you set USB CDC on boot "Enabled" to enable the Serial output
can you post your code using < CODE > tags? does the blink example do anything apart from blinking a GPIO? is there a LED attached to that GPIO?
is it the Waveshare RGB LED example in file ESP32-S3-ETH-Demo\Arduino\examples\RGB_LED\RGB_LED.ino
e.g. LED on
#define PIN 21 // Pin connected to NeoPixel
also try this simple hello server
// Waveshare ESP32-S3 ETH Development Board (W5500)
/*
* HelloServer example from the ESP32 WebServer library modified for Ethernet.
*/
#include <EthernetESP32.h>
#include <WebServer.h>
#include <ESPmDNS.h>
// Define Waveshare ESP32-S3-ETHW5500 pin assignments
#define W5500_CS 14 // Chip Select pin
#define W5500_RST 9 // Reset pin
#define W5500_INT 10 // Interrupt pin
#define W5500_MISO 12 // MISO pin
#define W5500_MOSI 11 // MOSI pin
#define W5500_SCK 13 // Clock pin
// W5500Driver(int8_t cs = SS, int8_t irq = -1, int8_t rst = -1)
W5500Driver driver(W5500_CS, W5500_INT, W5500_RST);
WebServer server(80);
SPIClass SPI1(SPI);
const int led = 21;
void handleRoot() {
digitalWrite(led, 1);
server.send(200, "text/plain", "hello from Waveshare ESP32-S3 ETH Development Board (W5500)!");
digitalWrite(led, 0);
}
void handleNotFound() {
digitalWrite(led, 1);
String message = "File Not Found\n\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET) ? "GET" : "POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i = 0; i < server.args(); i++) {
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
digitalWrite(led, 0);
}
void setup(void) {
pinMode(led, OUTPUT);
digitalWrite(led, 0);
Serial.begin(115200);
Serial.begin(115200);
delay(500);
while (!Serial)
;
Serial.println("\n\nWaveshare ESP32-S3 ETH Development Board (W5500)! Hello Server");
// bool begin(int8_t sck = -1, int8_t miso = -1, int8_t mosi = -1, int8_t ss = -1);
SPI1.begin(W5500_SCK, W5500_MISO, W5500_MOSI, W5500_CS);
driver.setSPI(SPI1);
Ethernet.init(driver);
Serial.println("Initialize Ethernet with DHCP:");
if (Ethernet.begin()) {
Serial.print(" DHCP assigned IP ");
Serial.println(Ethernet.localIP());
} else {
Serial.println("Failed to configure Ethernet using DHCP");
while (true) {
delay(1);
}
}
if (MDNS.begin("esp32")) {
Serial.println("MDNS responder started");
}
server.on("/", handleRoot);
server.on("/inline", []() {
server.send(200, "text/plain", "this works as well");
});
server.onNotFound(handleNotFound);
server.begin();
Serial.println("HTTP server started");
}
void loop(void) {
server.handleClient();
delay(2); //allow the cpu to switch to other tasks
}
serial monitor displays
Initialize Ethernet with DHCP:
DHCP assigned IP 192.168.1.71
MDNS responder started
HTTP server started
and when the IP 192.168.1.71 is entered as URL a web client displays
Hi Horace, Yes USB CDC on boot has now been set to "Enabled" and a simple sketch is uploading and producing output, whew...
BTW, the examples you have been sharing are great and I'll be utilizing them when reaching the Ethernet part of this project. TY!!
Now on to trying to get the debugger working. It is currently showing this message
GDB executable "C:\Users\Robert\AppData\Local\Arduino15\packages\esp32\tools\xtensa-esp-elf-gdb\16.3_20250913\bin\xtensa-esp32s3-elf-gdb.exe" was not found. Please configure "cortex-debug.armToolchainPath" or "cortex-debug.gdbPath" correctly.
Hi again Horace, Will wonders ever cease?!?!? The debugger is working
. I can tell you more if interested. Here is a screen shot
Hi Horace,
Hope this finds you well. After working another part of this project for a while I’ve returned to the MCU portion.
Struggling to get the MCU to find the BMP280 sensor. The sketch closely follows the BMP280 part of the example you kindly shared.
// UDP chat program Waveshare ESP32-S3 ETH Development Board (W5500)
As you can see in the pic the BMP280 is powered up. The SDA wire is connected to GPIO36 (pin 16) and the SCL to GPIO35 (pin 17). The continuity of the connections seems to be solid.
It fails inside BMP280.cpp in ::begin() when it tries to get a quick response from the BMP280.
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
delay(2000); // Let it start
Serial.println("Starting... ");
//Wire.setPins(I2C_SDA, I2C_SCL);
Wire.begin(I2C_SDA, I2C_SCL); //Join I2C bus
bool result = bmp280.begin(BMP280_ADDRESS);
if (false==result) {
Serial.println("Could not find the BMP280 sensor, check wiring?");
while(1);
}
Maybe I am misunderstanding which pins to use for SDA/SCL or something?
TY!
did you define
#define I2C_SDA 36
#define I2C_SCL 35
think it should work
looking at my test of a BMP280
// Waveshare ESP32-S3 ETH Development Board BMP280 I2C sensor
/* Interfacing Arduino with BMP280 temperature and pressure sensor.
* Temperature and pressure values are displayed on 16x2 LCD.
* This is a free software with NO WARRANTY.
* https://simple-circuit.com/
*/
// ESP32 SDA to D21 SCL to D22
// ESP8266 SDA to D2 SCL to D1
#include <Wire.h> // include Wire library, required for I2C devices
#include <Adafruit_Sensor.h> // include Adafruit sensor library
#include <Adafruit_BMP280.h> // include adafruit library for BMP280 sensor
// define device I2C address: 0x76 or 0x77 (0x77 is library default address)
#define BMP280_I2C_ADDRESS 0x76
Adafruit_BMP280 bmp280;
#define I2C_SDA 16
#define I2C_SCL 17
void setup() {
Wire.begin(I2C_SDA, I2C_SCL);
Serial.begin(115200);
Serial.println(F("Arduino + BMP280"));
if (!bmp280.begin(BMP280_I2C_ADDRESS))
{
Serial.println("Could not find a valid BMP280 sensor, check wiring!");
while (1);
}
Serial.println("Found BMP280 sensor!");
}
void loop() {
// get temperature, pressure and altitude from library
float temperature = bmp280.readTemperature(); // get temperature
float pressure = bmp280.readPressure(); // get pressure
float altitude_ = bmp280.readAltitude(1013.25); // get altitude (this should be adjusted to your local forecast)
// print data on the serial monitor software
// 1: print temperature
Serial.print("Temperature = ");
Serial.print(temperature);
Serial.println(" °C");
// 2: print pressure
Serial.print("Pressure = ");
Serial.print(pressure/100);
Serial.println(" hPa");
// 3: print altitude
Serial.print("Approx Altitude = ");
Serial.print(altitude_);
Serial.println(" m");
Serial.println(); // start a new line
delay(2000); // wait 2 seconds
}
serial monitor output
Arduino + BMP280
Found BMP280 sensor!
Temperature = 27.40 °C
Pressure = 1015.74 hPa
Approx Altitude = -20.69 m
Temperature = 27.72 °C
Pressure = 1015.77 hPa
Approx Altitude = -20.96 m
Temperature = 27.73 °C
Pressure = 1015.68 hPa
Approx Altitude = -20.21 m
does the I2C scanner show anything?
It has been tried each of these ways
#define I2C_SDA 36
#define I2C_SCL 35
and
#define I2C_SDA 16
#define I2C_SCL 17
Are you supposed to use the GPIO number (green) or the pin number on the diagram next to the GPIO number (gray) ?
TY!
16 and 17 are GPIO16 and GPIO17 - numbers in green

Ahhh, OK. I am probably misunderstanding pin designations. On this end the SDA/SCL are connected here:
Will it work from those GPIOs? Should they be moved to different pins or if not how to #define the pins for how they are set on this end?
TY
don't see why not - use
#define I2C_SDA 36
#define I2C_SCL 35
check with an I2C scanner?