Skip to content

Conversation

@thinkyhead
Copy link
Member

@thinkyhead thinkyhead commented Apr 26, 2020

Initial support for the Creality3D Ender 3 v2.

  • 272 x 480 color DWIN / DGUS display with click-wheel interface.
  • Support for an unspecified probe connected to the servo plug.

@thinkyhead thinkyhead force-pushed the bf2_ender_3_v2_PR branch 3 times, most recently from 8d85e99 to 3a7128f Compare April 26, 2020 03:29
@thisiskeithb
Copy link
Contributor

Glad to see it’s not another 128k Melzi 🙂

@thinkyhead thinkyhead force-pushed the bf2_ender_3_v2_PR branch 10 times, most recently from d3324a7 to bc1bcc2 Compare April 26, 2020 08:18
@thinkyhead thinkyhead marked this pull request as ready for review April 26, 2020 08:21
@thinkyhead thinkyhead force-pushed the bf2_ender_3_v2_PR branch 9 times, most recently from d827007 to b4e958e Compare May 19, 2020 06:41
@thinkyhead thinkyhead force-pushed the bf2_ender_3_v2_PR branch from b4e958e to 00ad22d Compare May 19, 2020 22:06
@thinkyhead thinkyhead force-pushed the bf2_ender_3_v2_PR branch 4 times, most recently from 6b968b0 to d783acb Compare June 10, 2020 08:52
@thinkyhead thinkyhead force-pushed the bf2_ender_3_v2_PR branch 2 times, most recently from 73f34eb to e1633eb Compare June 16, 2020 06:37
@thinkyhead thinkyhead merged commit f4c258d into MarlinFirmware:bugfix-2.0.x Jun 16, 2020
@thinkyhead thinkyhead deleted the bf2_ender_3_v2_PR branch June 16, 2020 06:45
@Roxy-3D
Copy link
Member

Roxy-3D commented Jun 16, 2020

I'm confused... Wasn't the purpose of ExtensibleUI to allow clean support of these displays without modification to Marlin itself? Does this imply we need additions to ExtensibleUI in order to handle generic touch panel displays?

@thinkyhead
Copy link
Member Author

thinkyhead commented Jun 17, 2020

Wasn't the purpose of ExtensibleUI to allow clean support of these displays without modification to Marlin itself?

ExtUI is great for certain kinds of display devices — those which have their own menu system, receive commands in some custom protocol —mostly (if not all) over a serial port— and then send G-code to talk back to Marlin.

For the Ender 3 V2 display, Creality (or their subcontractor) opted to implement a limited menu on a minimal HMI / DWIN display with rotary encoder. Since the screen is dumb and fully controlled by Marlin, it is not suitable for ExtUI.

So, my plan is to use their code as reference to fully implement the menu system as a MarlinUI display, similar to HD44780 and DOGM.

@InsanityAutomation
Copy link
Contributor

Isn't that methodology identical the the lulzbot display ExtUI was built around?

@CRCinAU
Copy link
Contributor

CRCinAU commented Jun 17, 2020

I notice when trying to build:

Marlin/src/lcd/dwin/dwin.cpp: In function 'void HMI_Info()':
Marlin/src/lcd/dwin/dwin.cpp:2751:3: error: expected ';' before '}' token
   }                             
   ^                             

Seems to be missing the ; on Draw_Control_Menu().

@thinkyhead
Copy link
Member Author

Isn't that methodology identical the the lulzbot display ExtUI was built around?

If any display wants to implement the complete Marlin menu system with editable values, select screens, and the rest, it must implement the appropriate MarlinUI methods.

@jdogmcsteezy
Copy link
Contributor

@thinkyhead I read the past comments but I am a novice around Marlin firmware. I am trying to get Manual Mesh Bed Leveling to work on the Ender 3 V2. I suspect it has something to do with the reasons discussed above but I want to make sure before I continue to dig. The error received when compiling with LCD_BED_LEVELING and MESH_BED_LEVELING enabled is: "LCD_BED_LEVELING requires a programmable LCD controller."

This is caused by this block here:

/**
 * LCD_BED_LEVELING requirements
 */
#if ENABLED(LCD_BED_LEVELING)
  #if !HAS_LCD_MENU
    #error "LCD_BED_LEVELING requires a programmable LCD controller."
  #elif !(ENABLED(MESH_BED_LEVELING) || HAS_ABL_NOT_UBL)
    #error "LCD_BED_LEVELING requires MESH_BED_LEVELING or AUTO_BED_LEVELING."
  #endif
#endif

Any insight would be greatly appreciated.

Thanks!

@thinkyhead
Copy link
Member Author

At the current time LCD_BED_LEVELING requires an LCD controller that is implemented with MarlinUI. The DWIN display on the Ender 3 V2 is a custom display controller with its own custom code and no MarlinUI implementation. But a MarlinUI implementation for this display is planned in the fuzzy future because it shouldn't be too hard to accomplish.

@CRCinAU
Copy link
Contributor

CRCinAU commented Jul 9, 2020

@thinkyhead - In a related note, I've sent you a PM via Discord re the EEPROM on the E3 V2 mainboard.... something strange is going on and I can't put my finger on it....

@jdogmcsteezy
Copy link
Contributor

@thinkyhead Thanks for the quick reply and confirmation!

@ellensp
Copy link
Contributor

ellensp commented Jul 14, 2020

Marlin/src/lcd/dwin/dwin.h includes eeprom_BL24CXX.h regardless of IIC_BL24CXX_EEPROM being defined or not.

@tubalainen
Copy link

We are all waiting eagerly for the fussy future to suddenly happened 😋
Lots of the V2 beds are uneven and it would be great to get the manual mesh bed leveling working.

Thanks for all your hard work guys!

jmp0x0000 pushed a commit to jmp0x0000/Marlin that referenced this pull request Aug 7, 2020
@thepixelabs
Copy link

Ender 3 v2 user here +1 on seeing support

@LouDnl
Copy link

LouDnl commented Nov 24, 2020

Don't know if you have this already but I was wandering around and found a DGUS/DHWIN creator application. Seems it was used for the CR-10s Pro DWIN display. Can't reverse the E3v2 bin file with it but you can create a whole new menu. Might make it easier to implement a new MarlinUI for these displays?
Here's the link: https://github.com/juliandroid/DWIN_CR_10s_Pro

thinkyhead added a commit to thinkyhead/Marlin that referenced this pull request Apr 29, 2021
HairingX pushed a commit to HairingX/Marlin that referenced this pull request Jun 16, 2021
@Neonman423
Copy link

I am having a problem when using DWIN LCD with BTT 1.4 TURBO build, Getting errors for MYSYERIAL not defined in scope. Can anyone help me with this problem

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.