Display Smooth-Scrolling Text on an HD44780 LCD
Jospeh Rautenbach connected a salvaged screen and an Arduino Leonardo to show custom characters.
As Joseph Rautenbach notes, “Character LCDs have been around for a long time. These displays contain a number of distinct blocks — each capable of displaying a single character — so displaying scrolling text would traditionally involve just shifting characters left one block at a time.” This kind of behavior is usually good enough for something you look at intermittently. However, as a quarantine project, he decided to raise the bar and allow for repeatedly rendering characters that scroll smoothly.
The project actually started way back in 2013 when he got a broken Canon printer/scanner device. He was able to reverse-engineer its 20x2 LCD character screen for Arduino compatibility. Importantly, the LCD uses a common Hitachi HD44780 controller, which can define up to eight custom characters. A Leonardo was interfaced with it via a DIY shield, and using newly-defined characters, it's able to load each block with the needed portion of the character to display, shifting them pixel by pixel.
Interestingly, while this looks great in the video below when using the salvaged display, a blue backlit unit that’s actually designed for Arduino implementation doesn’t fare nearly as well. More details are available in Rautenbach's blog post, along with code for your perusal. It’s a neat technical achievement and proof that now is a great time to reconsider your “in limbo” projects!