Skip to content

Commit

Permalink
Add FYSETC 2.42 inch OLED support (#18485)
Browse files Browse the repository at this point in the history
  • Loading branch information
GerogeFu authored Jul 3, 2020
1 parent e401b0c commit 097347b
Show file tree
Hide file tree
Showing 6 changed files with 102 additions and 45 deletions.
5 changes: 5 additions & 0 deletions Marlin/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -2091,6 +2091,11 @@
//
//#define OVERLORD_OLED

//
// FYSETC OLED 2.42" 128 × 64 FULL GRAPHICS CONTROLLER with WS2812 RGB
// Where to find : https://www.aliexpress.com/item/4000345255731.html
//#define FYSETC_242_OLED_12864 // Uses the SSD1309 controller

//=============================================================================
//========================== Extensible UI Displays ===========================
//=============================================================================
Expand Down
21 changes: 21 additions & 0 deletions Marlin/src/inc/Conditionals_LCD.h
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,27 @@
#define IS_RRD_SC
#define IS_U8GLIB_SSD1306

#elif ENABLED(FYSETC_242_OLED_12864)

#define IS_RRD_SC
#define U8GLIB_SH1106

#define LED_CONTROL_MENU
#define NEOPIXEL_LED
#undef NEOPIXEL_TYPE
#define NEOPIXEL_TYPE NEO_RGB
#if NEOPIXEL_PIXELS < 3
#undef NEOPIXELS_PIXELS
#define NEOPIXEL_PIXELS 3
#endif
#ifndef NEOPIXEL_BRIGHTNESS
#define NEOPIXEL_BRIGHTNESS 127
#endif

#if ENABLED(PSU_CONTROL)
#define LED_BACKLIGHT_TIMEOUT 10000
#endif

#elif ANY(FYSETC_MINI_12864_X_X, FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0, FYSETC_MINI_12864_2_1, FYSETC_GENERIC_12864_1_1)

#define FYSETC_MINI_12864
Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/inc/Conditionals_adv.h
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@
#endif
#endif

#if ENABLED(FYSETC_MINI_12864_2_1)
#if ENABLED(FYSETC_MINI_12864_2_1, FYSETC_242_OLED_12864)
#define LED_CONTROL_MENU
#define LED_USER_PRESET_STARTUP
#define LED_COLOR_PRESETS
Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/lcd/dogm/ultralcd_DOGM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ void MarlinUI::init_lcd() {
OUT_WRITE(LCD_BACKLIGHT_PIN, DISABLED(DELAYED_BACKLIGHT_INIT)); // Illuminate after reset or right away
#endif

#if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
#if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306, FYSETC_242_OLED_12864)

This comment has been minimized.

Copy link
@le3tspeak

le3tspeak Jul 3, 2020

Contributor

@GerogeFu @thinkyhead #if EITHER gets an ERROR Use #If ANY?

This comment has been minimized.

Copy link
@thisiskeithb

thisiskeithb Jul 3, 2020

Member

@le3tspeak: I put in PR #18519 to fix this issue.

This comment has been minimized.

Copy link
@GerogeFu

GerogeFu Jul 4, 2020

Author Contributor

@le3tspeak: I put in PR #18519 to fix this issue.
My mistake , thanks.

SET_OUTPUT(LCD_PINS_DC);
#ifndef LCD_RESET_PIN
#define LCD_RESET_PIN LCD_PINS_RS
Expand Down
12 changes: 12 additions & 0 deletions Marlin/src/lcd/dogm/ultralcd_DOGM.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,18 @@
#define U8G_CLASS U8GLIB_SH1106_128X64 // 8 stripes
#endif

#elif ENABLED(FYSETC_242_OLED_12864)

// FYSETC OLED 2.42" 128 × 64 FULL GRAPHICS CONTROLLER

#define FORCE_SOFT_SPI // SW-SPI

#if ENABLED(ALTERNATIVE_LCD)
#define U8G_CLASS U8GLIB_SSD1306_128X64_2X // 4 stripes
#else
#define U8G_CLASS U8GLIB_SSD1306_128X64 // 8 stripes
#endif

#elif ENABLED(U8GLIB_SH1106)

// Generic SH1106 OLED I2C LCD
Expand Down
105 changes: 62 additions & 43 deletions Marlin/src/pins/ramps/pins_FYSETC_F6_13.h
Original file line number Diff line number Diff line change
Expand Up @@ -211,58 +211,77 @@
//
// LCDs and Controllers
//
#define BEEPER_PIN 37
#define SD_DETECT_PIN 49

#if ENABLED(FYSETC_MINI_12864)
//
// See https://wiki.fysetc.com/Mini12864_Panel/?fbclid=IwAR1FyjuNdVOOy9_xzky3qqo_WeM5h-4gpRnnWhQr_O1Ef3h0AFnFXmCehK8
//
#define DOGLCD_A0 16
#define DOGLCD_CS 17

#if ENABLED(FYSETC_GENERIC_12864_1_1)
#define LCD_BACKLIGHT_PIN 27
#endif

#define KILL_PIN 41
#define LCD_RESET_PIN 23 // Must be high or open for LCD to operate normally.
// Seems to work best if left open.

#if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
#ifndef RGB_LED_R_PIN
#define RGB_LED_R_PIN 25
#endif
#ifndef RGB_LED_G_PIN
#define RGB_LED_G_PIN 27
#if ENABLED(FYSETC_242_OLED_12864)
#define BTN_EN1 37
#define BTN_EN2 29
#define BTN_ENC 35
#define BEEPER_PIN 31

#define LCD_PINS_DC 25
#define LCD_PINS_RS 33
#define DOGLCD_CS 16
#define DOGLCD_MOSI 23
#define DOGLCD_SCK 17
#define DOGLCD_A0 LCD_PINS_DC

#define KILL_PIN -1 // NC
#define NEOPIXEL_PIN 27

#else
#define BEEPER_PIN 37

#if ENABLED(FYSETC_MINI_12864)
//
// See https://wiki.fysetc.com/Mini12864_Panel/?fbclid=IwAR1FyjuNdVOOy9_xzky3qqo_WeM5h-4gpRnnWhQr_O1Ef3h0AFnFXmCehK8
//
#define DOGLCD_A0 16
#define DOGLCD_CS 17

#if ENABLED(FYSETC_GENERIC_12864_1_1)
#define LCD_BACKLIGHT_PIN 27
#endif
#ifndef RGB_LED_B_PIN
#define RGB_LED_B_PIN 29

#define KILL_PIN 41
#define LCD_RESET_PIN 23 // Must be high or open for LCD to operate normally.
// Seems to work best if left open.

#if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
#ifndef RGB_LED_R_PIN
#define RGB_LED_R_PIN 25
#endif
#ifndef RGB_LED_G_PIN
#define RGB_LED_G_PIN 27
#endif
#ifndef RGB_LED_B_PIN
#define RGB_LED_B_PIN 29
#endif
#elif ENABLED(FYSETC_MINI_12864_2_1)
#define NEOPIXEL_PIN 25
#endif
#elif ENABLED(FYSETC_MINI_12864_2_1)
#define NEOPIXEL_PIN 25
#endif

#elif HAS_GRAPHICAL_LCD
#elif HAS_GRAPHICAL_LCD

#define LCD_PINS_RS 16
#define LCD_PINS_ENABLE 17
#define LCD_PINS_D4 23
#define LCD_PINS_D5 25
#define LCD_PINS_D6 27
#define LCD_PINS_D7 29
#define LCD_PINS_RS 16
#define LCD_PINS_ENABLE 17
#define LCD_PINS_D4 23
#define LCD_PINS_D5 25
#define LCD_PINS_D6 27
#define LCD_PINS_D7 29

#if ENABLED(MKS_MINI_12864)
#define DOGLCD_CS 25
#define DOGLCD_A0 27
#endif
#if ENABLED(MKS_MINI_12864)
#define DOGLCD_CS 25
#define DOGLCD_A0 27
#endif

#endif
#endif

#if ENABLED(NEWPANEL)
#define BTN_EN1 31
#define BTN_EN2 33
#define BTN_ENC 35
#if ENABLED(NEWPANEL)
#define BTN_EN1 31
#define BTN_EN2 33
#define BTN_ENC 35
#endif
#endif

#ifndef RGB_LED_R_PIN
Expand Down

0 comments on commit 097347b

Please sign in to comment.