Go Down

Topic: Nokia 6100 LCD Display - Arduino Playground (Read 25734 times) previous topic - next topic

CaptainObvious

Very interesting.. Uhh.. wow.. haha I wish I knew where to even start.. and you're sure you're using the right code?
And it's even displaying upside down.. (unless that's how it's suppose to display)
Yeah, I couldn't get mine to work properly with the 3.3v, everythings connected to 5v for me. And about Thomas, I'm not even 100% sure he's got his setup yet, he hasn't commented about it. :P
Do you have any random brown outs? Where the Arduino resets because somethings drawing too much power.

If you got that far, doesn't really seem like a power supply issue to me. I would give the Nuelectronics Nokia code a try, you may have to change a little bit of code to get it to work.
http://www.nuelectronics.com/download/projects/Nokia_lcd.zip
They're using the 6600, rather than the 6610. I'm not real sure how different the code is, not my best area. (My best area is probably random ranting:D lol)

phokur

Hi all, great progress so far. I am also using SparkFun's Nokia lcd with the breakout board. (sku: LCD-08600)
I'm stuck how my pins don't seem to line up with what anybody has posted. I don't have pins labeled BL, SCLK, SDATA, or VCC.
My breakout board has the pins pictured on the site: S1, S2, CS, SCK, DIO, RESET, STAT2, STAT1, STAT0, GND, 3.3V, and VBATT.
Am I missing something?

CaptainObvious

Well
S1 and S2 = Switch one and Switch two (the two extra buttons)
SCK = SCLK
STAT 0 through 2 = Looks like the pins for a tri-color LED
Not really sure about DIO

But I just searched the Sparkfun forums, try this out guys.

See if this works for you! One person said he had the LCD showing up, upside down.. another person had every color show up as purple. A few slight changes in code looks like it might help.

Best of luck!

http://forum.sparkfun.com/viewtopic.php?t=13409&highlight=nokia+6100

phokur

Ok, got it working (although I'm having the same issue with garbled output for now). For anybody who has the same board as myself from SparkFun.
Arduino    LCD08600
N/A          S1 (Pushbutton 1)
N/A          S2 (Pushbutton 2)
Pin 3        CS (Chip Select)
Pin 4        SCK (Serial Clock)
Pin 5        DIO (Serial Data)
Pin 6        RESET (Reset)
N/A          STAT2 (Green Status LED)
N/A          STAT1 (Blue Status LED)
N/A          STAT0 (Red Status LED)
Gnd         GND (Ground)
3V3         3.3V (Power)
3V3         VBATT (Backlight Power)

Thomas Jespersen

Hi everybody.
I haven't said much in the past because I'm on vacation, but now I got a computer in an hour!

The board I have is the Sparkfun board with button and Tri-LED. I haven't got it working either, but I would like to point out that the Sparkfun board DOESN'T have a 5V to 3.3V translator, so every data line needs to be converted to 3.3V!
I haven't had any succes with that yet - but I'm hoping someone else who has the same board as me can figure out how to get it working...

This is the board I have: http://www.sparkfun.com/commerce/product_info.php?products_id=8600

Best of luck from Italy (where I am :P)
Need any help with your electronics projects?
TKJ Electronics, a consultancy company located in Denmark (Europe), has the required ex

phokur

#65
Jul 07, 2009, 04:24 pm Last Edit: Jul 07, 2009, 04:29 pm by phokur Reason: 1
So I've gotten it to draw solid colors. They're off, I'm not sure what the right hex codes would be, they're just 0-255. RGB should be FF-FF-FF...
Anyway, if you replace the clear function with mine below, although slow, it seems to be progress. I've messed with adding a delay to slow the clock but that didn't make a difference. The resistors I had on hand only allowed me to take the 5v outputs to 2.7v instead of 3.3v. I suppose that could be an issue but I doubt it since I am still displaying something.

Code: [Select]
void lcd_clear(byte color, byte x1, byte y1, byte x2, byte y2)
{
 for(unsigned int i=y1;i<=y2;i++)
{
 for(unsigned int j=x1;j<=x2;j++)
 {
   lcd_draw_text(color, color, j, i, " ");
 }
}
}

CaptainObvious

#66
Jul 07, 2009, 04:32 pm Last Edit: Jul 07, 2009, 04:34 pm by thoed Reason: 1
Well keep in mind, under powering something can be just as bad as overpowering it.
Not in all cases, but a general rule of thumb I likes to follow.

But I didn't realize it had to be brought down to a 3.3v logic, that's no fun :X
I'm glad I got the easier bit, I paid a few bucks more, but I'm a newb so the plug-and-plug really helped :D

phokur

#67
Jul 08, 2009, 07:54 pm Last Edit: Jul 09, 2009, 04:40 pm by phokur Reason: 1
I fixed my divider so I now have 3.27v, no difference. Here is new lcd_clear code that refreshes much faster.
Still have the colors a little off and the text is distorted. But it's progress...
Code: [Select]

void lcd_clear(byte color, byte x1, byte y1, byte x2, byte y2)
{
 lcd_set_box(x1,y1,x2,y2);
 sendCMD(RAMWR);
 for(unsigned int i = 0; i < (((x2-x1+1)*(y2-y1+1)) / 2); i++)
 {
   sendData((color >> 4) & 0xFF);
   sendData(((color & 0xF) << 4) | ((color >> 8) & 0xF));
   sendData(color & 0xFF);
 }
}

phokur

#68
Jul 09, 2009, 02:08 pm Last Edit: Jul 09, 2009, 04:38 pm by phokur Reason: 1
This has made it functional for me. I'm using lcd_clear to manually draw everything and updated my colors as following.

Code: [Select]

 // Data control
 sendCMD(DATCTL);
 sendData(0x00);
 sendData(0x01);
 sendData(0x02);

Code: [Select]

// 12-bit color definitions
#define GREEN                  0xE0
#define RED                  0x1C
#define BLUE                  0x03
#define YELLOW                  0xFC
#define TEAL                  0xE3
#define PINK                  0x1F
#define BLACK                  0x00
#define WHITE                  0xFF

phokur

The final piece to the puzzle, the fonts are now working. They're larger then before (not a bad thing).

Code: [Select]

void draw_text_line(byte fcolor, byte bcolor,byte x, byte y,char c)
{
 lcd_set_box(x,y,x,y+15);
 sendCMD(RAMWR);
 for(unsigned int i=0;i<8;i++)
 {
   if (1<<i & c)
   {
     sendData((fcolor >> 4) & 0xFF);
     sendData(((fcolor & 0xF) << 4) | ((fcolor >> 8) & 0xF));
     sendData(fcolor & 0xFF);
   }
   else
   {
     sendData((bcolor >> 4) & 0xFF);
     sendData(((bcolor & 0xF) << 4) | ((bcolor >> 8) & 0xF));
     sendData(bcolor & 0xFF);
   }
 }
}


So to sum up what you need for the SparkFun Nokia 6100 lcd knockoff to work with the arduino is the Gravitech code with my modified lcd_clear, data control, color definitions, and draw_text_line.

Thomas Jespersen

It's good to see that you phokur have "refurbished" the code, making it faster.
When I get home I'll update the library with the changes...
In the meanwhile I hope others can get their display working using this code - but I still don't think I can get mine working :(

Please help...
Need any help with your electronics projects?
TKJ Electronics, a consultancy company located in Denmark (Europe), has the required ex

CaptainObvious

Woot, thanks for the updates Phokur :)
I got a couple questions, I've tried looking up some other libraries from other LCD libraries to see how to create a Menu.. with no luck.. I can generally take some code and tweak it to my own.
I experimented (and failed horribly) with using if  and trying to use some switch  functions, using a potentiometer to highlight text depending on the value.. and a button to start an application of sorts, haha but yeah.. no luck.
If somebody could point me in the right area, maybe some books, videos, anything for my newbness! :D

(I don't understand how the code made the text bigger.. reading all the 0xFFs and << & | throws me off real fast and I get overwhelmed lol:/)

cory0023

#72
Jul 13, 2009, 05:48 pm Last Edit: Jul 13, 2009, 05:48 pm by cory0023 Reason: 1
I've done a few changes to the code, it now all shows up in the right colors on my screen, its not perfect yet, but is a start. Still working out the locations of drawing boxes. Feel free to add/change it. Major changes were I changed the colors to word type rather than byte, allowing it to send in  full color (reds were absent before in the initial code), I also changed some of the fill sizes, as for some reason, it only filled when i went from 0 to 160 square in my draw window. I've also added a few comments as to what values have an effect in certain commands.

http://freetexthost.com/3o6alqaspk

@CaptainObvious, best place to look is in the example code on the arduino site. If you have any specific questions on how things work, feel free to ask, but IMHO the most fun part about using arduinos is the ability to experiment and find out new things.

Cory

Thomas Jespersen

Hi everybody.
Now I'm home again and I've just set up the LCD project using a 74HC4050 for the level conversion and hurray, it showed me that it was alive!

But still, the LCD shows me the same crap as blip's (look at his image)
Does anyone know how to fix that, or atleast what is causing that?
Need any help with your electronics projects?
TKJ Electronics, a consultancy company located in Denmark (Europe), has the required ex

cougar_shuttle

I'm working on and will post a code update here this weekend.  I'm using the Sparkfun breakout board.  Can anyone tell me if using 9V to VBat will hurt the board or LCD?
Thanks! :-/

Go Up