RepRapDiscount Full Graphic Smart Controller


I’ve seen several posts with people using the full graphic LCD instead of the included character LCD. I tried with the current fork of marlin by uncommenting the ‘#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER’ in Configuration.h. I also made sure to install the required U8glib library.

What am I missing?


What are the results if you upload this? A display which has backlight but no text or doesn’t it light up at all or does it display strange tokens? If you tell us what you see, we can help you better.


After compiling and uploading, I plugged in the full graphic LCD. I get back-light, but no display. Not a single pixel. I can turn and click the rotary encoder and I hear the normal beeps. To me, this means that the cables are in the correct orientation.

After a little more digging into Martin’s fork, it looks like the ‘REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER’ definition is not used anywhere else in the code. So uncommenting it effectively does nothing (unless I’m reading it wrong).

I think my next steps will be loading “regular” marlin just to test the LCD function. In any case, I still would like to know what other have done, if anything, in Martin’s fork to get this working.


I’ve tested my RAMPS board with the latest marlin source. My full graphic LCD came to life. Looks like support may have been removed from Martin’s fork. Maybe because of his custom menus?

Hopefully one of the FGLCD users here will let me know their secret.


I think I figured it out.

In ‘Configuration.h’ I added the following lines around 733:
#define DOGLCD
#define U8GLIB_ST7920

In ‘ConfigurationStore.cpp’ I commented out line 420:
//lcd_contrast = DEFAULT_LCD_CONTRAST;

Because I’m using the latest u8glib I had to change the includes in dogm_font_data_marlin.h line 12 to:
#include <U8glib.h>
and comment out the redundant include on line 172:
//#include <utility/u8g.h>

The last change was to 'ultralcd.cpp. Starting on line 11 I added:
#include "LiquidCrystal.h"
#define LCD_CLASS LiquidCrystal

Next step is to reattach everything and see what I broke. :grin:


I have a possible problem with my font size. I used ver: 1.18.1 of U8GLIB by as you can see in my image I have over lapping text. The splash screen also is a little bunched as well.

I tried the latest version but I got errors compiling. Is there a fix for the font?


I’ve uploaded all of my changes to my fork of Marty’s repo.

Also submitted a pull request. My first so I apologize if its sloppy or wrong in some way.


Thanks @revnull I will try to pull those changes in!


I had a go at this and I got it to work but I had a problem:

When I comment out this first part


I get no screen on boot. When I un comment it again it seems to work fine.

revnull what version of U8GLIB do you use?

The knob rotation is reversed to me but I do remember I had to hack my Geetech to get it reversed.


Ok, I think I managed to merge in @revnull 's changes to fix the support for the full graphic controller. The version I checked in does not have it selected (it is not what I have) but all you should have to do is go into configuration.h, comment out the DISCOUNT_SMART_CONTROLLER and comment-in the REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER at line 726. Also you’ll have to install U8glib into your Arduino libraries folder if you haven’t already.


Ok I still have the same problem.

I had to add to Configuration.h


at line 87 for it to work.


I’m using the included RAMPS 1.4, Arduino IDE 1.6.9, and U8glib 1.19.1.

If you are using a PICA, based on Marty’s last commit, you will need to uncomment the definition on line 91 (for PICA rev. B) or line 92 (for PICA rev. C). This changed the MCU pin definitions. Without the correct board defined, you will have problems with more than just your LCD.


That’s right - you can use either display with either controller board so you have to select each separately.


Ah now that works and makes sense sorry I totally missed the line 91 and 92. I loaded it and it worked… I can’t completely test it just yet as I am just doing the wiring at the moment.

Update: It works perfectly fine good job and thanks for the help.


I’ve recently starting using one of these. Swapping the code in 91/92 as well as the code in 726 worked to get it running. I’m now having a perculiar issue with a Err:mintemp when Not plugged into USB. as soon as the usb is plugged in its fine. Wondering if I missed a line of code somewhere that I need to swap?


I had a similar problem with my Wilson II originally, but my cheap chinese RepRapDiscount Full Graphic Smart Controller had a small pot between the two boards that was also for LCD Contrast. Some long needle nose pliers enabled me to turn it enough to see the display.


After a lot of research and many try I found that I had to comment “#define WITBOX” to make it work for my RepRapDiscount Full graphic smart controller.