M2 LCD Panel

The optional M2 LCD Panel can be purchased and installed on any 24v M2 with a RAMBo version 1.2G or newer, to provide real-time printer information and computer-free printer control. Connection details and compatible firmware are below. Details for the older Viki LCD modules are included as well.

Electrical Connections

Disconnect power from the printer.
Open up the electronics case.
Disconnect the original SD card reader, which is replaced by the reader in the LCD module.
Align the adapter board over the three headers on the RAMBo as shown and press down gently until the board is fully seated.


Attach the connecting wires, careful to match up I with I and II with II


Close up the electronics case


Printers shipped before

The Rev D production LCD firmware is M2 Marlin - Geeetech LCD - Black Z Motor - 10-19-2015.zip - this applies to any (non Rev E) printer with a black Z motor that was shipped before March 2016.

Power up the printer and prepare to install the updated firmware for the LCD module by downloading this firmware for 24v printers with the old Z motor, or this firmware for brand new M2s with a black Z axis motor. Then the Arduino IDE which is needed to install the firmware on your printer. Note: Please use Arduino IDE version 1.5.5 Beta until issues with the compiler in newer versions are resolved.

Extract the contents of the firmware zip file you downloaded. Install and start the Arduino IDE. Connect the printer via USB. In the Arduino IDE, go to the File menu and select Open. Navigate to the directory you extracted the firmware in and locate and open "Marlin.pde"

Go to Tools, and select the Serial Port that corresponds to your printer. Go to Tools again, and select Board > "Arduino Mega or Mega 2560"

Click the button with the arrow pointing to the right (Upload) and watch for any errors as the firmware compiles and uploads. As soon as the Printer restarts, your LCD should function.

Note that this firmware disables all fans when restarting the printer until either the extruder or bed is heated past 50ºC. This is a feature to reduce the noise generated by a printer sitting idle.

LCD Operation

How to use the LCD control:

Options are selected by pressing the knob, values are increased by turning the knob clockwise and decreased by turning the knob counterclockwise. Lists are navigated down by turning the knob clockwise and up by turning the knob counterclockwise. While in lists, the top option will take you to the previous screen. While setting a value pressing the knob will set the value and return to the previous screen. If any screen is inactive for too long the user will be returned to the Info Screen and if a value was being set it will not be saved.

Some of the below menu items are only available in certain contexts - Tune only shows up while a print is running, while Prepare only shows up while a print is not running.

  • Info Screen: This screen displays information and only the feedrate can be changed here. See below.
    • Top row of images and numbers
      • First is the hotend. Below the image of the hotend is the current temperature. Above it is the desired temperature.
      • Second is an image for the heated bed. Below the heated bed is the current temperature and above it is the desired temperature.
      • The last picture represents the bed fan. Below it is its current average power setting.
    • The second row shows the current position of all the axes.
    • The bottom row
      • First is the feed rate multiplier.
      • Next is the print information. This displays how long the current print has been running and a loading bar to approximate how much time is left.
    • Main Screen: This next screen is progressed to by pressing the knob while in the Info Screen. The options change depending on whether you are printing or not.
      • Tune: These options are used to affect your printer while a print is running.
      • Prepare: These options are used to prepare your printer for a print and to control your stepper motors.
        • Disable Stepper: Deactivated stepper motors so that they can be moved by hand. Motor will have to be homed inorder to correctly update the position again.
        • Auto Home: Homes all axes
        • Preheat PLA: Gives options for preheating both nozzle and bed or just bed to PLA printing temperatures.
        • Preheat ABS: Gives options for preheating both nozzle and bed or just bed to ABS printing temperatures.
        • Cooldown: Sets desired temperatures to 0.
        • Move axis: Gives you options as to what increment you want to move in then you can choose an axis that you wish to move manually.
      • Control: These options allow you to alter temperatures manually, and change values in the EEPROM of your Rambo board (e.g. Jerk and Maximum acceleration) which must be stored if you want to keep them (see below).
        • Temperature: Manually change temperatures, bed fan speed, extruder PID settings, and preheat settings for filament materials.
        • Motion: Allows the user to change values for motion settings in the EEPROM
        • Store Memory: Choose this option to save any changes to the motion and default settings. Otherwise they will be reset with the Rambo board.
      • Pause Print: Allows you to pause the print to later be resumed
      • Resume Print: Allows you to resume the print after is had been paused.
      • Stop Print: Stops print entirely. Desired temperatures will remain.
      • SD Card: This screen lets you choose a file to print from your SD card
      • Change SD card
      • No SD card: Displays if no SD card is inserted
      • Init. SD card: Refreshes files on SD card

Older Model LCD Modules

Viki - Electrical Connections

Due to the general-purpose nature of RAMBo (the M2 controller board) and the large number of pins required to control the LCD panel, the wiring setup looks rather complicated at first glance. Once you understand the setup, however, it becomes far less complex. The pictures below were taken with the RAMBo board separated from the electronics case and M2, and the LCD panel out of its printed case, for clarity.

There are two identical cables that connect the LCD panel to RAMBo. We will label them A and B for simplicity. The 2x3 connector side of cables A and B connect to the LCD panel, with cable A going to the top 2x3 male header, and cable B to the bottom 2x3 male header. Both cables need to be connected with the yellow and white wires down.

On the RAMBo side, each cable needs to be connected to two different male header sets:

Wire color RAMBo pin
Red I2C4 SPI6
Black I2C3 EXT13
Blue I2C2 SPI4
Green I2C1 SPI5
Yellow EXT17 EXT15
White EXT19 SPI3

LCD panel connection can be performed before or after the main printer harness wiring. If done after, be careful to not dislodge any of the LCD panel wiring while running the rest of the connectors. You may also omit the SD card reader included with M2, as the LCD panel has an integrated microSD reader.

Versions 1.2e and above of RAMBo have a slightly modified header layout - the I2C header has been rotated 90° clockwise. The wire order is still the same, though rotated - from front to back, [Red, Black, Blue, Green]. This image shows the correct connections (click to zoom):

Viki - Firmware

Note: Arduino IDE 1.6.x has caused problems for some customers. We recommend using an older version, like Arduino IDE 1.5.5

To use the LCD panel with M2, a newer version of the Marlin firmware is required, that has support for I2C LCD panels. Download Marlin for M2 with LCD panel, and unzip it. Marlin for M2 with LCD panel and x8 microstepping is appropriate for M2s with a 19V/12V PSU set, and an older RAMBo that only supports x8 microstepping.

For 24V M2s, use Marlin for M2 with LCD panel, 24V; for M2s with a 24V 40W hotend, but a 19V PSU, use Marlin for M2 with LCD panel, 19V with 24V heater.

You will also need the Arduino IDE installed, available from Arduino. Version 1.5.5 is tested and recommended.

Extract both the firmware and the Arduino IDE. Open the Arduino IDE, and go to the Tools menu. There, make sure that "Arduino Mega or Mega ADK" is selected in the Boards submenu, and that the COM port relating to your M2 is selected in the Serial Port submenu.

Go to File, Open, and navigate to the location where you extracted the firmware. Open Marlin.pde in the Marlin subfolder. Once Marlin has been opened, click on Upload (Either File - Upload, Ctrl+U or click on the round button with the right-pointing arrow). The firmware should compile and upload to the RAMBo board.

If all electrical connections are correct, and the firmware uploads successfully, you should now be able to control your M2 through the LCD panel.

If you experience any issues with the upload or connection process, or find any bugs in the firmware (LCD support in Marlin is rather new, and may be prone to bugs), please contact MakerGear support for assistance.

If you have trouble running prints from the SD card, first make sure that you have the latest version of the firmware from this page - it has been updated as of 9/4/2013. You may also need to reformat your SD card as FAT32, rename and reorganize the files on the SD card, so that they are all in the top or root directory, and follow an 8.3 naming convention.

Credit for initial testing and modification of the firmware goes to MakerGear customer, BrianG (whoDat on IRC). The SD printing fix was created by Brendan, another MakerGear customer. Specific information is available on the Google Group, specifically this post.

Viki - Case

The M2 LCD Panel comes with a printed and laser cut case, derived from a public design published by TysonL. The original version is available here. The modified version is available on our Github page, here.