Hello cr0sh
Your post here and your website were helpful to me, since I also am trying to use this Lexmark/Optrex LCD to replace 44780 type parallel LCD in one of my AVR projects.
I was particularly happy that you confirm that it is indeed a I2C device and also that you give the pinout on your website. However, trying to hook up a I2C sniffer to the LCD of my Lexmark Optra S1650 according to your pin chart produced a nice spark! I should have used the Voltmeter first ;-) As it turns out, the pin description seems somehow upside down, at least when using the pin numbering on the LCD board. For me, the following is working now OK (note that 1-5 are reversed to 5-1):
1. FPIRQ (not yet really tested)
2. Ground
3. I2C Clock
4. +5V DC
5. I2C Data
6. No Connection (not soldered)
SO I thought that you might be interested if I share here my first test results. From using my new Bus Pirate (still learning how to use it...) in I2C sniffer mode gives me so far the following:
I2C Device adress of LCD is 0x21, i.e. 0x42 for writing, 0x43 for reading
Commands:
0x11 Request and read button state
Write [0x42+0x11+[0x43
Read 0x43: 0x11+<button>+0x5F-
where buttons 0x01=up 0x02=Select 0x04=Left 0x08=Right 0x10=Go 0x20=Stop
0x55 Send text to the LCD
Write 0x42+0x55+<charpos*8+line>+0x00+<numchar>+<char1>+...+<charN>+<xxx>
Read 0x43: 0x55+0x5F-
(I don't know what the last byte <xxx> means, is it a kind of checksum, or some indicator about the cursor...?)
Other command codes, in addition to 0x11 and 0x55, that are used with this LCD are:
0x77 (+ 9 bytes are sent, 0x77+0x5F- read)
0x88 (no parameters sent, 0x88+0x5F- read)
0x99 (no parameters sent, 0x99+0x5F- read)
0xAA (no parameters sent, 0xAA+0x54+0x71+0x5F- read)k
0xB0 (+ 3 bytes are sent, 0xB0+0x5F- read)
So far, I have not found out what these do.
As for the speed of the I2C, I had best results with 50kbit/s, but this might be more related to the bus pirate than to the LCD, who knows...