Opening up the world of DIY electronics to those that have never touched a line of code in their life is arguably one of the best things ESPHome has done. The ability to easily create LCD menus, which ESPHome added in version 2022.11, will add a new dimension to those looking to interact with their nodes visually.
You will know the type of LCD and menu this component uses if you have ever interactive with a Prusa i3, or any other Mendel-style 3D-printer. These character-based LCDs are very basic and offer something in the range of 8×5 pixels per character. To navigate these types of LCD menus, a rotary encoder with a button or a five-button joystick controller is used.
Why ESPHome’s LCD Menu component matters
You could look at this new component as something of a gimmick or niche feature that only a handful of nerds will make use of. In its current state, that might indeed be so. After all, who wants to control their smart home using a character-based display? There definitely are better options available. However, the LCD Menu component is only one part of the Display Menu component.
The Display Menu documentation says that currently the character-based LCDs are supported using the LCD Menu integration. Considering that, it is fair to assume that the component is far from finished. If you, for example, want to create an information screen with one of Waveshare’s E-Paper displays, you are currently forced to use the Display Rendering Engine. If this process could be made easier using the newer component, I’m sure we would be seeing many more projects.
Which character-based LCDs does ESPHome support?
ESPHome allows you to use HD44780-compatible character-based LCDs. These come in various sizes, though most of them will have around twenty columns and four rows, or sixteen columns and two rows. There are multiple versions of the display, and depending on your project, it could be relevant:
- HD44780UA00: This version supports English-Japanese, which includes katakana characters, some Greek letters, and mathematical symbols.
- HD44780UA02: This version supports English-European, which includes Greek, Cyrillic, and Western European characters (with some diacritics).
If you are desperate to start a project but can’t find the HD44780-compatible LCD version you need, there is also the possibility of adding custom characters. Eight custom characters, to be precise. You can easily generate these using, for example, lcdchargen’s Custom Character Generater for HD44780 LCD Modules. You can then simply paste the output into your ESPHome YAML.