Snippet - Extended Display_HD44780 display driver with support for custom characters

I just posted Extended Display_HD44780 display driver with support for custom characters on Codeshare. Feel free to discuss and make suggestions here.


Good one. Maybe we can move this to the standard driver :slight_smile:

Please do. It would be usefull to have implemented by default in the core driver.


Awesome extension of the existing driver !

Love it! You got me thinking with the big “GHI”. A single function for printing big text that spans multiple rows would be a great feature to have.


@ danibjor - Nice one!

I’ve been thinking about that, but the LCD controller will not play along.

The problem is, you have 2x16 bytes of memory on the controller that store the current visible text. When you write to the screen it only set pointers to ROM, or in our case, to the writable 8x 8bytes of RAM. So, if you print text to screen using the custom chars, then change the content of the custom RAM location, the screen also gets updated, as you change the RAM content it has pointers too.

Storing A in custom ram location 1, printing 0x01 to screen will display A on the screen. Now when you change the custom ram location to B, the screen wil automagically display B all places you have a pointer to address space 0x01.

Thus, you can somewhat display BIG text or logos, but it has to be carefully thought through as you only can have 8 different custom chars visible at a given time. You can of course have one custom char displayed several times.

Think of this more as an oportunity to display simple gfx for your applications. That beeing like in the sample code where i “charge” the battery - or if you have some gauge to display e.g. analog values.

@ danibjor - great stuff, thanks for sharing. Was looking at this myself, but gave up. I will use this on my system. Thanks again.

Furthermore, I was thinking about trying another display with the same controller, for example this one:

Can you, or someone else, assist in clarifying how difficult this would be, as we already have a driver for this controller.

@ njbuch - as long as it uses the same controller, there should be no problems as long as you wire it up like the GHI module is done. I think everything would work out of the box without driver modifications.