Re: Using 20x4 LCD display
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 25 Oct 2021 03:39:27 UTC
Andriy Gapon <avg@FreeBSD.org> writes: > On 22/10/2021 09:52, Olivier wrote: >> Hello, >> >> I would like to use a 20x4 LCD display attached to a Raspberry Pi >> running FreeBSd 12.2. >> >> I can talk to the display through the I2C interface, when I send >> something the back light will turn off and on, so the link is >> established. >> >> What I cannot find is the sequence of codes to send in order to write a >> character on te screen, to move the cursor around, etc. >> >> All documentation I could find so far relate to Raspbian or Arduino and >> are always using high level libraries (I could not find such on FreeBSD, >> equivalent to WiringPi). >> >> Whatever random characters I send to the screen, it persistently shows >> alternating empty lines and lines or black boxes. >> >> Any help pointing me in the right direction will be greatly appreciated. > > I have a small utility for talking to a character LCD display via gpio. > I am not sure about your exact hardware, but typically the I2C interface is just > a GPIO-over-I2C (aka an I2C I/O expander). > > The utility is here: https://github.com/avg-I/gpiolcd > It's based on ppilcd utility written for driving such LCDs connected to a > parallel port. That utility can be found at share/examples/ppi/ppilcd.c. It > uses parallel port ioctl-s for the job. > > To use my utility you need the LCD to be presented as a gpio device. > For that you need a driver for a specific I2C to I/O port expander that you > have. In my case it's PCF8574. > > You can search the internet for information about how HD44780 (and similar) works. > > https://www.exploreembedded.com/wiki/LCD_16_x_2_Basics > http://web.alfredstate.edu/faculty/weimandn/lcd/lcd_addressing/lcd_addressing_index.html > https://www.ti.com/product/PCF8574 > > P.S. > In case you also have PCF8574 or compatible, I have a driver for it but I > haven't committed it yet. You can find it here: > https://github.com/avg-I/freebsd/commit/fb31fe9a933d62c7af96b0ab830b98cbfeed5309 Thank you for all the pointers you offered. Olivier --