-
-
Notifications
You must be signed in to change notification settings - Fork 19.5k
[1.1.x] Add support for 4 new LCDs #7867
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[1.1.x] Add support for 4 new LCDs #7867
Conversation
a219c71
to
acb57fa
Compare
Sorry for the un-researched question, but when is this getting merged? |
50cfdc7
to
124f715
Compare
@mmdts When it's ready. Maybe today, if it passes testing. |
a3a7511
to
b54cd14
Compare
MKS_MINI_12864 fails to work, something to do with the re-ordering of code. Suddenly getting ENCODER_PULSES_PER_STEP missing error on minidisplay. |
define minipanel and see if you get a clean compile. |
b54cd14
to
8579147
Compare
I moved the conditionals for MINIPANEL to the bottom. See if that helps…? On another topic, I can see where the |
a31c3a2
to
8062151
Compare
@jmdearras This should work… #if ENABLED(MKS_12864OLED)
#define LCD_PINS_DC 25 // Set as output on init
#define LCD_PINS_RS 27 // Pull low for 1s to init
// DOGM SPI LCD Support
#define DOGLCD_CS 16
#define DOGLCD_MOSI 17
#define DOGLCD_SCK 23
#define DOGLCD_A0 LCD_PINS_DC
#else
#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
#endif
#define LCD_PINS_D7 29
…and… // MKS 128x64 (SH1106) OLED I2C LCD
U8GLIB_SH1106_128X64 u8g(DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0); |
2dd4292
to
e3eafbc
Compare
where can I get this "release"?
…On Sat, Oct 7, 2017 at 12:32 AM, Scott Lahteine ***@***.***> wrote:
@jmdearras <https://github.com/jmdearras> This should work…
#if ENABLED(MKS_12864OLED)
#define LCD_PINS_DC 25 // Set as output on init
#define LCD_PINS_RS 27 // pull low for 1s to init
// DOGM SPI LCD Support
#define DOGLCD_CS 16
#define DOGLCD_MOSI 17
#define DOGLCD_SCK 23
#define DOGLCD_A0 25
#else
#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
#endif
#define LCD_PINS_D7 29
…and…
// MKS 128x64 (SH1106) OLED I2C LCD
U8GLIB_SH1106_128X64 u8g(DOGLCD_SCK, DOGLCD_MOSI, DOGLCD_CS, DOGLCD_A0);
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#7867 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAksiZXZTVKijm__36kiNHMtJ7Mcb9YAks5spv75gaJpZM4PxGsg>
.
|
pardon my ignorance of GitHub, but can I get a fresh image of this branch so I can test. I am still running into ENCODER_STEPS errors, not declared on minipanel, which MKS_MINI_12864 uses. |
I found it. MKS_MINI_12864 works fine, but MKS_12864OLED displays OK, but beeps constantly (clk signal)? and the display acts as if the knob is being pushed constantly. |
I'll compare the changes I made to your original work and see if I missed some crucial difference. I should be able to catch it pretty quickly, given the relatively small number of changes involved. |
@jmdearras I'm assuming that your original PR had the OLED display working… and so I'm looking at the original code to see what differs. But I come up against a bug that would normally cause things to break… Look at this line and see how it comes before this line. #elif ENABLED(MINIPANEL)
. . .
#elif ENABLED(MKS_MINI_12864)
. . . Due to this line it means that the settings for
This PR corrects for that and allows the pins for |
the code on the left was my original, I was asked to split it out that
that. I later changed
it to
#elif ENABLED(MINIPANEL) && DISABLED(MKS_MINI_12846
But I am not sure I set it correctly
…On Sat, Oct 7, 2017 at 6:55 PM, Scott Lahteine ***@***.***> wrote:
@jmdearras <https://github.com/jmdearras> I'm assuming that your original
PR had the OLED display working… and so I'm looking at the original code to
see what differs. But I come up against a bug that would normally cause
things to break…
Look at this line
<2076b54...9bc8c05#diff-9eebc2382dd9b06f72b413388eb35878R381>
and see how it comes before this line
<2076b54...9bc8c05#diff-9eebc2382dd9b06f72b413388eb35878R401>
.
#elif ENABLED(MINIPANEL)
. . .
#elif ENABLED(MKS_MINI_12864)
. . .
It means that the settings for MKS_MINI_12864 are never applied. The pins
are set according to MINIPANEL in the original PR. If you check out that
commit and build it, and it works, that would be interesting.
git checkout faa1db8 -b bf1_new_lcds_before_updates
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#7867 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAksialLoplgwnIiTjyKpDCqBQbWMZFaks5sqAFpgaJpZM4PxGsg>
.
|
I am a git novice, I cannot git git to retrieve git checkout faa1db8 -b
bf1_new_lcds_before_updates
…On Sat, Oct 7, 2017 at 7:14 PM, Jim DeArras ***@***.***> wrote:
the code on the left was my original, I was asked to split it out that
that. I later changed
it to
#elif ENABLED(MINIPANEL) && DISABLED(MKS_MINI_12846
But I am not sure I set it correctly
On Sat, Oct 7, 2017 at 6:55 PM, Scott Lahteine ***@***.***>
wrote:
> @jmdearras <https://github.com/jmdearras> I'm assuming that your
> original PR had the OLED display working… and so I'm looking at the
> original code to see what differs. But I come up against a bug that would
> normally cause things to break…
>
> Look at this line
> <2076b54...9bc8c05#diff-9eebc2382dd9b06f72b413388eb35878R381>
> and see how it comes before this line
> <2076b54...9bc8c05#diff-9eebc2382dd9b06f72b413388eb35878R401>
> .
>
> #elif ENABLED(MINIPANEL)
> . . .
> #elif ENABLED(MKS_MINI_12864)
> . . .
>
> It means that the settings for MKS_MINI_12864 are never applied. The
> pins are set according to MINIPANEL in the original PR. If you check out
> that commit and build it, and it works, that would be interesting.
>
> git checkout faa1db8 -b bf1_new_lcds_before_updates
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#7867 (comment)>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AAksialLoplgwnIiTjyKpDCqBQbWMZFaks5sqAFpgaJpZM4PxGsg>
> .
>
|
9b09d0e
to
bda42ed
Compare
I think this should be working now! The MKS OLED needs to have https://github.com/thinkyhead/Marlin/tree/bf1_add_some_lcds |
bda42ed
to
1a5808f
Compare
I get multiple display assert. Here's my WIP code:
…On Sun, Oct 8, 2017 at 9:19 PM, Scott Lahteine ***@***.***> wrote:
I think this should be working now! The MKS OLED needs to have
REPRAP_DISCOUNT_SMART_CONTROLLER pins for the controller input.
https://github.com/thinkyhead/Marlin/tree/bf1_add_some_lcds
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#7867 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAksidhE1oM4o4Xsv3-hEOiXXP7a67rMks5sqXSWgaJpZM4PxGsg>
.
|
I was busy last night, I "hacked" past the sanity check, and the display
works, now. Just a sanity check issue at the moment.
Jim
…On Mon, Oct 9, 2017 at 7:12 AM, Jim DeArras ***@***.***> wrote:
I get multiple display assert. Here's my WIP code:
On Sun, Oct 8, 2017 at 9:19 PM, Scott Lahteine ***@***.***>
wrote:
> I think this should be working now! The MKS OLED needs to have
> REPRAP_DISCOUNT_SMART_CONTROLLER pins for the controller input.
>
> https://github.com/thinkyhead/Marlin/tree/bf1_add_some_lcds
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#7867 (comment)>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AAksidhE1oM4o4Xsv3-hEOiXXP7a67rMks5sqXSWgaJpZM4PxGsg>
> .
>
|
edited sanity check for clean compile: |
1a5808f
to
0dd2849
Compare
- Original CR-10 - MKS Mini Display
e9b087f
to
381ebc0
Compare
I have a question regarding the CR10_STOCKDISPLAY implementation. The board linked to on aliexpress is using EXP3 port on it's board, but my stock lcd is on EXP1. Once I implement CR10_STOCKDISPLAY, which port do I plug into using an EINSYRAMBo main board? I've tried all 3 EXP ports, as well as filing off the key on the ribbon cable and inserting in reverse (others reported this necessary for other main boards with the 2 ribbon cable lcd models). Any help/guidance would be greatly appreciated. |
If you haven't implemented it, then how are you "trying" it? Are you using a firmware that is already compiled with support for a graphical display on EXP1? |
I've compiled marlin bugfix_1.1.x with the option CR10_STOCKDISPLAY uncommented and flashed to einsy board. I assumed that would have given me the support for graphical display using the single ribbon cable on EXP1 since that is what the stock cr-10 came with. |
We don't have a pins file for the Einsy RAMBo. You'll have to figure out which pins are which on that board and see how they match up to whatever pins file you're currently using. You'll need the schematic of the board to see where the pins go, and you'll need to know which pins on the ribbon cable are which. We simply don't know any more than you do. |
If you read this page you'll be more informed than us: http://manual.prusa3d.com/Guide/2.+Printer+assembly/588 And, if you ask Prusa Research for help in their support forums, you may find more knowledgeable geeks there. |
Yeah, I grabbed the pins file from ultimachine's github and incorporated that prior to compiling. If I use a reprap_discount _smartcontroller it works fine with an older display using both EXP1 and EXP2. I've already ordered a replacement full graphic display that has both cables, so guess I'll just have to wait for that one. |
I'm jumping to conclusions that the Einsy RAMBo is using the same pinouts as previous RAMBo. If you're using the //
// LCD / Controller
//
#if ENABLED(ULTRA_LCD)
#define KILL_PIN 80
#if ENABLED(CR10_STOCKDISPLAY)
#define LCD_PINS_RS 74
#define LCD_PINS_ENABLE 75
#define LCD_PINS_D4 73
#define BTN_EN1 71
#define BTN_EN2 72
#define BTN_ENC 78
#define SD_DETECT_PIN 81
#if DISABLED(NEWPANEL)
#define BEEPER_PIN 79 // AUX-4
#endif
#elif ENABLED(NEWPANEL)
#define LCD_PINS_RS 70
#define LCD_PINS_ENABLE 71
#define LCD_PINS_D4 72
#define LCD_PINS_D5 73
#define LCD_PINS_D6 74
#define LCD_PINS_D7 75
#if ENABLED(VIKI2) || ENABLED(miniVIKI)
#define BEEPER_PIN 44
// NB: Panucatt's Viki 2.0 wiring diagram (v1.2) indicates that the
// beeper/buzzer is connected to pin 33; however, the pin used in the
// diagram is actually pin 44, so this is correct.
#define DOGLCD_A0 70
#define DOGLCD_CS 71
#define LCD_SCREEN_ROT_180
#define BTN_EN1 85
#define BTN_EN2 84
#define BTN_ENC 83
#define SD_DETECT_PIN -1 // Pin 72 if using easy adapter board
#define STAT_LED_RED_PIN 22
#define STAT_LED_BLUE_PIN 32
#else // !VIKI2 && !miniVIKI
#define BEEPER_PIN 79 // AUX-4
// AUX-2
#define BTN_EN1 76
#define BTN_EN2 77
#define BTN_ENC 78
#define SD_DETECT_PIN 81
#endif // !VIKI2 && !miniVIKI
#else // !NEWPANEL - old style panel with shift register
// No Beeper added
#define BEEPER_PIN 33
// buttons are attached to a shift register
// Not wired yet
//#define SHIFT_CLK 38
//#define SHIFT_LD 42
//#define SHIFT_OUT 40
//#define SHIFT_EN 17
#define LCD_PINS_RS 75
#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
#endif // !NEWPANEL
#endif // ULTRA_LCD |
@jneilliii — Good morning! Let me know whether I've worked out the correct pins for the RAMBo display plug. I didn't have a lot to go on, but as far as I can tell these pins should work. |
I tried your suggestion, but unfortunately did not work for me. The pin_EINSYRAMBO.h file I used to start with can be found in the marlin branch found here. It's an older version of Marlin, but I figured pin assignments for the board would work ok in the latest bugfix branch. Enabling pins_debug this is the output of M43 on that older marlin flashed to the board.
|
Also, ultimachine is very good about documenting their boards. You can find the electronigs diagram here. I just don't understand how to interpret it correctly. I think the problem here is the single ribbon full graphic controller from creality is not documented on it's pinout. |
Ok, for the //
// LCD / Controller
//
#if ENABLED(ULTRA_LCD)
#define KILL_PIN 32
#if ENABLED(NEWPANEL)
#if ENABLED(CR10_STOCKDISPLAY)
#define LCD_PINS_RS 85
#define LCD_PINS_ENABLE 71
#define LCD_PINS_D4 70
#define BTN_EN1 61
#define BTN_EN2 59
#else
#define LCD_PINS_RS 82
#define LCD_PINS_ENABLE 61
#define LCD_PINS_D4 59
#define LCD_PINS_D5 70
#define LCD_PINS_D6 85
#define LCD_PINS_D7 71
#define BTN_EN1 14
#define BTN_EN2 72
#endif
// Beeper on AUX-4
#define BEEPER_PIN 84
// buttons are directly attached using AUX-2
#define BTN_ENC 9 // the click
#define SD_DETECT_PIN 15
#endif // NEWPANEL
#endif // ULTRA_LCD |
Adapted from #7824 by @jmdearras
MAKEBOARD_MINI_2_LINE_DISPLAY_1602
CR10_STOCKDISPLAY
MKS_MINI_12864
MKS_12864OLED
Compare to original (working?) changes… 2076b54...9bc8c05
Also includes changes from #7447 supporting the VIKI chip ST7565.