LCD Shield not behaving

Anybody else notice a backlight control problem in the DFRobot schematic?
http://www.robotshop.com/content/PDF/dfrobot-lcd-keypad-shield-schematic.pdf

D10 is hooked up straight to the 9013 base with no current limiting resistor.

When D10 is an input, the pullup will turn on backlight.
When D10 is an output and low the base goes low and the transistor turns off.
But when D10 is an output and high won't it
"short" through the transistor to the emitter?

Seems like the circuit is missing a diode to ensure that D10 only pulls the base low
and lets the resistor pull the base high.

Without the diode it seems like D10 really needs to either be an output with the pin low to turn
off the display or an input to turn on the display which precludes the use of PWM.

I have a shield that uses a similar circuit. Mine also has a switch to disconnect the ground to the
transistor emitter so you can permanently disable the backlight.

I just measured the current from D10 when D10 is high and it is 95ma!!!
I guess it is lucky that the pin output was not fried.

While the AVR doesn't get "hot", it does get warm when D10 is high
for a few minutes.

Anyway, I'm in the process of modding my shield with a diode.
It looks like an easy mod on the shield I have as the trace to D10 is on back of the shield
for a little bit up by the header before going through to the other side to the transistor which is under the LCD.
Just cut the trace and solder a diode back to the trace.

I'll post a few before/after photos after I get the mod done.

--- bill

But it's on the Internet, it must be OK.

If they had taken the time to draw a proper schematic diagram they might have spotted that obvious error. It's too bad that people think that these monstrosities (produced I think by Eagle) are true schematics.

Don

Here is a thread I started about the backlight control circuit issue:
http://arduino.cc/forum/index.php/topic,96747.0.html
with some photos of the emartee shield I modified.

--- bill

vanchopski:
The shop I bought the Uno and the shield at said they plug together. The pins all line up only one way.

See attached photos. Thats how the screen looks no matter what I do. The only time it changes is when I reset it and then it blinks off then back on.

I've got exactly the same issue.
mine if from OSEEP. Grrrr.

Hi there
I tested the codes from the below address: for my LCD Shield
http://www.robotshop.com/media/files/pdf/wiki-dfr0009.pdf
both <LiquidCrystal.h> and <LCD4Bit_mod.h> libraries:
but the lcd shield do nothing with any codes, The shield contrast popotentiometer dosn't work too ... I mean it has no effect to the back-light of the LCD!
what should I do to test my shield and displaying something instead white boxes.

Does any body have a working code for DFROBOT 1602 arduino shield?
all the codes that I tried them before, NOT working ... all the time with any program, the LCD displaying the white boxes! ahhh

my 1602 lcd keypad shield is labeled as "D1 ROBOT". it looks exactly the same to yours.

here's my constructor.

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

to turn off the backlight
analogWrite(10,0);

to dim
analogWrite(10,50); //max brightness is 255