How to connect (successfully) a reprap discount full graphic smart controller to a 3Drag 3D printer

After spending some hours reading hundreds of posts, comments and blogs, finally I have been able to connect a reprap discount full graphic smart controller to my 3Drag printer.

According to my experience, there is no clear information on how to connect the controller to that specific printer model. For that reason, I decided to write this post in order to show the problems that I have encountered during the process and above all the successful result.

To start, you should have the following components.


  • 3Drag 3D printer (board version 1.2)
  • RAMPS1.4 12864 LCD Display Controller Kit For 3D Printer (I bought this in
  • 4 x 10 pin Dupont connector (for instance this on aliexpress)
  • 20 x F-F jumper wire connector (for instance this on aliexpress)
  • PC with Arduino IDE version 1.0.5 installed

Since the LCD Display Controller Kit For 3D Printer provides a connetor that is not compatible with the 3Drag pins, you have to build your own cable according to the following table that indicates the pin correspondence between the two devices.


I have to thank the Velleman K8200 support forum, in particular to the user mpoor who strongly believes on the open source principle. Without his contribution on Jan 10, 2014, it would have been impossible for me to build the cable.

There are different ways to make the cable. A first approach is to buy a commercial one; unfortunately, in they sell the full kit with the adapter for 3Drag not assembled . The next easiest (and more elegant) alternative is to adapt Dupont individual wire connectors to 10 pin connectors. You could use individual cables, but I didn't like the fact that the cables may disconnect eventually.

To build the cable, remove the individual connectors in each F-F jumper cables and use the 10 pin connectors, one for each EXT terminal and two for the 3Drag circuit board. When finished, the cable should look like this


Ok. Once we have the cable, let's proceed to upload the firmware to the 3Drag board. The steps are the following:

  1. Download the Marlin firmware for 3Drag version V1.1 from the webpage and unzip the file.

  2. Open the file Marlin.ino using Arduino IDE version 1.0.5. Attention! I recommend to use this specific version. I have spent a few hours trying to upload the firmware using a newer version of the Arduino IDE without success.

  3. Select card Mega2560 or Mega ADK in Arduino IDE.

  4. Select the config.h file and make sure that the TEMP_SENSOR lines have the following values

  1. Comment line 343

  1. Uncomment line 358

  1. At this point you can save and Verify the code. If you have an error message, you are in the right track. The error message indicates that the library u8glib used to control the graphic controller is required and has not been added.

  2. Go to the webpage and download the u8glib library. I have used the 1.18. version which was released very recently.

  3. Import the library, , in Arduino IDE

  4. Add #include <U8glib.h> at the beginning of the file config.h

  5. Verify code. At this point you should have no errors after compilation.

  6. Short the JPROG pins together with a jumper.

  7. (optional) By default, the controller language is Italian. If you want to change it, go to the file tab language.h and change the last digit in the line:

According to the following table:

Language Code
English 1
Polish 2
French 3 (awaiting translation!)
German 4
Spanish 5
Russian 6
Italian 7
Portuguese 8
Finnish 9
  1. Upload code to board.

  2. Disconnect JPROG jumper.

  3. Power off printer.

  4. Connect LCD controller to 3Drag using the cable built previously.

  5. Turn on printer. Happy printing!!!

What can go wrong?

I had a hard time uploading the firmware. At some point, after double-checking the cable, I had the following image displayed on the LCD screen.

"It has to be a software rather than a harware problem", I thought. Fortunately, after using an older version of the Arduino IDE, everything worked.

My advice is, avoid using the latest version of the Arduino IDE to upload the firmware, and use an older one; for example version 1.0.5.

Additional information

The following resources where very helpful:
* Gilles Simon blog Velleman k8200 Usage / Upgrade / Hacking
* Velleman K8200 support forum. Topic: LCD help

4 thoughts on “How to connect (successfully) a reprap discount full graphic smart controller to a 3Drag 3D printer

  1. Simon

    I just updated to the latest version of marvin, witch require Arduino IDE 1.6.0 minimum to be uploaded.
    now, I'm having the same graphical bug than you....
    Before it was working... GRRRRRR

    1. Henrique

      Simon, I had a similar problem and solved it by disabling one line at "ultralcd_st7920_u8glib_rrd.h" file, the line is "#pragma GCC optimize (3)" located at the beggining of the file.
      I found something about this optimize messing with the LCD so I got lucky on the fix.

  2. Alla Engquist

    Good blog post. I certainly love this site. Keep it up!

Comments are closed.