Creality Ender support.

Reverse engineered from the unpublished firmware from Creality,
inferring the base version and configuration they used. The basis is
the firmware version from "Jul 31 2017 10:16:30". Configurations were
found by seeing what code was compiled into the firmware, and
constants used there.

They used Marlin 1.0.1, because

* 1.0.0 had very different serial output in `setup()` and overall
  code structure.
* 1.0.2 changed the `VERSION_STRING` to include a leading space,
  and `lcd_init` uses `SET_INPUT` instead of `pinMode`.

For U8Glib, a version between 1.14 and 1.17 was used, because

* 1.12 didn't have the extra speed argument to u8g_InitCom.
* 1.13 didn't have the soft reset instruction for UC1701 initialization.
* 1.18 has a new directory structure.

Quirks

* The value of PID_dT hints that F_CPU is 20M, but MarlinSerial.begin
  suggests it's indeed 16M (and the board uses 16M). Left at 16M for now.

* The LED and DOGLCD_CS are on the same pin.
This commit is contained in:
Tommie Gannert 2018-01-07 15:19:32 +00:00 committed by Scott Lahteine
parent 90125ab639
commit f3f26f7cb3
13 changed files with 3598 additions and 7 deletions

View file

@ -114,7 +114,14 @@
#define STATUS_SCREENWIDTH 115 // Width in pixels
#define STATUS_SCREENHEIGHT 19 // Height in pixels
#if HAS_TEMP_BED
#ifdef CUSTOM_STATUS_SCREEN_FILE
#undef STATUS_SCREENWIDTH
// This file must define STATUS_SCREENWIDTH and status_screen{0,1}_bmp.
// It can also define STATUS_SCREEN_X, STATUS_SCREEN_{BED,FAN}_TEXT_X and
// STATUS_SCREEN_HOTEND_TEXT_X(i) to modify draw locations.
#include CUSTOM_STATUS_SCREEN_FILE
#elif HAS_TEMP_BED
#if HOTENDS == 0
const unsigned char status_screen0_bmp[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
@ -561,3 +568,16 @@
0x0C,0x00 // 0000110000000000
};
#endif // BABYSTEP_ZPROBE_GFX_OVERLAY || MESH_EDIT_GFX_OVERLAY
#ifndef STATUS_SCREEN_X
#define STATUS_SCREEN_X 9
#endif
#ifndef STATUS_SCREEN_HOTEND_TEXT_X
#define STATUS_SCREEN_HOTEND_TEXT_X(i) (5 + (i) * 25)
#endif
#ifndef STATUS_SCREEN_BED_TEXT_X
#define STATUS_SCREEN_BED_TEXT_X 81
#endif
#ifndef STATUS_SCREEN_FAN_TEXT_X
#define STATUS_SCREEN_FAN_TEXT_X 104
#endif