Some time ago we bought a liquid crystal display WD-C2704M. It was a cheap one with 4 lines of possible text.
Of course there are a lot of liquid crystal, some preprogrammed, some with nice connected wires etc, the best (probably the most expensive too :-)
http://www.eink.com/press/releases/pr87.html
But back to our thing the WD-C2704M, of about 5 euro's....at www.pollin.de
It came with a the wires in a special flat plastic setting:
we should have bought the special slot for this, but we soldered, and all wires got mixed up, because they came loose from the ground....we scratched holes in the plastic isolation and succeeded in soldering the wires again. This already made the task daunting: around 20 wires so close together!
It took a while to find the specs. (Because we didn't buy it at pollins, there the datasheets can be found easily, we also paid tooo much at the other place (about 10 euro too much) haha!). Documentations are in German. No problem for the dutch...
WD-C2704M-1HNN.pdf
Text-LCDs.pdf
the pins of the display:

The display is HD44780 compatible, indeed it should be a double separated display. How to program this?
There is a liquid crystal lib for the ARDUINO. But this one is for 4 or 8 bits, so a max of two lines. This display has 4 lines.
We could make a new CPP lib out of the liquidCrystal.h, using the Cpp in the folder hardware\libraries\LiquidCrystal of the ARDUINO files.
This was our first try, following the instructions carefully of the setting up. We tried to set the display up in one go, setting the enable pins the one after the other.
Somehow this file got mixed up, and it refused to function.
The second try was nice and clean, the idea was just to make two different instances of this liquid crystal object:
LiquidCrystal lcd(13, 12, 11, 9,8,7,6,5,4,3,2);//the upper two lines
LiquidCrystal lcd1(13, 12, 10, 9,8,7,6,5,4,3,2);//the lower two lines
the last parameters are the ports, the difference is the enable port, coming from crystal pin: enable one goes to ARDUINO 10 and enable 2 to ARDUINO 11.
This way the two halves, upper and under are seperatly steered. And this solved the problem!
#include
//then setting up is easy: (actually already done)
void setup()
{
lcd.print("hello there");
lcd1.print("goodbye");
}
the two lines are displayed in the two halves.
a test to see what is possible:
lcd.print("hello there and how are you0123456789012hello there and how are you");//first two lines filled.
displays:
hello there and how are you
hello there and how are you
we have 27 characters on the first line of upper, then several spaces not shown, then the next line starts.
The first 27 are mentioned in the specs, but the gap is not what is described....the gap in memory addressing is 13 spaces, making it to 40 (decimal, which is not 64) to start the next line.

so here something is wrong in the data of this image.
The second line the same of course, because it is the same kind of object.
Possible mistakes (the ones we made :-)
As already mentioned: not buying the right slot for the wire connection.
then not connecting the right wires, because of the amount of wires, this is easy....this shows by not producing the right characters, or a lot of spaces.
the next mistake was to connect the pins in the wrong direction, that is , the other way around. Then the setting up wont be done properly and all kinds of problems occur, like not using the 4 lines etc.
Then there seem to be several LiquidCrystal.h files around in different ARDUINO versions.
The ones which worked (also on PC) were the files from the MAC 012 version of the ARDUINO.
Testing on other .h files will be done, now that the wiring is ok.
Also sometimes the ARDUINO + display must be disconnected and connected again to show all lines. This feature is described: resetting the ARDUINO does not reset the display.
ok in the end, when it works, all is fine.
We learnt a lot on the library CPP files of the ARDUINO. So in fact how to write our own classes for the ARDUINO scripts in CPP.
And we learnt where we could buy the cheapest LCD of this kind! www.pollin.de, much other cheap fun around there, the only problem is that they don't accept credit cards or paypal.