Page 1 of 1

V1.0 has brightness control

Posted: Tue Jul 26, 2016 5:54 pm
by ali1234
Today I reverse engineered the I2C backlight control protocol and I found something very interesting. The V1.0 display supports 256 levels of brightness control. It's just the Pi firmware which prevents you from using anything other than full on and full off. If you connect the display to your own I2C master you can send the same command with a different parameter.

edit: instructions on how to do this removed in light of my post below.

So my question: if the display itself supports brightness control, why is it not enabled in the firmware?

Re: V1.0 has brightness control

Posted: Sat Jul 30, 2016 10:12 pm
by sbp
Very interesting.
I too would like to know why this feature is not available for us using the first version of the board?

Re: V1.0 has brightness control

Posted: Sat Jul 30, 2016 10:26 pm
by mosespi
Interesting. Can you elaborate on "connect the display to your own I2C master" ?

Thanks!

Regards,
-Moses

Re: V1.0 has brightness control

Posted: Sun Jul 31, 2016 12:27 am
by ali1234
Okay I finally got to the bottom of this.

First I reverse engineered the circuits: http://imgur.com/a/24TFn

Then I found the datasheet for the backlight driver chip: http://www.onsemi.com/pub_link/Collateral/CAT4139-D.PDF

Marking code indicates it is the same chip in V1.0 and V1.1. There are two differences between the boards:

1. The V1.0 attempts to implement "PWM on SHDN pin", and the V1.1 implements "filtered PWM". The difference between those modes is explained on page 10 of the datasheet.

2. The V1.0 is incorrectly laid out, and the VIN and SHDN pins have been reversed. That means the PWM signal is incorrectly fed into the voltage input instead of SHDN, while the SHDN line that is supposed to be PWM'd is connected directly to VCC. This is bad and to be honest I don't understand how the thing even works. It must be drawing parasitic power through the SHDN pin. It is almost certainly why the PWM has been disabled in software.

As for telling you how to force the V1.0 to PWM. I don't think that is a good idea given the layout error.

Re: V1.0 has brightness control

Posted: Sun Jul 31, 2016 7:43 am
by Paul Webster
Will be interesting to get some feedback from RPF folks in this one and see if it brings up the 1.1 board as a separately orderable product again.

Re: V1.0 has brightness control

Posted: Tue Aug 02, 2016 8:04 pm
by CarlRJ
The adjustable backlight was discussed as a standard feature in the months/years before the screen was originally released. At launch, I bought one expecting this worked, because I didn't look closely at the launch notes only that indicated on/off backlight control. The stories after launch hinted that they had discovered the problem at the last minute and simply downgraded the feature (thus, the hardware was designed to have the capability, but something was miswired and couldn't simply be fixed in software). Nice to see a concrete explanation of the problem, thank you very much for delving into this.

And yes, I would dearly love to buy a v1.1 controller board separately, even at a substantial portion of the cost for the entire display, just to salvage that first display (I bought a second one to use for the primary project I'd intended - a home automation/weather station control panel with continually adjusted brightness - the boxed first display is sitting on a shelf, would love to use it but not at full-brightness-only).

The v1.0 display did feel a bit like a bait-and-switch... if you need to pull a feature at the last minute, fine, but if you remove a previously-discussed feature, mention that up-front as a caveat in big bold print, rather than having the 27th bullet point say "includes on/off backlight control", merely omitting the key/expected word "adjustable" - that's awfully easy to miss. It was putting the best face on it, sure, but felt like a disservice to the customers - uncharacteristic for the foundation.

Re: V1.0 has brightness control

Posted: Wed Aug 03, 2016 7:11 pm
by ali1234
If you are brave enough it would be possible to desolder U1, R4, R5, R6, and then drop in a tiny replacement board:

Image

"X" needs a jumper wire to PP19.

edit: you also need to reflash the AVR chip to the V1.1 firmware.

Re: V1.0 has brightness control

Posted: Mon Aug 15, 2016 2:03 pm
by ali1234
I had the hardware mod made at oshpark. Works like a charm.

http://imgur.com/a/6rdaD

Re: V1.0 has brightness control

Posted: Wed Aug 17, 2016 11:29 am
by sbp
Hi.

As your original software approach was working then why not allow us to try it?

What would be the consequences of applying that? In your original post you seemed to have it working fine.

Steen

Re: V1.0 has brightness control

Posted: Wed Aug 17, 2016 11:30 am
by ali1234
It kills the boost converter eventually.

Re: V1.0 has brightness control

Posted: Tue Jun 13, 2017 2:51 pm
by stefanv
I know this is an old thread, but followed the link here from a new thread. :-)

Would it be possible to unsolder pins 4 and 5 of U1, lift up that side of U1 (perhaps while heating pins 1, 2, and 3), and then connect pins 4 and 5 to their correct pads using fine wire?

Re: V1.0 has brightness control

Posted: Tue Jun 13, 2017 2:53 pm
by ali1234
That would work I suppose. You need to put the jumper wire in too.

Re: V1.0 has brightness control

Posted: Tue Jun 13, 2017 3:02 pm
by stefanv
By the way, I don't think the chip is drawing parasitic power through -SHDN, at least not when the display is lit. It's probably drawing power from the ATTINY's P0 pin (and hence the display only lights up when P0 is high). If it were drawing parasitic power through -SHDN, the display would stay lit up even when P0 is low.

Re: V1.0 has brightness control

Posted: Tue Jun 13, 2017 4:16 pm
by procount
@Ali1234 - is the v1.1 ATtiny firmware available anywhere?

Re: V1.0 has brightness control

Posted: Tue Jun 13, 2017 7:04 pm
by stefanv
Another possibility, I think, would be to build just the low pass filter (R32, R33, and C74 from ali1234's schematic) on its own little board (one could even use a piece of strip board and through-hole components), connect it to U1's pin 3 and ground on the V1.0 controller board, and drive it from the RPi's PWM GPIO pin, completely independently of the display firmware. Leave the existing miswiring in place and the display turned on (via the firmware).