Issue with Shield Shield v3.0.1, Photon, and Adafruit TFT shield for Arduino


I’m still experimenting with the Photon, Arduino Shield, and Adafruit’s TFT shield. :smile: Actually, I only want to switch off the backlight of the display. Therefore, you have to solder a jumper labeled Pin 3. Then you can use Digital 3 (i.e. WKP on Photon) to control the backlight. To test the installation I used the blink example. But, it won’t run. :frowning: The other samples run, i.e. I can use the TFT in general. So, why I can’t switch off the backlight?

To find an answer I’ve done some measurements and found out that without any load the Shield Shield pin changes between 4.8V (HIGH) and 0V (LOW) while blinking. That’s OK! But, when I connect the Shield Shield and the TFT shield I measure 3V(HIGH) and 2,5V(LOW). The LOW level is much to high!?

OK, changed to Pin 6 or 7 (D1/SCL or D0/SDA) and everything is working, i.e. the display goes on and off (most likely because I2C has a different voltage translation). Also everything is OK if i go directly on the Photon Pins. I guess that this behavior has something to do with the TXB0108PWR doing the voltage translation.

So, I took a look on the schematic of the TFT shield:

There’s a small circuit to drive the backlight controller using a transistor and two resistors (follow PIN3). The resistors build a voltage divider and I can measure 2.5V on the TFT pin if not connected to the Shield Shield. If connected the TXB0108PWR seems not to pull down the potential to ground.

What is happening inside of the TXB0108PWR? Is LOW different to GND? Is the resulting LOW level build by subtraction of the nearly 5V and 2.5V? Maybe this is an issue of the Shield Shield or Lady Ada’s layout is too simple? Any ideas? TIA and

Kind Regards,

Doesn’t have anybody an idea about to switch off the display, i.e. setting Pin3 to low with Shield Shield and the above circuit?


Hmm, after some more internet investigation I found out that the TXB0108PWR can only translate push-pull CMOS logic outputs. If for open-drain signal translation, a TI TXS010X products should be considered. And Lady Ada’s circuit seems to me like a simple open-collector circuit. That might be the reason. Is it possible to deploy TXS010Xs instead of the TXB0108PWRs? What was the reason for the TXB0108PWRs? Speed?


Opps. Spoke too fast…

So i guess you did this:

  pinMode(WKP, OUTPUT);

  digitalWrite(WKP, !digitalRead(WKP));

Have you tried manually jumpering the Pin3 to GROUND and see if the display backlight turns off?

Yes, if set directly to GROUND display turns off. If directly connected to the Photon, too.
Via the Shield Shield it won’t work. I see that I’ve misinterpreted the above layout. That’s no voltage divider before Q1. So, what about a pull down between Pin3 and GROUND?

I’ve tested the idea with the pull down resistor: Build a voltage divider and adjust the operating point of Q1 doesn’t work. But, I’m not sure if R9 is right. Wouldn’t it be better if R9 sits between 5V and collector of Q1?