Using an Anet Full Graphics Display on a MKS Gen 1.4, 1.3 & L Running Marlian 1.1.9.

Introduction: Using an Anet Full Graphics Display on a MKS Gen 1.4, 1.3 & L Running Marlian 1.1.9.

I have seen many rewires and adaptors but also a lot of complaints and displays not working or damaged.

I wanted my E12 display to work with my new MKS Gen 1.4. So I was sure some software changes and two wires would only be the changes.

Follow these steps and yours will be working.

Update: I have checked the pinouts for the Gen 1.3 & L and updated this instructable.

Step 1: The Additional Code Needed Is the 1st Step.

This instructable assumes you know how to open and make changes to the Marlian 1.1.9. firmware.

  • So open the Marlian.ino in the Arduino IDE.
  • Find and open Configuration.h
  • Find ANET_FULL_GRAPHICS_LCD
  • If there are // in front of ANET_FULL_GRAPHICS_LCD remove the //. If you had to remove the // more than likely another display is defined, look through the LCD / Controller Selection and add // to the other display that starts with #define
  • All others should look like these:
//#define REPRAP_DISCOUNT_SMART_CONTROLLER
//#define ULTIMAKERCONTROLLER
//#define ULTIPANEL
//#define PANEL_ONE
//#define G3D_PANEL
//#define RIGIDBOT_PANEL
//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
//#define ZONESTAR_LCD
//#define ULTRA_LCD
//#define RA_CONTROL_PANEL
//#define LCD_SAINSMART_I2C_1602
//#define LCD_SAINSMART_I2C_2004
//#define LCM1602
//#define LCD_I2C_PANELOLU2
//#define LCD_I2C_VIKI
//#define SAV_3DLCD
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
//#define REPRAPWORLD_GRAPHICAL_LCD
//#define VIKI2
//#define miniVIKI
//#define MINIPANEL
//#define MAKRPANEL
//#define ELB_FULL_GRAPHIC_CONTROLLER
//#define BQ_LCD_SMART_CONTROLLER
//#define CARTESIO_UI
//#define LCD_FOR_MELZI
//#define U8GLIB_SSD1306
//#define SAV_3DGLCD
//#define ULTI_CONTROLLER
//#define OLED_PANEL_TINYBOY2
//#define MKS_MINI_12864
//#define CR10_STOCKDISPLAY
//#define MKS_12864OLED
//#define MKS_12864OLED_SSD1306
//#define MALYAN_LCD</p>
  • FOR MKS Gen 1.3 & 1.4 boards
  • Find and open the pins_MKS_GEN_13.h tab.
  • Find where this code is:
//
// LCD / Controller
//
  • Insert this code on the line after // and before #if ENABLED(VIKI2) || ENABLED(miniVIKI)
#if ENABLED(ANET_FULL_GRAPHICS_LCD)
  #undef BTN_EN1
  #undef BTN_EN2
  #undef BTN_ENC
  #undef BEEPER_PIN
  #undef LCD_PINS_D4     
  #undef LCD_PINS_ENABLE 
  #undef LCD_PINS_RS     
  #undef ST7920_DELAY_1
  #undef ST7920_DELAY_2
  #undef ST7920_DELAY_3
  #define BTN_EN1            23
  #define BTN_EN2            27
  #define BTN_ENC            17
  #define BEEPER_PIN         37
  #define LCD_PINS_D4        35
  #define LCD_PINS_ENABLE    25
  #define LCD_PINS_RS        29
  #define ST7920_DELAY_1 DELAY_NS(0)
  #define ST7920_DELAY_2 DELAY_NS(63)
  #define ST7920_DELAY_3 DELAY_NS(125)
  #define STD_ENCODER_PULSES_PER_STEP 4
  #define STD_ENCODER_STEPS_PER_MENU_ITEM 1
#endif
  • FOR MKS Gen L board
  • Find and open the pins_MKS_GEN_L.h tab.
  • Insert the following code on the line after #include "pins_RAMPS.h".
#if ENABLED(ANET_FULL_GRAPHICS_LCD)<br>  #undef BTN_EN1
  #undef BTN_EN2
  #undef BTN_ENC
  #undef BEEPER_PIN
  #undef LCD_PINS_D4     
  #undef LCD_PINS_ENABLE 
  #undef LCD_PINS_RS     
  #undef ST7920_DELAY_1
  #undef ST7920_DELAY_2
  #undef ST7920_DELAY_3
  #define BTN_EN1            23
  #define BTN_EN2            27
  #define BTN_ENC            17
  #define BEEPER_PIN         37
  #define LCD_PINS_D4        35
  #define LCD_PINS_ENABLE    25
  #define LCD_PINS_RS        29
  #define ST7920_DELAY_1 DELAY_NS(0)
  #define ST7920_DELAY_2 DELAY_NS(63)
  #define ST7920_DELAY_3 DELAY_NS(125)
  #define STD_ENCODER_PULSES_PER_STEP 4
  #define STD_ENCODER_STEPS_PER_MENU_ITEM 1
#endif

Compile and upload to the MKS board.

Step 2: Only Two Wire to Swap (+5v & GND) and NO Shaving Off the Key on the Connector.

After the program change, all of the output and input lines are lined up with the ribbon cable connector.

Now we need to swap pin 10 & 9 for the ribbon cable connected to LCD connector on the display. Note the connector we want to change has the key facing out (see photos).

We will be changing the wires that were pin 1 (red stripe) & 2 on the Anet board and now are pins 9 & 10 (red stripe) on the MKS. See photos along with the following steps.

  • I did this by partly disassembling the connector.
  • Clipping away the two wires together, peeling them back about an inch or two.
  • Trimming off about 8mm from the end of these two wires, trust me do this.
  • Turning them over where the red striped wire is inside of the ribbon. (see photo)
  • Reassemble the connector.
  • If you are unsure of your work then PLEASE check for a short across pins 1 & 2 before trying the cable.
  • If everything is ok then plug it into EXT1

For the reset button, we need to connect pin 7 [extra ribbon cable on the LCD] to pin 8 on MKS EXT2.

See pinout images for your board if you are unsure of the reset pin location.

Turn on power to your MKS and watch the magic.

Be the First to Share

    Recommendations

    • Puzzles Speed Challenge

      Puzzles Speed Challenge
    • CNC Contest 2020

      CNC Contest 2020
    • Secret Compartment Challenge

      Secret Compartment Challenge

    13 Discussions

    0
    bwhipp
    bwhipp

    4 months ago

    Within your code for the "MKS Gen L" there is a <br> for HTML formatting that appears and messes up compiling within Arduino IDE.

    0
    Zeric1
    Zeric1

    9 months ago

    This was a great starting point for getting an Anet graphics display to work with the new 32bit SGEN_L (similar to an SKR v1.3) on Marlin 2.0.x.
    Still took some investigating, but this article got me on the right path. General steps are the same, except the pin definitions are completely different and go in ../src/pins/lpc1768/pins_MKS_SGENL.h

    0
    TreyV4
    TreyV4

    Reply 8 months ago

    Hello thanks for the help,
    I work fine now.
    I pasted the code into the false place in the code that was the problem for me.
    Now it works perfect I am happy :)
    Do you have some other tips for me when configure the MKS SGEN_L ?
    My heated bed and nozzle heater don't work, if I want to heat up the bed the marlin stop with beeps and reset the board the same with the heated bed.
    thanks :)

    0
    Zeric1
    Zeric1

    Reply 8 months ago

    I did a lot of tweaking in Marlin for my Anet E16 with the SGEN_L, I would have to go through it, there were a lot of changes. As far the heaters go, it sounds like you are hitting the over temp protection. When you turn on the machine, does the temperature on the display for the bed and nozzle show roughly room temperature? If it is showing 0 or some other strange number then the thermistors are either not wired to the board correctly or not configured correctly in Marlin. I think the thermistor type in Marlin for the Anet is "5" if I recall correctly.

    0
    TreyV4
    TreyV4

    Reply 8 months ago

    Hey thanks for the replay.
    my nozzle heater works fine now but the heated bed is not shown anymore in the display feature.
    i see some auto temp feature but i don't know if that cause the problem

    0
    TreyV4
    TreyV4

    Reply 8 months ago

    @Zeric1 can u tell me how did you do it ? because i have the same problem. i have an anet a8 plus printer and i did buy an Sgen_l board and need to know how to got my stock display work on the sgen_l

    0
    Zeric1
    Zeric1

    Reply 8 months ago

    The following definition block (between the lines with dashes) should be inserted in the file "..Marlin/src/pins/lpc1768/pins_MKS_SGENL.h" just before the line that reads "#endif // HAS_SPI_LCD":
    ----------------------------------------
    #if ENABLED(ANET_FULL_GRAPHICS_LCD) // added defines for ANET LCD pins
    #undef BTN_EN1
    #undef BTN_EN2
    #undef BTN_ENC
    #undef BEEPER_PIN
    #undef LCD_PINS_D4
    #undef LCD_PINS_ENABLE
    #undef LCD_PINS_RS
    #undef ST7920_DELAY_1
    #undef ST7920_DELAY_2
    #undef ST7920_DELAY_3
    #define BTN_EN1 P0_15
    #define BTN_EN2 P1_00
    #define BTN_ENC P0_18
    #define BEEPER_PIN P1_31
    #define LCD_PINS_D4 P1_30
    #define LCD_PINS_ENABLE P0_17
    #define LCD_PINS_RS P1_22
    #define ST7920_DELAY_1 DELAY_NS(0)
    #define ST7920_DELAY_2 DELAY_NS(63)
    #define ST7920_DELAY_3 DELAY_NS(125)
    #endif
    ----------------------------------------
    Just as described in the original instructable, you also need to swap the pins for +5 and GND, and you need to define ANET_FULL_GRAPHICS_LCD in your configuration.h

    I've had no issues at all with the ANET LCD display working with the SGEN on Marlin 2.x.x once I made all the changes.

    0
    TreyV4
    TreyV4

    Reply 8 months ago

    Thanks for the example,
    but it does not work on my anet a8 plus stock display.
    and my MKS SGEN_L mainboard

    0
    Zeric1
    Zeric1

    Reply 8 months ago

    Is the display back light coming on?

    0
    loadie
    loadie

    1 year ago

    Would this also work with the SKR v1.3 board?

    0
    SvenB19
    SvenB19

    Reply 10 months ago

    Just tried this on the SKR 1.3 with Marlin 2, did not work.

    0
    Zeric1
    Zeric1

    Reply 9 months ago

    The general idea works, but the pin definitions are different and would go in:
    ../src/pins/lpc1768/pins_SKR_V1.3.h
    I worked out the pins for the SGENL (same CPU as the SKR v1.3 and in general a very similar board), but the pins definitions are slightly different. It would be pretty easy to work these out.

    1
    twhite101
    twhite101

    1 year ago on Step 1

    Some of my changes are not showing on the web view but can be found by downloading the PDF.

    Also, I am attaching the pin files with changes for the:
    MKS Gen 1.4
    MKS Gen L