Running hitachi hd44780 lcd displays over SPI/i2c

Status
Not open for further replies.

bossredman

Well-known member
Hi,

My project (an MFC) currently successfully runs 8 x hitachi hd44780 lcd displays on my Teensy 3.6 in the std way:
(ie using 5 I/O pins for shared D4, D5, D6, D7 & RS) & then 8 additional I/O pins for the each display's EN.

As I said it works - but the wiring is a mess & absolute nightmare.

I was wondering if it was possible to run these displays over SPI or i2c?
And if yes - is it possible to run 8 at once?

Thanks
 
Interesting - thanks.
8 is all I need so should be OK on that front.

So there's no way to do what I'm asking (i2c or SPI) without additional hardware?
I'd need to buy 8 of these backpacks - right?
 
It looks like there are no HD44780 LCD displays with native SPI or I2C support.

Another option would be to use different displays like for example these tiny 0.96" OLEDS which can be addressed directly via SPI.
 
https://tronixlabs.com.au/news/tuto...r-hd44780compatible-lcd-modules-with-arduino/

These have 8 i2c address options, thus 8 displays would be the maximum.

And there are i2c multiplexers if you need to add more displays.

On the Teensy 3.6 there are 3 i2c buses, but most Arduino software only assumes there is one i2c bus, so you typically have to clone the software driving the display, rename it, and use Wire1 and Wire2 as appropriate.

The mono 128x64 OLED i2c/spi displays have gotten fairly cheap, it might be easier/cheaper to switch displays then getting a number of backpacks and soldering all of the pins on it, etc.
 
The mono 128x64 OLED i2c/spi displays have gotten fairly cheap, it might be easier/cheaper to switch displays then getting a number of backpacks and soldering all of the pins on it, etc.

Thanks - but the housing for my MFC is already housing the LCD's.
It's 3mm Stainless (don't ask :) ) & don't want to go through that again.
 
And there are i2c multiplexers if you need to add more displays.

On the Teensy 3.6 there are 3 i2c buses, but most Arduino software only assumes there is one i2c bus, so you typically have to clone the software driving the display, rename it, and use Wire1 and Wire2 as appropriate.
Actually T3.6 has 4 I2C buses ;) Also would probably not be too hard to update a library to allow multiple I2c Buses.
For example the Adafruit_LiquidCrystal library, would probably not be hard to add another variable to it's I2C constructor, which is a reference to which Wire object to use and have it default to Wire. Once this was working, could maybe have Adafruit take a pull request as it would also benefit other Arduinos that have multiple Wire objects, like the Arduino Due.
 
Status
Not open for further replies.
Back
Top