Graphical LCD (ST7920 Driver) - a warning and a question

I just got a shipment of the generic "12864 128x64 Graphic Matrix LCD Module ST9720" screens from China.

The PSB pin is hardwired to Vdd, which means that if you attempt to put it into serial mode by taking PSB to ground, you short your powersupply to ground. Gah.

Now for the question:

Is it possible to adjust contrast without a pot? Can I run a PWM signal into V0?

The PSB pin is hardwired to Vdd, which means that if you attempt to put it into serial mode by taking PSB to ground, you short your powersupply to ground. Gah.

Are you sure it is hardwired (connected directly) to Vdd and not 'pulled-up' via a resistor?

Is it possible to adjust contrast without a pot? Can I run a PWM signal into V0?

That may be a problem since most GLCDs require a negative voltage for the contrast pin.

I just found this --> Graphical LCD (ST7920 Driver) - Wiring Help Needed - Interfacing - Arduino Forum which may or may not be of some help.

Here's another one --> http://www.bajdi.com/cheap-128x64-graphic-lcd-12864zw/ try a Google search for glcd psb pin.

Don

floresta:

The PSB pin is hardwired to Vdd, which means that if you attempt to put it into serial mode by taking PSB to ground, you short your powersupply to ground. Gah.

Are you sure it is hardwired (connected directly) to Vdd and not ‘pulled-up’ via a resistor?

Well, if I ground PSB and I power the screen up from a USB port, the port shuts down from current overload. My fluke DVM says there’s 0.2 ohms between Vcc and PSB.

And the screens I got last time work just fine. So it’s a defective run… Fortunately I did not fry anything, just a few $ and some hours tracking it down.

floresta:

Is it possible to adjust contrast without a pot? Can I run a PWM signal into V0?

That may be a problem since most GLCDs require a negative voltage for the contrast pin.

I just found this → http://forum.arduino.cc/index.php?topic=22588.0 which may or may not be of some help.

Here’s another one → http://www.bajdi.com/cheap-128x64-graphic-lcd-12864zw/ try a Google search for glcd psb pin.

Don

Thanks, I’ll look at those. I’m not familiar with these LCDs.

cptdondo:

0.2ohm would suggest that PSB is indeed shorted to VCC. I would suggest simply finding the trace and cutting it with a xaco knife, be careful not to cut the other traces. But then you will be able to either ground or apply vcc to the pin when needed.

Great minds think alike. Turns out that there was a jumper disguised as a resistor, shorting Vdd to PSB. I removed it and now all the screens work. :slight_smile:

Just a "beware" on these cheap Chinese units; sometimes they do strange things. All in all I'm quite happy with the quality and response of the direct-ship vendors but once in a while they do make life interesting.

Great minds think alike. Turns out that there was a jumper disguised as a resistor, shorting Vdd to PSB.

I suspect that the original intention was for a pull-up resistor to be installed but they put in a 0-ohm resistor instead.

Don

I've seen several of these units, all using the same PCB but populated differently. I have one with a tiny SMD contrast pot soldered on the back (the silk screen label is VR1) and positions R6 and R7 are open. Others have fixed resistors, and some have the contrast pin of the chip brought out to the connector.

i have the same problem with such a display...do you remeber, which resistor caused to problem ?

cider101:
i have the same problem with such a display...do you remeber, which resistor caused to problem ?

Please describe what problem you have, and post a photo of the back of the display.

dc42:
Please describe what problem you have, and post a photo of the back of the display.

if i connect the PSB pin to GND, the backlight led goes of and the display gets warm/hot. I measured 5v from PSB to GND.

Here is a link to the backside of the PCB. On the front is nothing except the display, therefore i didnt take a picture
http://i1224.photobucket.com/albums/ee372/cider101/Misc/47c1839a-e114-4b78-b2c8-8eef0633b8ee.jpg~original

I tried to trace the PSB lead. I seems, it ends on the spot marked with the black arrow...
Thx for your help in advance!

Looking at the photo, it appears possible that PSB is connected to one side of R9, and R9 may be a 0 ohm resistor (with the other end presumably connected to +5V). Can you check this by visual inspection and with a multimeter? The ST7920 board I have is unfortunately different in that area and so not directly comparable.

thx for your answer

i tried to mark some leads/traces near the PSB. But some connections/traces are just guesses since the white labeling covers them.
http://i1224.photobucket.com/albums/ee372/cider101/Misc/photo1.jpg~original

and here is the original pic.

I'll try to take a high res picture with my camera tonight....

You may need to use a multimeter to check whether PSB is connected to R9. My guess is that PSB is connected to both R9 and R10, that the other side of R9 goes to +5V, and the other side of R10 goes to ground. So the display can be fixed in serial or parallel mode depending on which one is fitted, or can be selected via the PSB pin if neither is fitted. So if you want to use it in serial mode, you will have to unsolder R9.

thanks a lot for your help!
I'll check it this evening and post the results...

dc42:
You may need to use a multimeter to check whether PSB is connected to R9. My guess is that PSB is connected to both R9 and R10, that the other side of R9 goes to +5V, and the other side of R10 goes to ground. So the display can be fixed in serial or parallel mode depending on which one is fitted, or can be selected via the PSB pin if neither is fitted. So if you want to use it in serial mode, you will have to unsolder R9.

thanks mate...i owe you a big pint :slight_smile: I desolderer R9 and it's working now. Thanks again !

I’m working with the same or similar LCD (12864B ver2.0). I’ve included an image of the back of it. I have no yet connected this LCD to anything as I’m still trying to learn how to wire it to the UNO without destroying anything. I’ve read through this forum post to try to give as much info, so helping me would be easier. I get a resistance reading of 33.7 ohm between BLA&A and 0.6 ohms between BLK&K I see at JP2 there are three pads, two are labeled S and P and the middle pad is not labeled and is connected to the PSB edge connection. Do I solder a bridge between the S pad and the middle pad to put it into serial mode? I’m connecting to an authentic Arduino UNO. I am a beginner. I greatly appreciate any info anyone can add.

So your LCD already includes a series resistor for the backlight (the 33 ohms that you measured). It also has the contrast adjustment pot built-in. You are probably right about JP2, you can either solder a jumper there or you can connect the PSB pin on the edge connector to +5V or ground to select serial or parallel mode. But I suggest you trace that wire from the jumper middle pad to the PSB pin on the edge connector, to make sure that it isn't already connected to +5V or ground through a 0 ohm resistor, as was reported by someone else using a similar GLCD recently.

EDIT: I can't see any 0 ohm resistors in that photo, so I think you are safe.

I'm wired up and I soldered the middle pad to the s pad and loaded one of the example scripts into my UNO and everything works perfectly the first time!! I'm totally siked! Has anyone here ever used the u8g library with this screen? I only had one semester of C++ and I'm finding it very hard to follow. I was hoping it would be closer to how I was using the lcd print command. I'm building a coffee roaster and I just want to output data to this nice large screen, like temperature, time, fan speed, and deviation from my PID profile instantly and over the last 5 or 10 seconds. Does anyone know of a better library maybe? I don't really need graphics like frames and such. I've already put about 10 pounds through this roaster and now I want to jazz it up a bit.

I know of only two Arduino libraries for ST7920-based displays. The first is the u8glib library that you are currently using. The second is a library that I wrote for a particular application. You can find it find at arduino/Libraries/Lcd7920 at master · dc42/arduino · GitHub along with a simple sketch that uses it. It's less comprehensive than u8glib, and it uses up 1K of memory as an image buffer. I don't know whether you would find it any easier to use than u8glib.