Many years ago, I pulled an LCD out of a GPS unit from the days before cars and smartphones having navigation features. This LCD is a color LCD with a backlight. It’s a very different technology, and much more challenging to interface to. I can’t even find a proper datasheet for the module.
There are datasheets available for modules with similar part numbers. Based on the circuitry in the above picture, this looks like the closest pinout:
B&W LCD modules usually have a built-in charge pump to generate their needed voltages. Unfortunately, the datasheet also says this module needs those voltages supplied externally, and they’re a bit weird.
VDH: +8.3–+8.7 V @ 3.3 mA
VGH: +16.2–+17.0 V @ 0.23 mA
VGL: −8.35–−8.0 V @ 0.17 mA
VCC: +2.5–+3.3 V @ 0.22 mA (this is actually a normal voltage)
Fortunately, I don’t have to design and build a boost circuit myself; you can Just Buy voltage boost modules easily from many places. Getting a module to generate that negative voltage, however, is a lot harder. But it turns out that charge pump chips are A Thing you can Just Buy on Digikey. Sadly, charge pump chips tend to have fairly low output current capability, so while charge pumps could produce the high voltage for the backlight, it would require several and be kind of awkward.
So last week and this week, I finally sat down and learned enough about PIO on the Pi Pico to produce suitable timing signals for the module.
Great! I have a power circuit, I have logic signals, I have a suitable connector, now to see if I can display a picture. Well, one problem: I haven’t built something to hold the LCD. I don’t have a 3D printer, nor any CAD skills, so tonight’s project is to design in Adobe Illustrator a case for the module made of cardstock.
this is the wrap-up post for the prototyping phase of the little project that i've been calling 'projekt' over the past few weeks. i will be posting pics and a video of it working in quick succession over the next few posts, starting with this one.
this is a picture of the prototype shortly before i completed all it's required wiring and before i hooked up the control pins to the arduino. you can see that i've actually colour-coded the wires carrying the current from Vcc and those bringing them to Gnd. (red & black) the only things missing are some of the IC I/O pins which i later pulled to either 5V or GND depending on what the datasheet recommended.
i later hooked it up to the arduino and uploaded a sketch to turn on every output to test the matrix. as you can see, it lit up in a brilliant fashion after the shift register was initialized. this was one of the more significant milestones of the project since it was after close to 72 hours of painstaking work and seeing it light up on the first time without any problems was truly a very satisfying experience, and one that was quite memorable for me. you can see a pair of decoupling capacitors on the edge of the board. the display is emitting white light (with a slightly bluish tint) as all three LEDs (red, green and blue) in each pixel is currently switched on.
i later measured the total current draw of the prototype using my DMM and it came to around 400mA. i believe this was due to the current-limiting factor of the USB interface it was running off. needless to say, this is probably *not* the maximum brightness of the matrix as the absolute maximum points it to having a 3.84 ampere draw. however, i suspect this will make it extremely blinding and cause some lifespan issues. large current draw will not be an issue however, as i will explain in a later dotClock post.
as i mentioned in an earlier post, i have given the prototype deeper consideration and have since branched out into two separate projects, of which i'm referring to internally as dashClock and dotClock. in the process of embarking on this prototype journey, i realized that the control circuit for a single 8x8 matrix, while not extremely complex, was very repetitive, greatly increasing it's intricateness. (the amount of cabling present on the breadboard is testament to that)
the prospect of scaling the project into a 32x8 matrix onto a soldered perfboard was enough to convince me to branch out into a side-project involving seven-segment displays (SSDs) instead (which, for all intents and purposes, are much easier to control than LED matrices). since i only got one try (or at most, a few) on a soldered perfboard, a simpler circuit involving SSDs seemed to be a more logical intermediate step for me so that i could acquire the experience i would need to pull off the 32x8 matrix.
i later tweaked one of the examples included with the arduino TLC5940 library that was supposed to create a 'nightrider-like' effect so that it would work with the matrix. it was a quick and simple test of the ability of the TLC5940 to handle fast scan rates, which i would have to make extensive use of once i began work on the 32x8 matrix.