MKS MINI 12864 on a RUMBA

I am switching Firmware To Repetier.
MKS MINI and RUMBA worked perfectly with MARLIN, but Marlin doesn't support 3 head Ditto Printing for industrial printing/manufacturing.

Does anyone have the correct settings?


  • Isn't it compatible with reprapdiscount graphic display?
  • Nope! Might have something to do with having to enabling the mini- driver in uiconfig.h and the DOGLCD CS, DOGLCD A0.
    I've tried several combinations but no success. 
    Repetier is laid out differently than Marlin, so I'm struggling with the location for inserting the fix that was done on Marlin. 
    I have a backlight only, so I'm close.  I think it's pin 38 and 41 that are the problem but I don't know how or where to address this. 

  • Check DisplayList.h there each display has it's configs - often divided in board if known by us. So if you have a display with same chipset all you need to do is tweak the pin numbers. uiconfig.h has more detailed description what each parameter does.
  • Haven't figured this out at all. Tried bunches of stuff, but I'm not a programmer.
    How can I transfer settings from Marlin to Repetier? I have no idea what goes where. This may be easy for you, but it's not for me. I was able to do the Marlin fix, but I'm lost in Repetier. 
  • Who has a Rumba using Repetier and a MKS MINI LCD?

    someone out there has the settings.

  • 1. I have a backlit white screen.
    2. Kill pin, SD Card, buzzer, dial selection encoder key with push to select all work.
    3. U8lib must be working, because I can blindly rotate and select an underlying menu selection, push encoder and the printer reacts.

    I just can't get the LCD to show. 
    Contrast or refresh setting? 
    Wrong pins but which ones and where do they need to be set?
  • I found this

    There they say like RRD Graphic Controller and we already have that with

    #elif MOTHERBOARD == 80 // Rumba has different pins as RAMPS!

    #undef BEEPER_PIN

    #define BEEPER_PIN             44

    #define UI_DISPLAY_RS_PIN      19

    #define UI_DISPLAY_RW_PIN      -1

    #define UI_DISPLAY_ENABLE_PIN  42

    #define UI_DISPLAY_D0_PIN      -1

    #define UI_DISPLAY_D1_PIN      -1

    #define UI_DISPLAY_D2_PIN      -1

    #define UI_DISPLAY_D3_PIN      -1

    #define UI_DISPLAY_D4_PIN      18

    #define UI_DISPLAY_D5_PIN      38

    #define UI_DISPLAY_D6_PIN      41

    #define UI_DISPLAY_D7_PIN      40

    #define UI_ENCODER_A           12

    #define UI_ENCODER_B           11

    #define UI_ENCODER_CLICK       43

    #define UI_RESET_PIN           46

    Please try this as it uses the right pinout. Do not confuse the the reprapdiscount 20x4 display whcih is definitely not compatible.

    If it does not work, I need to know the graphic chip the display uses.
  • The above pinout is already set as above.
    the U1 Chip on the back of the MKS MINI 12864 has the markings as follows:
  • This thread is for Marlin, but it looks as if someone here tried to use this on Repetier.
    This is the best thread to figure this out IMO.

    Makerbase MKS MINI12864 v1.0 with RAMPS_14 Configuration Marlin 1.1 #6847

  • One thing at a time.
    I have selected:
    #define U8GLIB_ST7920

    What is:
    // UI_DISPLAY_D5_PIN = A0

    can someone explain what this is for? I think it's for the MKS MINI
  • CS is chip select pin. You have that also in marlin. For the ST920 chip (which is what reprapdiscount graphic controler also uses) you need these pins set correctly

    // SCK Pin:  UI_DISPLAY_D4_PIN


    // CD Pin:   UI_DISPLAY_RS_PIN

    Left is function right is which name gets it. Not very intutive I know, the firmware names come from charater displays and these had the right pin numbers for RRD display so we refunctioned them for u8glib.

    // ST7920 with software SPI

    #define U8GLIB_ST7920

    // SSD1306 with software SPI

    //#define U8GLIB_SSD1306_SW_SPI

    // SH1106 with software SPI

    // U8GLIB_SH1106_SW_SPI

    // SSD1306 over I2C using hardware I2C pins

    // #define U8GLIB_MINI12864_2X_SW_SPI

    //#define U8GLIB_SSD1306_I2C

    // For the 8 bit ks0108 display you need to set these pins




    //#define U8GLIB_KS0108

    //#define U8GLIB_KS0108_FAST


    // UI_DISPLAY_D5_PIN = A0

    //#define U8GLIB_ST7565_NHD_C2832_HW_SPI

    You may only use one of these defines. It tells u8glib which driver to use and that must match the midi display driver, which is why I asked. But your infos did not help here. U8GLIB_MINI12864_2X_SW_SPI might be the right from the name, but that is often misleading.

  • I found this but didn't work/ didn't know how it all works
  • GarrethX commented May 25, 2017 • edited 

    I did run across a thread where they were able to get the MIN12864 to work. The nasty is they did hardware mods to the LCD. Sure hope it doesn't come to that.

    My HW mod is just required for DUE, as the HWSPI in u8glib v1 for that display is not working at 32 bits:)
    At rumba I managed to run this display with HWSPI, and I guess any 8bit will work, just you need correct pins..

    I even found an old code I used for rumba (not in 3d printer firmware, just one of my projects needed a temporary display:) ), I used there simply:

    #define UI_DISPLAY_DOGLCD_CS 38
    #define UI_DISPLAY_DOGLCD_A0 41

    And SD card:

    #define SDSS 53
  • I found this in Marlin
    #if (MINIPANEL)
    #define DOGLCD
    #define ULTIPANEL
  • Ok, your test project helps more then Marlin here. In ui.cpp we init displays and have

    #ifdef U8GLIB_MINI12864_2X_SW_SPI

        u8g_InitSPI(&u8g, &u8g_dev_uc1701_mini12864_2x_sw_spi, UI_DISPLAY_D4_PIN, UI_DISPLAY_ENABLE_PIN, UI_DISPLAY_RS_PIN, UI_DISPLAY_D5_PIN, U8G_PIN_NONE);


    #ifdef U8GLIB_MINI12864_2X_HW_SPI

        u8g_InitHWSPI(&u8g, &u8g_dev_uc1701_mini12864_2x_hw_spi, UI_DISPLAY_RS_PIN, UI_DISPLAY_D5_PIN, U8G_PIN_NONE);


    So comparing the parameter you need to define

    #define U8GLIB_MINI12864_2X_HW_SPI

    #define UI_DISPLAY_RS_PIN 38 // CS pin

    #define UI_DISPLAY_D5_PIN 41 // A0 pin

    to get that driver. Assuming you use the hardware spi channel. OYu confused me about the due stuff as you always talked about rumba. So pins are taken from your rumba example.

  • Nope, didn't work
  • Did you comment the other display and set display type as user defined? Not that you are not using the config at all.
    As a test you can add there
    #error Im used
    and if it stops compiling you know it is at least using the configuration from uiconfig.h and not from DisplayList.h
  • I believe #ifdef U8GLIB_MINI12864_2X_SW_SPI is for a two row, small LCD 
  • No, they are all for graphic displays. 12864 means 128 pixel by 64 pixel. The typical size for the small lcd displays. HW_SPI is hardware spi and SW_SPI is for software SPI, which would also require pins for clock and mosi pin. But in your example you did not use them so I assume you are using the hardware spi pins here.
  • I have no idea what I'm doing Lol, all I am doing is guessing. 

    what I know:

     Rumba with MKS MINI 12864LCD ver 1.0 will not work In its current default configuration using any of the provided display definitions.

    I need to solve "MY" problem so I am going to order three different screens and hopefully one will work.

  • You only need one. ReprapDiscount Graphic display works on rumba out of the box. And I think there are many clones of this one available.
  • Does repetier support the
    #define UI_DISPLAY_DOGLCD_CS 27
    #define UI_DISPLAY_DOGLCD_A0 25
  • No. these names are not used as far as I know. I think this was from his example taken from marlin, but I replied with the repetier names.
  • I have 3 New MKS MiNI' and I will give you one if you have a Rumba.
    l went to Reprap LCD and it works. I don't have the time to figure out the code.
Sign In or Register to comment.