How to Make a Display for Several Lines of Text, a Lotta Text on a MCU Project - Page 1
Forum section: electronics / general

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 24, 2015, 09:12:34 pm
content: I have several HP Deskjest, HP ALL-IN-ONE printers that friends have given me for parts. They have nice VGA displays that work, but how to salvage them?Can I hack them for my own use? What I would like to do is interface them with a few wires, a simple 8-bit/16 bit or serial interface to a PIC processor. I know it can be done!..(if my best friend was an HP engineer that designed the circuit/code for the display!)Should I've posted this under Projects and Designs?If this is a dumb idea, what cheap choices are there for a multi-line display (>4 lines by 20 chars LCD) for a MCU project?

author: SL4P
author_rank: Super Contributor
timestamp: March 24, 2015, 10:54:01 pm
content: Wrong forum?Talk to your 'best friend'...He can tell you far more than almost anyone else here.(He developed the hardware and original SW)And yes..l unless there is something specific to those displays, the interface is trivial, and requires you to explore the chipset and suitable supporting HWGood luck.

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 24, 2015, 11:17:37 pm
content: Your reply offers no help!I don't have that friend at HP.

author: SL4P
author_rank: Super Contributor
timestamp: March 24, 2015, 11:27:30 pm
content: Sorry, I read that your best friend (was) the developer!...NotifPost some pics, device numbers etc, I'm sure I/we can offer more specific help.20x4 LCDs are cheap, and if you're nearby, I'd gladly give you one along with some code assistance!cheers - my bad

author: westfw
author_rank: Super Contributor
timestamp: March 25, 2015, 01:26:11 am
content: QuoteProbably not full VGA (QVGA, perhaps?)You can check the wiring, but I think that usually, these will be raw LCD panels, and the printer will use a relatively complex microprocessor that has a built-in LCD interface. Just like smart phones, laptops, GPS units, eBooks, and ... lots of other "video appliances." This tends to make them really difficult to interface to from lesser microcontrollers :-(

author: SL4P
author_rank: Super Contributor
timestamp: March 25, 2015, 01:38:48 am
content: no location in your profile...if you're in AUST I can send you a 20x4 white on blue.As above if you can identify/pics - we can help a.lot more

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 25, 2015, 03:14:23 am
content: Progress?I completely took apart the HP All-In-One and now and all I've saved is the switching power supply, the main MCU board and the LCD/select-switch board. All cables were removed from the main board except the power supply connector and the 22-pin flat printed cable connecting to the front panel LCD/select-switch board. There was an additional flat cable of about 16 pins that I discarded that also connected to the 20 or so front panel switches matrix but seems to not at all affect the TFT display.The board lights up when power is applied, displays the normal 24-point size letters "HP" centered on a gray background and then below shows an animated multi-grayscale progress bar and then finally, after about 30-secs changes to the HP blue screen of death, with Errror 0x37E0 displayed in white letters on blue background.I guess it noticed that nearly everything has been disconnected!So, all I need to do is figure out the pinout of 22-pin connector from the ARM processor on the main board. This connector seems only to use 18 of the 22 pins, and obviously at least two are for power, leaving 16 to hack into other functions.The LCD/select-switch board has a "black blob" unknown graphics controller that feeds a very low profile flat connector to the ultra high density umteeen-wire flexable hi-tech double-sided PCB on plastic film cable going to the graphics display itself.

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 25, 2015, 03:18:34 am
content: Thanks, westfw,BTW, the printer display was from aHP Photosmart 3300combination Fax, Scanner, Inkjet now reduced to a pile of pieces on the floor.Yeah, not a true VGA in the PC sense of 640x480, but maybe some sort of TFT QVGA, but looks to me like it has very fine definition and the display is nice and bright and colorful and has about a 3.5-in diag. display area size.

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 25, 2015, 03:38:07 am
content: Thanks a million SL4P, but I am living in the land up-over andneed more than a blue 4-line by 20 display for this project.

author: SL4P
author_rank: Super Contributor
timestamp: March 25, 2015, 04:40:11 am
content: Up & Over - oh well... I lived there once too!Without checking too deeply on models etc, the display looks like a colour bitmap (not character based...) the good news is it still works, the bad news is that all the display data is probably burned into the uP on the main board.Nothing other than sensor status and buttons will be sent to that board - so displaying your own text etc will be somewhat less than easy. The only other source will be reading images from the CF/SD card - to preview images on the display. I doubt you'll have access to strings/fonts oranythingelse at all.Next?There are some tear-downs to recover (Canon) printer control panels - probably others as well... If you have a scope, dig around to learn about the display signalling and other components before you break something(!)In reality, the whole cpu & display probably costs HP a grand total of $5 ex-factory in huge quantities, so the effort needed to repurpose it for a one-off hobby solution is hardly there, when uP dev boards with ethernet, VGA LCD and other peripherals are available for under $50 all-in.Labor at $50-80 per hour x 30 hours (to get it roughly right) == $1500 to $2400 for a one-off gadget with very little flexibility or chance of future supply, but you will learn a lot !

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 25, 2015, 11:26:28 am
content: SL4P, Thanks for the warning.The TFT driver chip is for sure located on the front panel PCB(its a >=48pin) and it is a "black blob" of epoxy covered package-less TFT display controller chip., but there are no sensors or this two-side PCB, so I am sure the mainboard ARM processor is only sending it high level graphic commands and data and also power via the 22-pin flat cabble connect.Fortunately, the surface mount connector on the 22-pin flat cable connector has easy to probe large pins.But your wisdom of my labor costs v. buying a new known datasheet supported display makes good sense.I have a 4-channel Rigol 200MHz scope with 2meg of memory so I could monitor up to four signals at a time, a clock signal would be easy to find, the CS and Reset pins should also show very little going on, and the data pins should sing like a canary.But even at that point, having clock, control and data lines isolated, hacking the display interface is a daunting Chinese Puzzle.I would have , to go through a lotta permutations of data bus wiring bit0 to bitx order possibilitites to maybe someday correctly identify the order of maybe 8-12 bits of data bits. The number of tries to do this is a big-big number. I could assume that the data bins are in order on the connector, but PCB constraints may mean that bit6 follows bit 8 etc.And even at that point, if I somehow manage by luck or fate to get the display to display some garbage, I still would not know the high-level commands and the syntax that are the libraries imbedded in the ARM processor code that feed the display processor on the front panel.Also, I know that the display is obviously also a touch screen, so this adds to the complication, there is got to be bidirectiional communication back to the mainboard for display status and touch feedback.Oh Dear!On the other hand, the power supply is a very compact, metal shielded dual 31-V at 1.4 amp unit, could be great to power a dual tracking power supply or else could be used for my Hakko 888b soldering handle and the mainboard also has a lot of nice labeled switching inductors to be salvaged etc.Ok, then, then perhaps there exits the software library supported Arduino display of choice as the answer. Has anyone found how to adapt a 3.5-in graphic or graphic-touch display that has a SPI or I2C serial interface?With the Arduino TFT libraries, it might not be so hard to think that it would be a place to start to find an Arduino supported display whose TFT libraries can be adapted to become the display of choice for anyone's generic PIC project?Anyone out there not in the Arduino camp but has adapted an Arduino display for their MCU project, or else could guide me to something else cheap or better?Help! I have found a 3.5-in display on Ebay, the libraries were open source C-code, but all the C-code had comments in Chinese!

author: SL4P
author_rank: Super Contributor
timestamp: March 25, 2015, 11:37:44 am
content: Nice scope...!I think your reward factor will be a lot better going with off the shelf LCD goodies.There are many Arduino compatible graphic LCDs... some better than others?Search the forums for glcd, and you may get a direction to follow.The issue I've seen as most 'variable' is the quality of the edge/back lighting.SPI seems the most popular interface for hobby style displays.

author: JacquesBBB
author_rank: Frequent Contributor
timestamp: March 25, 2015, 11:48:43 am
content: the screen depends very much on your use.I have several of these two lineshttp://www.ebay.fr/itm/Green-green-backlight-LCD-1602-16x2-Characters-display-for-Arduino-/321705671798?pt=LH_DefaultDomain_0&hash=item4ae726fc76But if you want 4x20,You can get one of thesehttp://www.ebay.fr/itm/2004-204-20x4-Character-LCD-Display-Module-HD44780-Controller-Blue-Blacklight-/400448319287?pt=LH_DefaultDomain_0&hash=item5d3c946f37with the I2C interfacehttp://www.ebay.fr/itm/IIC-I2C-TWI-SPI-5V-Serial-Interface-Board-Module-for-Arduino-1602-LCD-Display-/181308046882?pt=LH_DefaultDomain_0&hash=item2a36cd3e22Of course, these are basic character screens, but very useful. You may then want to go to color bitmat screens.There is a large choice of them. Consult the Adafruit website for a selection.http://www.adafruit.com/category/63The problem with all screens is that they are power hungry. If you look to low power stuff,what I like is the nokia 5110http://www.ebay.fr/itm/84X48-Nokia-5110-LCD-Display-Module-blue-backlight-with-PCB-adapter-for-Arduino-/110950888604?pt=LH_DefaultDomain_0&hash=item19d530349cI have not found many that will beat it in term of power consumption.

author: 22swg
author_rank: Frequent Contributor
timestamp: March 25, 2015, 01:04:15 pm
content: I have played around with 0.96" OLED recently , This one I2C. 8 lines x 24 of very small chars if required ( firs pic) , did my own font thing (other pics.)http://www.electro-tech-online.com/threads/that-hello-world-oled-moment.143878/#post-1212643

author: PioB
author_rank: Regular Contributor
timestamp: March 25, 2015, 01:55:21 pm
content: Hi,here's one of the canon links:http://hackaday.com/2014/09/11/re-using-the-lcd-button-assembly-from-a-broken-inkjet-printer/There seems to be a wide range of libraries, maybe one has something:http://playground.arduino.cc/code/LCD(HpLaserJetLcd?)

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 25, 2015, 02:27:06 pm
content: Thanks, JacquesBBB and 22swg.However, I definitely want to have more than 8 lines of display with a display size of >= 3.5-in diag.

author: 22swg
author_rank: Frequent Contributor
timestamp: March 25, 2015, 02:41:42 pm
content: Hi SuzyC .... My other display is a 4D systems , serial 3.5" as per link do loads with it has touch , SD slot and sound ... but not cheap... paid 60 GBP some time ago, Hows the robot doing ?http://www.4dsystems.com.au/product/uLCD_32PTU/

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 25, 2015, 02:48:37 pm
content: PioB, Thanks, I browsed the Arduino LCD libraries but, although the list is long, there doesn't seem to be much of any value except for the usual dumb max 20 char x 8 line LCD display.There doesn't seem to be a lot of useful knowledge for the latest known able, available and cheap for sale >128x64 TFT display.

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 25, 2015, 02:58:58 pm
content: Thanks again for your help 22swg!The robot is coming along fine.It will be yet some while before I catch up with the Japanese.As you can see, I am now working on adding a display to expose variables, procedure states etc for testing/debugging/tuning of my code.That display you've used seems to me 2 b 2 expensive. There has to be a cheaper alternative short of hacking this fine HPdisplay.I wonder if they once told Turing,"Hey kid, forget about trying to break this Enigma Code, by the time you crack the code, Hitler will be mayor of New York!"

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 25, 2015, 03:03:51 pm
content: Has my mind been destroyed by too many diet sodas?On second thought, looking at the prices of available displays, I am almost ready to go back to hacking the HP display.Automate the hacking?I could attach a photo transistor to the face of the display and have a MCU step trough random permutations on the data/control lines. If the display changes, it records the bytes sent. I can just sit back and watch "The Walking Dead"episodes until the display is hacked!

author: 22swg
author_rank: Frequent Contributor
timestamp: March 25, 2015, 04:15:47 pm
content: Can't you add a USB / serial FTDI 'bit' and send info to a PC running terminal emulator ...

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 25, 2015, 11:38:14 pm
content: 22swg, Thanks for advice,I've been sending data hardwired to a pc via the serial port up to this point.

author: westfw
author_rank: Super Contributor
timestamp: March 28, 2015, 08:59:12 am
content: QuoteIf you're getting a display like that without the "display board" being connected to the "main cpu board", that implies that the display board has quite a bit of intelligence. But I'm not sure whether that's a good thing overall. On one hand, you wouldn't have to provide a continuous stream of lvds bits to a bare AMLCD "controller." On the other hand, it probably means that you have a highly proprietary HP interface and communications protocol to figure out instead :-(I've been a little surprised that the defacto high-res graphics display for small projects hasn't become an android app running on some cheap phone or tablet, with a simple communications link of some kind. A re-invention of the "smart" ascii terminals from the mainframe days, with rather un-balanced processing power ("My main CPU is a 32MHz Xmega with 128k of flash; my display is a quad-core 700MHz ARM with 1GB") I mean: two-year old phones are essentially free, new 7 inch android tablets sell for under $50 (comparable to bare displays of similar size and resolution), and you can scale up relatively arbitrarily. The weak link is probably communications: no one wants to use WiFi to communicate with their internal display. (although given $3 ESP8266 units, it might not be as unthinkable as it used to be. (but: security!))

author: 22swg
author_rank: Frequent Contributor
timestamp: March 28, 2015, 11:39:16 am
content: Quote from: SuzyC on March 25, 2015, 11:38:14 pmhttp://www.tau.ac.il/~stoledo/lego/AVR-ir/http://forum.arduino.cc/index.php?topic=10555.0So you just want an un-hard wired link... wireless would be overkill , how about an IR link like in TV remotes

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 30, 2015, 01:28:04 am
content: westfw, Thanks for your input about my output problems!I think you read it wrong. The main board(which has switching power supplies, the ARM chip, printer head drivers, etc.will send the "HP" message to the front panel without any other connections other than the single 22-pin connector connecting to the front panel. On the front panel their is an unknown "epoxy black blob" display controller chip that feeds a connector to the TFT display.The point is that the ARM chip is sending the "HP" message to the display chip that connects directly to the display.But there might be a Rosetta Stone thing going on. The normal turn on display might be a simple or complex numerous set of commands, but after the ARM chip has realized it is really disconnected from everything except the display, it goes black, then displays a "blue screen of death" with only Error 0x7e0.And this final result may be the Rosetta Stone because it may only be created by a minimum of commands to initialize the display, set a background color, and position a single line of text.Now if this display is a type of PAL or NTSC, this could be a difficult display to deal with, but the PAL or NTSC Vert and Horiz. sync lines would be identifiable.However if it is not, I could assume:If I could initialize the display, set background and text color, position the text, and send text to the display, this is all I need to make very good use of the display for my needs.(for certain)I can see only 18 pins of the 22-pin connector from the front panel to the mainboard are being used.This means at least two pins are being used for VDD and ground.One pin must be a display chip reset.One pin would likely be a CS pin.One pin might be a "busy" output from the display chip.One pin would likely be a Command/Data "E" bit.One to 4 pins might be used for mode select for the display controller.Depending on the above, this leaves maybe 8 wires for 8-bits for data.(1) (I am just guessing but maybe..)Only a few commands result in the final error message display, but they describe initialization, background color, set text color and size, set text mode and text position and finally there is sent a command to display the error message string.(2) The "epoxy black blob" is not a custom chip designed just for this printer but one of the not-so-many display controllers, meaning I could look for command sequences that matched these chips.(3) The data lines will all switch states as a group and follow repetitive transitions of the clock line and thus can be identified.(4) The clock line would be easily identified by its regular hi-lo-hi pattern.(5) The reset pin could be easily found by just finding that pin that resets the display.(6) The CS and Command/Data control lines must change states infrequently and mostly toggle infrequently and then hold their states.(7) The data lines bit order bito--bitx could be identified by finding in the data stream the displayed text, most likely in ASCII.I could slow the ARM chip (by switching its xtal from a 38MHz xtal to perhaps a 4MHz xtal) to change it from a rabbit to a turtle. I could even feed the ARM chip xtal pins my own clock and turn it on and off and set its freq. at will so as to halt the ARM chip (assuming it has no lower limit to the clock freq.) to capture the function of the data stuff fed to the display chip.Finally, ARM chip slowed down, the final events leading to the blue screen can be captured by input pins on a MCU and once recorded by a MCU, they can be played back and hacked to determine how these lines change to control the display.

author: westfw
author_rank: Super Contributor
timestamp: March 30, 2015, 05:39:39 am
content: QuoteAh. It wasn't clear whether you still had them connected or not.22 pins is a common Active Matrix interconnect, I think. At least, the first AMLCD from a surplus store that I could find a datasheet for happens to have a 22pin connection as well. (http://www.goldmine-elec-products.com/prodinfo.asp?number=G13752andhttp://ens.ewi.tudelft.nl/~rene/acx705akm-7.pdf)If it IS that sort of display, then your status is "mixed." On the one hand: pretty standard. OTOH, it's pretty much like driving a CRT with separated signals. No buffering, and you have to wiggle the signals at video frame rates (and frequently at weird voltages), over and over again. I've often wondered how much you can "cheat", since there isn't actually an electron beam striking phosphors. If you could get away with, say, cutting the clock by a factor of 10 and stiff have a legible display, it might be pretty easy. OTOH, hacking these things is popular, and I've never heard of anyone doing that, so it's probably not possible :-(Some of these should be easy to check, even with just a voltmeter. Others might yield secrets to poking with an osilloscope.Code:1MIC12MIC23VCC1 +3.8V power supply4VCC1 +3.8V power supply5GND6GND7R0 Red data input (LSB)8R1 Red data input9R2 Red data input (MSB)10G0 Green data input (LSB)11G1 Green data input12G2 Green data input (MSB)13B0 Blue data input (LSB)14B1 Blue data input15B2 Blue data input (MSB)16Hsync Hsync input17Vsync Vsync input18S/D Shut down19MCK Master clock (4.2MHz)20VCC2 +3.0V power supply21LED VDD22LED GND

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 30, 2015, 04:08:25 pm
content: Thanks a million sprites, westfw!piob posted a reply earlier on this topic that had a link to someone successfully hacking a Canon TFT display that was apparently used in two legacy Canon printer models, but I was astounded by the amount of seemingly garbage code needed to get something to be displayed. Googled and Googled again, I have not found anybody who has succeeded in hacking an HP printer TFT display, but many have cracked the 16 x 2 LCD displays found on other HP lasers and inkjets.Since your display pinout seems to use all 22 pins, it doesn't quite match, but I will have some time later this week to examine the 22 pin signals on my TFT to see how they match.Its amazing, an approx 3.5 in 800x400 difficult to interface with RGB display at Farnell sells for about $100(incl. shipping cost)also requires buying tow special connectors and requires creating a RGB driver VRAM/control board setup to interface with, while a much bigger, better one that is just one part of a new powerful smartphone can be bought for under $70.Makes my 3.-5 in HP TFT display at little more attractive to play with.

author: gmb42
author_rank: Frequent Contributor
timestamp: March 30, 2015, 08:03:00 pm
content: Quote from: SuzyC on March 30, 2015, 04:08:25 pmOr even cheaper, seeherefor a 3.2 in 648 x 360 phone LCD hack for approx. $10 with a bit of interfacing hardware.Edit, fixed link.

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 30, 2015, 11:18:04 pm
content: Hey GMB42, the link you link does not link.

author: westfw
author_rank: Super Contributor
timestamp: March 31, 2015, 04:24:55 am
content: Fixed link:http://andybrown.me.uk/wk/2013/10/19/vivaz-u5-lcd/(Good stuff!)

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 31, 2015, 10:57:28 am
content: Thanks for the link that links, westfw,I read all the info from the link and see that getting this Nokia display to dance to my tunes would be a tedious and expensive and time intensive, even hurry-up-and-wait task.I would have to order thespecial connectors for the TFTavailable only from only Digikey USA,getting a PCB made in China would take about 6 weeks to arrive and the minimum order would require me to purchase several of the boardsat some yet unknown price, andI would have to write a RGB driver to interface with my MCU.Even if I could find a source, the display requires meticulous soldering techniques of the TFT's very small footprint's easily damaged connector.What would be the best buy-it-no hassle just use-it solution for anyone, that is, if it was available at a reasonable price would be a 3.5-in TFT display with a serial interface such as I2C or SPI and 3.3 or 5V interface..but while such displays do exist they are in the several hundred $$$$ range..expensive.By that time I laid out the PCBs, ordered them and somehow manage to find the connector and solder it in and then write a driver, Hitler might be Mayor of New York.Makes playing around with my HP TFT display maybe a little more like fun to play with.

author: SuzyC
author_rank: Frequent Contributor
timestamp: March 31, 2015, 11:10:18 am
content: This site has fantastically low prices and high quality TFT displays..has anyone tried dealing with this site?http://www.buydisplay.com/