Fixing Nvidia Jetson Nano 1602 I2C LCD communication issue

Andrew C
2 min readAug 16, 2021

Since I plan to use 1602 I2C LCD to display some simple messages via Nvidia Jetson Nano, I was facing an interesting issue. I believe it would be an BIG issue for beginner.

So I believe it worth to be documented and beginner who had facing the same problem will have a quick fix.

What do you need for this exercise?

  1. A fully functional Nvidia Jetson Nano. (Reference)
  2. 1602 I2C LCD. It should be easy to purchase anywhere.
1602 I2C LCD. Source

What you should finish before this exercise?

  1. Follow this blog to install the necessary package: LINK
  2. Learn some basic knowledge of Linux and python.
  3. Confirm the I2C address from the example with your manufacture provided.

Important HINT:

The example is using I2C bus 0. In Jetson Nano, it should be I2C 1.

The example is using the following command to confirm the I2C address:

i2cdetect -y 1

The last number is 1 which means it is searching I2C bus 1 in Jetson Nano. But somehow, the driver is using I2C bus 0 if you directly copy and paste.

How to change to the correct I2C bus?
In “I2C_LCD_drive.py”:

Original : 
# i2c bus (0 — original Pi, 1 — Rev 2 Pi)
I2CBUS = 0
Change to :
I2CBUS = 1

Then, you should be able to communicate with the 1602 I2C LCD.

--

--

Andrew C

Software engineer, Movie lover, Karate beginner.