- This status screen uses the ST7920 character generator to greatly reduce SPI traffic and MCU load when updating the status screen.
- Has been tested with the RepRapDiscount Full Graphics Smart Controller but should work with any LCD that uses an ST7920 or fully compatible controller.
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.
Move 'lcd_bootscreen()' from `lcd_init()` to 'setup()' where it is cexecute exactly once. Saves 'bool show_bootscreen'.
Move the call of 'lcd_custom_bootscreen()' to the begin of 'lcd_bootscreen()'.
Move the delays into the related functions.
Move the picture loop around 'lcd_kill_screen()' into the function.
* Auto-enable DISABLE_REDUCED_ACCURACY_WARNING if HOME_AFTER_DEACTIVATE enabled
If HOME_AFTER_DEACTIVATE, there is no need to warn on LCD since printer will home prior to starting print. Saves 60 bytes PROGMEM.
add HD44780 too
* Reduce lines used
* Reduce lines used
- Fix: When "100.0" changes to "99.0" the LCD shows "199.0"
- Use 2 rows if needed on character LCD, (allowing longer labels…
Germany, et. al.)
- Known issue: A certain length label combined with a certain value
drawing function could, for example, display 99.0 on 1 line, but 100.0
on two lines. Workaround would be to pass a nominal value size argument.
Original Mesh Bed Leveling replacement put at top of UBL Menu Options to
help facilitate the removal of the Original Mesh Bed Leveling.
Radar display (and control) of the UBL Interactive Mesh Editing.