Go Down

Topic: LCD_screen Library Suite (Read 68476 times) previous topic - next topic


Great stuff avenue, it's getting better all the time.

Rob Gray aka the GRAYnomad www.robgray.com


Thanks for the accolade!

The GUI Library required 40 hours of work...

I'm dreaming about a better more powerful IDE on my MacBook, with niceties like parameters tips, jump to definition, object hierarchy browser, refactoring, ... and a glimpse of debugging.

Visual Micro: Windows only. Xcode: doesn't work. NetBeans: doesn't work. Eclipse: not sure.

Actually, I don't understand why each micro-controller board manufacturer supplies its own IDE. Wouldn't it be easier and cheaper to supply a plug-in for a standard IDE?


Release 23 includes

  • VGA support 

  • library release number check,

  • updated examples with test release

As usual, find the code here and explanation there!


what is the difference between the Serial and GFX version of this LCD? Is Serial slower than the GFX?


What do you mean exactly by direct chip access?

The 4D Systems screens offer two modes:
• SGC = serial slave connected through Serial to an Arduino
• GFX = stand alone board


by 'direct chop access' I meant GFX. I corrected it later. Is there a difference in the speed or the screen redraw?


Actually, it's the same micro-controller Picaso.

So drawing should go as fast.

However, one critical point when using the SGC-mode screen connected to Arduino, is to increase the speed of the serial port.

Default at 9600 is slow, but 38600 is much better, faster and smoother.


Would this library also work with the uOLED-96-G1GFX display? (the 0.96" little brother?) I am desperately looking for a library that will run on the new IDE (1.0) on a UNO, so far no dice!


Three points:

  • SGC vs. GFX

If you want to connect the screen to an Arduino, you need the SGC version of the screen.

The GFX version are stand-alone screens.

My library only works with the SGC mode, not the GFX mode.

Switching from GFX to SGC is just a matter of updating the firmware, called PmmC.

How To Decide Between GFX or SGC 

The architecture of the base GOLDELOX chip  is such that it can be reconfigured  to operate in 2 distinctively different ways. To configure the device, a PmmC (Personality Module Micro-Code)  is downloaded via its serial port. There are 2 types of PmmC available for GOLDELOX.

Please refer to 4D Systems site for more explanations.

  • Goldelox vs. Picaso

Goldelox deals with screens which size in < 256 pixels and thus uses 8-bits coordinates while Picaso addresses larger screens and thus uses 16-bits coordinates.

My library has been designed for Picaso and 16-bits coordinates.

However, since the commands are the same, it is just a matter of changing the coordinates from uint16_t to uint8_t.

Some niceties as the dialog box won't be adapted, because it requires 200 x 200 pixels.

  • Arduino 1.0 vs. 0023

I did release an Arduino 1.0-compatible library.

Actually, I'm waiting for Arduino 1.0 being stabilised and MPIDE 1.0 for chipKIT platform being released.

  • What To Do

I expect to release a Goldelox compatible library within a couple of days, but Arduino 0023 based.

I suggest you to downgrade the Arduino IDE to 0023 so you can enjoy the library.


Please find the pre-release 24 with Goldelox support on the pre-release branch.

I have no uLED screen, so I can't test it.

uLED owners, could you test it please? Thanks!

Menu and dialog require more space than uLED screens can afford, so they are not supported for uLED screens.



Any news?

Have you tested the library on your uLED?



This example based on pre-release 25 displays all the information provided by the screen:

• category: ?LCD, ?LED or ?VGA 
• size: horizontal and vertical
• SD-card availability
• partitions: FAT, FAT and RAW

More details available here.


Release 26 of Serial_LCD includes now a new high-end library Graphics.

The Graphics library provides high-end routines to display graphics.

Two graphics are available: clock and direction

Enjoy :)


Release 27 of Serial_LCD provides all the functions to obtain information about the screen connected.

Enjoy :)


New Release 28 allows using the same code for different screens.

The very same sketch, here a clock, runs on three different screens:
• µOLED-160-G1(SGC),
• µLCD32-PT(SGC) and
• µLCD43-PT(SGC)

Thanks to the functions maxX and maxY, the clock is defined to fit the screen size:

Code: [Select]

    uint16_t radius = min( myLCD.maxX()/2-4, myLCD.maxY()/2-4 );
    myClock.define(&myLCD, myLCD.maxX()/2, myLCD.maxY()/2, radius,
        myLCD.setColour(0x00, 0xff, 0x00), myLCD.setColour(0x00, 0x00, 0xff),
        myLCD.setColour(0xff, 0x00, 0x00),
        myLCD.setColour(0x00, 0x00, 0x00),
        myLCD.setColour(0xff, 0xff, 0xff));

Learn more about Same Code, Three Screens!

Go Up