本帖最後由 jamesting 於 2017-3-4 16:11 編輯
小弟上年唔小心中伏訂左 idbox! ,一共55期,到依家差唔多完
跟住我又手癢,係淘宝訂左個MKS OLED返黎
PS: 岩岩寫文先發覺,原來我買果時係撳左 1.3",最後佢寄黎既係 0.96"
點之跟佢果個教學,玩足我兩晚,都係整唔著,我開始懷疑件嘢係壞
上網又唔多資料,最後都係要自己解決問題,依家將我既解決方法貼出黎,希望可以幫到其他人
首先,我用既係 Marlin 1.1.0-RC8 (6DEC 2016),同店主教學既版本唔同
- 首先 Libraries 入面要有 U8glib
==================== - 修改Configuration.h
- //
- // This option reverses the encoder direction everywhere
- //
- // Set this option if CLOCKWISE causes values to DECREASE
- //
- //#define REVERSE_ENCODER_DIRECTION
複製代碼 在上段 code 下面增加以下部分- /*---------------MKS OLED patch_1-----------------------*/
- // MKS OLED 1.3'' 128x64 FULL GRAPHICS CONTROLLER
- #define MKS_OLED13_128x64_FULL_GRAPHICS_CONTROLLER
- #if defined (MKS_OLED13_128x64_FULL_GRAPHICS_CONTROLLER)
- #define DOGLCD
- #define U8GLIB_SH1106
- #define REPRAP_DISCOUNT_SMART_CONTROLLER
- #define NEWPANEL
- #endif
- /*---------------MKS OLED patch_1-----------------------*/
複製代碼 ==================== - 修改ultralcd_impl_DOGM.h
- // LCD selection
- #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
- U8GLIB_ST7920_128X64_4X u8g(LCD_PINS_RS); // 2 stripes
- // U8GLIB_ST7920_128X64 u8g(LCD_PINS_RS); // 8 stripes
- #elif ENABLED(U8GLIB_ST7920)
- //U8GLIB_ST7920_128X64_4X u8g(LCD_PINS_D4, LCD_PINS_ENABLE, LCD_PINS_RS); // Original u8glib device. 2 stripes
- // No 4 stripe device available from u8glib.
- //U8GLIB_ST7920_128X64_1X u8g(LCD_PINS_D4, LCD_PINS_ENABLE, LCD_PINS_RS); // Original u8glib device. 8 stripes
- U8GLIB_ST7920_128X64_RRD u8g(0); // Number of stripes can be adjusted in ultralcd_st7920_u8glib_rrd.h with PAGE_HEIGHT
複製代碼 在上段 code 下面增加以下部分- /*---------------MKS OLED patch_2-----------------------*/
- #elif defined(U8GLIB_SH1106)
- U8GLIB_SH1106_128X64 u8g(23, 17, 16, 25); // SW SPI Com: SCK = 23, MOSI = 17, CS = 16, A0 = 25
- /*---------------MKS OLED patch_2-----------------------*/
複製代碼 ==================== - 修改Marlin_main.cpp
- void setup() {
- #ifdef DISABLE_JTAG
- // Disable JTAG on AT90USB chips to free up pins for IO
- MCUCR = 0x80;
- MCUCR = 0x80;
- #endif
- #if ENABLED(FILAMENT_RUNOUT_SENSOR)
- setup_filrunoutpin();
- #endif
- setup_killpin();
- setup_powerhold();
- #if HAS_STEPPER_RESET
- disableStepperDrivers();
- #endif
- MYSERIAL.begin(BAUDRATE);
- SERIAL_PROTOCOLLNPGM("start");
- SERIAL_ECHO_START;
複製代碼 在上段 code 下面增加以下部分- /*---------------MKS OLED patch_3-----------------------*/
- #if defined (MKS_OLED13_128x64_FULL_GRAPHICS_CONTROLLER)
- pinMode(LCD_PINS_DC, OUTPUT);
- pinMode(LCD_PINS_RST, OUTPUT);
- digitalWrite(LCD_PINS_RST , LOW);
- delay(1000);
- digitalWrite(LCD_PINS_RST , HIGH);
- #endif
- /*---------------MKS OLED patch_3-----------------------*/
複製代碼 ==================== - 修改pins.h
- #define SENSITIVE_PINS { 0, 1, \
- X_STEP_PIN, X_DIR_PIN, X_ENABLE_PIN, X_MIN_PIN, X_MAX_PIN, \
- Y_STEP_PIN, Y_DIR_PIN, Y_ENABLE_PIN, Y_MIN_PIN, Y_MAX_PIN, \
- Z_STEP_PIN, Z_DIR_PIN, Z_ENABLE_PIN, Z_MIN_PIN, Z_MAX_PIN, Z_MIN_PROBE_PIN, \
- PS_ON_PIN, HEATER_BED_PIN, FAN_PIN, FAN1_PIN, FAN2_PIN, CONTROLLERFAN_PIN, \
- _E0_PINS _E1_PINS _E2_PINS _E3_PINS _E4_PINS BED_PINS \
- _H0_PINS _H1_PINS _H2_PINS _H3_PINS _H4_PINS \
- _X2_PINS _Y2_PINS _Z2_PINS \
- X_MS1_PIN, X_MS2_PIN, Y_MS1_PIN, Y_MS2_PIN, Z_MS1_PIN, Z_MS2_PIN \
- }
- #define HAS_DIGIPOTSS (PIN_EXISTS(DIGIPOTSS))
複製代碼 在上段 code 下面增加以下部分- /*---------------MKS OLED patch_4-----------------------*/
- #if defined (MKS_OLED13_128x64_FULL_GRAPHICS_CONTROLLER)
- #ifdef LCD_PINS_D5
- #undef LCD_PINS_D5
- #define LCD_PINS_D5 -1
- #endif
- #ifdef LCD_PINS_D6
- #undef LCD_PINS_D6
- #define LCD_PINS_D6 -1
- #endif
- #define LCD_PINS_RST 27
- #define LCD_PINS_DC 25
- #endif
- /*---------------MKS OLED patch_4-----------------------*/
複製代碼
=== 完 ===
|