Goldmine Electronics LCD pinout (mini-teardown)
Goldmine Electronics has this funky unknown LCD (p/n G15623) available for 50 cents each, most likely surplus from a defunct cell phone production run. That’s wicked cheap for a good project LCD, since trying to snag most any decent graphic LCD is either impossible in small hobbyist quantity, or ridiculously expensive. A few affordable displays are available, but they tend to be these big ugly industrial affairs, often with suboptimal controllers, poor readability and lacking onboard RAM. If you want something smaller or looking less like Soviet-era castoffs for your project, you’re up a creek.
As with many surplus electronics items, these nice LCDs are offered cheap precisely because they come in in a huge brick of leftovers with no documentation; nobody has any info on the part’s specs or how to drive them. Semiconductors with no datasheets or even pinout information are 100% useless*. The LCDs come in a package of 2 for $1, so I bought a package and took it apart to see if I could figure out how to make it work. Hey, it’s more fun than Sudoku :P
Package & Dimensions
The display is about 1.4″ wide by 1″ tall, with some of the vertical dimension being for the elastomer (zebra strip) connection (most of the horizontal area is viewable). It features an integrated clear enclosure and backing (it appears to be made for easy LED backlighting) with a silver metallic rim. The metal/plastic enclosure bits are easily removable without harming the panel. There are a bunch of numbers on the back; one of these helpfully identifies the controller IC bonded to the glass (more on this below). This text reads:
79Z93 SDI 13-04 S6B0755
H2.80 REVERSE UG-09B63-AA B31
Zebra strips are a pain to work with for many hobby projects; it pretty much requires you to lay out a PCB, and work out the mounting of the display (with appropriate cuts for tabs, pegs etc. that you don’t have an Eagle footprint or drawing for) so that your board / enclosure / etc. firmly squishes the strip against the board. But if you’re willing to go this route, you have a small, cheap and easy-to-use display for your project.
The display features a chip-on-glass (COG) controller with onboard display RAM, which is a huge plus. (On RAM-less displays, much of your memory and CPU horsepower goes to sending the same image to the screen over and over at 60 times a second…with larger displays, your average microcontroller isn’t fast enough even to do this and nothing else.) Bits of black tape cover the controller IC and the glass on the opposite side of it.
The controller is a Samsung S6B0755, 128 SEG / 65 COM driver+controller for STN LCD (datasheet available at AllDatasheet). It includes the display RAM, on-chip oscillators for generating the LCD drive voltages, with full software control (no fiddling with pots or resistor dividers trying to produce a viewable contrast).
HOWTO: Get the pinout of a COG device
But how do we get the pinouts?
We’ve got the partnumber and datasheet of the controller, which is already more than I had hoped for. So what now? Well, from the datasheet we can work out some “required” traces, these would be the VDD/VSS, reset line, Cxx (the chip is far too small to have onboard 1uF+ capacitors!), CLK/DB6 and SID/DB7 ones. There are some other important ones, but many of these could be tied high/low on the glass itself depending on the configuration in use. The indicated pins have to come directly out. Peeling off the top tape gives us no new information; sure enough, there’s a little unmarked chip bonded to the glass. Peeling the bottom tape, however, gives us a clear (literally) window into the pin/bump configuration and registration marks (tiny symbols on the die to help an automated pick ‘n place machine align it precisely with the on-glass traces) as well as a rather breathtaking look at the die itself. If you haven’t noticed, this thing’s Frickin’ Small. I don’t have a microscope handy, but I do have a Kick Ass Digicam that can manual focus down to about an inch. There’s enough optical resolution that you can make out all 317 pads (inside a package of 9.5mm x 2mm!) fairly clearly. In the image below you can see the alignment marks, indicating pad 1 is on the bottom left (numbering will continue counterclockwise from there).
Up-close view of the controller die and connection pads. Click for larger version.
The connections on the glass are made by ITO (Indium-Tin Oxide) deposition. This conductive material is (by design!) almost completely transparent, but can be made to impart a bluish tint if light is bounced off it at just the right angle. Using a white LED keychain flashlight (also from Electronics Goldmine), the following picture and some others were taken with the ITO traces visible. (Best results were obtained by positioning the LED and camera so that the traces of interest were directly over the reflection of the glowing LED package.)
Image showing the important ITO traces and their approximate destinations. Click for larger version.
The traces are tough to make out, but since we know they show mostly in the blue-green portion of the spectrum, a little monkeying around in PSP (splitting the color data to CMYK, throwing away the unwanted channels and recombining) makes them show a bit more clearly (the traces appear here in black). It would have been nice to get a clear image of both the traces and pads at the same time, but no dice. This was proving next to impossible even with Kick Ass Camera (the angle required to show the ITO deposits prevents the entire thing from being in the focal plane at a time!) so our “required pins” (and inferences about how much juice they carry) will come in handy since trying to count pins would be a royal pain. We know VDD and VSS, the main power connections, are going to be side-by-side near the center (from the ‘Pad Center Coordinates’ table on page 5) and heftier than most. From the picture, we see three very fat traces going into the chip; the leftmost of these covers over a dozen pins, with a little bitty split in between. This must be VDD, which is also tied to VCI (Voltage Converter Input), hence the little split (which is not really necessary). Immediately to the left of these are two thin traces, these must be some small-signal data lines, Indeed, CLK and SID are right there in the table. Not surprisingly, a large gap between these and the next ‘required’ signals on the left (meaning the parallel data pins, and thus also RW_WR and E_RD, are not used). Working out the remaining connections is pretty straightforward.
Pin numbering is relative to the ‘front’ of the display, with Pin 1 starting at the left. The first two don’t lead anywhere.
Pin / Name
6 CLK (serial clock; parallel interface not supported)
7 SID (serial data input)
Attachment, sans zebra strip
Ordinarily, to use the zebra strip you’d lay out a board with pads lining up exactly with the active bits of the LCD glass via the strip, and find some way of smashing the strip firmly against both the glass and the board. But I’m feeling ghetto and don’t want to spin a board just for this, so I’m trying an alternate approach. In my Goldmine order I also picked up a small bottle of “Amazing Wire Glue”, a relatively inexpensive conductive glue. (Usually such materials, e.g. silver conductive epoxy, are on the pricey side.) So here I have laid out pre-tinned strips of the smallest magnet wire I could find in the lab on a piece of thick double-sided tape so they couldn’t move around, and very carefully bonded them to the ITO traces. Since it would really suck to have one rip loose later, once the glue dried for a bit I gooped epoxy over them all.
You can also see how the glue job looks from the front.
Fire it up
The controller datasheet gives the recommended circuit hook-up (capacitors, etc.)…I used a VCC of 3.0V since that’s the regulator I had laying around, and the “Triple Boosting” configuration. I couldn’t get the others to work reliably, most likely having something to do with the long wires between the switching converter pins (C1+, etc.) and capacitors…the resistance of the carbon glue (which I haven’t measured) may be a factor too. All in all this whole setup was pretty unreliable (e.g. fading in and out somewhat); hopefully a real PCB layout with the switching caps as close to the display pins as possible will work dependably.
I loaded a variant of my standard LCD test image onto a spare PIC18 board. Here is also a picture of some random display memory contents on start-up.
I say it looks pretty good in its reflective mode. The backing is actually “transflective”; sort of a one-way mirror that reflects ambient light well while allowing backlighting to also pass through. Lit from behind, it’s not quite so impressive.
Note: Even though some of my pics show the die still exposed, don’t do this – the semiconductor junctions are sensitive to light, so exposure could cause undesired operation. Mine was going dead and resetting itself every time I took a flash picture at close range.
Setting up the controller registers correctly was a bit of an exercise. Some of these settings will depend on your rail voltage and which boosting configuration you use.
My settings are:
|Set partial display duty ratio||010010xx 01000000||1/64 (highest / normal) – it’s a 64-line display|
|Power control||00101111||All power circuits on, use internal everything|
|Select DC-DC step-up||01100000||Triple boosting for me. Change as needed for correct LCD contrast based on your VDD voltage.|
|Select regulator resistor||00100111||Maximum Vo. This is sort of a coarse contrast control. Tweak as needed…|
|Set electronic volume register||10000001 00111111||Currently set to max, but this seemed to have no effect for my ghetto circuit. This “should be” a fine contrast control.|
|Select LCD bias||01010001||1/5 bias. There is a great tutorial here on what these numbers mean.|
The only settings specific to this display are the duty ratio, power control, and LCD bias. Aside from those settings above, follow the datasheet’s flow diagrams for the order of setting up registers, turning on oscillators and starting the display.
Schematic, EAGLE footprint and sample code!
This file contains a schematic, EAGLE library, and sample code in C and PIC18 assembler: goldlcd.zip
Both show the basic code necessary to initialize the display and display an image. The C example includes a character generator and functions for text and bitmap display.
The schematic and footprint are verified as correct, as shown below :-) To allow the metal tabs on the LCD to clamp onto the circuit board, the board must be 0.031″ thick (e.g. half-thickness; if you don’t specify otherwise most board houses will give you 0.062″)
*okay, not entirely useless. In my lab we have a corkboard with a big bin of cheap opamps in a DIP8 package as thumbtacks.