Samsung SPI LCD Help

Recently I acquired some bulk components, and in them I found a LCD module. I have no idea where it came from, but have done some research on it.
It has 9 pins, and seems to communicate using a SPI interface. This is something I am completely new to. I have absolutely no idea how to talk to this LCD and was really looking for some guidance. After hours of searching I found the appropriate data sheet here: HTTP 301 This page has been moved
I have got the LCD to power on and I have enabled it by jumping CS to Low (theres a diagram in korean here: Error 404 - Page Not Found)
Can I get some sample code, or guidance? I really don't know what I'm doing.

SilentDemon555:
Recently I acquired some bulk components, and in them I found a LCD module. I have no idea where it came from, but have done some research on it.
It has 9 pins, and seems to communicate using a SPI interface. This is something I am completely new to. I have absolutely no idea how to talk to this LCD and was really looking for some guidance. After hours of searching I found the appropriate data sheet here: HTTP 301 This page has been moved
I have got the LCD to power on and I have enabled it by jumping CS to Low (theres a diagram in korean here: Error 404 - Page Not Found)
Can I get some sample code, or guidance? I really don't know what I'm doing.

Try my Liquidcrystal library: GitHub - krupski/LiquidCrystal: Arduino Library for Hitachi HD44780 compatible LCD and VFD displays

It's basically the Arduino library with the ability to interface to SPI LCD modules added.

The chip you reference is an HD44780 compatible part, but you need SPI instead of parallel. My driver should do what you need.

There are no example programs... you shouldn't need any. All you do is use the library as you would the Arduino Liquidcrystal library, but initialize it with the SPI pins instead of parallel pins.

See this part of the header file:

// serial interface, hardware reset not available
LiquidCrystal::LiquidCrystal (uint8_t sck, uint8_t stb, uint8_t siso)
{
    init (255, sck, stb, siso, 255, 0, 0, 0, 0, 0, 0, 0);
}

// serial interface, hardware reset is enabled and available
LiquidCrystal::LiquidCrystal (uint8_t sck, uint8_t stb, uint8_t siso, uint8_t reset)
{
    init (255, sck, stb, siso, reset, 0, 0, 0, 0, 0, 0, 0);
}

Use the first one if you have not enabled the hardware reset line, use the second one if you did (and wired it to an Arduino pin).

Good luck.

I apologize, but I may have not made it clear enough. I am totally new to this LiquidCrystal library. I can code top level with IO pins and everything, but when we start delving into the true mechanics I'm lost.
I haven't even the slightest of clues on where to begin. I don't even know what a header file is or how I use that text.
Yes, I know "HOW DOES HE NOT KNOW WHAT A HEADER IS?!?!"
I never bothered with anything over the simple stuff, but would greatly appreciate further help

SilentDemon555:
I apologize, but I may have not made it clear enough. I am totally new to this LiquidCrystal library. I can code top level with IO pins and everything, but when we start delving into the true mechanics I'm lost.
I haven't even the slightest of clues on where to begin. I don't even know what a header file is or how I use that text.
Yes, I know "HOW DOES HE NOT KNOW WHAT A HEADER IS?!?!"
I never bothered with anything over the simple stuff, but would greatly appreciate further help

Well my friend, I don't think it's possible for me to teach you how to program in C with a forum post. I suppose you're going to have to do it like we all did... buy a book and start climbing up that learning curve.

For starters, why not open up the Arduino IDE, load some of the examples (like "blink"), look at them and see how they work, then compile and run them to watch them in action.

Then when you think you know what it does, change a small part and see if the resulting program acts the way you expected. Be sure to make a copy of the ORIGINAL first so that you can go back if your test doesn't work.

Try the "blink" example. Then change the time delays from "1000" to "2000" and see if, indeed, the light blinks more slowly. Go to Radio Shack, buy a few LED's and stick one into the Arduino. Note what pins you used, then edit the blink example to use the pins your LED is inserted into. Does it work? If not, try it a different way and compile again.

This: http://arduino.cc/en/Guide/HomePage will help you get started as well.

The learning curve is steep at first, but it gets easier each time you say "ah-HA I see what's going on here!". That's the only way to learn.

If you try something a few times and just aren't getting it, then come back here, post your code (using the "code" tags (the "#" button)) and say "I tried this and just can't get it working, what's wrong?" and someone will explain it to you. Now you've learned something. But you have to try first, then ask. Nobody will bother helping you if you didn't try first.

Pay close attention to "punctuation". In your code, a simple missing parenthesis or a colon instead of a semicolon will prevent the code from compiling. It's very common to write some code like this:

    delay (1000):

and have it not compile. You look and look and say "What the &$^$%# there's nothing wrong here!!!" and then finally you see "Oh, I used a colon instead of a semicolon. Edit it like this:

    delay (1000);

...and now it works.

As far as C programming books, I have never seen one as good as this: http://www.amazon.com/Practical-C-Programming-Nutshell-Handbooks/dp/1565923065

It's a very practical book and it points out a lot of common pitfalls, gives you programming guidance and is loaded with well explained examples. Even though Arduino is mostly C++, this book still applies. In fact, the same author wrote a "Practical C++" as well and it's not as good as the "Practical C" book!

Have fun, and good luck!

Let me further clarify.
I am relatively proficient at coding in the Arduino environment, but not so much when we are referring to SPI pins and Hex values and communication protocols.
I know how to code, just not how to set up SPI.
I apologize if I'm being an annoyance, but my real question is how do I set up your library?
Was I supposed to inherently know that I need to LiquidCrystal lcd(x, x, x)?
What are those pins? How do I initialize SPI?

SilentDemon555:
Let me further clarify.
I am relatively proficient at coding in the Arduino environment, but not so much when we are referring to SPI pins and Hex values and communication protocols.
I know how to code, just not how to set up SPI.
I apologize if I'm being an annoyance, but my real question is how do I set up your library?
Was I supposed to inherently know that I need to LiquidCrystal lcd(x, x, x)?
What are those pins? How do I initialize SPI?

Well let me ask you this: Do you know how to use the Liquid Crystal library for an ordinary LCD?

Not even in the slightest, no I have never used the LiquidCrystal library, or self-implemented a library for that matter.
Please remember, this is not just for me, but the vast majority of beginners who have had (or will have this problem).
Every thread we create with a centralized source of information for every weird problem will save these individuals. Please just weigh this when you are contemplating whether or not to call me a complete retard.