Nokia 3410 screen has problem with the 3310 library

Hello,

I have a Nokia 3410 display (resolution 96×64) and I really want to use it rather than buying a 3310 one from ebay.
I've tried the first example, I get the "hello world" message, but 1/3 of the screen is black (due to the resolution difference with 3310). I've changed LCD_X (96) and LCD_Y (64) but the bottom line (8 pixel height) is still black and the message appears on the right side of the screen.

The pinout is ok, I double-checked it (if it wasn't it wouldn't work at all)
Has anyone worked with the 3410 screen?
Any workaround?
I've searched on google & in the ardu forum, but I only get 3310 results.

Well, at least one of your problems is the 3410 is 96 x 65, not 64. This is the visible screen resolution.

Apparently it's driven by a Philips OM6206 chip, and the internal resolution is 102 x 72, so I'd try that.

http://www.module.ro/nokia_3510.html

Thank you very much! :slight_smile:

Apparently None of all 3410 would be the Same ? My Old nokia 3410 display works with The same Driver and resolution than the second in my hand ...
With my little knowledge I can say that the 3310 , 5110 and 3410 I have tested , has all a PD8455 Driver embeded and some series where made with another Drivers I don't know ...

SANY0086[1].JPG

Dj_Garfield:
Apparently None of all 3410 would be the Same ? My Old nokia 3410 display works with The same Driver and resolution than the second in my hand ...
With my little knowledge I can say that the 3310 , 5110 and 3410 I have tested , has all a PD8455 Driver embeded and some series where made with another Drivers I don't know ...

You use the same code?
I mean the same resolution?
They don't have the same chip as arduinodlb said.

Not the same Code , but I change the resolution setup at the start of the Sketch , but be carfull there is 8 lines Height : 8x8=64px , but I dont know why this LCD screen is given for 96x65 ... What does the last line do ? Duno :slight_smile:
As I can know , the 3310 and 5110 work with 6 lines 8x6 = 48 px .
I experiences some display bug when I try to display Images in 96x65 pix and 96x64 too ... I've missed something I think :slight_smile:
If you want Work with a little breackout I made , here is the PCB Layout , and for someone who wants , the pinout I use to produce text , scroll graphics .

The link for the scroling text ( that someone on this forum gave to us ) working with few modifications resolution and position related :
http://blog.stuartlewis.com/2011/02/12/scrolling-text-with-an-arduino-and-nokia-5110-screen/comment-page-1/

The PCB Layout ( made with DesignSpark : Free , just register on the web site and you'll recieve Serial Number , this is Free Software and it works very good )
http://pcb.designspark.info/DesignSparkPCB_v5_1.exe
( see 3410-LCD-Breackout-PCB-V2.2.pcb in attachement of this post )

Some Pics Of the "Breackout" DIY :
I don't throw away the Old PCB nokia , to pick the micro LED to try to make backlight but , My solution is not accurate because the Double Sided PCB I use is not thin at all and the LED is not close to the transparent ABS case , so the light is not well diffused into the Cage where my LCD take place ... ( see pics ), but plan to rebuilt the Breackout PCB , to make a better backlight system :).

3410-LCD-Breackout-PCB-V2.2.pcb (32 KB)

I use Transfert Method to produce the PCB :
1/ Print the PCB design on a very thin paper like add-paper you should recieve in your mail box ( supermarket , or another addvertisment paper , certain daily paper works but not all of them => printed Mirrored !!
2/ Set an Iron to the max temperature
3/ Fix the printed circuit firmly right to the copper side of the PCB , be sure that NO scotch tape are on the circuit face !! ( place the printed face , witch the tonner is fixed on )
4/ With the Iron , press on the assembly this will fuse the tonner on the paper and fix it on the copper face of the PCB. => 5 ot 15 minutes depending of the printer ( I use a Lexmark T614 , contrast at 10 , with no other feature , in 1200 DPI )
5/ prepare a middle cold water , and put the assembly in there
6/ Wait above 1 or 2 hours ... Try to peel the wet paper but with the two hands in the water ( the paper DOESN'T dry so the tonner will go away with the paper :slight_smile: )
7/ put the PCB in The Iron Perchlorate ( BE CAREFULL This is harmfull to work without glasses , and glove to manipulate perchlorate )
8/ You have a very nice Printed circuit where you can solder the 3410 LCD Display ...

Or You can Order one from Seeduino , just send the PCB design to us and they'll do for you :slight_smile:

Other Pics ...

SANY0113[1].JPG

SANY0121[1].JPG

SANY0125[1].JPG

SANY0126[1].JPG

Sorry For the poor quality of the pics ( no flash on the phone ~=) )
I made something wrong with the Led Resitor I use because this is not very "Lighty" even with the 5v connected instead of the 3.3v ... Perhaps a 100homs resistor should be better This is not my final product , and I will do better for the next one :slight_smile: ( see pics , I shunt the 330homs R , to show you where are the Led I pick on the nokia PCB :slight_smile: )

See tab below for the pinout of the 3410 , and connect it to the Arduino ( freeduino for me but it's the same as Arduino UNO ), dont forget to put a 1µf capa between the Vout an the Ground or you will see flickering display ( duno what the capa does at this time but it works better with it ).

Here Is my connection tab :

LCD => Component => Arduino
Vcc => NONE => 3.3v
Sck => 10K Resistor => D3
SDin => 10K Resistor => D4
D/C => 10K Resistor => D5
SCE => 1K Resistor => D7
GND => NONE => GND
Vout => 1µf Capacitor => Ground
Res => 10K Resistor => D6
LED => To be Defined => 3.3v Or 5v Depending on the Resistor Or you can connect to any PWM output of the Arduino to be able to DIM the light.

Now I can learn how to do some good code to display images , and try to built a fuel gauge for my van :slight_smile:

SANY0128[1].JPG

Very good job! :slight_smile:
Thank you for sharing.

BTW: You need 3v3 on the pins of the display (for long term use, I use 5v while prototyping).

Thank you ttouch :slight_smile:

I prefere to work in a "secure" voltage for the component , I don't need power for motor or something else who need it , This little breackout is made to learn about programing and using this kind of component , My goal is a car Dashboard building for my old van , I Recieve yesterday the Touch Shield Color LCD display for the project .
1 week ago , I dind'nt know how to wire , program or something else about LCD display , It's not easy but very intresting !
And I would like to make my little contribution to this great forum , 'cause I found here ALL what we need to learn around arduino , and DIY project :slight_smile:

Back on this post to give you some helpfull informations :

  • I think we use the wrong library ( AMO ), I found the U8G library on the net , and I try It : It Works ...
    BUT : there is allways a "but" lol , The display is foot on instead of head on so I have to turn my LCD 180° to read it

  • Aparently the 3410 is PCF8812 embed so the library for the PCD8544 Works but with a 96x65 resolution and the PCF8812 works with a 102x72 Resolution . Because both driver are pretty similar ( as read in the datasheets ).

If you want you can try this library and examples given with , and if you don't want to make some wire error keep in mind to read the comment in the sketch to adapt the correct pin connection :

The Original definition in the library :
U8GLIB_PCF8812 u8g( 13, 11, 10, 9, 8 ); // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8
( A0 = DCin )
My definition , to avoid confusion with all configuration found around and to be able to swap bitween one library to another :
U8GLIB_PCF8812 u8g( 13, 11, 7, 5, 6 ); // SPI Com: SCK = 13, MOSI = 11, CS = 7, A0 = 5, Reset = 6

This Library works in SPI mode , If I understand SPI mode , all what we do ( bmp , drawing etc etc ), is send to the MOSI pin of the ATM328 , and is very fast :slight_smile:

Edit :
The link to the library : sketchbook/libraries/U8glib at master · fornellas/sketchbook · GitHub

Edit 2 ( after 5 minutes reading the sketch entirely ) :
I know why the display is 180° rotated =>

// flip screen, if required
u8g.setRot180();
So I commented the line , and The display is head on now :slight_smile: