In order to get my 20×4 LCD display with cheap IIC/I2
This worked fine on my RPi3 running Debian Jessie, but recently I have upgraded to Stretch and found out that his driver now is having issues. After running for longer period of time the screen would be full of garbage characters.
I thought I could repeat the steps, download source, patch the source, compile and use again hd44780.so file instead of the one provided by distribution.
First thing I did was to download latest source from GitHub:
wget https://github.com/lcdproc/lcdproc/archive/master.zip unzip master.zip cd lcdproc-master
Now I tried to apply the hd44780-i2c.c patch but it failed. Then I checked the hd44780-i2c.c file in the source I found out that patch is no longer needed just proper configuration in LCDd.conf.
In order to compile the latest driver from GitHub following steps are needed:
./autogen.sh ./configure --disable-libusb --disable-libusb-1-0 --enable-drivers=hd44780 --disable-libftdi make
After you have compiled the driver, go to directory:
cd /usr/lib/arm-linux-gnueabihf/lcdproc/
and backup existing file just in case something goes wrong:
cp hd44780.so hd44780.so.orig
Then copy the newly compiled driver in proper place:
cp /usr/local/src/lcdproc-master/server/drivers/hd44780.so .
Edit LCDd.conf and add the following after hd44780 part:
i2c_line_RS=0x01 i2c_line_RW=0x02 i2c_line_EN=0x04 i2c_line_BL=0x80 i2c_line_D4=0x10 i2c_line_D5=0x20 i2c_line_D6=0x40 i2c_line_D7=0x80 Backlight=yes BacklightInvert=yes
You can download my newly compiled driver and LCDd.conf from this link hd44780_debian_stretch.
I hope this has saved you some time and got your 20×4 LCD working with Debian Stretch.
Update
I have moved my LCD display to Pine64 SBC and since this is different architecture I needed to re-compile it using the same steps as above.
You can dowload aarch64 version hd44780.so aarch64.