A Microcontroller Display With A Classic Twist

In a fit of lock-down-induced boredom, [Peter Z] has turned his smartphone into an LCD screen (simulation) via an Android app (German language, Google Translate link), so that a mobile device can be plugged into your favourite microcontroller and the classic HD44780 LCD look can be replicated on its screen.

It doesn’t speak standard HD44780, but rather a custom UART serial protocol, so if you’re looking for something to replace a busted LCD, this isn’t your bag. But if you are looking for a large UART terminal for debugging, with a nice aesthetic, you win.

We’d guess that a serial-to-Bluetooth converter could also be made to function, with a bit of work. The protocol is trivial too, meaning that almost any microcontroller could make use of it. All the code as well as the APK is available from the forum linked above, and there is a YouTube video of it in operation below.

The number one complaint in the comments is going to be that this doesn’t emulate a HD44780, so if that’s really what you want, read this deep-dive into the HD44780 and get hacking.

17 thoughts on “A Microcontroller Display With A Classic Twist

  1. Neat!
    I don’t see options for increasing rows/characters, but I’m not complaining.
    How do I get that onto an older (no longer subscribed) Android phone/tablet?

    1. Generic method … download APK, turn on apps from other sources in settings, put on phone, either from sd card or plugged into PC as removable drive. Use app manager to install it.

  2. Brainfart:

    Something like the mcu on a arduino Leonardo programmed so specific I/O lines take the same inputs as a HD44780, but spews it out on the serial port (both hardware UART and USB emulated).

    1. I was thinking the same thing, but perhaps using something like a nRF51 or nRF52 series processor. Alternatively, an ESP32, if you have the power budget. Then bluetooth from there to the phone, and you’re done.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.