The screenshot shows a software called "WebSerial Audio Studio". I couldn't find it, only https://serial-studio.com/ which also looks great (and has an open source edition). Does anyone know if it is the same? Looks pretty handy. Microchip had something not so sophisticated years ago.
Virtual com ports or USB CDC do not require a baud rate as it's not a real serial port. As mentioned ESP32 has native USB and Arduino/ESP-IDF use USB CDC over this port to communicate with a host computer. Serial.begin() is used for all kinds of serial ports including virtual serial ports. Those libraries probably require a baudrate argument for Serial.begin() which will be ignored. This is probably in the documentation for that function.
If the same function is used on a physical serial port (of which there are a few on ESP32 iirc) the baudrate argument will be used to set the baudrate setting in the peripheral by the library.
If you specify non-default pins for the serial output (i.e. you're opening a second serial connection to talk to another piece of hardware) the begin() method does influence the data rate.
Also, there are dev boards out there that do actually use a TTL converter and USB-to-serial converter to access the standard serial port, though they're not very common as far as I can tell, so I wouldn't just assume the baud rate setting does nothing on the standard pins either.
Since most of the comments seem to just restate the conclusion of the article, I'll go ahead and post it:
> What on earth is going on?
>
> Well, my board is based around an ESP32-S3. This has native USB support - and the serial connection is running over the USB connection.
>
> We don’t have a USB-to-serial converter on the board.
>
> There is no UART.
>
> Which means there’s no actual baud rate (this is not strictly true, it is possible to find out what the baud rate was set to - but that’s for another day).
8 comments
[ 3.5 ms ] story [ 24.0 ms ] threadIf the same function is used on a physical serial port (of which there are a few on ESP32 iirc) the baudrate argument will be used to set the baudrate setting in the peripheral by the library.
Setting the baud rate does actually do something (just follow the baudRate parameter here: https://github.com/espressif/arduino-esp32/blob/master/cores...), it just doesn't affect the output speed of the USB serial output.
If you specify non-default pins for the serial output (i.e. you're opening a second serial connection to talk to another piece of hardware) the begin() method does influence the data rate.
Also, there are dev boards out there that do actually use a TTL converter and USB-to-serial converter to access the standard serial port, though they're not very common as far as I can tell, so I wouldn't just assume the baud rate setting does nothing on the standard pins either.