LCD display using I2C on LyraT board

I wonder if anyone has managed to do this?

I’ve used I2C LCD displays plenty of times on more standard hardware but I think the LyraT board already uses I2C for audio. I’m trying to use the I2C pins on the board in the Arduino IDE (I will be using Phil Schatzmann’s awesome audio libraries) but am getting nothing.

The I2C display boards I have (both 16x2) are a DFRobot I2C LCD Module and a DFRobot Gravity LCD 1602 module, both (obviously) 4 wire.

Many thanks for any advice that you can give.

Have you confirmed that you are using the correct address for the display by running the I2C scanner sketch included with the Wire library ?

Thanks for the reply.

The I2C address scanners don’t seem to work - the one at RandomNerdTutorials (Rui Santos) gives

E (xxxxx) i2c.master probe device timeout. Please check if xfer_timeout_ms and pull-ups are correctly set

The scanner at Arduino Playground - HomePage just crashes.

From Googling it looks like the issue is that the board is already using the I2C interface, so using the default Wire is no good. I don’t have the technical knowledge though to get around this.

It is do-able apparently at low level using the Espressif IDE but I’d far rather use the Arduino IDE!

I2C is designed to support multiple users; that's why there are addresses. Messages for one device are ignored by all others. If you can't get any scanner to work, then you have a significant issue, and you need to resolve that first.

Don't confuse I2C with I2S.
I2S is a totally different bus for audio.
I didn't look what the board is actually using for audio, but I2S would make more sense than I2C.
Leo..

Yep, that’s why I’m asking if anyone has managed to get a display working with the LyraT over I2C ! :grinning_face:

The Espressif hardware ref says that the onboard Audio Codec Chip (an ES8388) is connected to both the I2S and I2C interface.

An I2C header is provided on the board though, the ESP32 pin defs are: SCL is GPIO23 and SDA is GPIO18.

I think I may have to set the pin definitions (as above) somewhere in an LCD library (I think this may be TwoWire?)… as I say, my main purpose was to avoid ‘re-inventing the wheel’ by asking if anyone else had done this.

It’s nice having all the stuff on one board but I might have to revert to the ESP32 and a VS1053 [yawn].

I think you are misunderstanding. FIRST make sure the I2C bus is working before attempting to work on the LyraT.

HOWEVER now I see where you may be confusing I2C with I2S. BIG difference.

Sorry, I don’t get your reply… I’m not ‘misunderstanding’, and I’m not ‘confusing I2C with I2S’ !

Great, so what does the I2C scanner show for addresses?

Yep, that is the crux of the issue - why aren’t I2C scanners working? As per post #3.

I understand perfectly well about I2C addresses and their purpose.

The LyraT is fairly unusual in having other chips and lots of functionality on the board. Maybe the Arduino coded scanners can’t handle what Espressif code is doing at a low level.

The scanners work on both Arduino and ESP

Yep, I’ve used scanners and I2C hardware on both Arduino and Espressif products…

The question here though is about using I2C specifically on the LyraT board. This board has an ESP32-WROVER-E on it but a lot of other stuff as well.

So it is a ‘3rd Party Board’ (as per this forum section) but not a simple board like an ESP32, or Nano. You would probably have to own a LyraT board to appreciate the issue. The hardware ref is at https://docs.espressif.com/projects/esp-adf/en/latest/design-guide/dev-boards/board-esp32-lyrat-v4.3.html if that helps at all.

Ok, good luck.