Using Master to write to TFT on Slave - can't get it to work

This should be quite simple, but there is something I don’t know.
The Master loops sending a text string to the slave. The slave writes a heading to the TFT in SETUP. This works.
The onReceive event reads the characters in from the master into a String. The String is then written to the TFT and output as Serial. The output as Serial all works. However the output to the TFT does not/ The TFT goes white (this seems to happen at the time of the onReceive event.
The slave sketch is attached.
Can anyone offer help?

Receiver.ino (1.76 KB)

Think about it. The LCD_RESET is on A4 pin. A UNO uses A4 for SDA. As soon as you use the I2C bus, the TFT is reset.

Of course, you could plug your shield into a MEGA2560. Apart from your convoluted "onReceive" handler, it looks as if it should work. Albeit very slowly. And you lose the hardware SPI for the microSD.


Hi David, of course, how logical is that?
My sketch is messy because I have been trying to find out exactly what was causing the TFT to reset.
I assumed that with the dedicated SDA SLC pins A4 and A5 would no longer have this function.
However, thanks David, MEGA2560 is to large a footprint for my project, so I will need to change my data transfer method.

Here is help:

Working solution: Arduino Uno as I2C slave displaying on TFT. +code

I too had the same problem: A TFT shield that occupied all pins (including the hardware I2C lines).
That is why i made a software I2C slave implementation that works well with my TFT.