Grow - unable to turn off backlight

Hi all,

First of all, I love this product; it’s going to help with reminding me to keep my plants alive :)

I do have an issue with the back-light though, as in when I call display.set_backlight(0) it does nothing. So far I’ve created a small python script to mimic the behavior of toggling the back-light and that also doesn’t turn off the back-light. I’ve tested the pin with a simple LED circuit, and it works, I’ve also traced all the wiring as far as the connector for the display.

I do have a video showing that the pin is being toggled between 0 and 3.3 volts, but with no change on the back-light. I’ve attached a picture of the solder joints (though I’m confident it isn’t that)

[Imgur: The magic of the Internet](Link to video showing GPIO does toggle and screen doesn’t)

I’m at a loss to be fair, the Pi Zero is on latest firmware and code, the Pi Zero works with my enviro+ pHat; I’m just not sure where to go from here.

One thing I have noticed is that on the schematic for the grow-mini it seems to have the pins of DMC2400UV mis-numbered, as compared to the datasheet. ie, the datasheet would translate the schematic numbering as thus (schematic first, datasheet second);
1 -> 4
2 -> 5
3 -> 6
4 -> 1
5 -> 2
6 -> 3
grow-mini
DMC2400UV datasheet
I don’t know if this would have any relevance as to back-light functionality though.

edit: except the grow-mini schematic also has the zener diode symbol pointing towards the drain for the back-light enable, and the datasheet shows that to be Q1, but as per datasheet pinout and testing the back-light enable is actually connected to Q2; strong contender for a reason as to why it’s not possible to turn off the back-light. I’ve emailed the support address, cause if this is the reason it could be quite a large batch with the same issue.

I seem to remember the first batch had a wiring error, and I think it was the backlight? They were on sale with a disclaimer about it on the product page. And a note that it would be fixed in the next and future batches.
I have several of the 0.96 LCD breakouts, and grounding the BL pin will turn the backlight off, with no harm to the display. I do believe it is the same display used on Enviro and Grow.

Yeah, I’m currently of the opinion the DMC2400UV is on the wrong way around; if it was 180 then everything would be as it should be. Unfortunately there was no disclaimer on the page when I purchased, as I would have waited for the fixed batch. The plants I’m monitoring are in my bedroom and I like a super dark room to sleep in, got some weird thing where any light is amplified beyond reason in the dark.

I can relate to that. I am in the finishing touches of a three display setup running the Enviro+ all-in-one-mini example. Instead of having too cycle through the graphs I have temp on one display, humidity on another and pressure on the third. I want to leave it running 24/7 so the graphs are up to date but don’t want the room light up at night when we are trying to sleep. I have an easy out though as I can just ground the three BL pins with a switch to turn them on and off.

It’s amazing how bright they are in a dark room, lol. And yeah, I know I could ground it out, but that means a switch and having to remember. I’m not good at remembering until I’m tucked up in bed going, oh crap, lol. Software is much easier for me, and if it came down to the grounding out there’d be a little extra circuit added in :D

yeah, and for me its times 3.

I have this crib note saved away, not sure how relevant it is though, it was posted here in a thread sking how to.

disp.set_backlight(0)
After doing something like this to initialise it :-)

# Create LCD instance
disp = ST7735.ST7735(
  port=0,
  cs=1,
  dc=9,
  backlight=12,
  spi_speed_hz=10000000
)

# Initialize display
disp.begin()

As a side note, I’ve setup a MQTT broker, and all my Pis report back to it, including my enviro+ plus one ( the other 2 are Pi Bs with extra sensors added on. Then I’ve an app on my phone that lets me customize my display as I want. Seems to make life a little easier.

Pretty similar to the libraries and my little python testing script as well; seems to be that the circuit is setup for a N-channel FET but is meeting a P-channel FET instead.

As a curiosity, here’s my code I used for (very) basic testing :)

#!/usr/bin/python3
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(True)

backlight = 12

def set_backlight(value):
	if backlight is not None:
		if value == 0:
			GPIO.output(backlight, GPIO.LOW)
		if value == 1:
			GPIO.output(backlight, GPIO.HIGH)

GPIO.setup(backlight, GPIO.OUT)
GPIO.output(backlight, GPIO.LOW)
time.sleep(5)
#GPIO.output(backlight, GPIO.HIGH)


set_backlight(1)
time.sleep(10)
set_backlight(0)
GPIO.cleanup()

I’d even tried swapping the 0 to be high, and 1 to be low, but that didn’t work either. But the GPIO does toggle from 0v to 3v3; I guess that’s why my brain eventually saw the chip was flipped around.

I know on the 0.96 180x60 LCD. floating or high is backlight on. And low / ground is backlight off. If I leave the backlight pin not connected the displays work just fine.

1 Like

If you go here, Contact Us for Raspberry Pi Technical Support – Pimoroni
You can e-mail Pimoroni support directly and you should be able to find out which batch your Grow is from.
Another option is to @Matt who I believe is with Pimoroni tech support.

Hi,

I’m on the same boat. Got three Grow Hats after the disclaimer got removed.

“our first batch of Grow HAT Mini is a very exclusive Backlight Always On edition and (because we hate e-waste) we’re selling it at a special price! If being able to control the screen backlight is important for your project, we’d recommend waiting for the next batch.”

I just got mines shipped at the beginning of December and it seems that it was still a “Backlight Always On” even though the disclaimer was not there and neither their special price.
Tried your scripts too, with no success

Thank you fot that!
It works great on my 0.96" SPI Colour LCD’s (PIM436)
One of them is in my bedroom and it annoyed me that I wasn’t able to really switch it off / dark.

Edit:
Oops: after taking a closer look at the displays library (st7735) I found a standard function for that, which also works just fine! 😑

disp.set_backlight(False)

Hey!

Looking into this and following the code examples I confirmed the batch my hat came from wasn’t the first batch but the diode being back to front had snuck in.

After getting a replacement i updated a pull request I’d made and was successful! Here I’m covering the light sensor to demonstrate:


Code here: Turn off Backlight when the screen is black/blank by tomjn · Pull Request #28 · pimoroni/grow-python · GitHub

As for the diode, support pointed out the diode in question that needs desoldering and re-attaching but rotated 180 degrees if you fancy doing it without getting a replacement:

1 Like

Had this issue with an old Grow HAT. Pimoroni support were great at helping, first sending out a replacement which also had the same issue and eventually finding that the rotated diode had slipped into the new batch of HATs too. Now working by toggling GPIO 12.

Old on the left, fixed on the right: