1.04 inches oled

just found this 1.04 inches oled on ebay :

MINI graphic oled lcd module http://www.lg-oled.com/

this is good for low cost device design or student practical design
you can design and potograph device .
lcdmm002

the following website:
http://electronic-components.spaces.live.com/default.aspx
show you how to connect to the 1.04 inches oled lcd screen
it can driver by SSD1332 ic .we only supply program in c as the following:
//programer for GCC-AVR V20040502 date 2006-06-04 13:29:57
//micro controller atmel mega16
//clock 8.0000Mhz
/-------------------------------------------------------------
OLED def
1---VTEST
2..9---D7..D0
10---RD
11---RW
12---DC
13---RES
14---CS
15---3.3V
16---GND
-----------------------------------------------------------------
/
#include <avr/io.h>
#include <avr/delay.h>
#define uchar unsigned char
#define uint unsigned int
/---------------------------------------------------------------
AVR ATMEGA 16 AND OLED CONNECTION:
PA->D0--D7
PC3->RD
PC2->WR
PC1->DC
PC0->CS
PD7->RES
TO USE THIS DRIVER PLEASE SET OR CHANGE AS THE FOLLOWING:
-----------------------------------------------------------------
/
#define OLED_RD_PORT PORTC //THE FOLLOWING FOUR SHOULD BE AT THE SAME PORT
#define OLED_RD_DDR DDRC
#define OLED_WR_PORT PORTC
#define OLED_WR_DDR DDRC
#define OLED_DC_PORT PORTC
#define OLED_DC_DDR DDRC
#define OLED_CS_PORT PORTD
#define OLED_CS_DDR DDRD
// RESET
#define OLED_RES_PORT PORTC //RES SET THE SAME PORT
#define OLED_RES_DDR DDRC
//DATA PORTS
#define OLED_DATA_PORT PORTA
#define OLED_DATA_DDR DDRA
#define OLED_DATA_PIN PINA
//IO PORTS
#define OLED_RD (1<<PC3)
#define OLED_WR (1<<PC2)
#define OLED_DC (1<<PC1)
#define OLED_RES (1<<PC0)
#define OLED_CS (1<<PD7)
//
//OLDE INITIAL FUNCTION AND OPERATERS
unsigned char ReadData(void);
unsigned char ReadCommand(void);
void WriteCommand(unsigned com);
void WriteData(unsigned dat);
void esbusini(void);
void ini_oled(void);

unsigned char RGB[]={0x00,0x1f,0x07,0xe0,0xf8,0x00,0x00,0x00,0xff,0xff};
unsigned char ColorBar[]={0xff,0xff,0xf8,0x00,0xff,0xe0,0x07,0xe0,0x07,0xff,0x00,0x1f,0x00,0x00};
void WriteCommand(unsigned com)
{
OLED_CS_DDR|=OLED_CS;
OLED_CS_PORT|=OLED_CS;
OLED_RD_DDR|=OLED_RD; //DISABLE EQUIL 0
OLED_RD_PORT|=OLED_RD; //0
OLED_DC_DDR|=OLED_DC; // USE AS OUTPUT
OLED_DC_PORT&=~OLED_DC; //DC=0; WRITE COMMAND
OLED_WR_DDR|=OLED_WR; //AS OUT
OLED_WR_PORT&=~OLED_WR; //ENABLE EQUIL 0
OLED_CS_PORT&=~OLED_CS;
OLED_DATA_DDR=0XFF; //ALL AS OUTPUT
OLED_DATA_PORT=com; //OUTPUT THE INFORMATION
_delay_ms(1);

OLED_CS_PORT|=OLED_CS;
OLED_WR_PORT|=OLED_WR;
OLED_DC_PORT|=OLED_DC;

}
void WriteData(unsigned dat)
{
OLED_CS_DDR|=OLED_CS;
OLED_CS_PORT|=OLED_CS;
OLED_DC_DDR|=OLED_DC; //USE AS OUT
OLED_DC_PORT|=OLED_DC; //DC=1;

OLED_WR_DDR|=OLED_WR; //READ SET TO
OLED_WR_PORT&=~OLED_WR;
OLED_RD_DDR|=OLED_RD;
OLED_RD_PORT|=OLED_RD;
OLED_CS_PORT&=~OLED_CS;

OLED_DATA_DDR=0XFF; //USE AS OUT
OLED_DATA_PORT=dat; //SEND USEFUL INFORMATION
// _delay_ms(1);
OLED_CS_PORT|=OLED_CS;
OLED_WR_PORT|=OLED_WR;
OLED_DC_PORT|=OLED_DC;
}
void esbusini(void)
{
OLED_WR_DDR|=OLED_WR;
OLED_WR_PORT&=~OLED_WR;
OLED_RD_DDR|=OLED_RD;
OLED_RD_PORT&=~OLED_RD;
OLED_CS_DDR|=OLED_CS;
OLED_CS_PORT&=~OLED_CS;
OLED_RES_DDR|=OLED_RES;
OLED_RES_PORT&=~OLED_RES;
_delay_ms(100);
OLED_RES_PORT|=OLED_RES;
_delay_ms(100);
}

void ini_oled(void)
{
esbusini();
WriteCommand(0x15); //SET BIAS
WriteCommand(0x00); //Set line0 to COM0
WriteCommand(0x81); //set High Brightness
WriteCommand(0xdf);
WriteCommand(0x82); //set High Brightness
WriteCommand(0x1f);
WriteCommand(0x83); //set High Brightness
WriteCommand(0xff);
WriteCommand(0x87); //set High Brightness
WriteCommand(0x0f);
WriteCommand(0xa0);//Set Re-map & DataFormat AUTO ADDRESS ADDED
WriteCommand(0x60); //set 65k color format 256c
WriteCommand(0xa4); //set Normal Display
WriteCommand(0xa8); //set Multiplex Ratio
WriteCommand(0x3f);
WriteCommand(0xa9); //set Power Control SET POWER ON
WriteCommand(0x03);
WriteCommand(0xaf); //set Display on
WriteCommand(0xb8);//Set Gray Scale Table
WriteCommand(0x01);
WriteCommand(0x05);
WriteCommand(0x09);
WriteCommand(0x0d);
WriteCommand(0x11);
WriteCommand(0x15);
WriteCommand(0x19);
WriteCommand(0x1d);
WriteCommand(0x21);
WriteCommand(0x25);
WriteCommand(0x29);
WriteCommand(0x2d);
WriteCommand(0x31);
WriteCommand(0x35);
WriteCommand(0x39);
WriteCommand(0x3d);
WriteCommand(0x41);
WriteCommand(0x45);
WriteCommand(0x49);
WriteCommand(0x4d);
WriteCommand(0x51);
WriteCommand(0x55);
WriteCommand(0x59);
WriteCommand(0x5d);
WriteCommand(0x61);
WriteCommand(0x65);
WriteCommand(0x69);
WriteCommand(0x6d);
WriteCommand(0x71);
WriteCommand(0x75);
WriteCommand(0x79);
WriteCommand(0x7d);
WriteCommand(0xbb);
WriteCommand(0x7f);
WriteCommand(0xbc);
WriteCommand(0x7f);
WriteCommand(0xbd);
WriteCommand(0x7f);
}
#define LED_DDR DDRD
#define LED_PORT PORTD
#define LED (1<<PD6)

//-----------------------------------------------------------------------------
void disp_all()
{
uchar ii,jj;
WriteCommand(0x15);
WriteCommand(0x00);
WriteCommand(0x5f);
WriteCommand(0x75);
WriteCommand(0x00);
WriteCommand(0x3f);
for(ii=0;ii<64;ii++)
{
for(jj=0;jj<96;jj++)
{
WriteData(0xff);
WriteData(0xff);
}
}
}
int main()
{
uchar ii,jj;
// DDRD&=~(KEY1|KEY2);
// PORTD=_BV(KEY2)|_BV(KEY1);//KEYBOARD RESISTORS
LED_DDR|=LED;
LED_PORT&=~LED;
ini_oled();
LED_PORT&=~LED;
ini_oled();
_delay_ms(100);
disp_all();
LED_PORT|=LED;
while(1);
}

1.04 inch(65K colors)-SSD1332
the following website:
http://electronic-components.spaces.live.com/default.aspx
show you how to connect to the 1.04 inches oled lcd screen. this oled screen can be drived by ic ssd1332) Controller chip)
it can driver by SSD1332 ic .
ssd1332 datasheet:
SSD1332 pdf, SSD1332 Description, SSD1332 Datasheet, SSD1332 view ::: ALLDATASHEET :::

has someone already made a library for it ?

No library yet, but I've got a couple of them running on a ATmega32@20MHz on 3.3 Volt logic power and 12 Volt for oLED driver supply.
At the moment I'm playing with that example program that was quoted above and modified it a bit to simplify stuff and also to make it work better @20MHz.
I've bought them from eBay together with the optional PCB to solder them on to, really easy to prototype. :wink:
But they are really nice displays for little money, OK small but nice.
You can really tweak them for colour temperature and gamma and off course black is black not gray blackish!
Also it is readable from any angle within 180 degrees without any colour change!

Later...

BTW:
Google on "BL-TFT240320PLUS arduino" yet another really cool display that I use and that really works on a arduino as a arduino-shield!

@Long John, I've seen the displays on eBay as well.. for literally dollars.. but I didn't see the PCB's. I was afraid to get some without some connectors of some sorts! (My soldering iron looks like a crayon that's been used over and over.. and radioshack BLOWS and doesn't carry a replacement tip.)

Where'd you find those boards?:slight_smile:

the boards are here : http://cgi.ebay.fr/oled-graphic-lcd-module-display-screen-driveboard-DC12v_W0QQitemZ370295172181QQcmdZViewItemQQptZLH_DefaultDomain_0?hash=item56374fec55 oled graphic lcd module display screen driveboard DC12v, $1.99 each !

That's it!
But be very careful with soldering the display to the board.
The contacts are made of thin free floating and fragile foil.

From a thin 1.5mm aluminum profile (which won't stick/solder to the object been soldered) I made a soldering jig.
This jig I use with its 1.5mm wide footprint and its width of the connectors length to press and hold down the foil contacts onto the pre-soldered and fluxed up PCB contacts, while doing this, I heat up the jig with a hot air soldering gun.
Then keep softly pressing down until the solder melts and slowly settles, let it cool down for a bit (still pressing softly).
After the solder has cooled down, lift the jig. (Alloy won't solder)
The result shout be a very flat soldered foil and no messy solder all over the place. Clean up the PCB with alcohol to get rid of the leftover flux.

After soldering and testing the display I hot-glue the contacts to give them more mechanical strength and hot air the glue for a nice and smooth surface.

I would like to add some photo's, but how?!?

Cheers.

to add a photo, in the message editor click on the third icon "insert image""" and copy the url of the image between the img tags.
The best solution for permanent file hosting :
you can create an account on Dropbox https://www.dropbox.com/ and host you images in the public folder. Dropbox create a directory on your computer (you can store there the novel you are writing, any spreadsheet, your arduino sketches, etc...) and sync it with an online back-up. You can access you files from any computer and edit them, they will be synced automatically.

Lets try it this way;




Seems to work...

Your photos are not anymore visible, be sure to right click on them in you dropbox folder, and in the contextual menu, click "dropbox" "copy public link", that's the link to paste between the IMG tags.

It seems not to, I try again...




I hope it helped. :-?

Any progress on a library?
It looks as a nice display, but needing 12v is a downside..
I could probably offer some help if there is a half-finished library for it, but i don't feel like starting from scratch if there is one, or if it ended up beeing horribly hard to write for some reason.
anyone gotten anything nice shown on one of these yet?