UART Explained: RX/TX Communication Between Microcontrollers

UART is one of the simplest and most widely used communication methods in embedded systems. It is commonly used for communication between microcontrollers, computers, GPS modules, Bluetooth modules and many other serial devices.

Unlike I2C and SPI, UART does not use a shared clock signal. Instead, both devices must agree on a fixed communication speed, called the baud rate.

What Is UART?

UART stands for Universal Asynchronous Receiver/Transmitter. It is an asynchronous serial communication interface.

A typical UART connection uses two main signals:

  • TX: Transmit
  • RX: Receive

To communicate, one device’s TX pin is connected to the other device’s RX pin, and vice versa. Both devices must also share a common ground.

How UART Communication Works

UART sends data one bit at a time over a single wire.

Each transmitted byte is wrapped in a frame:

  • Start bit (usually LOW)
  • Data bits (typically 8 bits)
  • Optional parity bit
  • Stop bit(s) (usually HIGH)

Because there is no clock signal, both devices must agree on timing in advance.

Baud Rate

The baud rate defines how fast data is transmitted.

Common baud rates:

  • 9600
  • 19200
  • 38400
  • 57600
  • 115200

Both devices must use the same baud rate. If the baud rate does not match, communication will not work or will produce garbage data.

UART Configuration

UART communication is usually defined with a format like:

  • 8N1

This means:

  • 8 data bits
  • No parity
  • 1 stop bit

Other configurations exist, but 8N1 is by far the most common.

UART Is Point-to-Point

UART is typically used for communication between two devices only.

Unlike I2C:

  • No addressing
  • No shared bus
  • No built-in multi-device support

To connect multiple devices, additional hardware or protocols are required.

UART Compared with I2C and SPI

Interface Clock Wires Multiple Devices Typical Use
UART No 2 No Debug, modules, communication between devices
I2C Yes 2 Yes Sensors, displays
SPI Yes 4+ Limited High-speed peripherals

Common UART Devices

UART is widely used with:

  • GPS modules
  • Bluetooth modules
  • WiFi modules (AT command mode)
  • Serial displays
  • Microcontroller-to-microcontroller communication
  • USB-to-serial converters

UART is also the standard interface used for debugging and logging in many embedded systems.

Voltage Levels

UART uses logic-level signals.

Examples:

  • 3.3V logic (ESP32, RP2040, STM32)
  • 5V logic (classic Arduino boards)

These are not the same as RS232 voltage levels. RS232 uses much higher positive and negative voltages and requires a level converter.

Common UART Problems

Typical UART issues include:

  • TX and RX not crossed correctly
  • Wrong baud rate
  • Wrong data format (not 8N1)
  • Voltage mismatch
  • No common ground
  • Noise on long wires

If the output looks like random characters, the baud rate or configuration is usually wrong.

UART and USB

Most microcontrollers use UART internally for communication with a computer.

A USB-to-UART converter chip (such as CH340, CP2102 or FTDI) allows the microcontroller to appear as a serial port on a PC.

This is how:

  • Serial Monitor works in Arduino IDE
  • Firmware is uploaded on many boards

Important: USB devices require drivers under operating systems like Windows or Linux. Make sure you have the correct driver installed.

When to Use UART

UART is a good choice when:

  • You need simple communication between two devices
  • You are working with serial modules
  • You need debugging output
  • Low wiring complexity is important

When Not to Use UART

UART may not be suitable when:

  • You need to connect many devices on one bus
  • You need high-speed communication
  • You need long-distance communication without noise issues

Conclusion

UART is one of the simplest communication methods available. It is easy to understand, widely supported and extremely useful for debugging and connecting modules.

While it lacks the multi-device flexibility of I2C and the speed of SPI, it remains essential for point-to-point communication in embedded systems.

Shopping Cart
Scroll to Top