Skip to content

Day31 - UART Debugging

🎯 Objective

  • Practice systematic UART debugging
  • Verify each layer independently
  • Build repeatable test method

🧪 Step 1 - Check Device Node

ls -l /dev/ttyAMA*
dmesg | grep -i ttyAMA

🧪 Step 2 - Check Console Occupation

cat /proc/cmdline
systemctl status serial-getty@ttyAMA10.service
sudo lsof /dev/ttyAMA2

🧪 Step 3 - Check Pinmux

pinctrl get 4
pinctrl get 5

Expected:

  • TXD2
  • RXD2

🧪 Step 4 - Configure Raw Mode

stty -F /dev/ttyAMA2 raw 115200 cs8 -parenb -cstopb -echo clocal cread
stty -F /dev/ttyAMA2 -a

🧪 Step 5 - Loopback Wiring

Connect:

  • GPIO4 (TXD2)
  • GPIO5 (RXD2)

🧪 Step 6 - Deterministic TX Test

printf 'ABCDEF' > /dev/ttyAMA2

🧪 Step 7 - Deterministic RX Test

dd if=/dev/ttyAMA2 bs=1 count=6 status=none | hexdump -C

🧪 Step 8 - Continuous RX Monitor

cat /dev/ttyAMA2

(optional, less reliable)


🧪 Step 9 - Python Validation (Recommended)

python3 uart_loopback_test.py /dev/ttyAMA2

🧪 Step 10 - Error Simulation

Try:

  • wrong baudrate
  • remove loopback
  • enable canonical mode

Observe behavior differences


🎯 Lab Result

  • verified TX path
  • verified RX path
  • confirmed termios impact
  • validated loopback behavior