U8glib: Graphics Lib for LCDs and OLEDs

U8glib 1.00 is available for download.

Features

  • Universal graphics library for OLED and LCD displays
  • Monochrome and graylevel
  • Controller support: SSD1325, UC1701, ST7565, ST7920, UC1610, PCD8544, PCF8812, KS0108
  • Many fonts included
  • F() macro and "print" support
  • XBM Bitmaps
  • Landscape and portrait mode

Note: The DFRobot ST7920 should be supported by the U8GLIB_ST7920_128X64 device,
but it has been reported that this is not working. Maybe someone from the Arduino
community is able to check this (I do not own this display).

Thanks to everybody who tested the beta releases during the last weeks!

Oliver

Edit: Modifed project home.

i've seen this now a few times , would there be any chance of haveing the ST7687s added ?
i found some init code for another micro but im very noob at this and need help

For sure, this is possible. However, i need some more information: What is the name of the display, is there a datasheet for the display? I am also a little bit confused: The provided link is for the ST7637, but you requested the ST7687.

Oliver

sorry i misread that thinking it was a 7687 the screen is a COG-C144MVGD-02 but the 04 others are the same , i found the datasheet for the controller http://www.displayfuture.com/engineering/specs/controller/ST7687S.pdf and also the data sheet for the lcd if that helps http://forums.parallax.com/attachment.php?attachmentid=75229&d=1289666192 i also found some code that had 90% correct commands but cound not port it over to arduino here it is if it helps there are some cool drawing classes in there might be handy but i broke it xD ie not compileing in arduino ide "not that it ever did" https://rapidshare.com/files/3415949665/rotcehlcd.rar

i also have a pcb made ready for testing

It could be done with u8glib, if a limited color space is acceptable. This means, that you could use 64 colors (out of the full color range). Would this be ok?

Oliver

yea that would be great i only have text to display atm, latter on down the track id like to do more with this litte screen but anywhere is a great start :slight_smile: this screen is found in manny micro photoframes ie the COBY DP151 and the XC0211 from jaycar http://www.jaycar.com.au/productView.asp?ID=XC0211 i also thought about makeing a video tut on makeing the breakout pcb ,etching, de soldering the lcd , and re working it to the breakout pcb if that could be helpfull as i found a few tricks that help

oh with the 64 colors thing would it look like this or worse or better ?

Your libary sounds interesting but....
I have purchased a 128x64 display named JN12864J obviously with a different controller than the KS108 stuff.
Controller is a Sitronix 7920 ([/http://www.dfrobot.com/image/data/FIT0021/ST7920.pdf ]).
Pinout is app type B with main difference that only one CS is needed and NOT 2 (CS1,CS2) as on KS0108.
Would it be possible to use/change your library to this type of interface?

@eotech
At least the U8GLIB_ST7920_192X32 constructor works fine in parallel and serial mode.
You may assign U8G_PIN_NONE to cs2 (and also cs1 if this is not tied to the Arduino).
The correct constructor for your display probably is: U8GLIB_ST7920_128X64.
You can try both by uncommenting the constructor in the example files.

@rotceh_dnih
I will start working on it, but it requires are totally new memory architecture. So it might take some time.

Oliver

Thankyou Oliver
I am a newbie and need some time to have it all setup.
I will make an attempt to have your lib included and defined to see what happens.
I would be happy to see that my purchase was not totally lost due to missing drivers :slight_smile:

Eo

:slight_smile: yes thank you oliver you really are a life saver , caint wait to see what you come up with

Some news on U8glib:

I have added a 8-bit color memory architecture (screenshot from the sdl-simulator):

With this, I added a U8GLIB_ST7687_C144MVGD (SPI interface) device to support
the requested C144MVGD TFT display. However, I do not know if the device code is correct nor do I know if the init sequence is correct (I simply do not have access to the device for testing).
http://code.google.com/p/u8glib/source/browse/csrc/u8g_dev_st7687_c144mvgd.c

I have also added the U8GLIB_LC7981_160X80 device to support the LC7981 controller. Also untested, but I might get feedback.

Download the prerelease here: Google Code Archive - Long-term storage for Google Code Project Hosting.

@manu_07 and eotech
Is U8glib working with your display?

Oliver

ooooh, color.... Nice!
--- bill

Hi
I found some libraries at dfrobot, for their display.

Good luck
DD

Thanks,
However, the problem is that I do not have access to this DFRobot display. I do not know if my code works or not. :~

Oliver

wow great work man i love it i havent got it to work but i love it :slight_smile: ,
im not sure if its hardware or not but theres a few things im not sure about
first off i used constructor U8GLIB_ST7687_C144MVGD u8g(2, 4, 6, 8, 10); i hope thats fine
im useing logic level converters to talk at 3v to the screen and looking at the datasheet for the ST7687 im guessing that " pin 27 A0" is SCL , "pin 25 D0" is SI and "pin 24 D1" is A0 a little confuseing but i keep going

its then i look at how its set into spi mode
and it says that IF1 & IF2 go high and IF3 is pulled low however according to the screen datasheet
Redirect Notice my lcd has only IF1 "pin14" & IF2 "pin 13" so unsure what todo next i tried combos of IF1 and 2 high and low but nothing is working the rest of the pins seem to be there and it looks to be hooked up right but im really not sure maybe the screem caint do spi? i really hope it can but this isnt looking good lol might have to be an wire interface :s not a big drama but i do like the idea of less pins :slight_smile: , thanks you for your great work and i hope i've given enough info for you to help please let me know if theres anything else you'd like to know or how i can help get this working :slight_smile:

to my understanding your pic seems to be correct (according page 20 of the st7687 datasheet).
I will create also a 8bit interface,

Oliver

:slight_smile: thanks man i replyed to your email address

Thanx for the great lib! it works great with my DFRobot ST7920 128X64 display.

I've got one question. I use software SPI on pins 9 and 8, but it looks like that it interferes with my hardware SPI which I want to use to communicate with a DS3234 RTC.

Good to know, that the DFRobot display is fine with the lib. Thanks for the feedback.

Regarding the RTC: What is the problem: Display does not work, RTC does not work, both do not work?
Maybe you can post the setup code for your display and your RTC: What are the involved pin numbers for both devices?

Oliver

Can't both use the hardware spi if you use separate pins for the slave selects?