Pages: 1 ... 5 6 [7]   Go Down
Author Topic: Warning to users of some vendors LCD keypad shields.  (Read 74292 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

dr,
A diode would be better than a resistor as that would allow d10 to fully pull the line
going to the base of the transistor low (which eliminates the current going into it)
but would not drive the line high which is where the issue is.

An issue with using a resistor will be that while the resistor will protect the pin from
the transistor drawing too much current when D10 is high,
it creates a voltage divider with the existing pullup resistor so the signal going
to the transistor will be some voltage above ground that may not turn off the backlight
as it will allow some amount of current to flow into the base of the transistor.

The actual current going into the base will depend on the value of the resistor
you select, and value of resistor used on the shield as a pullup and the transistor
used on the shield.
Since most shields don't provide an accurate schematic with exact parts used,
it's not possible to precisely calculate a resistor value or tell if it would completely turn
off the backlight (i.e. it might still be very dim, when you try to turn it off)

For sure 125ohm or larger would protect the pin from excess current
but depending on the other components, it might not fully turn off the backlight.

If you wanted to experiment a bit, you could use a pot rather than a fixed resistor.
Then when D10 is low, turn down the pot until you see the backlight go off.
(there is no overcurrent danger in doing this)
You then need to see if that value is large enough to protect d10 from over current.
To do that you need to measure the current going through the wire when D10 is raised to high.
Since the resistor value of the pot might be low enough to allow excessive current,
you should carefully do this test.
Just set it all up, but don't fully connect the meter.
Then connect the meter. The backlight should light up and you can
measure the current coming from D10. If it is over 40ma, the resistor value
should be larger.

While there is probably a resistor value that works acceptable, I'd use
a diode instead as it won't waste additional power when the backlight is on.

--- bill


Is there a specific diode I should use (ie could you link me to a good one)? And I can just connect it between d10 on the shield and the arduino? Does the orientation matter?

I truly apologize for the simplistic questions.
Logged

Dallas, TX USA
Offline Offline
Faraday Member
**
Karma: 67
Posts: 2702
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Is there a specific diode I should use (ie could you link me to a good one)? And I can just connect it between d10 on the shield and the arduino? Does the orientation matter?

I truly apologize for the simplistic questions.
There is discussion about this earlier in the thread.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thank you bperrybap for the headsup and the test sketch (OP), and dweston for the diode fix. I just purchased a no-name board equivalent to the old dfrobots and the sketch showed it to be bad, with a current of 121ma. I found a 1N5817 on an old circuit board and after installing per dweston's directions (Reply#10) the current dropped to 65ma and the sketch indicated it was good. Both of you rock!
Logged

Dallas, TX USA
Offline Offline
Faraday Member
**
Karma: 67
Posts: 2702
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Is that current for the entire shield or just for the d10 pin?
If it is just for d10, then it is still too high as 40ma is the max current per pin.

--- bill
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I just purchased the DFRobot version from Amazon and it had this issue. I followed post #69 by Rocketeer503 but used a 1N5231 diode instead since it was what I had on hand. I ran the test sketch and it checked out good! Thanks! I will update if I have any issues down the road
Logged

Offline Offline
Newbie
*
Karma: 2
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey guys,
I just got this 1602 keypad shield http://imall.iteadstudio.com/im120417018.html and found this thread.
I've read through here and did the test - checked out bad, but I'm still very confused as to whether or not this is a shield that has the mentioned problem.
As a noob I see the D10 input mod from post #3 as the best "fix", but I'm unsure as to how to use this.
Could someone please upload a sample code with the D10 correction so me and others can test it out and use it in our future sketches?

Cheers!
Logged

Dallas, TX USA
Offline Offline
Faraday Member
**
Karma: 67
Posts: 2702
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey guys,
I just got this 1602 keypad shield http://imall.iteadstudio.com/im120417018.html and found this thread.
I've read through here and did the test - checked out bad, but I'm still very confused as to whether or not this is a shield that has the mentioned problem.
If you run the test sketch and it reports the shield has the issue. The shield has the issue.

As a noob I see the D10 input mod from post #3 as the best "fix", but I'm unsure as to how to use this.
Could someone please upload a sample code with the D10 correction so me and others can test it out and use it in our future sketches?


"sample code with the D10 correction" ????
I'm not sure what you are asking for.

I as well as a few others have posted h/w fixes for the issue.
I also posted a text document in a zip file that includes a description
of the issue, along with 2 possible s/w only work arounds, along with instructions
on how to use them in your sketches.


Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey guys,
I just got this 1602 keypad shield http://imall.iteadstudio.com/im120417018.html and found this thread.
I've read through here and did the test - checked out bad, but I'm still very confused as to whether or not this is a shield that has the mentioned problem.
As a noob I see the D10 input mod from post #3 as the best "fix", but I'm unsure as to how to use this.
Could someone please upload a sample code with the D10 correction so me and others can test it out and use it in our future sketches?

Cheers!


Take a close look at your circuit board around D10. Look for a thin trace coming off of that pin and going to a small IC, that should be the transistor (It might be under the LCD screen, verify with the schematic if you can). I wasn't able to find a germanium diode so I grabbed the closest one to me, a 1N5819. It is not the best diode for the job but it gets the job done. Essentially you are going to "splice" that diode in with the marking band towards D10. All you have to do is cut that trace coming off of D10 with an xacto blade, bend the diode into a U shape (be careful, they do crack open), scratch the black "paint" off of the trace, then solder the diode in place.


Part I used: https://www.sparkfun.com/products/10926


Hope this helps!


* photo.JPG (1243.46 KB, 2592x1936 - viewed 113 times.)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OP I just tested your sketch and it's fried my brand new Leonardo board smiley-eek

Looks like I've got the same LCD keypad shield as you.  I brought it ages ago here http://www.dx.com/p/lcd-keypad-shield-for-arduino-duemilanove-lcd-1602-118059#.U92lVXWj23A  Mine doesn't say DR Robot but looks like the same shield in every other respect. 

I was having problems getting it to display anything but a few solid blocks as you were initially (although my blocks were only half height for some reason).  I still haven't managed to get it displaying anything (despite the pins being correct as far as I can tell).  Anyway I thought I'd test if it also had the backlight issue you discovered.  On running your sketch the backlight faded in and out so I concluded it didn't have the issue.  I carried on trying to diagnose why the LCD wasn't displaying anything, then it stopped working completely after a few minutes.  Noticed the arduino chip was super hot.  Now VIN/5v and GND are dead short on arduino board (nothing else plugged into arduino)

When I tested the sketch on my older seeduino board the backlight flashed on and off indicating the shield did have the bad wiring.  For whatever reason the voltage didn't droop on my Leonardo making the sketch think it was fine (and going on to fry it).

It may have been a design flaw of my Leonardo in particular as it is a cheap clone http://www.dx.com/p/diy-eduino-leonardo-module-blue-black-213956#.U92p13Wj23A

Still I just thought I'd warn anyone else of the potential danger of running the sketch.
Logged

Dallas, TX USA
Offline Offline
Faraday Member
**
Karma: 67
Posts: 2702
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OP I just tested your sketch and it's fried my brand new Leonardo board smiley-eek
So sorry to hear that. This h/w issue is stressing the AVR WAY beyond it's maximum ratings.
When doing so there is always a risk of damaging the AVR.
The code tries to minimize the time it put the AVR at risk but unfortunately there is still
a risk of damage.

I don't think that this is due to a design flaw in the Leonardo board you have.
This is a h/w issue on the LCD backpack.

The only safe way to verify the shield for the issue is to not use the Arduino board.
I'll update the initial post to be more clear about the potential risks
of using the sketch.

--- bill
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I think you were very clear on the risks of testing this flaw.  Just interesting the sketch didn't seem to pick up the issue when I ran it on the Leonardo and ran the BL as if the wiring was good.  I have no doubt this is where the damage occurred and not in the microseconds you sketch took to test the fault.
Logged

Dallas, TX USA
Offline Offline
Faraday Member
**
Karma: 67
Posts: 2702
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I think you were very clear on the risks of testing this flaw.  Just interesting the sketch didn't seem to pick up the issue when I ran it on the Leonardo and ran the BL as if the wiring was good.  I have no doubt this is where the damage occurred and not in the microseconds you sketch took to test the fault.
If I had to guess, I'd guess that the "short" created in this case for this shield has enough resistance
that the output signal doesn't droop low enough to be read as a low.
So even though the pin is being overloaded, the sketch can't detect the issue.
And then by continuing to using it, it eventually burns out the pin.
I updated the initial post with an additional warning and a link to response #3 which now
describes a manual way to detect this issue using a meter.

--- bill
Logged

Fort Worth
Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

would like to know where is the "test sketch and it reports the shield has the issue. The shield has the issue."
the module turns on back lite bright blue with 16 spots on the upper line...
???
 smiley-roll-blue
Logged

Dallas, TX USA
Offline Offline
Faraday Member
**
Karma: 67
Posts: 2702
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

would like to know where is the "test sketch and it reports the shield has the issue. The shield has the issue."
the module turns on back lite bright blue with 16 spots on the upper line...
???
 smiley-roll-blue
I'm not really understanding your question, but the very first post has all the information.

--- bill
Logged

Pages: 1 ... 5 6 [7]   Go Up
Jump to: