RepRapDiscount Full Graphic Smart Controller

From RepRap
Jump to: navigation, search
Crystal Clear action run.png Full Graphic Smart Controller

Release status: working

Run your RAMPS without a computer just with a SD card!
CAD Models
External Link

Full Graphic Smart Controller

Based on bkubicek idea and STB's DOGM128 implementation, we realized this full graphic smart controller.


This full graphic Smart Controller contains a SD-Card reader, an rotary encoder and a 128 x 64 dot matrix LCD display. You can easy connect it to your Ramps board using the "smart adapter" included.

After connecting this panel to your Ramps you don't need your pc any more, the Smart Controller supplies power for your SD card. Further more all actions like calibration, axes movements can be done by just using the rotary encoder on the Smart Controller. Print your 3D designs without PC, just with a g-code design stored on the SD card.


LCD Connect Schematics

RepRapDiscount Full Graphic Smart Controller Schematics

Smart Adapter Gerber Files

RepRapDiscount Full Graphic Smart Controller Gerber Files

As firmware we used Marlins' sources, to update the firmware in the future you just need an Arduino board, so you are good to go ;)

Pictures of a Full Graphic Smart Controller made by

Marlin V1 (new)

Installation: In "Configuration.h”

  1. Change “#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER” (just remove the // at the beginning)

==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder:

Upload the firmware, power off the Arduino, connect the panel, reapply power, and everything should work.



Open Source Files

You can find the open source files here:

Where to get it?

If you don't have the mood to build it yourself you can just buy from

All parts are licensed under Attribution - ShareAlike.


  • Some versions of this board have the notched connectors the wrong way around. If your controller only flickers and beeps, cut off the notches on the cables and insert them upside down.
  • Some clones of this board use really slow LCD displays so their signal timings need adjusted.
The symptoms are that the display gets slightly corrupted. (which can also be cables to long)
In current versions of marlin (1.1.9) add the following to configuration.h to override the default settings.
add "#define ST7920_DELAY_1 DELAY_NS(0)"
add "#define ST7920_DELAY_2 DELAY_NS(0)"
add "#define ST7920_DELAY_3 DELAY_NS(63)" // this is the defaults for a 16mhz processor (ie a mega2560)
This is used as follows.
For each bit that is sent over SPI
Set the clock pin low and wait ST7920_DELAY_1
Set the data pin and wait ST7920_DELAY_2
Set the clock pin high and wait ST7920_DELAY_3
Slower LCD's seem to need ST7920_DELAY_3 increased.


There are some possible hacks to modify the display.