Skip to content

I2C, SPI, and UART Issues

This page collects common peripheral bus troubleshooting notes.

I2C Device Not Found

Check:

i2cdetect -y 1
dmesg | grep -i i2c

Possible causes:

  • Wrong bus number.
  • Wrong device address.
  • Device Tree node is not enabled.
  • Hardware wiring or pull-up issue.

SPI Chip Select Conflict

If spidev already owns the chip select line, a custom SPI driver may fail to bind.

Check:

ls /dev/spidev*
dmesg | grep -i spi

Possible fixes:

  • Disable or avoid the conflicting spidev node.
  • Use a different chip select.
  • Ensure the overlay describes only the intended device.

UART / TTY Permission Issue

Check:

ls -l /dev/ttyAMA* /dev/ttyS*
groups

The user may need to be in the correct serial access group, depending on the distribution.

Related pages: