4 ms·
Long ago, many devices that needed simple text output, like super market checkout registers, had simple LCD modules in them with e.g. 2 rows with 16 characters
by st_goliath 5y ago
Long ago, many devices that needed simple text output, like super market checkout registers, had simple LCD modules in them with e.g. 2 rows with 16 characters each.
Those modules are just bricks with a display on them that you can control using a parallel interface. Because of their simplicity, they are/were also very popular with micro controller hobbyists long before Arduino was a thing.
The HD44780 (and clones) are very widely used controllers on those modules. They can be connected in 4 bit or 8 bit parallel mode, you can send over characters that it should display (using a built in raster font) or some special command sequences for e.g. clear the display, set the cursor position, ... kind of like a very simple terminal.
The displays with 4 rows instead of 2 typically just had 2 of those controllers in them that you needed to interface to. One for the bottom 2 rows and one for the top.
Some variants of the controller clones can load a custom font lookup table. By breaking a graphical image up into blocks and loading those into the font lookup table, you can use the device as a very hacky graphics display.
Alternatively, if you rely on semi-documented internals and get the timing just right, you can swap out the data while it is drawing a character and splice your graphics together that way using the built in font. This will also get you a more decent refresh rate. Both variants are discussed here.
- marcan_42 5y agoAll variants support 8 custom characters at least. I don't know if some nonstandard clones can do more. The 4x20 displays do not use two controllers. They are just a single controller configured for 2x40 mode, except the display is laid out differently. Logically, the rows are ordered 0, 2, 1, 3 on those, for this reason, and horizontal scroll is funny.
- st_goliath 5y agoInteresting! I'm sorry if I'm a bit hazy on the details, but I was around 12 when I fiddled around with this stuff. Back then, I saved up some cash and bought a mail order AVR board with some LEDs, sensors on it plus an expansion board with an IIRC 2*16 LCD module on it and spent the summer copying assembly listings from ELV journal and some tutorial websites. I played around with a custom character set but never did anything as fancy as this. Although I did know that modules with 4 rows exist, those where pretty much Unobtanium for me at the time and I jumped at every forum thread that mentioned them, trying to find out how I could get my hands on one. IIRC I once saw a post on a German phpBB Forum (roboternetz.de? mosfetkiller.de?) with grainy pictures where somebody had such a module and couldn't get it to work. Someone else responded that those controllers only supports 2 rows with 20 characters maximum and modules with more characters or rows simply have 2 on them ("see, there are 2 black blobs on the rear..."). I remembered that from there. From my experience, I guess they won't be very happy if I dig up the ~20 year old thread and post a response now :-).