LCDInfo.com
http://forum.lcdinfo.com/

Interfacing a SonyEricsson T68 display
http://forum.lcdinfo.com/viewtopic.php?f=6&t=779
Page 2 of 5

Author:  prescott86 [ Thu Jan 25, 2007 14:12 ]
Post subject: 

SE T68i LCD part no: RNH94254/2 R5A

Noob here, how to identify which controller for this lcd? thanks~

Author:  cex [ Sat Mar 03, 2007 22:00 ]
Post subject:  Any sources?

reset wrote:
thx for dump Bingo! its working for me :lol:

Could you post the code (at least the startup sequence)?
I have found the Hitachi HD66760 datasheet, but a sample code will be welcome.
Thank you.

Cex.

Author:  cex [ Sat Mar 03, 2007 22:06 ]
Post subject:  Hitachi and Arima

prescott86 wrote:
SE T68i LCD part no: RNH94254/2 R5A

Noob here, how to identify which controller for this lcd? thanks~


Hello,
as far as I know the display module is manufactured by Arima (model MC16F01A)(You can find the datasheet in this link: http://homepages.nildram.co.uk/~displaz ... 16F01A.pdf)and the controller is the HD66760 from Hitachi (you can find the datasheet at www.alldatasheet.com). The supply is 2.8V and the interface is I2C.

Hope this helps.

Cex.

Author:  cex [ Mon Mar 12, 2007 12:58 ]
Post subject:  I got it !!!

Hello everybody,

As no one answered my posts, I decided to further investigate by myself.

-One: First of all I decided to investigate about the driver chip. It seems that there are 3 types of controller, but I wanted to know, so I took a broken R2A LCD I got and cut the chip off the LCd and put in nitric acid to get the silicon chip. Then I put under the microscope. It revealed to be a S-4595B, which I suspect is the most usual type.
Since the other LCD I have is the same revision, and the silicon chip dimensions are EXACTLY the same I assumed it is the same chip.

-Two: I conected the LCD to my PC LPT port using the schematic provided by RIFER (http://rifer.narod.ru/i2cldc.html), just changing some components to provide 3V logic and supply to the LCD.
Making some changes to the RIFER provided sources I could check that the LCD sends ACK to address 72, which confirms it is a S-4595.

-Three: As "reset" said that he managed to make the display work and he based on "Bingo600" dump I studied the dump in detail:

+ 1st: I removed the hex part and S2 header to have clear text, which then I arrenged to be read clearly, as follows:

version=200109110;interface=i2c1;
{name=S-4595;type=01;address=72;resolution=65 50;colours=08 03 03 02;offset=1B 00;offset_pd=1B 00;
pd_rectangle=03 0000 0004 0065 001C 0000 001C 0065 0034 0000 0034 0065 004C;
pnp_detect=%a 00 00;
init=%a 03 01 02 00 00 46 01 00 06 01 07 1B 08 7F 09 00 0A 4F 0E 4F 0F 10 10 02 11 17 12 25 13 01 15
00 16 1C 17 00 18 00 19 00 1A 00 1B 50 1C 50 1D 26 1E 26 1F 00 20 00 34 27 35 73 36 04 37 31 38
06 39 2C 3A 24 40 08 41 00 42 07 43 08 44 09 45 0A 46 0B 47 0D 48 10 49 00 4A 05 4B 07 4C 08 4D
09 4E 0A 4F 0C 50 10 51 00 52 07 53 09 54 10 55 00 56 06 57 07 58 08 59 09 5A 0A 5B 0B 5C 10 5D
00 5E 06 5F 07 60 08 61 09 62 0A 63 0B 64 10 65 00 66 07 67 09 68 10 78 01 00 42 04 1B 05 00 %w118;
reinit=;reinit_pd=;power_on=%a 38 02 00 52;
power_off=%a 00 42 38 0A 39 00 %w78 %a 00 46 %w17C;
normal_pd=%a 00 42 38 0A 01 08 16 %pd_startrow %w32 %a 38 06 %w96;
pd_normal=%a 00 42 38 0A 01 00 %wC8;
set_scanrow_pos=%a 04 %x 05 %y;
scanrow=%a 8C;
set_vlcd=%a 39 %vlcd;
set_vlcd_pd=%a 3A %vlcd_pd;}


{name=HD66760;type=02;address=74 76;resolution=68 50;colours=08 03 03 02;offset=00 00;offset_pd=00 00;
pd_rectangle=03 0000 0004 0065 001C 0000 001C 0065 0034 0000 0034 0065 004C;
pnp_detect=%a 00 00;
init=%a 00 03 %a1 1A 34 %w96 %a 00 01 %a1 02 09 %a 00 02 %a1 00 46 %a 00 04 %a1 05 4E %a 00 14 %a1 4F 00;
reinit=;reinit_pd=;power_on=%a 00 07 %a1 00 03;
power_off=%a 00 07 %a1 00 00 %a 00 03 %a1 00 00;
normal_pd=%a 00 07 %a1 00 00 %a 00 03 %a1 19 04 %w0A %a 00 01 %a1 02 02 %a 00 04 %a1 03 5D %a 00 14 %a1 %pd_stoprow %pd_startrow;
pd_normal=%a 00 07 %a1 00 00 %a 00 03 %a1 1A 34 %w0A %a 00 01 %a1 02 09 %a 00 04 %a1 05 50 %a 00 14 %a1 4F 00;
set_scanrow_pos=%a 00 21 %a1 %y %x/2;
scanrow=%a 00 22 %a1;
set_vlcd=%a 00 04 %a1 05 %vlcd;
set_vlcd_pd=%a 00 04 %a1 03 %vlcd_pd;}


{name=S-43200A;type=03;address=70;resolution=65 50;colours=08 03 03 02;offset=00 00;offset_pd=00 00;
pd_rectangle=03 0000 0004 0065 001C 0000 001C 0065 0034 0000 0034 0065 004C;
pnp_detect=%a 00 00;
init=%a 03 01 02 00 00 06 01 00 0E 4F 0F 10 10 02 11 17 12 25 13 01 15 00 16 1C 34 2F 35 73 36 04 37 31
38 06 39 2C 3A 24 40 08 41 00 42 07 43 08 44 09 45 0A 46 0B 47 0D 48 10 49 00 4A 05 4B 07 4C 08 4D
09 4E 0A 4F 0C 50 10 51 00 52 07 53 09 54 10 55 00 56 06 57 07 58 08 59 09 5A 0A 5B 0B 5C 10 5D 00
5E 06 5F 07 60 08 61 09 62 0A 63 0B 64 10 65 00 66 07 67 09 68 10 00 02 04 00 05 00 %w118;
reinit=;reinit_pd=;power_on=%a 38 02 00 12;
power_off=%a 00 02 38 0A 39 00 %w78 %a 00 06 %w17C;
normal_pd=%a 00 02 38 0A 01 08 16 %pd_startrow %w32 %a 38 06 %w96;
pd_normal=%a 00 02 38 0A 01 00 %wC8;
set_scanrow_pos=%a 04 %x 05 %y;
scanrow=%a 8C;
set_vlcd=%a 39 %vlcd;
set_vlcd_pd=%a 3A %vlcd_pd;}


+ 2nd: We do not have the S-4595 datasheet, but we have the Hitachi one. Looking at the dum we can dedece that this type of display uses two I2C addresses 74 and 76. If we take a look at the datasheet, then we can see that both address match the two types of writting (to the register pointer, and to the register itself).
Taking this into account we can deduce from the DUMP that "%a" means 74h and "%a1" means 76h. I also deduced that "%w" means wait, so to initialise the HITACHI display we must send the following string to I2C:

74 00 03 76 1A 34 "wait 96h milliseconds" 74 00 01 76 02 09 74 00 02 76 00 46 74 00 04 76 05 4E 74 00 14 76 4F 00

+ 3th: Following the same scheme, for the S-4595 the initialisation string MUST be the one following "init=" string, just changing "%a" for 72 (note that the init string is much longer than Hitachi one and it comprises several rows, until the final wait "%w118).

I tried it. I sent "init" string followed by "power_on" string... AND IT WORKED !!!
I can see garbage in the display.
To send data you must used the "scanrow" string followed by data (72 8C xx xx xx...)

I will try to post some code sample and photos later.

To find out which controller your LCD has you shall send the "pnp_detect" string and see if you got and I2C ack.

+4th: Regarding commands:

"pd_rectangle" I think that it defines the rectangle for power down mode (the big clock), but don't know how to use it.
"pnp_detect" I think is used to detect the type of controller.
"init" is the init string to send after reset
"reinit=;reinit_PD=;power_on=" brings the LCD on after init/power_down
"power_off" to power off the LCD
"normal_pd" I think changes from normal mode to power_down, but have not tested yet.
"pd_normal" I think is the opposite of previous command although not tested.
"set_scanrow_pos" this set the pointer to data displayed. NOTE that this type of controller has an offset. initial point is not 0,0, but 1B,0 (if you look at initialisation sequence the last four bytes are 04 1B 05 00 which is the same you have to do in this command. Also note from that sequence that once you send the address (72) you can send several commands by sending REGISTER/VALUE sets of two bytes. This works for all the registers.
"scanrow" is used to send DATA. Is enough with sending the adddress and register once (72 8C), and then you can send all the data bytes in a row without sending again 72 or 8C. Data begings to be displayed from the current pointer (set with "init" or "set_scanrow_pos")
"set_vlcd" set the contrast. This is very important if you want to see something. It is set by default to 2C in "init" command. Values to far from that one will make that you can't see images on LCD.
"set_vlcd_pd" I think is the contract during power down mode, but have not tested yet.


As I told, I will try to post modified schematic, photos and test program when I have time.
I will also try to develop a library for PIC or AVR and post for all the users.

I been a long time after using this display for my projects because I think it will do better with a low cost microcontroller that Nokia 6100 (for example) as it has lower resolution and color depth, as so it required less processing.

I also owned a T68i mobile phone and it was quite bad for photos, but the menus were very nice.

Regards,
Cex.

Hope this helps to anyone. Please if you found this information helpful post a reply so I can know that it was useful to somebody. Thanks.

Author:  mrfusion [ Sat Apr 07, 2007 20:13 ]
Post subject: 

Hi.

Any updates on a schematic and / or modified VB code for this as I am not having much sucess so far.

Thanks!

Author:  cex [ Sun Apr 08, 2007 13:27 ]
Post subject:  Sample

Hello,

I have now a dirty sample program based on Rifer code for T28 display.
The ZIP file is around 60K including sources for VB and PDF schematic, and is posted on next post.

Here is a photo of my prototype.

Image

Regards.

Cex.

Author:  cex [ Sun Apr 08, 2007 13:56 ]
Post subject:  Sample code

Finally found a free file hosting:

http://www.woofiles.com/dl-22446-6GwmEhOK-T68LCD.zip

Hope you all find it useful.

I think all files (except dlls of VB) are included, but if you find some missing file, then let me know.

Take into account that depending on your target VCC value, you may need to change the contrast value (see comment on init string on sources).

Regards.

Cex.

Author:  mrfusion [ Thu Apr 12, 2007 3:11 ]
Post subject: 

Thanks for the info, much appreciated.

Been looking at this for a couple of days now and still no life in the LCD

Thinking that I may have blown it by putting 5v through it :-(

I have bought 2 x T68 lcd off ebay and 1 x Nokia 3310 lcd so those should be with me by the end of the week...

Will see if I have any luck with the new screens now I have regulated the volts properly to 3v now..

p.s I can see the data pulsing on the SDA and SCL via some LEDS I attached so I think it is definately a problem with the screen I have got now. However it is a very early T68 LCD (one of the first in the UK) so maybe the controller is different?

Author:  cex [ Thu Apr 12, 2007 9:39 ]
Post subject:  Check for ACK

Hello,

I'm glad you find it useful.

I do not test the ACK in the SW, but I think it will be easy to modify the code for checking (so you can see if the controller is working and respondin to the 0x71 address).

To check for another controller you would have to change the address from 72 to 70 (or whatever), and the init string (from previous post).

Anyway, I have 5 displays from R1A to R5A and all of them use this controller.

I will try to add the ACK check (if I find some spare time) and post the new test program.

Also check for the correct pinout at connector (pins for leds, 6, 7 and 8 have thicker PCB traces).

Regards,
Cex.

Author:  mrfusion [ Sat Apr 14, 2007 3:45 ]
Post subject: 

ok, i have the new lcds, i tried one of them (R5A) and still cannot get it to work.

I am sourcing the input voltage for the LM317 from a USB port. Is this enough current to power the circuit? I have exactly 3v from the LM317.

The screen LEDs work fine but I cannot get the LCD to initialise or display anything.

I have tried playing around with the ACK but cannot get a change to 1 with the code. Do you have any code to test the ACK as mentioned in the last post?

p.s I got the Nokia 3310 LCD working fine with the RIFER cicuit in LCDHype.

Thanks in advance for your help.

Author:  cex [ Sat Apr 14, 2007 13:05 ]
Post subject:  New release

Hello,

I have added a button to test the 3 known address (0x70, 0x72 and 0x74).
I also realised that there is an error on the schematic posted (the pin 14 of LPT must be connected to the other pin of the schottky diode in order to be able to read the ACK (sorry for that).
Please note that diodes must be Schottky (I'm using BAT85).

Here is the link:

http://www.woofiles.com/dl-25557-MMYSLQyP-T68LCD11.zip

Sorry for the mistake, hope this time you can test it properly.

Now I am using a R3A display, but will try later with R5A to check for differences.

Regards,
Cex.

Author:  mrfusion [ Sat Apr 14, 2007 18:28 ]
Post subject: 

Thanks for that.. the LCD is now working!!

The ACK revealed that my LCD is S-43200A (address &H70) which is why it had failed before.

Maybe the LCD contollers are different geographically?

I adjusted the code for this controller and it all works fine now.
one point to add is that the offset of &H1B does not apply to this LCD, I changed it to &H0 and it shows the image correctly.

I also put the INIT string into an array as follows (to make it easier):

initstring = "70 03 01 02 00 00 06 01 00 0E 4F 0F 10 10 02 11 17 12 25 13 01 15 00 16 1C 34 2F 35 73 36 04 37 31 38 06 39 2C 3A 24 40 08 41 00 42 07 43 08 44 09 45 0A 46 0B 47 0D 48 10 49 00 4A 05 4B 07 4C 08 4D 09 4E 0A 4F 0C 50 10 51 00 52 07 53 09 54 10 55 00 56 06 57 07 58 08 59 09 5A 0A 5B 0B 5C 10 5D 00 5E 06 5F 07 60 08 61 09 62 0A 63 0B 64 10 65 00 66 07 67 09 68 10 00 02 04 00 05 00"
initarr = Split(initstring, " ")
Timer1.Enabled = False
Timer2.Enabled = False
StartEE
For i = 0 To UBound(initarr)
mynum = CStr("&H" & initarr(i))
WriteByte (CInt(mynum))
Next i
StopEE

Thanks for all your help, I will do some more tests and report any other things I find.

Author:  cex [ Sat Apr 14, 2007 20:37 ]
Post subject:  R5A is at 0x70

Hello,

I tested my R5A LCD and it also respond at 0x70.
I thought I have tested before and was 0x72, but surely I did it wrong.

Regarding the code, I'm not a Visual Basic programmer, so you will surely can improve it a lot.

I will try to put all the commands for the 3 types inside and use an autodetect function. Will post the code if I have some time to finish it.

I'm glad you finally put your LCD to work.

Best Regards,
Cex.

Author:  mrfusion [ Wed May 09, 2007 23:41 ]
Post subject: 

Hi

Haven't looked at this for a while as I have been busy with other work.

I have translated all of the code to Delphi 6 and it is around 10 times quicker writing to the screen now!

black and white text etc is workimg fine, but I am having trouble with graphics.

My problem is knowing what colour palette the LCD uses.

I can save an 8bit RAW image from photoshop, but the colours are all shifted when i transfer it to the screen.

I loaded the RAW image that was supplied in your demo code into photoshop, but it loaded as a monochrome image.

Am I missing something? How can I know what palette the screen uses? and/or what software is used to create the RAW image that was used with the demo code.

Thanks for your help!

Author:  cex [ Sun May 13, 2007 20:06 ]
Post subject:  Converting pics

Hello,

I used Paint Shop Pro 8 to create the RAW file from the gif file created by Sony Ericsson My Pictures (this adjusts the image to the T68 palette, so you can see on screen how it will look like in the T68 screen).

Anyway you can get the Photoshop pallete and further explanation on this link:

http://www.esato.com/board/viewtopic.php?topic=2386&forum=16

Hope this helps.

Page 2 of 5 All times are UTC + 2 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/