ESP32S3 GPIO43 & 44 - Can I use with Arduino Framework?

I have stupidly build a custom board that uses physical pins 39/40 - TXD0 & RXD0 which I though I could use for an external RS232 device because I was using USB for the Serial Monitor, but now it seems that I can’t. Because it is sp specific, googling has led me to this thread Using GPIO43 & 44 on ESP32-S3 but that was all in ESP_IDF not Arduino. That lead me to a thread about menuconfig and the possibility of rebuilding the whole of the Arduino framework (eek!) to adjust sdkconfig. Then I got myself into a pickle.

So my question is, is there any way to use GPIO43/44 easily or am I hosed

I’m not sure what the problem is – if you use USB for the serial monitor, then Serial will be the USBSerial. And Serial1 should then be UART0 which you can access just fine. This requires no ESP-IDF modifications.

Can you post your platformio.ini and a minimal code which compiles but does not work during runtime? As I understand, you just want to be able to output UART on TXD0 and RXD0 while using the USB for the serial monitor output?

Oh my word, I didn’t know Serial1 would be UART0. If it’s that simple, then 1 billion thanks and I feel very humbled. I’ll report back

Just be aware that the bootloader of the ESP32S3 might automatically output some stuff on the UART0 TXD, so that could confuse your connected RS232 device; The bootstrapping pin GPIO46 can be pull-downed to GND to disable printing stuff on UART0: http://wiki.fluidnc.com/en/hardware/ESP32-S3_Pin_Reference

In any case, the probably easiest way to test this would be to take a USB-UART converter, connect its RX pin to the ESP32S3’s TXD0 and trigger a Serial1.begin(9600); Serial1.println("Hello world"); in a simple Arduino sketch, then watch for that output in the serial monitor for that USB-UART converter.

Many thanks for that. I’ve just discovered a hardware issue :person_facepalming:, so I’ll attempt to fix that and report back in a while.