Serial Port Setup and Usage - bdring/Grbl_Esp32 GitHub Wiki

The serial port is most basic connection. It can fully control Grbl and it also sends useful data at startup and if there is a crash.

The default settings are 115200 baud, N-8-1. One of the easiest serial terminals to use is the one that comes with the Arduino IDE. You get to it via the magnifying glass icon and you need to adjust the settings in the lower right per the image below.

You can change the baud rate in the config.h file, but that is not recommended if you are just getting started. The default baud rate for the ESP32 is 115200. It uses that rate when before it runs your code and after a crash.

If you have the serial terminal open before you compile/upload, it will connect and show you some helpful information.

It will show you the cpu map you are using and some of the features associated with it. You can send $I to get the version number.

If you want to reboot the ESP32 to see the startup info, send [ESP444]RESTART or click the boot button on your module.

Serial Port Rebooting ESP32 (Technical Details)

In order for you to be able to automatically program an ESP32 through the serial port. The serial port must be able to reboot the ESP32 and tell it to enter bootloader mode. It does this using a sequence of pulses on the RTS and DTR signals coming out of the USB to serial chip on the dev kit module.

This does this using this circuit...

And this sequence...

  • RTS low, DTR high = Reset low, GPIO0 high -> Reset the chip
  • RTS high, DTR low = Reset high, GPIO0 low -> Switch to boot mode
  • RTS high, DTR high = Reset high, GPIO high -> normal operation

If your serial terminal does the first step of this when opening a connection, it will reboot the ESP32. If you are trying to connect to a running ESP32 and don't want to reboot it, you must make sure the serial terminal does not do this.

  • Arduino IDE (Windows) Does not reboot the ESP32
  • PlatformIO (Windows) Inconsistent, but usually reboots the ESP32
  • GCode senders
    • Some reboot it the ESP32
    • Some send a Grbl reset command
    • Some do neither.