create new tag
view all tags

Using a second Serial Port

On the ESP32 UART0 is normally reserved for interactive use with REPL. Sometimes we need a UART to communicate with external devices. Typical examples are:

  • fingerprint readers using a serial communication protocol
  • GPS modules
The ESP32 has 3 UARTs of which however UART1 is reserved for use with flash memory. However, UART2 is free.
Normally Rx is connected to GPIO 16 and Tx to GPIO 17 but these are forbidden on the CPU card we use (see The hardware). It is possible however to remap these signals to different GPIO pins, in our case to GPIO 21 and 22.

Connect the USB to Serial adapter to the ESP32 as shown in the table below

USB to Serial Adapter ESP32 pins
Rx GPIO 21
Tx GPIO 22
Gnd Gnd
As a first quick test, we can try to write "Hello World to UART2 to which we connect a minicom virtual terminal.

thonny is connected to UART0 on /dev/ttvUSB0 (connect this first). minicom is connected to UART2 on /dev/ttyUSB1. Start minicom with:

minicom -D /dev/ttyUSB1

Here is the screen dump of the REPL session


And this is what we see on minicom:


... if you are too lazy to type, here is the corresponding script:


-- Uli Raich - 2020-05-09


Topic attachments
I Attachment History Action Size Date Who Comment
Texttxt uart.py.txt r1 manage 0.2 K 2020-05-09 - 20:01 UliRaich  
PNGpng uart2-minicom.png r1 manage 23.7 K 2020-05-09 - 19:57 UliRaich  
PNGpng uart2-v2.png r1 manage 26.9 K 2020-10-12 - 15:42 UliRaich  
PNGpng uart2.png r2 r1 manage 26.9 K 2020-10-12 - 15:40 UliRaich  
Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r2 - 2020-10-12 - UliRaich
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback