Grablo Help Grablo Help
  • User Manual
  • Tips
  • News
  • Go to
    • Grablo Home
    • Grablo App
  • 한국어
Grablo Help Grablo Help
문의하기
Grablo Help Grablo Help
  • User Manual
  • Tips
  • News
  • Go to
    • Grablo Home
    • Grablo App
  • 한국어
loading
  1. Home
  2. Tips
  3. Hardware
  4. Raspberry Pi
  5. Serial (UART) Port
Updated on August 11, 2025

Tips

  • Folder icon closed Folder open iconBasics
    • Bits and Bytes
    • Digital Input/Output
    • Digital/Analog Signals
    • Calculating LED Resistor Values
    • Pull-up/down Resistors
    • 3.3V ↔ 5V Conversion
    • Serial Communication (UART)
    • DC Motor, Servo Motor, Stepper Motor
    • Multi Thread
    • Relay
  • Folder icon closed Folder open iconHardware
    • Raspberry Pi
      • GPIO
      • Installing Operating System
      • How to Change 1-Wire Pin
      • How to Find I2C Device Addresses
      • Raspberry Pi vs Arduino
      • Serial (UART) Port
      • Using Desktop Environment with VNC
    • Beagle Bone
      • GPIO
      • Installing Operating System
    • Jetson Nano
      • GPIO
      • Installing Operating System
    • GPIO Expander
      • FT232H/FT2232H/FT4232H
      • MCP2221A
      • NUMATO USB-GPIO
  • Folder icon closed Folder open iconLinux
    • Linux Directory Structure
    • Configuring Linux Auto Login
    • Installing Linux on Windows (Virtual Machine)
    • Installing Linux on macOS (Virtual Machine)
    • Installing SSH Server
    • Finding Your Controller’s IP Address
    • Connecting via SSH
    • Transferring Files Between PC and Controller
    • Fixing “User is not in the sudoers file” Error
  • Folder icon closed Folder open iconAudio/Video
    • Fixing Audio Stuttering and Latency Issues
    • Playing Audio Through Bluetooth Speakers
    • Selecting Instruments from SoundFont Files
    • Fixing “Failed to create new vlc instance” Error
  • Folder icon closed Folder open iconDatabase
    • Setting Up Firebase Database
  • Folder icon closed Folder open iconIoT
    • Setting Up Google Cloud TTS/STT
    • Setting Up OpenAI TTS/STT
    • Setting Up ElevenLabs TTS
    • Setting Up Telegram Bot
    • Getting Data from WeatherAPI.com

Serial (UART) Port

Estimated reading: 3 minutes 274 views

UART

UART stands for Universal Asynchronous Receiver/Transmitter, a simple 2-wire protocol for exchanging serial data. It’s commonly referred to as serial communication. For detailed information about UART, please refer here.

Raspberry Pi has two types of UART:

  • Full UART (PL011 UART)
  • Mini UART

Mini UART has lower performance and some features are excluded compared to Full UART.


Primary / Secondary

Below shows the types of Primary/Secondary UART according to Raspberry Pi models.

Hardware UART pins GPIO 14, 15 refer to Primary UART.

Raspberry Pi Model Primary UART Secondary UART
Raspberry Pi Zero Full UART (UART0) Mini UART (UART1)
Raspberry Pi Zero W Mini UART (UART1) Full UART (UART0, for Bluetooth) ¹
Raspberry Pi 1 Full UART (UART0) Mini UART (UART1)
Raspberry Pi 2 Full UART (UART0) Mini UART (UART1)
Raspberry Pi 3 Mini UART (UART1) ² Full UART (UART0, for Bluetooth) ¹
Raspberry Pi 4 ³ Mini UART (UART1) Full UART (UART0, for Bluetooth) ¹
¹ Raspberry Pi models with Bluetooth use Secondary UART exclusively for Bluetooth.
² For Raspberry Pi 3, GPU frequency scaling can cause issues with Mini UART communication.
³ Raspberry Pi 4 has 4 hidden Full UARTs (UART2 ~ UART5). You can add UART ports by changing settings.


Devices

UART is recognized as devices in Raspberry Pi OS (Linux) with the following device names:

UART Device Name
Full UART (UART 0) /dev/ttyAMA0
Mini UART (UART 1) /dev/ttyS0


Since the Primary UART type differs by Raspberry Pi model, you can also use symbolic link names as follows:

UART Device Name
Primary /dev/serial0
Secondary /dev/serial1


Using Full UART instead of Mini UART (Raspberry Pi 3)

On Raspberry Pi 3, GPU frequency scaling can cause issues with serial communication using Mini UART (UART 1). You can change the settings to use Full UART (UART 0) for serial communication through the following configuration.

Open the Raspberry Pi terminal or connect via SSH and enter the following:

sudo nano /boot/config.txt


Add the following content at the end of the file:

dtoverlay=miniuart-bt


Press Ctrl + O -> Enter -> Ctrl + X to save and exit the editor.


Reboot the Raspberry Pi with the following command:

sudo reboot


Now serial communication uses Full UART (UART 0), enabling stable communication. However, Bluetooth communication is no longer available.


Using Hidden UARTs (Raspberry Pi 4)

Raspberry Pi 4 has 4 hidden Full UARTs that can be enabled by changing settings. Open the Raspberry Pi terminal and enter the following:

sudo nano /boot/config.txt


At the end of the file, add the hidden UARTs you want to use. Here we’ll add all 4:

dtoverlay=uart2

dtoverlay=uart3

dtoverlay=uart4

dtoverlay=uart5


The GPIO pins for additional UART ports are as follows:

UART TXD RXD
UART 2 GPIO 0 GPIO 1
UART 3 GPIO 4 GPIO 5
UART 4 GPIO 8 GPIO 9
UART 5 GPIO 12 GPIO 13


You can also directly specify the GPIO numbers for TX/RX pins as follows:

dtoverlay=uart2,txd2_pin=16,rxd2_pin=17


Press Ctrl + O -> Enter -> Ctrl + X to save and exit the editor.


Reboot the Raspberry Pi with the following command:

sudo reboot


Enter the following to confirm that Full UART type ttyAMA1~ttyAMA4 have been added:

dmesg | grep tty


USB-TTL Converter

You can add UART ports using a USB-TTL converter. Commonly supported chipsets include:

  • FTDI FT232RL
  • CP2102
  • PL2303
  • CH340


After connecting the USB-TTL converter to the Raspberry Pi, enter the following in the terminal:

찾으시는 내용이 없나요? 문의하기

문의하기

공유하기

Serial (UART) Port

Or copy link

Clipboard Icon
콘탠츠

ㅤ

Grablo Inc.
support@grablo.co

Site Links

  • Grablo Home
  • Grablo App

이 사이트의 모든 컨텐츠는 저작권법에 보호받는 저작물로서, 무단으로 복제, 배포하는 경우에는 저작권법에 의하여 처벌을 받을 수 있습니다. Copyright 2024 grablo.co. All Rights Reserved.