Which board selection for bespoke PCBs using ESP32S3 Mini?

Hi all!

It's my first time using Arduino, so I'm probably making a very basic error. I've kinda jumped in at the deep end, though, because I'm using a PCB I designed myself based on advice from Instructables.com. Because of space constraints, I've had to use S3 Mini, while the Instructables example uses S3 "regular".

Obviously, my board isn't in the "Select other board and port" dropdown, but I'm hoping there might be something close enough.

I'm not seeing anything in the Serial Monitor pane, and there's no voltage change on GPIO1 (my LED pin).

GPIO19 (the D- net) and GPIO20 (D+) are connected to the USB socket on the PCB like this:

Here's the code I'm trying to run:

const int _ledPin = 1;
bool _ledOn = false;

void setup() {
  Serial.begin(19200);
  pinMode(_ledPin, OUTPUT);
}

void loop() {
  Serial.println("bingo");
  _ledOn = !_ledOn;

  if (_ledOn) {
    digitalWrite(_ledPin, HIGH);
  }
  else {
    digitalWrite(_ledPin, LOW);
  }

  delay(1000);
}

I can flash that code to the board by selecting the "Lolin S3 Mini" board. Here's what the Output pane says when I do that:

Sketch uses 325736 bytes (24%) of program storage space. Maximum is 1310720 bytes.
Global variables use 20196 bytes (6%) of dynamic memory, leaving 307484 bytes for local variables. Maximum is 327680 bytes.
esptool.py v4.8.1
Serial port /dev/ttyACM0
Connecting...
Chip is ESP32-S3 (QFN56) (revision v0.2)
Features: WiFi, BLE, Embedded Flash 4MB (XMC), Embedded PSRAM 2MB (AP_3v3)
Crystal is 40MHz
MAC: 98:3d:ae:f1:0c:1c
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Flash will be erased from 0x00000000 to 0x00004fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x0005ffff...
Compressed 20160 bytes to 12987...
Writing at 0x00000000... (100 %)
Wrote 20160 bytes (12987 compressed) at 0x00000000 in 0.3 seconds (effective 518.7 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (effective 570.3 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 690.7 kbit/s)...
Hash of data verified.
Compressed 325840 bytes to 175208...
Writing at 0x00010000... (9 %)
Writing at 0x0001c19f... (18 %)
Writing at 0x00028a22... (27 %)
Writing at 0x0002e1e9... (36 %)
Writing at 0x00033c99... (45 %)
Writing at 0x00039473... (54 %)
Writing at 0x0003ec55... (63 %)
Writing at 0x000447d4... (72 %)
Writing at 0x0004a1c6... (81 %)
Writing at 0x00055397... (90 %)
Writing at 0x0005b21d... (100 %)
Wrote 325840 bytes (175208 compressed) at 0x00010000 in 2.9 seconds (effective 889.4 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting with RTC WDT...

But when I check the Serial Monitor pane for output, there's nothing:

I'm running Arduino IDE 2.3.4 on Ubuntu 24.04.

Can't help with the LED.

For the serial communication, there is a setting in the tools menu USB CDC On Boot which is probably set to disabled; see if enabling it changes the serial monitor behaviour.

Thank you! That did the trick.

In the interests of transparency (rather than avoiding embarrassment), it turns out I was measuring the wrong pin voltage when I first posted. Doh!

1 Like