How to Set AT Port Pins


This document introduces how to modify AT port pins in the firmware for ESP32 series of products. By default, ESP-AT uses two UART interfaces as AT ports: one is to output logs (named as log port below) and the other to send AT commands and receive responses (named as command port below).

To modify the AT port pins of your ESP32, you should:

This document focuses on modifying the pins. Click the links above for details of other steps.


To use other interfaces as the AT command port, please refer to AT through SDIO , AT through SPI , or AT through socket for more details.

ESP32 Series

The log port and command port pins of ESP32 AT firmware can be user-defined to other pins. Refer to ESP32 Technical Reference Manual for the pins you can use.

Modify Log Port Pins

By default, the ESP32 AT firmware provided by Espressif uses the following UART0 pins to output log:

  • TX: GPIO1

  • RX: GPIO3

When compiling your ESP-AT project, you can modify them to other pins with the menuconfig utitlity:

  • ./ menuconfig –> Component config –> Common ESP-related –> UART for console output

  • ./ menuconfig –> Component config –> Common ESP-related –> UART TX on GPIO#

  • ./ menuconfig –> Component config –> Common ESP-related –> UART RX on GPIO#

Modify Command Port Pins

By default, UART1 is used to send AT commands and receive AT responses, and its pins are defined in Column uart_port, uart_tx_pin, uart_rx_pin, uart_cts_pin, and uart_rts_pin of the factory_param_data.csv .

You can change them directly in your factory_param_data.csv table:

  • Open your local factory_param_data.csv file.

  • Locate the row of your module.

  • Set uart_port as needed.

  • Set uart_tx_pin and uart_rx_pin as needed.

  • Set uart_cts_pin and uart_rts_pin to be -1 if you do not use the hardware flow control function.

  • Save the table.