Guide to connect BTT Mini 12864 to SKR Mini E3 V3

Gotten a screen from BIGTREETECH but realized it wasn’t really compatible with the SKR Mini E3 V3? We are in the same position! As SKR Mini E3 V3 does not have EXP3 port and BTT Mini 12864 only have EXP1 & EXP2, both screen is not really directly compatible. However thanks to radek8, we managed to get it work by rewiring the cable from EXP1 + Neopixel to EXP2 and EXP3.

Prerequisites

To get started, you must be ready with

  • SKR Mini E3 V3 Board (V1.2 and V2.0 has different pinout)
  • BTT Mini 12864
  • 12 Pin Dupont Wires 20cm or more (Female to Female)
  • Download BIGTREETECH Marlin Firmware as ZIP (SKR-mini-E3-V3.0-G0B1 Branch)
  • (Optional) Hot Glue Gun or Tape

Before you begin

Do take note that this require a certain technicial skill with 3D printers and hardware. If you don’t feel comfortable of doing this, do buy the compatible screen such BTT TFT35 or use Stock CR10 Display.

If you are new and feel challenged, feel free to read more about how to compile
Guides: https://www.youtube.com/watch?v=Vn5rMdJgkAI

Check out the Pinout

Before proceed further, do take a look at the pinout so in case if you missed out or plugged wrongly, you may know where you been making mistake.

BTT Mini 12864 pinout
SKR Mini E3 V3 zoomed pinout

Connect Dupont Wires from Board to Screen

Needs custom cable. Connect EN2-EN2, LCD_CS-LCD_CS and so on.

There are two RESET pin, but I’ve only connected to the EXP1 Pin 5
On BTT boards pins from IDC10 connector are numbered in unusual order.
hash tag in the photo above refer to the cable direction.

Compile Firmware with the following options

in Configuration.h, uncomment
#define FYSETC_MINI_12864_2_1
or
#define BTT_MINI_12864_V1
Remember to comment out CR10 Display as each firmware can only allow one.

in Marlin\src\pins\stm32g0\pins_BTT_SKR_MINI_E3_V3_0.h

search for line elif ENABLED(FYSETC_MINI_12864_2_1)

If you can’t find the line above, means the marlin branch may not have the latest code above. copy the following line before #else #error “Only CR10_STOCKDISPLAY…

  elif ENABLED(FYSETC_MINI_12864_2_1)

//#error "CAUTION! FYSETC_MINI_12864_2_1 and clones require wiring modifications. See 'pins_BTT_SKR_MINI_E3_V3_0.h' for details. Comment out this line to continue."

  /**
   *
   *                 Board                               Display
   *                 ------                               ------
   *    (EN2)  PB5  |10  9 | PA15(BTN_ENC)            5V |10  9 | GND
   *  (LCD_CS) PA9  | 8  7 | RST (RESET)              -- | 8  7 | --
   *  (LCD_A0) PA10 |#6  5 | PB9 (EN1)            (DIN)  | 6  5#| (RESET)
   *  (LCD_SCK)PB8  | 4  3 | PD6 (MOSI)         (LCD_A0) | 4  3 | (LCD_CS)
   *            GND | 2  1 | 5V                (BTN_ENC) | 2  1 | --
   *                 ------                               ------
   *                  EXP1                                 EXP1
   *
   *                                                      ------
   *                                                  -- |10  9 | --
   *                   ---                       (RESET) | 8  7 | --
   *                  | 3 |                      (MOSI)  | 6  5#| (EN2)
   *                  | 2 | (DIN)                     -- | 4  3 | (EN1)
   *                  | 1 |                     (LCD_SCK)| 2  1 | --
   *                   ---                                ------
   *                Neopixel                               EXP2
   *
   * Needs custom cable. Connect EN2-EN2, LCD_CS-LCD_CS and so on.
   *
   * Check twice index position!!! (marked as # here)
   * On BTT boards pins from IDC10 connector are numbered in unusual order.
   */
#define BTN_ENC                  EXP1_09_PIN
#define BTN_EN1                         PB9
#define BTN_EN2                         PB5
#define BEEPER_PIN                      -1

#define DOGLCD_CS                       PA9
#define DOGLCD_A0                       PA10
#define DOGLCD_SCK                      PB8
#define DOGLCD_MOSI                     PD6

#define FORCE_SOFT_SPI
#define LCD_BACKLIGHT_PIN               -1
Before this line

If you copied or found it, comment out
error "CAUTION! FYSETC_MINI_12864_2_1 and clones require wiring modifications. See 'pins_BTT_SKR_MINI_E3_V3_0.h' for details. Comment out this line to continue."

Enable LED_CONTROL_MENU

In the file: Marlin\src\lcd\dogm\marlinui_DOGM.cpp
change parameter:
void MarlinUI::_set_contrast() { u8g.setContrast(contrast); }
change to:
void MarlinUI::_set_contrast() { u8g.setContrast(255); }

The just build and compile with STM32G0B1RE_btt default_envs. Copy the firmware.bin into the microSD Card and reboot, there you go! the screen should works as intended.

That’s all. If you are not getting display but only light, do try again by flashing the firmware. Please do take note that the guide is compatible with SKR Mini E3 V3. If you are planning to use it with V2 and lower, please refer to their respective pinout.

5 thoughts on “Guide to connect BTT Mini 12864 to SKR Mini E3 V3

  1. Bruno says:

    Hey there, Great guide! I followed all the steps but my screen looks like it had the contrast to the max… I can’t see anything. I tried to change u8g.setContrast(contrast); to different values (0-128-255), but still no luck. Any thought? Thank you!

  2. Dr Inderjeet Singh says:

    Hi… I have followed all the steps, but still getting compilation errors as follows:

    DOGLCD_CS’ was not declared in this scope; did you mean ‘DOGLCD_SCK’?
    DOGLCD_A0′ was not declared in this scope; did you mean ‘DOGLCD’?

    Can you please tell me any solution for this ?

  3. Chris says:

    Hi, first of all i want to thank you for the hard work and all. I’ve done everything as mentioned, but i had to change the name EXP1_09_PIN to PA15 otherwise it wasn’t let me compile the firmware and now it works. i don’t know if it has an impact somewhere. My main question is first i can’t print from the sd port on my board it shows the insert but next init failed so i try to print from the sd port from my display but there is no response at all. I hope you still read this and maybe can help me to find a way to get it working everything else works as intended. with best regards.

    • Smith3D says:

      The display SD card won’t work. Seems like your board having issue with the SD Card or can try another with another new freshly formatted FAT32 Card. Either Slot is broken or SD Card issue. The firmware shouldn’t cause SD card Init Fail issue.

Leave a Reply

Your email address will not be published.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

This site uses cookies to offer you a better browsing experience. By browsing this website, you agree to our use of cookies.