The HD44780 is one of the first chips we learned about as a kid, and chances are good you’ve used one in your project at some point, and almost certain that you’ve interacted with one in your life. The character LCD is ubiquitous, easy to interface, and very robust. They come in sizes from 8 x 1 to 20 x 4 and even larger, but they almost all have the same pinout, and there are libraries in many embedded environments for interacting with them. [The 8-Bit Guy] decided to interface with one using just switches and a button, (YouTube, embedded) with the intent of illustrating exactly how to use them, and how easy they are.
If you’ve never used a character LCD before and want a great introduction to them, this is the video for you. It turns out that there’s no clock to worry about, and the instruction set is easily discerned from a datasheet table. [The 8-Bit Guy] even gets fancy with additional commands.
These displays have featured quite frequently here at Hackaday. Just a couple of many are this serial drive hack using a PIC microcontroller, and exploiting the custom characters to create non-character graphics.
Thanks [emuboy] for the tip.
Two words: Switch Bounce!!!
http://www.ganssle.com/debouncing.htm
Exactly… and the fix isn’t just to pick up a random capacitor off the floor and solder it in.
It does need some careful attention paid to rise/fall times.
Absolutely! In high speed, timing critical applications like this you have to be very careful. Veeery careful.
The fix is anything that makes the problem go away. Picking up random parts till they work is most definitely a fix.
Not always a fix, but definitely a hack.
You mean that thing he spends a minute or so talking about from 10:18 onwards?
Yep… I hadn’t gotten to that point in the video… but yes, consider my earlier post a spoiler.
It was the thought that was running through my mind as I saw the wires being soldered up.
It’s a trainer for an Altair or other micro where you have to toggle switches and enter data blind. This lets you see the character for each byte.
I was thinking the HD44780 possibly has more brains than the Altair does… the difference being is that the brains in the HD44780 are already committed to drawing character graphics and driving a LCD.
Wow, I want to make this!
It is extremely rare that I recognize a chip model. I’ve recovered three or four of these LCD units from junk copiers.
This would actually fulfill the minimum requirements for an electronic notebook.
Inverting the directions of the switches is easily done by moving the common wire going to 5V to ground, and the one that’s going to ground to 5V.
“The character LCD is ubiquitous, easy to interface, and very robust”
And also very ugly, without proper descenders, and low resolution. Why can’t we have a 8×16 character matrix version already ?
And why can’t it have a variety of fonts and 24 million colors, with full Unicode support? With a multitouch touch screen. And …
The answer is, because it does what it was designed to do, so nobody has bothered to redesign it. For people who need prettier displays, there are full graphics displays in a variety of resolutions.
No, there are plenty of applications that don’t need fancy displays, and can’t afford to interface a full color graphics display (uses more power, more RAM, and more processing).
So, there’s a good market for simple text displays with simple interfaces. I would just like a few small tweaks to make it less ugly. That’s something that doesn’t really have to cost any more with today’s technology, and would keep the interface compatible.
Artenz is right. It’s butt ugly and hard to mount nicely in diy projects. Look at the cutout in the casing, can you do it pretty cutout without a cnc?
Surly this is the first step towards general AI!??
Come on man. Stop giving him a hard time about that AI video.
Don’t worry, I love this guy man! I just have to obey the meme!
You will know it by its messages, which will come in 5 x 7 blocks.
Trivia: HD44780 is also a binary star in the constellation of gemini (https://en.wikipedia.org/wiki/HD_44780). I wonder if they chose the part number because of that.
Only dimly related: did anyone ever make integrated switch banks that were double-throw? Or are dip switches with pull-up/downs the only option.
A SPDT DIP-sized switch: CJS-1200TA1
A SPDT tiny rotary switch: 7813J-1-051E
A 4-up double-wide SPDT array: CTS’s 206-1245 (each switch corresponds to four pins underneath, two are NO and two are NC)
A 2-up normal-width SPDT DIP array: CAS-D20TA1
A 10-up SPDT specifically designed to connect each switch to one common, the other common, or float: KAT1110E
Love this dude’s channel. Great videos on extinct tech.
Today (04 sep 2018) i was reading about AI ( Artificial Intelligence). I suddenly realized that HD44780 was a primitive example of the much more sophisticated AI that I was reading about !
example: the Clk signal to the LCD requires depends entirely on the HD44780 driving it. The 3 control signals from an Arduino that operate the HD44780 do NO include a CLK .
Once this data has been loaded from the Arduino the HD44780 SLOWLY produces the necessary Clk signals for each of the 5×8, 40 pixels,of an LCD character ; HD44780 loads the 5 vertical pixels of that character without any reference to the Arduino. The HD44780 has circuitry that translate the 8bits/character input, representing 256 possible ASCII inputs, into a the appropriate 40 pixels that will form that character.
The Arduino is not occupied with the details of sorting out which of the 256 ASCII inputs have been loaded into it by a human operator. While the HD44780 is just starting to be occupied with the details of the ASCII inputs, the Arduino can perform many even 100 other commands functions.
In the article about AI that i have read the author has used terms such as “read” ,” write”, which can be MISLEADING to the “naive”, because the HD44780 has no physical means to actually perform any of these actions.
What confusion will the future bring when camera , image analysis, artificial speech annunciators are active ?
How is this in any way AI? It is performing a simple, fixed algorithm.