A LCD Display for your Node?

Ever wonder how your Node is doing while walking by? Don’t worry, I got you!

So as you already know, our Node is running the Hardkernel ODROID-H3+ board. This board has further benefits such as exposed I/O pins that can be used. With a current Linux kernel, we can also address the integrated i2C port here. But what is i2C anyway?

I2C (Inter-Integrated Circuit) is a communication protocol used for short-distance, low-speed data exchange between microcontrollers and peripherals such as sensors, display screens, and memory devices. It allows multiple devices to be connected to a single bus, with each device having a unique address, and allows for both data transmission and reception.

To make the node work with a display, install i2c-tools:

sudo apt install i2c-tools

Now enable the Kernel module. Add this to /etc/modules at the end:

i2c-dev

Shutdown your node now and connect the display to the corresponding pins on the board. As you can see in the following table, you have two I2C ports to choose from.

Image provided by https://wiki.odroid.com/_detail/odroid-h3/application_note/h3_uart_loopback.png. Highlighted the I/O Pins.
#PINDescriptiondev
18I2C_0_SCL/dev/i2c-0
20I2C_0_SDA/dev/i2c-0
13I2C_1_SCL/dev/i2c-2
15I2C_1_SDA/dev/i2c-2
4+5V
6GND
The ports you need to connect a LCD Display via I2C.

Start the node again and use the i2c-tools to look for connected devices:

#for port 0
sudo i2cdetect -y -r 1

#for port 1
sudo i2cdetect -y -r 2

The result could look like this. Here we found a device with the address 0x27:

florian@rocketnode3:~$ sudo i2cdetect -y -r 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Now there are no limits to your imagination. You could retrieve and display data from the API’s of your nodes via almost any programming language.

CPU load and free space of the SSD is displayed. It also shows when the last attestation took place.

Programming is not your thing? No problem. My idea is to provide a Docker container that does the work for you and displays the most important information on the screen.