From 022eb85937d7fa431267dba2e1085f959f779107 Mon Sep 17 00:00:00 2001
From: InsanityAutomation
<38436470+InsanityAutomation@users.noreply.github.com>
Date: Mon, 16 Apr 2018 13:15:20 -0400
Subject: [PATCH 1/8] Add files via upload
---
Marlin/Version.h | 14 +-
Marlin/_Bootscreen.h | 106 ++++++++++
Marlin/_Statusscreen.h | 460 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 574 insertions(+), 6 deletions(-)
create mode 100644 Marlin/_Bootscreen.h
create mode 100644 Marlin/_Statusscreen.h
diff --git a/Marlin/Version.h b/Marlin/Version.h
index 016806b4a9..cecd626e26 100644
--- a/Marlin/Version.h
+++ b/Marlin/Version.h
@@ -35,20 +35,22 @@
/**
* Marlin release version identifier
*/
- #define SHORT_BUILD_VERSION "bugfix-1.1.x"
+ #define SHORT_BUILD_VERSION "1.1.8_B8"
/**
* Verbose version identifier which should contain a reference to the location
* from where the binary was downloaded or the source code was compiled.
*/
- #define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION " (Github)"
+
+
+ #define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION " TM3D "
/**
* The STRING_DISTRIBUTION_DATE represents when the binary file was built,
* here we define this default string as the date where the latest release
* version was tagged.
*/
- #define STRING_DISTRIBUTION_DATE "2018-01-20"
+ #define STRING_DISTRIBUTION_DATE "2018-04-16"
/**
* Required minimum Configuration.h and Configuration_adv.h file versions.
@@ -70,7 +72,7 @@
/**
* Defines a generic printer name to be output to the LCD after booting Marlin.
*/
- #define MACHINE_NAME "3D Printer"
+ #define MACHINE_NAME "TM3DCR10"
/**
* The SOURCE_CODE_URL is the location where users will find the Marlin Source
@@ -89,6 +91,6 @@
* The WEBSITE_URL is the location where users can get more information such as
* documentation about a specific Marlin release.
*/
- #define WEBSITE_URL "http://marlinfw.org"
+ #define WEBSITE_URL "tinymachines3d.com"
-#endif // USE_AUTOMATIC_VERSIONING
+#endif // USE_AUTOMATIC_VERSIONING
diff --git a/Marlin/_Bootscreen.h b/Marlin/_Bootscreen.h
new file mode 100644
index 0000000000..64b224471c
--- /dev/null
+++ b/Marlin/_Bootscreen.h
@@ -0,0 +1,106 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+/**
+ * Custom Bitmap for splashscreen
+ *
+ * You may use one of the following tools to generate the C++ bitmap array from
+ * a black and white image:
+ *
+ * - http://www.marlinfw.org/tools/u8glib/converter.html
+ * - http://www.digole.com/tools/PicturetoC_Hex_converter.php
+ */
+#include
+
+#define CUSTOM_BOOTSCREEN_TIMEOUT 2500
+#define CUSTOM_BOOTSCREEN_BMPWIDTH 128
+#define CUSTOM_BOOTSCREEN_BMPHEIGHT 64
+
+const unsigned char custom_start_bmp[] PROGMEM = {
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFD, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFD, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFE, 0x07, 0xC0, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFC, 0x0A, 0x20, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFE, 0x14, 0x10, 0x05, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFC, 0x28, 0x08, 0x06, 0x07, 0xC0, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F, 0xFF, 0xFF, 0xFF,
+0xFE, 0x54, 0x04, 0x04, 0x0A, 0x20, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF,
+0xFC, 0x60, 0x04, 0x06, 0x14, 0x10, 0x05, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFE, 0x50, 0x04, 0x04, 0x28, 0x08, 0x06, 0x07, 0xC0, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F,
+0xFC, 0x60, 0x04, 0x06, 0x54, 0x04, 0x04, 0x0A, 0x20, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
+0xFE, 0x54, 0x04, 0x1C, 0x60, 0x04, 0x06, 0x14, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F,
+0xFC, 0x28, 0x08, 0x2E, 0x50, 0x04, 0x04, 0x28, 0x08, 0x06, 0x07, 0xC0, 0x00, 0x01, 0xF0, 0x3F,
+0xFE, 0x14, 0x10, 0x54, 0x60, 0x04, 0x06, 0x54, 0x04, 0x04, 0x0A, 0x20, 0x00, 0x02, 0x08, 0x1F,
+0xFC, 0x0A, 0x20, 0x66, 0x54, 0x04, 0x1C, 0x60, 0x04, 0x06, 0x14, 0x10, 0x00, 0x05, 0x04, 0x3F,
+0xFE, 0x07, 0xC0, 0x54, 0x28, 0x08, 0x2E, 0x50, 0x04, 0x04, 0x28, 0x08, 0x00, 0x0A, 0x02, 0x1F,
+0xFC, 0x00, 0x00, 0x2E, 0x14, 0x10, 0x54, 0x60, 0x04, 0x06, 0x54, 0x04, 0x00, 0x15, 0x01, 0x3F,
+0xFE, 0x00, 0x00, 0x1C, 0x0A, 0x20, 0x66, 0x54, 0x04, 0x1C, 0x60, 0x04, 0x00, 0x18, 0x01, 0x1F,
+0xFC, 0x00, 0x00, 0x06, 0x07, 0xC0, 0x54, 0x28, 0x08, 0x2E, 0x50, 0x04, 0x00, 0x14, 0x01, 0x3F,
+0xFE, 0x00, 0x00, 0x04, 0x00, 0x00, 0x2E, 0x14, 0x10, 0x54, 0x60, 0x04, 0x00, 0x18, 0x01, 0x1F,
+0xFC, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x1C, 0x0A, 0x20, 0x66, 0x54, 0x04, 0x1C, 0x15, 0x01, 0x3F,
+0xFE, 0xD5, 0x55, 0x54, 0x00, 0x00, 0x06, 0x07, 0xC0, 0x54, 0x28, 0x08, 0x2A, 0x0A, 0x02, 0x1F,
+0xFC, 0x84, 0x10, 0x46, 0x00, 0x00, 0x04, 0x00, 0x00, 0x2E, 0x14, 0x10, 0x51, 0x05, 0x04, 0x3F,
+0xFE, 0xC4, 0x10, 0x44, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x1C, 0x0A, 0x20, 0x61, 0x02, 0x88, 0x1F,
+0xFC, 0x84, 0x10, 0x46, 0xD5, 0x55, 0x54, 0x00, 0x00, 0x06, 0x07, 0xC0, 0x51, 0x01, 0xF0, 0x3F,
+0xFE, 0x84, 0x10, 0x44, 0x84, 0x10, 0x46, 0x00, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x1F,
+0xFC, 0xC4, 0x10, 0x46, 0xC4, 0x10, 0x44, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x3F,
+0xFE, 0x84, 0x10, 0x44, 0x84, 0x10, 0x46, 0xD5, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F,
+0xFC, 0xD5, 0x55, 0x56, 0x84, 0x10, 0x44, 0x84, 0x10, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
+0xFC, 0xFF, 0xFF, 0xFC, 0xC4, 0x10, 0x46, 0xC4, 0x10, 0x44, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F,
+0xFE, 0x00, 0x00, 0x06, 0x84, 0x10, 0x44, 0x84, 0x10, 0x46, 0xD5, 0x55, 0x55, 0x55, 0x55, 0xBF,
+0xFD, 0x55, 0x55, 0x54, 0xD5, 0x55, 0x56, 0x84, 0x10, 0x44, 0x84, 0x10, 0x41, 0x04, 0x10, 0x9F,
+0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xC4, 0x10, 0x46, 0xC4, 0x10, 0x41, 0x04, 0x11, 0xBF,
+0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x06, 0x84, 0x10, 0x44, 0x84, 0x10, 0x41, 0x04, 0x10, 0x9F,
+0xFF, 0xFF, 0xFF, 0xFD, 0x55, 0x55, 0x54, 0xD5, 0x55, 0x56, 0x84, 0x10, 0x41, 0x04, 0x10, 0x9F,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFC, 0xC4, 0x10, 0x41, 0x04, 0x11, 0xBF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x06, 0x84, 0x10, 0x41, 0x04, 0x10, 0x9F,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x55, 0x55, 0x54, 0xD5, 0x55, 0x55, 0x55, 0x55, 0xBF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5F,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE0, 0x2E, 0xFB, 0x7D, 0xFB, 0xFB, 0xCF, 0xC1, 0xDF, 0xBB, 0x3E, 0xC0, 0xE1, 0xFE, 0x3C, 0x1F,
+0xFD, 0xEE, 0x7B, 0x39, 0xF9, 0xF3, 0xCF, 0x9E, 0xDF, 0xBB, 0x3E, 0xDF, 0xDE, 0xFC, 0xDD, 0xE7,
+0xFD, 0xEE, 0x3B, 0xBB, 0xF9, 0xEB, 0xD7, 0xBF, 0x5F, 0xBB, 0x5E, 0xDF, 0xDE, 0xFD, 0xED, 0xF7,
+0xFD, 0xEE, 0xBB, 0xD3, 0xFA, 0xEB, 0xB7, 0x3F, 0xDF, 0xBB, 0x4E, 0xDF, 0xDF, 0xFF, 0xCD, 0xF3,
+0xFD, 0xEE, 0xDB, 0xC7, 0xFA, 0xEB, 0xBB, 0x7F, 0xC0, 0x3B, 0x6E, 0xC0, 0xE3, 0xFF, 0x1D, 0xF3,
+0xFD, 0xEE, 0xCB, 0xEF, 0xFA, 0xDB, 0xBB, 0x7F, 0xDF, 0xBB, 0x66, 0xDF, 0xF8, 0xFF, 0xCD, 0xF3,
+0xFD, 0xEE, 0xEB, 0xEF, 0xFB, 0x5B, 0x03, 0x3F, 0x5F, 0xBB, 0x76, 0xDF, 0xFE, 0x7F, 0xED, 0xF3,
+0xFD, 0xEE, 0xF3, 0xEF, 0xFB, 0x5B, 0x79, 0xBE, 0xDF, 0xBB, 0x7A, 0xDF, 0xDE, 0x7D, 0xED, 0xF7,
+0xFD, 0xEE, 0xF3, 0xEF, 0xFB, 0xBA, 0xFD, 0x9E, 0xDF, 0xBB, 0x7C, 0xDF, 0xDE, 0xFD, 0xCD, 0xE7,
+0xFD, 0xEE, 0xFB, 0xEF, 0xFB, 0xBA, 0xFD, 0xC1, 0xDF, 0xBB, 0x7E, 0xC0, 0xE0, 0xFE, 0x1C, 0x1F,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+};
+
+
+
diff --git a/Marlin/_Statusscreen.h b/Marlin/_Statusscreen.h
new file mode 100644
index 0000000000..c26149a6b2
--- /dev/null
+++ b/Marlin/_Statusscreen.h
@@ -0,0 +1,460 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+/**
+ * Custom Status Screen bitmap
+ *
+ * Place this file in the root with your configuration files
+ * and enable CUSTOM_STATUS_SCREEN_IMAGE in Configuration.h.
+ *
+ * Use the Marlin Bitmap Converter to make your own:
+ * http://marlinfw.org/tools/u8glib/converter.html
+ */
+#include "MarlinConfig.h"
+
+//============================================
+
+#define STATUS_SCREENWIDTH 128
+
+#define STATUS_SCREEN_HOTEND_TEXT_X(E) (41 + (E) * 20)
+
+#define STATUS_SCREEN_BED_TEXT_X (HOTENDS > 1 ? 81 : 73)
+
+#define FAN_ANIM_FRAMES 3
+#define STATUS_SCREEN_FAN_TEXT_X (FAN_ANIM_FRAMES == 3 ? 103 : 105)
+#define STATUS_SCREEN_FAN_TEXT_Y (FAN_ANIM_FRAMES > 2 ? 28 : 27)
+
+//============================================
+
+#if HOTENDS < 2
+
+ #if FAN_ANIM_FRAMES <= 2
+
+ const unsigned char status_screen0_bmp[] PROGMEM = {
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
+ B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00111111,B00111000,
+ B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111110,B00011000,
+ B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111100,B00011000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101000,B01111100,B00001000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00111000,B00001000,
+ B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B00111001,B11001000,
+ B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11111111,B11101000,
+ B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11000111,B11101000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111111,B11101000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100111,B00111001,B11101000,
+ B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B00111000,B01101000,
+ B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B01111100,B00101000,
+ B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110000,B01111100,B00011000,
+ B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110000,B11111100,B00011000,
+ B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11111000,B00111000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
+};
+ const unsigned char status_screen1_bmp[] PROGMEM = {
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B10000000,B11111000,
+ B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B10000000,B00111000,
+ B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B10000001,B11011000,
+ B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B11000011,B11011000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B11000111,B11101000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100011,B11000111,B11111000,
+ B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100001,B11111111,B10001000,
+ B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
+ B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01101100,B00001000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100011,B11111111,B00001000,
+ B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00111111,B11000111,B10001000,
+ B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B11000111,B11001000,
+ B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110111,B10000111,B11011000,
+ B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B00000011,B11011000,
+ B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000011,B00111000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000010,B11111000,
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
+};
+
+ #elif FAN_ANIM_FRAMES == 3
+
+
+const unsigned char status_screen0_bmp[] PROGMEM = {
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
+ B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00111111,B00111000,
+ B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111110,B00011000,
+ B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111100,B00011000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101000,B01111100,B00001000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00111000,B00001000,
+ B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B00111001,B11001000,
+ B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11111111,B11101000,
+ B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11000111,B11101000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111111,B11101000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100111,B00111001,B11101000,
+ B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B00111000,B01101000,
+ B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B01111100,B00101000,
+ B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110000,B01111100,B00011000,
+ B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110000,B11111100,B00011000,
+ B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11111000,B00111000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
+};
+
+
+ const unsigned char status_screen1_bmp[] PROGMEM = {
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
+ B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00001111,B00111000,
+ B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110100,B00011111,B11011000,
+ B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110110,B00011111,B10011000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B00011111,B00001000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10011110,B00001000,
+ B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111100,B00001000,
+ B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11011100,B00001000,
+ B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100111,B11101111,B11001000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01110111,B11101000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100000,B01111111,B11101000,
+ B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B11110011,B11101000,
+ B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100001,B11110001,B11101000,
+ B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110011,B11110000,B11011000,
+ B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B11110000,B01011000,
+ B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11100000,B00111000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
+};
+ const unsigned char status_screen2_bmp[] PROGMEM = {
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B10000000,B11111000,
+ B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B10000000,B00111000,
+ B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B10000001,B11011000,
+ B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B11000011,B11011000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B11000111,B11101000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100011,B11000111,B11111000,
+ B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100001,B11111111,B10001000,
+ B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
+ B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01101100,B00001000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100011,B11111111,B00001000,
+ B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00111111,B11000111,B10001000,
+ B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B11000111,B11001000,
+ B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110111,B10000111,B11011000,
+ B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B00000011,B11011000,
+ B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000011,B00111000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000010,B11111000,
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
+};
+
+ #elif FAN_ANIM_FRAMES == 4
+
+const unsigned char status_screen0_bmp[] PROGMEM = {
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
+ B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00111111,B00111000,
+ B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111110,B00011000,
+ B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111100,B00011000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101000,B01111100,B00001000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00111000,B00001000,
+ B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B00111001,B11001000,
+ B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11111111,B11101000,
+ B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11000111,B11101000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111111,B11101000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100111,B00111001,B11101000,
+ B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B00111000,B01101000,
+ B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B01111100,B00101000,
+ B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110000,B01111100,B00011000,
+ B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110000,B11111100,B00011000,
+ B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11111000,B00111000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
+};
+
+const unsigned char status_screen1_bmp[] PROGMEM = {
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
+ B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00001111,B00111000,
+ B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110100,B00011111,B11011000,
+ B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110110,B00011111,B10011000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B00011111,B00001000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10011110,B00001000,
+ B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11111100,B00001000,
+ B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101111,B11011100,B00001000,
+ B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100111,B11101111,B11001000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01110111,B11101000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100000,B01111111,B11101000,
+ B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100000,B11110011,B11101000,
+ B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00100001,B11110001,B11101000,
+ B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110011,B11110000,B11011000,
+ B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B11110000,B01011000,
+ B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11100000,B00111000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
+};
+
+const unsigned char status_screen2_bmp[] PROGMEM = {
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B10000000,B11111000,
+ B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B10000000,B00111000,
+ B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B10000001,B11011000,
+ B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B11000011,B11011000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B11000111,B11101000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100011,B11000111,B11111000,
+ B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100001,B11111111,B10001000,
+ B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
+ B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01101100,B00001000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01101100,B00001000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00100011,B11111111,B00001000,
+ B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00111111,B11000111,B10001000,
+ B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B11000111,B11001000,
+ B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110111,B10000111,B11011000,
+ B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110111,B00000011,B11011000,
+ B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000011,B00111000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000010,B11111000,
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
+};
+
+
+const unsigned char status_screen3_bmp[] PROGMEM = {
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
+ B10001110,B00000000,B11100001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11110000,B00111000,
+ B10011111,B00000000,B11110001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110001,B11100000,B00011000,
+ B10010011,B10000001,B00111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110001,B11100000,B00011000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100001,B11100001,B11101000,
+ B10011111,B10000001,B11111001,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B11110011,B11101000,
+ B10011111,B10111001,B11110001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00100000,B01111111,B11101000,
+ B10001111,B00101000,B11110001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00100000,B01110111,B11101000,
+ B10000000,B00111000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00000100,B00010000,B01000000,B00000000,B00101000,B11101110,B00101000,
+ B10000000,B00000000,B00000001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00101111,B11011100,B00001000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00101111,B11111100,B00001000,
+ B10010001,B01110100,B10011001,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B10011110,B00001000,
+ B10011011,B00000110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00100000,B10000010,B00000000,B00000000,B00101111,B00001111,B00001000,
+ B10011011,B01010100,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00010000,B01000001,B00000000,B00000000,B00110000,B00001111,B00011000,
+ B10011011,B01010110,B10101001,B00000000,B00000000,B00111111,B11110000,B00000000,B00000000,B00001000,B00100000,B10000000,B00000000,B00110000,B00001111,B00011000,
+ B10011011,B01010100,B10011001,B00000000,B00000000,B00001111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00011111,B00111000,
+ B10011111,B11111111,B11111001,B00000000,B00000000,B00000111,B10000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111110,B00000000,B11111000,
+ B11111111,B11111111,B11111111,B00000000,B00000000,B00000011,B00000000,B00000000,B00000000,B11111111,B11111111,B11000000,B00000000,B00111111,B11111111,B11111000
+};
+
+
+ #endif
+
+#else // HOTENDS >= 2
+
+ #if FAN_ANIM_FRAMES <= 2
+
+ const unsigned char status_screen0_bmp[] PROGMEM = {
+ B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11110000,
+ B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B01110000,
+ B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B11111100,B00110000,
+ B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B11111100,B00010000,
+ B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B01111000,B00010000,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B00110000,B00010000,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00000000,B11010000,
+ B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00101110,B00110001,B11010000,
+ B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00101111,B01111011,B11010000,
+ B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00101111,B01111011,B11010000,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00101110,B00110001,B11010000,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00101100,B00000000,B11010000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00100000,B00110000,B00010000,
+ B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00100000,B01111000,B00010000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00100000,B11111100,B00010000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110000,B11111100,B00110000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B01110000,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11110000,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000000,B00000000,B00000000
+ };
+ const unsigned char status_screen1_bmp[] PROGMEM = {
+ B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11110000,
+ B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B01110000,
+ B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110011,B10000111,B00110000,
+ B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B10000111,B10010000,
+ B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10000111,B11010000,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10000111,B11010000,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B00000011,B11010000,
+ B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00100000,B00110000,B00010000,
+ B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00100000,B01111000,B00010000,
+ B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00100000,B01111000,B00010000,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00100000,B00110000,B00010000,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00101111,B00000011,B11010000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00101111,B10000111,B11010000,
+ B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00101111,B10000111,B11010000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00100111,B10000111,B10010000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110011,B10000111,B00110000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111000,B00000000,B01110000,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11110000,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000000,B00000000,B00000000
+ };
+
+ #elif FAN_ANIM_FRAMES == 3
+
+ const unsigned char status_screen0_bmp[] PROGMEM = {
+ B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111111,B11111111,
+ B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11000000,B00011111,
+ B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B00100000,B00100111,
+ B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B11110000,B01111011,
+ B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B11110000,B01111011,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000101,B11111000,B11111101,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000100,B11111000,B11111001,
+ B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00000100,B00111111,B11100001,
+ B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00000100,B00001111,B10000001,
+ B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00000100,B00001111,B10000001,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00000100,B00001111,B10000001,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00000100,B00111111,B11100001,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00000100,B11111000,B11111001,
+ B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00000101,B11111000,B11111101,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00000110,B11110000,B01111011,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00000110,B11110000,B01111011,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00000111,B00100000,B00100111,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00000111,B11000000,B00011111,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000111,B11111111,B11111111
+ };
+ const unsigned char status_screen1_bmp[] PROGMEM = {
+ B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111111,B11111111,
+ B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11000110,B00011111,
+ B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B00111110,B00000111,
+ B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B00111110,B00000011,
+ B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B00011110,B00000011,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000100,B00011110,B00001101,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000100,B00000110,B00111101,
+ B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00000100,B00000111,B00111101,
+ B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00000100,B00001111,B11111111,
+ B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00000111,B11111111,B11111111,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00000111,B11111111,B10000001,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00000101,B11100111,B00000001,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00000101,B11000011,B00000001,
+ B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00000101,B10000011,B11000001,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00000110,B00000011,B11000011,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00000110,B00000011,B11100011,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00000111,B00000011,B11100111,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00000111,B11000011,B00011111,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000111,B11111111,B11111111
+ };
+ const unsigned char status_screen2_bmp[] PROGMEM = {
+ B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111111,B11111111,
+ B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11000011,B00011111,
+ B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B00000011,B11100111,
+ B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B00000011,B11110011,
+ B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000110,B10000011,B11100011,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000101,B11000011,B11000001,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000101,B11100011,B10000001,
+ B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00000101,B11110111,B00000001,
+ B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00000111,B11111111,B10000001,
+ B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00000111,B11111111,B11111111,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00000100,B00001111,B11111111,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00000100,B00000111,B01111101,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00000100,B00001110,B00111101,
+ B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00000100,B00011110,B00011101,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00000110,B00111110,B00001011,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00000110,B01111110,B00000011,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00000111,B00111110,B00000111,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00000111,B11000110,B00011111,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00000111,B11111111,B11111111
+ };
+
+ #elif FAN_ANIM_FRAMES == 4
+
+ const unsigned char status_screen0_bmp[] PROGMEM = {
+ B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
+ B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
+ B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00111111,B00111000,
+ B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111110,B00011000,
+ B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110000,B01111100,B00011000,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101000,B01111100,B00001000,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101100,B00111000,B00001000,
+ B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00101111,B00111001,B11001000,
+ B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00101111,B11111111,B11101000,
+ B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00101111,B11000111,B11101000,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00101111,B11111111,B11101000,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00100111,B00111001,B11101000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00100000,B00111000,B01101000,
+ B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00100000,B01111100,B00101000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00110000,B01111100,B00011000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110000,B11111100,B00011000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111001,B11111000,B00111000,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111110,B00000000,B11111000,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11111000
+ };
+ const unsigned char status_screen1_bmp[] PROGMEM = {
+ B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
+ B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
+ B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111000,B00001111,B00111000,
+ B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110100,B00011111,B11011000,
+ B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110110,B00011111,B10011000,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B00011111,B00001000,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00101111,B10011110,B00001000,
+ B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00101111,B11111100,B00001000,
+ B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00101111,B11011100,B00001000,
+ B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00100111,B11101111,B11001000,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00100000,B01110111,B11101000,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00100000,B01111111,B11101000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00100000,B11110011,B11101000,
+ B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00100001,B11110001,B11101000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00110011,B11110000,B11011000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110111,B11110000,B01011000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111001,B11100000,B00111000,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111110,B00000000,B11111000,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11111000
+ };
+ const unsigned char status_screen2_bmp[] PROGMEM = {
+ B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
+ B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B10000000,B11111000,
+ B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B10000000,B00111000,
+ B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B10000001,B11011000,
+ B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110111,B11000011,B11011000,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100111,B11000111,B11101000,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100011,B11000111,B11111000,
+ B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00100001,B11111111,B10001000,
+ B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00100000,B01101100,B00001000,
+ B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00100000,B01101100,B00001000,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00100000,B01101100,B00001000,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00100011,B11111111,B00001000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00111111,B11000111,B10001000,
+ B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00101111,B11000111,B11001000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00110111,B10000111,B11011000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110111,B00000011,B11011000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111000,B00000011,B00111000,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111110,B00000010,B11111000,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11111000
+ };
+ const unsigned char status_screen3_bmp[] PROGMEM = {
+ B00111101,B11110000,B00000010,B00111000,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111111,B11111111,B11111000,
+ B01000100,B10001000,B00000110,B01000101,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111110,B00000000,B11111000,
+ B10000000,B10001000,B00000010,B01000101,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00111001,B11110000,B00111000,
+ B10000000,B11110000,B00000010,B01000100,B10000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110001,B11100000,B00011000,
+ B10000000,B10100011,B11110010,B01000100,B01100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00110001,B11100000,B00011000,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100001,B11100001,B11101000,
+ B10000000,B10010000,B00000010,B01000100,B00010000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00100000,B11110011,B11101000,
+ B01000100,B10001000,B00000010,B01000101,B00010000,B00011111,B11100000,B00000001,B11111110,B00000000,B00001000,B00100000,B10000000,B00100000,B01111111,B11101000,
+ B00111001,B11001100,B00000111,B00111001,B11100000,B00111110,B11110000,B00000011,B11001111,B00000000,B00000100,B00010000,B01000000,B00100000,B01110111,B11101000,
+ B00000000,B00000000,B00000000,B00000000,B00000000,B00111100,B11110000,B00000011,B10110111,B00000000,B00000100,B00010000,B01000000,B00101000,B11101110,B00101000,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00111010,B11110000,B00000011,B11110111,B00000000,B00001000,B00100000,B10000000,B00101111,B11011100,B00001000,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11101110,B00000000,B00010000,B01000001,B00000000,B00101111,B11111100,B00001000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00011110,B11100000,B00000001,B11011110,B00000000,B00100000,B10000010,B00000000,B00101111,B10011110,B00001000,
+ B00000000,B00011000,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10111111,B00000000,B00100000,B10000010,B00000000,B00101111,B00001111,B00001000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111110,B11110000,B00000011,B10000111,B00000000,B00010000,B01000001,B00000000,B00110000,B00001111,B00011000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00111111,B11110000,B00000011,B11111111,B00000000,B00001000,B00100000,B10000000,B00110000,B00001111,B00011000,
+ B00000000,B00000100,B10001001,B00010000,B00000000,B00001111,B11000000,B00000000,B11111100,B00000000,B00000000,B00000000,B00000000,B00111000,B00011111,B00111000,
+ B00000000,B01000100,B10001001,B00010000,B00000000,B00000111,B10000000,B00000000,B01111000,B00000000,B11111111,B11111111,B11000000,B00111110,B00000000,B11111000,
+ B00000000,B00111000,B01110000,B11100000,B00000000,B00000011,B00000000,B00000000,B00110000,B00000000,B11111111,B11111111,B11000000,B00111111,B11111111,B11111000
+ };
+
+ #endif
+
+#endif // HOTENDS >= 2
From 0ab3f7e985d21816ab6c36de8573a0eaf3a1bf67 Mon Sep 17 00:00:00 2001
From: InsanityAutomation
<38436470+InsanityAutomation@users.noreply.github.com>
Date: Mon, 16 Apr 2018 13:16:17 -0400
Subject: [PATCH 2/8] Update Configuration.h
---
Marlin/Configuration.h | 1609 ++++++++++++++++++++++++----------------
1 file changed, 989 insertions(+), 620 deletions(-)
diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 1396662e66..b7065c6680 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -74,49 +74,176 @@
// User-specified version info of this build to display in [Pronterface, etc] terminal window during
// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
// build by the user have been successfully uploaded into firmware.
-#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.
+#define STRING_CONFIG_H_AUTHOR "TinyMachines3D" // Who made the changes.
#define SHOW_BOOTSCREEN
#define STRING_SPLASH_LINE1 SHORT_BUILD_VERSION // will be shown during bootup in line 1
#define STRING_SPLASH_LINE2 WEBSITE_URL // will be shown during bootup in line 2
-/**
- * *** VENDORS PLEASE READ ***
- *
- * Marlin allows you to add a custom boot image for Graphical LCDs.
- * With this option Marlin will first show your custom screen followed
- * by the standard Marlin logo with version number and web URL.
- *
- * We encourage you to take advantage of this new feature and we also
- * respecfully request that you retain the unmodified Marlin boot screen.
- */
-
-// Enable to show the bitmap in Marlin/_Bootscreen.h on startup.
-//#define SHOW_CUSTOM_BOOTSCREEN
+//
+// *** VENDORS PLEASE READ *****************************************************
+//
+// Marlin now allow you to have a vendor boot image to be displayed on machine
+// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
+// custom boot image and then the default Marlin boot image is shown.
+//
+// We suggest for you to take advantage of this new feature and keep the Marlin
+// boot image unmodified. For an example have a look at the bq Hephestos 2
+// example configuration folder.
+//
+#define SHOW_CUSTOM_BOOTSCREEN
// Enable to show the bitmap in Marlin/_Statusscreen.h on the status screen.
-//#define CUSTOM_STATUS_SCREEN_IMAGE
// @section machine
+// Optional custom name for your RepStrap or other custom machine
+// Displayed in the LCD "Ready" message
+
+/*
+ * Base machine
+ * Choose one option below to define machine size, board, and parameters
+ *
+ */
+//#define MachineCR10Orig
+//#define MachineMini
+#define MachineCR10S
+//#define MachineS4
+//#define MachineS5
+
+/*
+ * Hotend Type
+ * Choose one option below.
+ * E3D assumes the following mount :
+ * https://www.thingiverse.com/thing:2494642
+ *
+ * Configured with 5015 left wing, right wing BLTouch only
+ */
+#define HotendStock
+//#define HotendE3D
+
+/*
+ * Enable this if you have an all metal hotend capable of 300c
+ *
+ */
+#define HotendAllMetal
+
+/*
+ * Choose bed type below. If you have an extenrally controlled
+ * ac bed, leave both disabled
+ */
+//#define BedAC
+#define BedDC
+
+/*
+ * If you have upgraded to an S board but kept the original display
+ * then enable this line
+ */
+//#define OrigLCD
+
+/*
+ * Choose ABL sensor type below
+ * Leave all disabled if no sensor is available
+ */
+//#define ABL_EZABL // TH3D EZABL or Any NO Sensor
+//#define ABL_NCSW //Any NC Sensor
+#define ABL_BLTOUCH
+
+/*
+ * Choose bed leveling type here
+ * Requires a sensor from above
+ * Melzi board users may only select ABL_BI for bilinear leveling
+ */
+//#define ABL_BI
+#define ABL_UBL
+
+
+
+
+#if(!ENABLED(MachineCR10Orig))
+#define CUSTOM_STATUS_SCREEN_IMAGE
+#endif
+
+#if(ENABLED(MachineMini))
+#define CUSTOM_MACHINE_NAME "Mini SuPeR"
+#elif(ENABLED(MachineCR10Orig))
+#define CUSTOM_MACHINE_NAME "300 Orig"
+#elif(ENABLED(MachineCR10S))
+#define CUSTOM_MACHINE_NAME "300 SuPeR"
+#elif(ENABLED(MachineS4))
+#define CUSTOM_MACHINE_NAME "400 SuPeR"
+#elif(ENABLED(MachineS5))
+#define CUSTOM_MACHINE_NAME "500 SuPeR"
+#endif
+
+#if(ENABLED(MachineMini))
+#define VerChar1 "M"
+#elif(ENABLED(MachineCR10Orig))
+#define VerChar1 "O"
+#elif(ENABLED(MachineCR10S))
+#define VerChar1 "S"
+#elif(ENABLED(MachineS4))
+#define VerChar1 "4"
+#elif(ENABLED(MachineS5))
+#define VerChar1 "5"
+#endif
+
+#if(ENABLED(HotendStock))
+#define VerChar2 "S"
+#elif(ENABLED(HotendE3D))
+#define VerChar2 "E"
+#endif
+
+#if(ENABLED(HotendAllMetal))
+#define VerChar3 "M"
+#else
+#define VerChar3 "S"
+#endif
+
+
+#if(ENABLED(BedAC))
+#define VerChar4 "A"
+#elif(ENABLED(BedDC))
+#define VerChar4 "D"
+#else
+#define VerChar4 "N"
+#endif
+
+#if(ENABLED(ABL_EZABL))
+#define VerChar5 "A"
+#elif(ENABLED(ABL_BLTOUCH))
+#define VerChar5 "B"
+#else
+#define VerChar5 "N"
+#endif
+
+#if(ENABLED(ABL_UBL))
+#define VerChar6 "U"
+#elif(ENABLED(ABL_BI))
+#define VerChar6 "B"
+#else
+#define VerChar6 "N"
+#endif
+
+#define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION " TM3D " VerChar1 VerChar2 VerChar3 VerChar4 VerChar5 VerChar6
/**
- * Select the serial port on the board to use for communication with the host.
- * This allows the connection of wireless adapters (for instance) to non-default port pins.
- * Serial port 0 is always used by the Arduino bootloader regardless of this setting.
- *
- * :[0, 1, 2, 3, 4, 5, 6, 7]
- */
+ Select the serial port on the board to use for communication with the host.
+ This allows the connection of wireless adapters (for instance) to non-default port pins.
+ Serial port 0 is always used by the Arduino bootloader regardless of this setting.
+
+ :[0, 1, 2, 3, 4, 5, 6, 7]
+*/
#define SERIAL_PORT 0
/**
- * This setting determines the communication speed of the printer.
- *
- * 250000 works in most cases, but you might try a lower speed if
- * you commonly experience drop-outs during host printing.
- * You may try up to 1000000 to speed up SD file transfer.
- *
- * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
- */
-#define BAUDRATE 250000
+ This setting determines the communication speed of the printer.
+
+ 250000 works in most cases, but you might try a lower speed if
+ you commonly experience drop-outs during host printing.
+ You may try up to 1000000 to speed up SD file transfer.
+
+ :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
+*/
+#define BAUDRATE 115200
// Enable the Bluetooth serial interface on AT90USB devices
//#define BLUETOOTH
@@ -124,7 +251,11 @@
// The following define selects which electronics board you have.
// Please choose the name from boards.h that matches your setup
#ifndef MOTHERBOARD
- #define MOTHERBOARD BOARD_RAMPS_14_EFB
+#if(ENABLED(MachineCR10Orig))
+#define MOTHERBOARD BOARD_MELZI_CREALITY
+#else
+#define MOTHERBOARD BOARD_RAMPS_14_EFB
+#endif
#endif
// Optional custom name for your RepStrap or other custom machine
@@ -142,7 +273,7 @@
#define EXTRUDERS 1
// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
-#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0
+#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
// For Cyclops or any "multi-extruder" that shares a single nozzle.
//#define SINGLENOZZLE
@@ -301,14 +432,26 @@
*
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
*/
+
+#if ENABLED(HotendStock)
#define TEMP_SENSOR_0 1
+#endif
+#if ENABLED(HotendE3D)
+#define TEMP_SENSOR_0 5
+#endif
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0
#define TEMP_SENSOR_BED 0
-#define TEMP_SENSOR_CHAMBER 0
+#if ENABLED(BedDC)
+#define TEMP_SENSOR_BED 5
+#endif
+#if ENABLED(BedAC)
+#define TEMP_SENSOR_BED 11
+#endif
+#define TEMP_SENSOR_CHAMBER 0
// Dummy thermistor constant temperature readings, for use with 998 and 999
#define DUMMY_THERMISTOR_998_VALUE 25
#define DUMMY_THERMISTOR_999_VALUE 100
@@ -341,12 +484,16 @@
// When temperature exceeds max temp, your heater will be switched off.
// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
// You should use MINTEMP for thermistor short/failure protection.
-#define HEATER_0_MAXTEMP 275
+#if (ENABLED(HotendAllMetal))
+#define HEATER_0_MAXTEMP 295
+#else
+#define HEATER_0_MAXTEMP 250
+#endif
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define HEATER_3_MAXTEMP 275
#define HEATER_4_MAXTEMP 275
-#define BED_MAXTEMP 150
+#define BED_MAXTEMP 135
//===========================================================================
//============================= PID Settings ================================
@@ -359,31 +506,49 @@
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_K1 0.95 // Smoothing factor within any PID loop
#if ENABLED(PIDTEMP)
- //#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
- //#define PID_DEBUG // Sends debug data to the serial port.
- //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
- //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
- //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
- // Set/get with gcode: M301 E[extruder number, 0-2]
- #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
- // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
+#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
+//#define PID_DEBUG // Sends debug data to the serial port.
+//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
+//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
+//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
+// Set/get with gcode: M301 E[extruder number, 0-2]
+#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
+// is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
- // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
+// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
+// Stock CR-10 Hotend fan 100%
+// #define DEFAULT_Kp 17.42
+// #define DEFAULT_Ki 1.27
+// #define DEFAULT_Kd 59.93
+#if ENABLED(HotendStock)
- // Ultimaker
- #define DEFAULT_Kp 22.2
- #define DEFAULT_Ki 1.08
- #define DEFAULT_Kd 114
+// Stock CR-10 Hotend fan 100%
+#define DEFAULT_Kp 17.42
+#define DEFAULT_Ki 1.27
+#define DEFAULT_Kd 59.93
+#endif
- // MakerGear
- //#define DEFAULT_Kp 7.0
- //#define DEFAULT_Ki 0.1
- //#define DEFAULT_Kd 12
+#if ENABLED(HotendE3D)
+//E3D v6 Clone with 5050 fan wing at 100% set to 235
+#define DEFAULT_Kp 23.36
+#define DEFAULT_Ki 1.99
+#define DEFAULT_Kd 87.46
+#endif
- // Mendel Parts V9 on 12V
- //#define DEFAULT_Kp 63.0
- //#define DEFAULT_Ki 2.25
- //#define DEFAULT_Kd 440
+// Ultimaker
+//#define DEFAULT_Kp 22.2
+//#define DEFAULT_Ki 1.08
+//#define DEFAULT_Kd 114
+
+// MakerGear
+//#define DEFAULT_Kp 7.0
+//#define DEFAULT_Ki 0.1
+//#define DEFAULT_Kd 12
+
+// Mendel Parts V9 on 12V
+//#define DEFAULT_Kp 63.0
+//#define DEFAULT_Ki 2.25
+//#define DEFAULT_Kd 440
#endif // PIDTEMP
@@ -404,7 +569,7 @@
* heater. If your configuration is significantly different than this and you don't understand
* the issues involved, don't use bed PID until someone else verifies that your hardware works.
*/
-//#define PIDTEMPBED
+#define PIDTEMPBED
//#define BED_LIMIT_SWITCHING
@@ -418,21 +583,24 @@
#if ENABLED(PIDTEMPBED)
- //#define PID_BED_DEBUG // Sends debug data to the serial port.
+//#define PID_BED_DEBUG // Sends debug data to the serial port.
+//Stock Bed Tuned for 50C
+#define DEFAULT_bedKp 690.34
+#define DEFAULT_bedKi 111.47
+#define DEFAULT_bedKd 1068.83
+//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
+//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
+//#define DEFAULT_bedKp 10.00
+//#define DEFAULT_bedKi .023
+//#define DEFAULT_bedKd 305.4
- //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
- //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
- #define DEFAULT_bedKp 10.00
- #define DEFAULT_bedKi .023
- #define DEFAULT_bedKd 305.4
+//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
+//from pidautotune
+//#define DEFAULT_bedKp 97.1
+//#define DEFAULT_bedKi 1.41
+//#define DEFAULT_bedKd 1675.16
- //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
- //from pidautotune
- //#define DEFAULT_bedKp 97.1
- //#define DEFAULT_bedKi 1.41
- //#define DEFAULT_bedKd 1675.16
-
- // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
+// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
#endif // PIDTEMPBED
// @section extruder
@@ -442,12 +610,12 @@
// or to allow moving the extruder regardless of the hotend temperature.
// *** IT IS HIGHLY RECOMMENDED TO LEAVE THIS OPTION ENABLED! ***
#define PREVENT_COLD_EXTRUSION
-#define EXTRUDE_MINTEMP 170
+#define EXTRUDE_MINTEMP 160
// This option prevents a single extrusion longer than EXTRUDE_MAXLENGTH.
// Note that for Bowden Extruders a too-small value here may prevent loading.
#define PREVENT_LENGTHY_EXTRUDE
-#define EXTRUDE_MAXLENGTH 200
+#define EXTRUDE_MAXLENGTH 500
//===========================================================================
//======================== Thermal Runaway Protection =======================
@@ -513,15 +681,24 @@
//#define ENDSTOPPULLUP_ZMIN_PROBE
#endif
+
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
-#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
-#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
-#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.
+#define Z_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
+#if (!ENABLED(ABL_EZABL)&& !ENABLED(ABL_BLTOUCH))
+#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
+#define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the probe.
+#elif (ENABLED(ABL_NCSW))
+#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
+#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.
+#else
+#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
+#define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the probe.
+#endif
// Enable this feature if all enabled endstop pins are interrupt-capable.
// This will remove the need to poll the interrupt pins, saving many CPU cycles.
//#define ENDSTOP_INTERRUPTS_FEATURE
@@ -551,48 +728,83 @@
* Override with M92
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
-#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 4000, 500 }
+#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 95 }
/**
- * Default Max Feed Rate (mm/s)
- * Override with M203
- * X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
- */
-#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 }
-
-/**
- * Default Max Acceleration (change/s) change = mm/s
- * (Maximum start speed for accelerated moves)
- * Override with M201
- * X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
- */
-#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10000 }
-
-/**
- * Default Acceleration (change/s) change = mm/s
- * Override with M204
- *
- * M204 P Acceleration
- * M204 R Retract Acceleration
- * M204 T Travel Acceleration
- */
-#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E acceleration for printing moves
-#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
-#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
-
-/**
- * Default Jerk (mm/s)
- * Override with M205 X Y Z E
- *
- * "Jerk" specifies the minimum speed change that requires acceleration.
- * When changing speed and direction, if the difference is less than the
- * value set here, it may happen instantaneously.
- */
-#define DEFAULT_XJERK 10.0
-#define DEFAULT_YJERK 10.0
-#define DEFAULT_ZJERK 0.3
+ Default Max Feed Rate (mm/s)
+ Override with M203
+ X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
+*/
+#if ENABLED(MachineMini)
+#define DEFAULT_MAX_FEEDRATE { 750, 750, 10, 25 }
+#define DEFAULT_MAX_ACCELERATION { 2000, 2000, 100, 25 }
+#define DEFAULT_ACCELERATION 300 // X, Y, Z and E acceleration for printing moves
+#define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration for retracts
+#define DEFAULT_TRAVEL_ACCELERATION 300 // X, Y, Z acceleration for travel (non printing) moves
+#define DEFAULT_XJERK 20.0
+#define DEFAULT_YJERK 20.0
+#define DEFAULT_ZJERK 0.4
#define DEFAULT_EJERK 5.0
+#endif
+#if (ENABLED(MachineCR10S) || ENABLED(MachineCR10Orig))
+#define DEFAULT_MAX_FEEDRATE { 500, 500, 10, 25 }
+#define DEFAULT_MAX_ACCELERATION { 1500, 1500, 100, 25 }
+#define DEFAULT_ACCELERATION 300 // X, Y, Z and E acceleration for printing moves
+#define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration for retracts
+#define DEFAULT_TRAVEL_ACCELERATION 300 // X, Y, Z acceleration for travel (non printing) moves
+#define DEFAULT_XJERK 20.0
+#define DEFAULT_YJERK 20.0
+#define DEFAULT_ZJERK 0.4
+#define DEFAULT_EJERK 5.0
+#endif
+
+#if ENABLED( MachineS4)
+#define DEFAULT_MAX_FEEDRATE { 500, 400, 10, 25 }
+#define DEFAULT_MAX_ACCELERATION { 1000, 750, 100, 25 }
+#define DEFAULT_ACCELERATION 300 // X, Y, Z and E acceleration for printing moves
+#define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration for retracts
+#define DEFAULT_TRAVEL_ACCELERATION 300 // X, Y, Z acceleration for travel (non printing) moves
+#define DEFAULT_XJERK 20.0
+#define DEFAULT_YJERK 10.0
+#define DEFAULT_ZJERK 0.4
+#define DEFAULT_EJERK 5.0
+#endif
+#if ENABLED(MachineS5)
+#define DEFAULT_MAX_FEEDRATE { 300, 300, 10, 25 }
+#define DEFAULT_MAX_ACCELERATION { 1000, 500, 100, 25 }
+#define DEFAULT_ACCELERATION 300 // X, Y, Z and E acceleration for printing moves
+#define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration for retracts
+#define DEFAULT_TRAVEL_ACCELERATION 300 // X, Y, Z acceleration for travel (non printing) moves
+#define DEFAULT_XJERK 20.0
+#define DEFAULT_YJERK 5.0
+#define DEFAULT_ZJERK 0.4
+#define DEFAULT_EJERK 5.0
+#endif
+
+
+/**
+ Default Max Acceleration (change/s) change = mm/s
+ (Maximum start speed for accelerated moves)
+ Override with M201
+ X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
+*/
+/**
+ Default Acceleration (change/s) change = mm/s
+ Override with M204
+
+ M204 P Acceleration
+ M204 R Retract Acceleration
+ M204 T Travel Acceleration
+*/
+/**
+ Default Jerk (mm/s)
+ Override with M205 X Y Z E
+
+ "Jerk" specifies the minimum speed change that requires acceleration.
+ When changing speed and direction, if the difference is less than the
+ value set here, it may happen instantaneously.
+*/
//===========================================================================
//============================= Z Probe Options =============================
//===========================================================================
@@ -603,10 +815,10 @@
//
/**
- * Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
- *
- * Enable this option for a probe connected to the Z Min endstop pin.
- */
+ Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
+
+ Enable this option for a probe connected to the Z Min endstop pin.
+*/
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
/**
@@ -638,46 +850,58 @@
*/
/**
- * The "Manual Probe" provides a means to do "Auto" Bed Leveling without a probe.
- * Use G29 repeatedly, adjusting the Z height at each point with movement commands
- * or (with LCD_BED_LEVELING) the LCD controller.
- */
-//#define PROBE_MANUALLY
-
+ The "Manual Probe" provides a means to do "Auto" Bed Leveling without a probe.
+ Use G29 repeatedly, adjusting the Z height at each point with movement commands
+ or (with LCD_BED_LEVELING) the LCD controller.
+*/
+#if (!ENABLED(ABL_EZABL)&& !ENABLED(ABL_BLTOUCH))
+#define PROBE_MANUALLY
+#endif
/**
- * A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
- * (e.g., an inductive probe or a nozzle-based probe-switch.)
- */
-//#define FIX_MOUNTED_PROBE
-
+ A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
+ (e.g., an inductive probe or a nozzle-based probe-switch.)
+*/
+#if ENABLED(ABL_EZABL)
+#define FIX_MOUNTED_PROBE
+#endif
/**
- * Z Servo Probe, such as an endstop switch on a rotating arm.
- */
-//#define Z_PROBE_SERVO_NR 0 // Defaults to SERVO 0 connector.
+ Z Servo Probe, such as an endstop switch on a rotating arm.
+*/
+//#define Z_ENDSTOP_SERVO_NR 0 // Defaults to SERVO 0 connector.
//#define Z_SERVO_ANGLES {70,0} // Z Servo Deploy and Stow angles
/**
- * The BLTouch probe uses a Hall effect sensor and emulates a servo.
- */
-//#define BLTOUCH
+ The BLTouch probe uses a Hall effect sensor and emulates a servo.
+*/
+#if ENABLED(ABL_BLTOUCH)
+#define BLTOUCH
+#endif
#if ENABLED(BLTOUCH)
- //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
+#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
#endif
/**
- * Enable one or more of the following if probing seems unreliable.
- * Heaters and/or fans can be disabled during probing to minimize electrical
- * noise. A delay can also be added to allow noise and vibration to settle.
- * These options are most useful for the BLTouch probe, but may also improve
- * readings with inductive probes and piezo sensors.
- */
-//#define PROBING_HEATERS_OFF // Turn heaters off when probing
-//#define PROBING_FANS_OFF // Turn fans off when probing
+ Enable one or more of the following if probing seems unreliable.
+ Heaters and/or fans can be disabled during probing to minimize electrical
+ noise. A delay can also be added to allow noise and vibration to settle.
+ These options are most useful for the BLTouch probe, but may also improve
+ readings with inductive probes and piezo sensors.
+*/
+#if (ENABLED(ABL_EZABL) && ENABLED(BED_AC))
+#define PROBING_HEATERS_OFF // Turn heaters off when probing
+#endif
+
//#define DELAY_BEFORE_PROBING 200 // (ms) To prevent vibrations from triggering piezo sensors
// A probe that is deployed and stowed with a solenoid pin (SOL1_PIN)
-//#define SOLENOID_PROBE
-
+#if ENABLED(ABL_BLTOUCH)
+#define PROBING_FANS_OFF // Turn fans off when probing
+#if(ENABLED(MachineCR10Orig))
+#define SOLENOID_PROBE PIN_27
+#else
+#define SOLENOID_PROBE PIN_11
+#endif
+#endif
// A sled-mounted probe like those designed by Charles Bell.
//#define Z_PROBE_SLED
//#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
@@ -687,31 +911,47 @@
//
/**
- * Z Probe to nozzle (X,Y) offset, relative to (0, 0).
- * X and Y offsets must be integers.
- *
- * In the following example the X and Y offsets are both positive:
- * #define X_PROBE_OFFSET_FROM_EXTRUDER 10
- * #define Y_PROBE_OFFSET_FROM_EXTRUDER 10
- *
- * +-- BACK ---+
- * | |
- * L | (+) P | R <-- probe (20,20)
- * E | | I
- * F | (-) N (+) | G <-- nozzle (10,10)
- * T | | H
- * | (-) | T
- * | |
- * O-- FRONT --+
- * (0,0)
- */
-#define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle]
-#define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle]
+ Z Probe to nozzle (X,Y) offset, relative to (0, 0).
+ X and Y offsets must be integers.
+
+ In the following example the X and Y offsets are both positive:
+ #define X_PROBE_OFFSET_FROM_EXTRUDER 10
+ #define Y_PROBE_OFFSET_FROM_EXTRUDER 10
+
+ +-- BACK ---+
+ | |
+ L | (+) P | R <-- probe (20,20)
+ E | | I
+ F | (-) N (+) | G <-- nozzle (10,10)
+ T | | H
+ | (-) | T
+ | |
+ O-- FRONT --+
+ (0,0)
+*/
+#if (ENABLED(ABL_BLTOUCH) && ENABLED(HotendStock))
+#define X_PROBE_OFFSET_FROM_EXTRUDER -41 // X offset: -left +right [of the nozzle]
+#define Y_PROBE_OFFSET_FROM_EXTRUDER -8 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]
+#endif
-// Certain types of probes need to stay away from edges
-#define MIN_PROBE_EDGE 10
+#if (ENABLED(ABL_EZABL) && ENABLED(HotendStock))
+#define X_PROBE_OFFSET_FROM_EXTRUDER -44 // X offset: -left +right [of the nozzle]
+#define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front +behind [the nozzle]
+#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]
+#endif
+#if (ENABLED(ABL_BLTOUCH) && ENABLED(HotendE3D))
+#define X_PROBE_OFFSET_FROM_EXTRUDER 33 // X offset: -left +right [of the nozzle]
+#define Y_PROBE_OFFSET_FROM_EXTRUDER 5 // Y offset: -front +behind [the nozzle]
+#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]
+#endif
+
+#if (ENABLED(ABL_EZABL) && ENABLED(HotendE3D))
+#define X_PROBE_OFFSET_FROM_EXTRUDER 33 // X offset: -left +right [of the nozzle]
+#define Y_PROBE_OFFSET_FROM_EXTRUDER 5 // Y offset: -front +behind [the nozzle]
+#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]
+#endif
// X and Y axis travel speed (mm/m) between probes
#define XY_PROBE_SPEED 8000
@@ -724,35 +964,38 @@
// The number of probes to perform at each point.
// Set to 2 for a fast/slow probe, using the second probe result.
// Set to 3 or more for slow probes, averaging the results.
-//#define MULTIPLE_PROBING 2
+#define MULTIPLE_PROBING 2
/**
- * Z probes require clearance when deploying, stowing, and moving between
- * probe points to avoid hitting the bed and other hardware.
- * Servo-mounted probes require extra space for the arm to rotate.
- * Inductive probes need space to keep from triggering early.
- *
- * Use these settings to specify the distance (mm) to raise the probe (or
- * lower the bed). The values set here apply over and above any (negative)
- * probe Z Offset set with Z_PROBE_OFFSET_FROM_EXTRUDER, M851, or the LCD.
- * Only integer values >= 1 are valid here.
- *
- * Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle.
- * But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle.
- */
+ Z probes require clearance when deploying, stowing, and moving between
+ probe points to avoid hitting the bed and other hardware.
+ Servo-mounted probes require extra space for the arm to rotate.
+ Inductive probes need space to keep from triggering early.
+
+ Use these settings to specify the distance (mm) to raise the probe (or
+ lower the bed). The values set here apply over and above any (negative)
+ probe Z Offset set with Z_PROBE_OFFSET_FROM_EXTRUDER, M851, or the LCD.
+ Only integer values >= 1 are valid here.
+
+ Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle.
+ But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle.
+*/
#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points
-//#define Z_AFTER_PROBING 5 // Z position after probing is done
+#define Z_AFTER_PROBING 5 // Z position after probing is done
-#define Z_PROBE_LOW_POINT -2 // Farthest distance below the trigger-point to go before stopping
+#define Z_PROBE_LOW_POINT -3 // Farthest distance below the trigger-point to go before stopping
// For M851 give a range for adjusting the Z probe offset
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
// Enable the M48 repeatability test to test probe accuracy
-//#define Z_MIN_PROBE_REPEATABILITY_TEST
-
+#if (ENABLED(ABL_EZABL)|| ENABLED(ABL_BLTOUCH))
+#if(!ENABLED(MachineCR10Orig))
+#define Z_MIN_PROBE_REPEATABILITY_TEST
+#endif
+#endif
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
// :{ 0:'Low', 1:'High' }
#define X_ENABLE_ON 0
@@ -775,11 +1018,16 @@
// @section machine
+#if(ENABLED(MachineCR10Orig))
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
-#define INVERT_X_DIR false
+#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
-
+#else
+#define INVERT_X_DIR false
+#define INVERT_Y_DIR false
+#define INVERT_Z_DIR true
+#endif
// Enable this option for Toshiba stepper drivers
//#define CONFIG_STEPPERS_TOSHIBA
@@ -795,11 +1043,10 @@
// @section homing
//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed
-
//#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off.
-//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
- // Be sure you have this distance over your Z_MAX_POS in case.
+#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ...
+// Be sure you have this distance over your Z_MAX_POS in case.
// Direction of endstops when homing; 1=MAX, -1=MIN
// :[-1,1]
@@ -809,9 +1056,29 @@
// @section machine
+#if ENABLED(MachineMini)
+#define X_BED_SIZE 300
+#define Y_BED_SIZE 220
+#define Z_MAX_POS 300
+#endif
+
+#if (ENABLED(MachineCR10S) || ENABLED(MachineCR10Orig))
+#define X_BED_SIZE 315
+#define Y_BED_SIZE 310
+#define Z_MAX_POS 400
+#endif
+
+#if ENABLED( MachineS4)
+#define X_BED_SIZE 400
+#define Y_BED_SIZE 400
+#define Z_MAX_POS 400
+#endif
+#if ENABLED(MachineS5)
+#define X_BED_SIZE 500
+#define Y_BED_SIZE 500
+#define Z_MAX_POS 500
+#endif
// The size of the print bed
-#define X_BED_SIZE 200
-#define Y_BED_SIZE 200
// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
@@ -819,51 +1086,52 @@
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
-#define Z_MAX_POS 200
/**
- * Software Endstops
- *
- * - Prevent moves outside the set machine bounds.
- * - Individual axes can be disabled, if desired.
- * - X and Y only apply to Cartesian robots.
- * - Use 'M211' to set software endstops on/off or report current state
- */
+ Software Endstops
+
+ - Prevent moves outside the set machine bounds.
+ - Individual axes can be disabled, if desired.
+ - X and Y only apply to Cartesian robots.
+ - Use 'M211' to set software endstops on/off or report current state
+*/
// Min software endstops constrain movement within minimum coordinate bounds
#define MIN_SOFTWARE_ENDSTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
- #define MIN_SOFTWARE_ENDSTOP_X
- #define MIN_SOFTWARE_ENDSTOP_Y
- #define MIN_SOFTWARE_ENDSTOP_Z
+#define MIN_SOFTWARE_ENDSTOP_X
+#define MIN_SOFTWARE_ENDSTOP_Y
+#define MIN_SOFTWARE_ENDSTOP_Z
#endif
// Max software endstops constrain movement within maximum coordinate bounds
#define MAX_SOFTWARE_ENDSTOPS
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
- #define MAX_SOFTWARE_ENDSTOP_X
- #define MAX_SOFTWARE_ENDSTOP_Y
- #define MAX_SOFTWARE_ENDSTOP_Z
+#define MAX_SOFTWARE_ENDSTOP_X
+#define MAX_SOFTWARE_ENDSTOP_Y
+#define MAX_SOFTWARE_ENDSTOP_Z
#endif
#if ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS)
- //#define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD
+ #define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD
#endif
-
/**
- * Filament Runout Sensors
- * Mechanical or opto endstops are used to check for the presence of filament.
- *
- * RAMPS-based boards use SERVO3_PIN for the first runout sensor.
- * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc.
- * By default the firmware assumes HIGH=FILAMENT PRESENT.
- */
-//#define FILAMENT_RUNOUT_SENSOR
+ Filament Runout Sensors
+ Mechanical or opto endstops are used to check for the presence of filament.
+
+ RAMPS-based boards use SERVO3_PIN for the first runout sensor.
+ For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc.
+ By default the firmware assumes HIGH=FILAMENT PRESENT.
+*/
+#if(!ENABLED(MachineCR10Orig))
+#define FILAMENT_RUNOUT_SENSOR
+#endif
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
- #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
- #define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor.
- #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
- #define FILAMENT_RUNOUT_SCRIPT "M600"
+#define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
+#define FIL_RUNOUT_INVERTING true // set to true to invert the logic of the sensor.
+#define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
+#define FILAMENT_RUNOUT_SCRIPT "M600"
+#define FIL_RUNOUT_PIN 2 // Creality CR10-S stock sensor
#endif
//===========================================================================
@@ -872,178 +1140,261 @@
// @section calibrate
/**
- * Choose one of the options below to enable G29 Bed Leveling. The parameters
- * and behavior of G29 will change depending on your selection.
- *
- * If using a Probe for Z Homing, enable Z_SAFE_HOMING also!
- *
- * - AUTO_BED_LEVELING_3POINT
- * Probe 3 arbitrary points on the bed (that aren't collinear)
- * You specify the XY coordinates of all 3 points.
- * The result is a single tilted plane. Best for a flat bed.
- *
- * - AUTO_BED_LEVELING_LINEAR
- * Probe several points in a grid.
- * You specify the rectangle and the density of sample points.
- * The result is a single tilted plane. Best for a flat bed.
- *
- * - AUTO_BED_LEVELING_BILINEAR
- * Probe several points in a grid.
- * You specify the rectangle and the density of sample points.
- * The result is a mesh, best for large or uneven beds.
- *
- * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
- * A comprehensive bed leveling system combining the features and benefits
- * of other systems. UBL also includes integrated Mesh Generation, Mesh
- * Validation and Mesh Editing systems.
- *
- * - MESH_BED_LEVELING
- * Probe a grid manually
- * The result is a mesh, suitable for large or uneven beds. (See BILINEAR.)
- * For machines without a probe, Mesh Bed Leveling provides a method to perform
- * leveling in steps so you can manually adjust the Z height at each grid-point.
- * With an LCD controller the process is guided step-by-step.
- */
+ Choose one of the options below to enable G29 Bed Leveling. The parameters
+ and behavior of G29 will change depending on your selection.
+
+ If using a Probe for Z Homing, enable Z_SAFE_HOMING also!
+
+ - AUTO_BED_LEVELING_3POINT
+ Probe 3 arbitrary points on the bed (that aren't collinear)
+ You specify the XY coordinates of all 3 points.
+ The result is a single tilted plane. Best for a flat bed.
+
+ - AUTO_BED_LEVELING_LINEAR
+ Probe several points in a grid.
+ You specify the rectangle and the density of sample points.
+ The result is a single tilted plane. Best for a flat bed.
+
+ - AUTO_BED_LEVELING_BILINEAR
+ Probe several points in a grid.
+ You specify the rectangle and the density of sample points.
+ The result is a mesh, best for large or uneven beds.
+
+ - AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
+ A comprehensive bed leveling system combining the features and benefits
+ of other systems. UBL also includes integrated Mesh Generation, Mesh
+ Validation and Mesh Editing systems.
+
+ - MESH_BED_LEVELING
+ Probe a grid manually
+ The result is a mesh, suitable for large or uneven beds. (See BILINEAR.)
+ For machines without a probe, Mesh Bed Leveling provides a method to perform
+ leveling in steps so you can manually adjust the Z height at each grid-point.
+ With an LCD controller the process is guided step-by-step.
+*/
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
-//#define AUTO_BED_LEVELING_BILINEAR
-//#define AUTO_BED_LEVELING_UBL
-//#define MESH_BED_LEVELING
+
+#if (ENABLED(ABL_EZABL)|| ENABLED(ABL_BLTOUCH))
+#if ((ENABLED(ABL_UBL)))
+#define AUTO_BED_LEVELING_UBL
+#endif
+#if ((ENABLED(ABL_BI)))
+#define AUTO_BED_LEVELING_BILINEAR
+#endif
+#else
+#define MESH_BED_LEVELING
+#endif
+
/**
- * Normally G28 leaves leveling disabled on completion. Enable
- * this option to have G28 restore the prior leveling state.
- */
-//#define RESTORE_LEVELING_AFTER_G28
-
-/**
- * Enable detailed logging of G28, G29, M48, etc.
- * Turn on with the command 'M111 S32'.
- * NOTE: Requires a lot of PROGMEM!
- */
+ Enable detailed logging of G28, G29, M48, etc.
+ Turn on with the command 'M111 S32'.
+ NOTE: Requires a lot of PROGMEM!
+*/
//#define DEBUG_LEVELING_FEATURE
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
- // Gradually reduce leveling correction until a set height is reached,
- // at which point movement will be level to the machine's XY plane.
- // The height can be set with M420 Z
- #define ENABLE_LEVELING_FADE_HEIGHT
+// Gradually reduce leveling correction until a set height is reached,
+// at which point movement will be level to the machine's XY plane.
+// The height can be set with M420 Z
+#define ENABLE_LEVELING_FADE_HEIGHT
- // For Cartesian machines, instead of dividing moves on mesh boundaries,
- // split up moves into short segments like a Delta. This follows the
- // contours of the bed more closely than edge-to-edge straight moves.
- #define SEGMENT_LEVELED_MOVES
- #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
+// For Cartesian machines, instead of dividing moves on mesh boundaries,
+// split up moves into short segments like a Delta. This follows the
+// contours of the bed more closely than edge-to-edge straight moves.
+#define SEGMENT_LEVELED_MOVES
+#define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one)
- /**
- * Enable the G26 Mesh Validation Pattern tool.
- */
- //#define G26_MESH_VALIDATION
- #if ENABLED(G26_MESH_VALIDATION)
- #define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle.
- #define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for the G26 Mesh Validation Tool.
- #define MESH_TEST_HOTEND_TEMP 205.0 // (°C) Default nozzle temperature for the G26 Mesh Validation Tool.
- #define MESH_TEST_BED_TEMP 60.0 // (°C) Default bed temperature for the G26 Mesh Validation Tool.
- #endif
+/**
+ Enable the G26 Mesh Validation Pattern tool.
+*/
+#if(!ENABLED(MachineCR10Orig))
+#define G26_MESH_VALIDATION // Enable G26 mesh validation
+#endif
+#if ENABLED(G26_MESH_VALIDATION)
+#define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle.
+#define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for the G26 Mesh Validation Tool.
+#define MESH_TEST_HOTEND_TEMP 205.0 // (°C) Default nozzle temperature for the G26 Mesh Validation Tool.
+#define MESH_TEST_BED_TEMP 60.0 // (°C) Default bed temperature for the G26 Mesh Validation Tool.
+#endif
#endif
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
- // Set the number of grid points per dimension.
- #define GRID_MAX_POINTS_X 3
- #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
+#if ENABLED(MachineMini)
+#define GRID_MAX_POINTS_X 3
+#endif
- // Set the boundaries for probing (where the probe can reach).
- //#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE
- //#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE)
- //#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE
- //#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - MIN_PROBE_EDGE)
+#if (ENABLED(MachineCR10S) || ENABLED(MachineCR10Orig))
+#define GRID_MAX_POINTS_X 5
+#endif
- // Probe along the Y axis, advancing X after each column
- //#define PROBE_Y_FIRST
+#if ENABLED( MachineS4)
+#define GRID_MAX_POINTS_X 8
+#endif
+#if ENABLED(MachineS5)
+#define GRID_MAX_POINTS_X 10
+#endif
+// Set the number of grid points per dimension.
+#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
- #if ENABLED(AUTO_BED_LEVELING_BILINEAR)
+// The Z probe minimum outer margin (to validate G29 parameters).
+#define MIN_PROBE_EDGE 10
- // Beyond the probed grid, continue the implied tilt?
- // Default is to maintain the height of the nearest edge.
- //#define EXTRAPOLATE_BEYOND_GRID
+// Set the boundaries for probing (where the probe can reach).
+#if( (X_PROBE_OFFSET_FROM_EXTRUDER + 15) > 0 )
+#define LEFT_PROBE_BED_POSITION (X_PROBE_OFFSET_FROM_EXTRUDER + 5)
+#else
+#define LEFT_PROBE_BED_POSITION 10
+#endif
- //
- // Experimental Subdivision of the grid by Catmull-Rom method.
- // Synthesizes intermediate points to produce a more detailed mesh.
- //
- //#define ABL_BILINEAR_SUBDIVISION
- #if ENABLED(ABL_BILINEAR_SUBDIVISION)
- // Number of subdivisions between probe points
- #define BILINEAR_SUBDIVISIONS 3
- #endif
+#if( (X_BED_SIZE + X_PROBE_OFFSET_FROM_EXTRUDER - 10) < X_BED_SIZE)
+#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE + X_PROBE_OFFSET_FROM_EXTRUDER - 5)
+#else
+#define RIGHT_PROBE_BED_POSITION (X_BED_SIZE - 10)
+#endif
- #endif
+#if ( (Y_PROBE_OFFSET_FROM_EXTRUDER + 25) > 10 )
+#define FRONT_PROBE_BED_POSITION (Y_PROBE_OFFSET_FROM_EXTRUDER + 25)
+#else
+#define FRONT_PROBE_BED_POSITION 25
+#endif
+
+#if( (Y_BED_SIZE + Y_PROBE_OFFSET_FROM_EXTRUDER - 25) < Y_BED_SIZE)
+#define BACK_PROBE_BED_POSITION (Y_BED_SIZE + Y_PROBE_OFFSET_FROM_EXTRUDER - 25)
+#else
+#define BACK_PROBE_BED_POSITION (Y_BED_SIZE - 25)
+#endif
+
+// Probe along the Y axis, advancing X after each column
+//#define PROBE_Y_FIRST
+
+#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
+
+// Beyond the probed grid, continue the implied tilt?
+// Default is to maintain the height of the nearest edge.
+//#define EXTRAPOLATE_BEYOND_GRID
+
+//
+// Experimental Subdivision of the grid by Catmull-Rom method.
+// Synthesizes intermediate points to produce a more detailed mesh.
+//
+//#define ABL_BILINEAR_SUBDIVISION
+#if ENABLED(ABL_BILINEAR_SUBDIVISION)
+// Number of subdivisions between probe points
+#define BILINEAR_SUBDIVISIONS 3
+#endif
+
+#endif
+
+#elif ENABLED(AUTO_BED_LEVELING_3POINT)
+
+// 3 arbitrary points to probe.
+// A simple cross-product is used to estimate the plane of the bed.
+#define ABL_PROBE_PT_1_X 15
+#define ABL_PROBE_PT_1_Y 180
+#define ABL_PROBE_PT_2_X 15
+#define ABL_PROBE_PT_2_Y 20
+#define ABL_PROBE_PT_3_X 170
+#define ABL_PROBE_PT_3_Y 20
#elif ENABLED(AUTO_BED_LEVELING_UBL)
- //===========================================================================
- //========================= Unified Bed Leveling ============================
- //===========================================================================
+//===========================================================================
+//========================= Unified Bed Leveling ============================
+//===========================================================================
- //#define MESH_EDIT_GFX_OVERLAY // Display a graphics overlay while editing the mesh
+#if(!ENABLED(MachineCR10Orig))
+#define MESH_EDIT_GFX_OVERLAY // Display a graphics overlay while editing the mesh
+#endif
+#if ENABLED(MachineMini)
+#define GRID_MAX_POINTS_X 3 // Don't use more than 15 points per axis, implementation limited.
+#define PROBE_PT_1_X 50 // Probing points for 3-Point leveling of the mesh
+#define PROBE_PT_1_Y 180
+#define PROBE_PT_2_X 180
+#define PROBE_PT_2_Y 180
+#define PROBE_PT_3_X 180
+#define PROBE_PT_3_Y 50
+#define MESH_INSET 15
+#endif
- #define MESH_INSET 1 // Set Mesh bounds as an inset region of the bed
- #define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
- #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
+#if (ENABLED(MachineCR10S) || ENABLED(MachineCR10Orig))
+#define GRID_MAX_POINTS_X 5 // Don't use more than 15 points per axis, implementation limited.
+#define PROBE_PT_1_X 50 // Probing points for 3-Point leveling of the mesh
+#define PROBE_PT_1_Y 270
+#define PROBE_PT_2_X 250
+#define PROBE_PT_2_Y 270
+#define PROBE_PT_3_X 250
+#define PROBE_PT_3_Y 50
+#define MESH_INSET 25
+#endif
- #define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
- #define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
+#if ENABLED( MachineS4)
+#define GRID_MAX_POINTS_X 8 // Don't use more than 15 points per axis, implementation limited.
+#define PROBE_PT_1_X 60 // Probing points for 3-Point leveling of the mesh
+#define PROBE_PT_1_Y 340
+#define PROBE_PT_2_X 340
+#define PROBE_PT_2_Y 340
+#define PROBE_PT_3_X 340
+#define PROBE_PT_3_Y 60
+#define MESH_INSET 20
+#endif
+#if ENABLED(MachineS5)
+#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
+#define PROBE_PT_1_X 80 // Probing points for 3-Point leveling of the mesh
+#define PROBE_PT_1_Y 420
+#define PROBE_PT_2_X 420
+#define PROBE_PT_2_Y 420
+#define PROBE_PT_3_X 420
+#define PROBE_PT_3_Y 80
+#define MESH_INSET 25
+#endif
+// Mesh inset margin on print area
+#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
- //#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // When the nozzle is off the mesh, this value is used
- // as the Z-Height correction value.
+#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
+#define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500
+
+#define RESTORE_LEVELING_AFTER_G28
+#define UBL_Z_RAISE_WHEN_OFF_MESH 0.0 // When the nozzle is off the mesh, this value is used
+// as the Z-Height correction value.
#elif ENABLED(MESH_BED_LEVELING)
- //===========================================================================
- //=================================== Mesh ==================================
- //===========================================================================
+//===========================================================================
+//=================================== Mesh ==================================
+//===========================================================================
- #define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed
- #define GRID_MAX_POINTS_X 3 // Don't use more than 7 points per axis, implementation limited.
- #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
+#define MESH_INSET 20 // Mesh inset margin on print area
+#define GRID_MAX_POINTS_X 5 // Don't use more than 7 points per axis, implementation limited.
+#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
- //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
+//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
#endif // BED_LEVELING
/**
- * Points to probe for all 3-point Leveling procedures.
- * Override if the automatically selected points are inadequate.
- */
-#if ENABLED(AUTO_BED_LEVELING_3POINT) || ENABLED(AUTO_BED_LEVELING_UBL)
- //#define PROBE_PT_1_X 15
- //#define PROBE_PT_1_Y 180
- //#define PROBE_PT_2_X 15
- //#define PROBE_PT_2_Y 20
- //#define PROBE_PT_3_X 170
- //#define PROBE_PT_3_Y 20
+ Use the LCD controller for bed leveling
+ Requires MESH_BED_LEVELING or PROBE_MANUALLY
+*/
+#if (!ENABLED(ABL_EZABL)&& !ENABLED(ABL_BLTOUCH))
+#define LCD_BED_LEVELING
#endif
-/**
- * Use the LCD controller for bed leveling
- * Requires MESH_BED_LEVELING or PROBE_MANUALLY
- */
-//#define LCD_BED_LEVELING
-
#if ENABLED(LCD_BED_LEVELING)
- #define MBL_Z_STEP 0.025 // Step size while manually probing Z axis.
- #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
+#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis.
+#define LCD_PROBE_Z_RANGE 8 // Z Range centered on Z_MIN_POS for LCD Z adjustment
#endif
// Add a menu item to move between bed corners for manual bed adjustment
-//#define LEVEL_BED_CORNERS
+#define LEVEL_BED_CORNERS
/**
- * Commands to execute at the end of G29 probing.
- * Useful to retract or move the Z probe out of the way.
- */
+ Commands to execute at the end of G29 probing.
+ Useful to retract or move the Z probe out of the way.
+*/
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
@@ -1067,11 +1418,22 @@
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
// - Prevent Z homing when the Z probe is outside bed area.
//
-//#define Z_SAFE_HOMING
+#define Z_SAFE_HOMING
#if ENABLED(Z_SAFE_HOMING)
- #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2) // X point for Z homing when homing all axes (G28).
- #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2) // Y point for Z homing when homing all axes (G28).
+#if (ENABLED(MachineCR10S) || ENABLED(MachineCR10Orig))
+#define Z_SAFE_HOMING_X_POINT 50 // X point for Z homing when homing all axis (G28).
+#define Z_SAFE_HOMING_Y_POINT 50 // Y point for Z homing when homing all axis (G28).
+#endif
+
+#if ENABLED(MachineS4)
+#define Z_SAFE_HOMING_X_POINT 60 // X point for Z homing when homing all axis (G28).
+#define Z_SAFE_HOMING_Y_POINT 60 // Y point for Z homing when homing all axis (G28).
+#endif
+#if ENABLED(MachineS5)
+#define Z_SAFE_HOMING_X_POINT 80 // X point for Z homing when homing all axis (G28).
+#define Z_SAFE_HOMING_Y_POINT 80 // Y point for Z homing when homing all axis (G28).
+#endif
#endif
// Homing speeds (mm/m)
@@ -1081,58 +1443,58 @@
// @section calibrate
/**
- * Bed Skew Compensation
- *
- * This feature corrects for misalignment in the XYZ axes.
- *
- * Take the following steps to get the bed skew in the XY plane:
- * 1. Print a test square (e.g., https://www.thingiverse.com/thing:2563185)
- * 2. For XY_DIAG_AC measure the diagonal A to C
- * 3. For XY_DIAG_BD measure the diagonal B to D
- * 4. For XY_SIDE_AD measure the edge A to D
- *
- * Marlin automatically computes skew factors from these measurements.
- * Skew factors may also be computed and set manually:
- *
- * - Compute AB : SQRT(2*AC*AC+2*BD*BD-4*AD*AD)/2
- * - XY_SKEW_FACTOR : TAN(PI/2-ACOS((AC*AC-AB*AB-AD*AD)/(2*AB*AD)))
- *
- * If desired, follow the same procedure for XZ and YZ.
- * Use these diagrams for reference:
- *
- * Y Z Z
- * ^ B-------C ^ B-------C ^ B-------C
- * | / / | / / | / /
- * | / / | / / | / /
- * | A-------D | A-------D | A-------D
- * +-------------->X +-------------->X +-------------->Y
- * XY_SKEW_FACTOR XZ_SKEW_FACTOR YZ_SKEW_FACTOR
- */
+ Bed Skew Compensation
+
+ This feature corrects for misalignment in the XYZ axes.
+
+ Take the following steps to get the bed skew in the XY plane:
+ 1. Print a test square (e.g., https://www.thingiverse.com/thing:2563185)
+ 2. For XY_DIAG_AC measure the diagonal A to C
+ 3. For XY_DIAG_BD measure the diagonal B to D
+ 4. For XY_SIDE_AD measure the edge A to D
+
+ Marlin automatically computes skew factors from these measurements.
+ Skew factors may also be computed and set manually:
+
+ - Compute AB : SQRT(2*AC*AC+2*BD*BD-4*AD*AD)/2
+ - XY_SKEW_FACTOR : TAN(PI/2-ACOS((AC*AC-AB*AB-AD*AD)/(2*AB*AD)))
+
+ If desired, follow the same procedure for XZ and YZ.
+ Use these diagrams for reference:
+
+ Y Z Z
+ ^ B-------C ^ B-------C ^ B-------C
+ | / / | / / | / /
+ | / / | / / | / /
+ | A-------D | A-------D | A-------D
+ +-------------->X +-------------->X +-------------->Y
+ XY_SKEW_FACTOR XZ_SKEW_FACTOR YZ_SKEW_FACTOR
+*/
//#define SKEW_CORRECTION
#if ENABLED(SKEW_CORRECTION)
- // Input all length measurements here:
- #define XY_DIAG_AC 282.8427124746
- #define XY_DIAG_BD 282.8427124746
- #define XY_SIDE_AD 200
+// Input all length measurements here:
+#define XY_DIAG_AC 282.8427124746
+#define XY_DIAG_BD 282.8427124746
+#define XY_SIDE_AD 200
- // Or, set the default skew factors directly here
- // to override the above measurements:
- #define XY_SKEW_FACTOR 0.0
+// Or, set the default skew factors directly here
+// to override the above measurements:
+#define XY_SKEW_FACTOR 0.0
- //#define SKEW_CORRECTION_FOR_Z
- #if ENABLED(SKEW_CORRECTION_FOR_Z)
- #define XZ_DIAG_AC 282.8427124746
- #define XZ_DIAG_BD 282.8427124746
- #define YZ_DIAG_AC 282.8427124746
- #define YZ_DIAG_BD 282.8427124746
- #define YZ_SIDE_AD 200
- #define XZ_SKEW_FACTOR 0.0
- #define YZ_SKEW_FACTOR 0.0
- #endif
+//#define SKEW_CORRECTION_FOR_Z
+#if ENABLED(SKEW_CORRECTION_FOR_Z)
+#define XZ_DIAG_AC 282.8427124746
+#define XZ_DIAG_BD 282.8427124746
+#define YZ_DIAG_AC 282.8427124746
+#define YZ_DIAG_BD 282.8427124746
+#define YZ_SIDE_AD 200
+#define XZ_SKEW_FACTOR 0.0
+#define YZ_SKEW_FACTOR 0.0
+#endif
- // Enable this option for M852 to set skew at runtime
- //#define SKEW_CORRECTION_GCODE
+// Enable this option for M852 to set skew at runtime
+//#define SKEW_CORRECTION_GCODE
#endif
//=============================================================================
@@ -1149,10 +1511,11 @@
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
//
-//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
+#define EEPROM_SETTINGS // Enable for M500 and M501 commands
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
+#if(!ENABLED(MachineCR10Orig))
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
-
+#endif
//
// Host Keepalive
//
@@ -1190,116 +1553,116 @@
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
/**
- * Nozzle Park
- *
- * Park the nozzle at the given XYZ position on idle or G27.
- *
- * The "P" parameter controls the action applied to the Z axis:
- *
- * P0 (Default) If Z is below park Z raise the nozzle.
- * P1 Raise the nozzle always to Z-park height.
- * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
- */
-//#define NOZZLE_PARK_FEATURE
+ Nozzle Park
+
+ Park the nozzle at the given XYZ position on idle or G27.
+
+ The "P" parameter controls the action applied to the Z axis:
+
+ P0 (Default) If Z is below park Z raise the nozzle.
+ P1 Raise the nozzle always to Z-park height.
+ P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
+*/
+#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE)
- // Specify a park position as { X, Y, Z }
- #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
- #define NOZZLE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
- #define NOZZLE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
+// Specify a park position as { X, Y, Z }
+#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MIN_POS + 10), 10 }
+#define NOZZLE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
+#define NOZZLE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#endif
/**
- * Clean Nozzle Feature -- EXPERIMENTAL
- *
- * Adds the G12 command to perform a nozzle cleaning process.
- *
- * Parameters:
- * P Pattern
- * S Strokes / Repetitions
- * T Triangles (P1 only)
- *
- * Patterns:
- * P0 Straight line (default). This process requires a sponge type material
- * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
- * between the start / end points.
- *
- * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
- * number of zig-zag triangles to do. "S" defines the number of strokes.
- * Zig-zags are done in whichever is the narrower dimension.
- * For example, "G12 P1 S1 T3" will execute:
- *
- * --
- * | (X0, Y1) | /\ /\ /\ | (X1, Y1)
- * | | / \ / \ / \ |
- * A | | / \ / \ / \ |
- * | | / \ / \ / \ |
- * | (X0, Y0) | / \/ \/ \ | (X1, Y0)
- * -- +--------------------------------+
- * |________|_________|_________|
- * T1 T2 T3
- *
- * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
- * "R" specifies the radius. "S" specifies the stroke count.
- * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
- *
- * Caveats: The ending Z should be the same as starting Z.
- * Attention: EXPERIMENTAL. G-code arguments may change.
- *
- */
+ Clean Nozzle Feature -- EXPERIMENTAL
+
+ Adds the G12 command to perform a nozzle cleaning process.
+
+ Parameters:
+ P Pattern
+ S Strokes / Repetitions
+ T Triangles (P1 only)
+
+ Patterns:
+ P0 Straight line (default). This process requires a sponge type material
+ at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
+ between the start / end points.
+
+ P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
+ number of zig-zag triangles to do. "S" defines the number of strokes.
+ Zig-zags are done in whichever is the narrower dimension.
+ For example, "G12 P1 S1 T3" will execute:
+
+ --
+ | (X0, Y1) | /\ /\ /\ | (X1, Y1)
+ | | / \ / \ / \ |
+ A | | / \ / \ / \ |
+ | | / \ / \ / \ |
+ | (X0, Y0) | / \/ \/ \ | (X1, Y0)
+ -- +--------------------------------+
+ |________|_________|_________|
+ T1 T2 T3
+
+ P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
+ "R" specifies the radius. "S" specifies the stroke count.
+ Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
+
+ Caveats: The ending Z should be the same as starting Z.
+ Attention: EXPERIMENTAL. G-code arguments may change.
+
+*/
//#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE)
- // Default number of pattern repetitions
- #define NOZZLE_CLEAN_STROKES 12
+// Default number of pattern repetitions
+#define NOZZLE_CLEAN_STROKES 12
- // Default number of triangles
- #define NOZZLE_CLEAN_TRIANGLES 3
+// Default number of triangles
+#define NOZZLE_CLEAN_TRIANGLES 3
- // Specify positions as { X, Y, Z }
- #define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
- #define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
+// Specify positions as { X, Y, Z }
+#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
+#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
- // Circular pattern radius
- #define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
- // Circular pattern circle fragments number
- #define NOZZLE_CLEAN_CIRCLE_FN 10
- // Middle point of circle
- #define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
+// Circular pattern radius
+#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
+// Circular pattern circle fragments number
+#define NOZZLE_CLEAN_CIRCLE_FN 10
+// Middle point of circle
+#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
- // Moves the nozzle to the initial position
- #define NOZZLE_CLEAN_GOBACK
+// Moves the nozzle to the initial position
+#define NOZZLE_CLEAN_GOBACK
#endif
/**
- * Print Job Timer
- *
- * Automatically start and stop the print job timer on M104/M109/M190.
- *
- * M104 (hotend, no wait) - high temp = none, low temp = stop timer
- * M109 (hotend, wait) - high temp = start timer, low temp = stop timer
- * M190 (bed, wait) - high temp = start timer, low temp = none
- *
- * The timer can also be controlled with the following commands:
- *
- * M75 - Start the print job timer
- * M76 - Pause the print job timer
- * M77 - Stop the print job timer
- */
+ Print Job Timer
+
+ Automatically start and stop the print job timer on M104/M109/M190.
+
+ M104 (hotend, no wait) - high temp = none, low temp = stop timer
+ M109 (hotend, wait) - high temp = start timer, low temp = stop timer
+ M190 (bed, wait) - high temp = start timer, low temp = none
+
+ The timer can also be controlled with the following commands:
+
+ M75 - Start the print job timer
+ M76 - Pause the print job timer
+ M77 - Stop the print job timer
+*/
#define PRINTJOB_TIMER_AUTOSTART
/**
- * Print Counter
- *
- * Track statistical data such as:
- *
- * - Total print jobs
- * - Total successful print jobs
- * - Total failed print jobs
- * - Total time printing
- *
- * View the current statistics with M78.
- */
+ Print Counter
+
+ Track statistical data such as:
+
+ - Total print jobs
+ - Total successful print jobs
+ - Total failed print jobs
+ - Total time printing
+
+ View the current statistics with M78.
+*/
//#define PRINTCOUNTER
//=============================================================================
@@ -1309,79 +1672,80 @@
// @section lcd
/**
- * LCD LANGUAGE
- *
- * Select the language to display on the LCD. These languages are available:
- *
- * en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, es_utf8, eu, fi, fr, fr_utf8,
- * gl, hr, it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, sk_utf8,
- * tr, uk, zh_CN, zh_TW, test
- *
- * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'es_utf8':'Spanish (UTF8)', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'fr_utf8':'French (UTF8)', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'sk_utf8':'Slovak (UTF8)', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
- */
+ LCD LANGUAGE
+
+ Select the language to display on the LCD. These languages are available:
+
+ en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, es_utf8, eu, fi, fr, fr_utf8,
+ gl, hr, it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, sk_utf8,
+ tr, uk, zh_CN, zh_TW, test
+
+ :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'es_utf8':'Spanish (UTF8)', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'fr_utf8':'French (UTF8)', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'sk_utf8':'Slovak (UTF8)', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
+*/
#define LCD_LANGUAGE en
/**
- * LCD Character Set
- *
- * Note: This option is NOT applicable to Graphical Displays.
- *
- * All character-based LCDs provide ASCII plus one of these
- * language extensions:
- *
- * - JAPANESE ... the most common
- * - WESTERN ... with more accented characters
- * - CYRILLIC ... for the Russian language
- *
- * To determine the language extension installed on your controller:
- *
- * - Compile and upload with LCD_LANGUAGE set to 'test'
- * - Click the controller to view the LCD menu
- * - The LCD will display Japanese, Western, or Cyrillic text
- *
- * See http://marlinfw.org/docs/development/lcd_language.html
- *
- * :['JAPANESE', 'WESTERN', 'CYRILLIC']
- */
+ LCD Character Set
+
+ Note: This option is NOT applicable to Graphical Displays.
+
+ All character-based LCDs provide ASCII plus one of these
+ language extensions:
+
+ - JAPANESE ... the most common
+ - WESTERN ... with more accented characters
+ - CYRILLIC ... for the Russian language
+
+ To determine the language extension installed on your controller:
+
+ - Compile and upload with LCD_LANGUAGE set to 'test'
+ - Click the controller to view the LCD menu
+ - The LCD will display Japanese, Western, or Cyrillic text
+
+ See http://marlinfw.org/docs/development/lcd_language.html
+
+ :['JAPANESE', 'WESTERN', 'CYRILLIC']
+*/
#define DISPLAY_CHARSET_HD44780 JAPANESE
/**
- * LCD TYPE
- *
- * Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
- * Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
- * (These options will be enabled automatically for most displays.)
- *
- * IMPORTANT: The U8glib library is required for Full Graphic Display!
- * https://github.com/olikraus/U8glib_Arduino
- */
+ LCD TYPE
+
+ Enable ULTRA_LCD for a 16x2, 16x4, 20x2, or 20x4 character-based LCD.
+ Enable DOGLCD for a 128x64 (ST7565R) Full Graphical Display.
+ (These options will be enabled automatically for most displays.)
+
+ IMPORTANT: The U8glib library is required for Full Graphic Display!
+ https://github.com/olikraus/U8glib_Arduino
+*/
//#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display
/**
- * SD CARD
- *
- * SD Card support is disabled by default. If your controller has an SD slot,
- * you must uncomment the following option or it won't work.
- *
- */
-//#define SDSUPPORT
+ SD CARD
+
+ SD Card support is disabled by default. If your controller has an SD slot,
+ you must uncomment the following option or it won't work.
+
+*/
+
+#define SDSUPPORT
/**
- * SD CARD: SPI SPEED
- *
- * Enable one of the following items for a slower SPI transfer speed.
- * This may be required to resolve "volume init" errors.
- */
+ SD CARD: SPI SPEED
+
+ Enable one of the following items for a slower SPI transfer speed.
+ This may be required to resolve "volume init" errors.
+*/
//#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED
/**
- * SD CARD: ENABLE CRC
- *
- * Use CRC checks and retries on the SD communication.
- */
+ SD CARD: ENABLE CRC
+
+ Use CRC checks and retries on the SD communication.
+*/
//#define SD_CHECK_AND_RETRY
//
@@ -1390,23 +1754,23 @@
// This option overrides the default number of encoder pulses needed to
// produce one step. Should be increased for high-resolution encoders.
//
-//#define ENCODER_PULSES_PER_STEP 4
+#define ENCODER_PULSES_PER_STEP 4
//
// Use this option to override the number of step signals required to
// move between next/prev menu items.
//
-//#define ENCODER_STEPS_PER_MENU_ITEM 1
+#define ENCODER_STEPS_PER_MENU_ITEM 1
/**
- * Encoder Direction Options
- *
- * Test your encoder's behavior first with both options disabled.
- *
- * Reversed Value Edit and Menu Nav? Enable REVERSE_ENCODER_DIRECTION.
- * Reversed Menu Navigation only? Enable REVERSE_MENU_DIRECTION.
- * Reversed Value Editing only? Enable BOTH options.
- */
+ Encoder Direction Options
+
+ Test your encoder's behavior first with both options disabled.
+
+ Reversed Value Edit and Menu Nav? Enable REVERSE_ENCODER_DIRECTION.
+ Reversed Menu Navigation only? Enable REVERSE_MENU_DIRECTION.
+ Reversed Value Editing only? Enable BOTH options.
+*/
//
// This option reverses the encoder direction everywhere.
@@ -1428,15 +1792,18 @@
//
// Add individual axis homing items (Home X, Home Y, and Home Z) to the LCD menu.
//
-//#define INDIVIDUAL_AXIS_HOMING_MENU
-
+#if(!ENABLED(MachineCR10Orig))
+#define INDIVIDUAL_AXIS_HOMING_MENU
+#endif
//
// SPEAKER/BUZZER
//
// If you have a speaker that can produce tones, enable it here.
// By default Marlin assumes you have a buzzer with a fixed frequency.
//
-//#define SPEAKER
+#if(!ENABLED(MachineCR10Orig))
+#define SPEAKER
+#endif
//
// The duration and frequency for the UI feedback sound.
@@ -1517,8 +1884,9 @@
// RepRapDiscount FULL GRAPHIC Smart Controller
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
-//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
-
+#if(!ENABLED(OrigLCD))
+ #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
+#endif
//
// MakerLab Mini Panel with graphic
// controller and SD support - http://reprap.org/wiki/Mini_panel
@@ -1557,13 +1925,13 @@
// ANET and Tronxy Controller supported displays.
//
//#define ZONESTAR_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
- // This LCD is known to be susceptible to electrical interference
- // which scrambles the display. Pressing any button clears it up.
- // This is a LCD2004 display with 5 analog buttons.
+// This LCD is known to be susceptible to electrical interference
+// which scrambles the display. Pressing any button clears it up.
+// This is a LCD2004 display with 5 analog buttons.
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
- // A clone of the RepRapDiscount full graphics display but with
- // different pins/wiring (see pins_ANET_10.h).
+// A clone of the RepRapDiscount full graphics display but with
+// different pins/wiring (see pins_ANET_10.h).
//
// LCD for Melzi Card with Graphical LCD
@@ -1631,8 +1999,8 @@
//
//#define SAV_3DGLCD
#if ENABLED(SAV_3DGLCD)
- //#define U8GLIB_SSD1306
- #define U8GLIB_SH1106
+//#define U8GLIB_SSD1306
+#define U8GLIB_SH1106
#endif
//
@@ -1673,8 +2041,9 @@
// This is RAMPS-compatible using a single 10-pin connector.
// (For CR-10 owners who want to replace the Melzi Creality board but retain the display)
//
-//#define CR10_STOCKDISPLAY
-
+#if(ENABLED(OrigLCD))
+ #define CR10_STOCKDISPLAY
+#endif
//
// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
// http://reprap.org/wiki/MKS_12864OLED
@@ -1738,75 +2107,75 @@
//#define PCA9632
/**
- * RGB LED / LED Strip Control
- *
- * Enable support for an RGB LED connected to 5V digital pins, or
- * an RGB Strip connected to MOSFETs controlled by digital pins.
- *
- * Adds the M150 command to set the LED (or LED strip) color.
- * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
- * luminance values can be set from 0 to 255.
- * For Neopixel LED an overall brightness parameter is also available.
- *
+ RGB LED / LED Strip Control
+
+ Enable support for an RGB LED connected to 5V digital pins, or
+ an RGB Strip connected to MOSFETs controlled by digital pins.
+
+ Adds the M150 command to set the LED (or LED strip) color.
+ If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
+ luminance values can be set from 0 to 255.
+ For Neopixel LED an overall brightness parameter is also available.
+
* *** CAUTION ***
- * LED Strips require a MOFSET Chip between PWM lines and LEDs,
- * as the Arduino cannot handle the current the LEDs will require.
- * Failure to follow this precaution can destroy your Arduino!
- * NOTE: A separate 5V power supply is required! The Neopixel LED needs
- * more current than the Arduino 5V linear regulator can produce.
+ LED Strips require a MOFSET Chip between PWM lines and LEDs,
+ as the Arduino cannot handle the current the LEDs will require.
+ Failure to follow this precaution can destroy your Arduino!
+ NOTE: A separate 5V power supply is required! The Neopixel LED needs
+ more current than the Arduino 5V linear regulator can produce.
* *** CAUTION ***
- *
- * LED Type. Enable only one of the following two options.
- *
- */
+
+ LED Type. Enable only one of the following two options.
+
+*/
//#define RGB_LED
//#define RGBW_LED
#if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
- #define RGB_LED_R_PIN 34
- #define RGB_LED_G_PIN 43
- #define RGB_LED_B_PIN 35
- #define RGB_LED_W_PIN -1
+#define RGB_LED_R_PIN 34
+#define RGB_LED_G_PIN 43
+#define RGB_LED_B_PIN 35
+#define RGB_LED_W_PIN -1
#endif
// Support for Adafruit Neopixel LED driver
//#define NEOPIXEL_LED
#if ENABLED(NEOPIXEL_LED)
- #define NEOPIXEL_TYPE NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (defined in Adafruit_NeoPixel.h)
- #define NEOPIXEL_PIN 4 // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
- #define NEOPIXEL_PIXELS 30 // Number of LEDs in the strip
- #define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once.
- #define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255)
- //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
+#define NEOPIXEL_TYPE NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (defined in Adafruit_NeoPixel.h)
+#define NEOPIXEL_PIN 4 // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba)
+#define NEOPIXEL_PIXELS 30 // Number of LEDs in the strip
+#define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once.
+#define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255)
+//#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
#endif
/**
- * Printer Event LEDs
- *
- * During printing, the LEDs will reflect the printer status:
- *
- * - Gradually change from blue to violet as the heated bed gets to target temp
- * - Gradually change from violet to red as the hotend gets to temperature
- * - Change to white to illuminate work surface
- * - Change to green once print has finished
- * - Turn off after the print has finished and the user has pushed a button
- */
+ Printer Event LEDs
+
+ During printing, the LEDs will reflect the printer status:
+
+ - Gradually change from blue to violet as the heated bed gets to target temp
+ - Gradually change from violet to red as the hotend gets to temperature
+ - Change to white to illuminate work surface
+ - Change to green once print has finished
+ - Turn off after the print has finished and the user has pushed a button
+*/
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(NEOPIXEL_LED)
- #define PRINTER_EVENT_LEDS
+#define PRINTER_EVENT_LEDS
#endif
/**
- * R/C SERVO support
- * Sponsored by TrinityLabs, Reworked by codexmas
- */
+ R/C SERVO support
+ Sponsored by TrinityLabs, Reworked by codexmas
+*/
/**
- * Number of servos
- *
- * For some servo-related options NUM_SERVOS will be set automatically.
- * Set this manually if there are extra servos needing manual control.
- * Leave undefined or set to 0 to entirely disable the servo subsystem.
- */
+ Number of servos
+
+ For some servo-related options NUM_SERVOS will be set automatically.
+ Set this manually if there are extra servos needing manual control.
+ Leave undefined or set to 0 to entirely disable the servo subsystem.
+*/
//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
// Delay (in milliseconds) before the next move will start, to give the servo time to reach its target angle.
From 08586708285fec07a13f1f35387c0f9c888acd18 Mon Sep 17 00:00:00 2001
From: InsanityAutomation
<38436470+InsanityAutomation@users.noreply.github.com>
Date: Mon, 16 Apr 2018 13:16:35 -0400
Subject: [PATCH 3/8] Update Configuration_adv.h
---
Marlin/Configuration_adv.h | 246 ++++++++++++++++++++++++-------------
1 file changed, 159 insertions(+), 87 deletions(-)
diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h
index f005fe263a..b2810b2162 100644
--- a/Marlin/Configuration_adv.h
+++ b/Marlin/Configuration_adv.h
@@ -75,7 +75,7 @@
* THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
- #define THERMAL_PROTECTION_PERIOD 40 // Seconds
+ #define THERMAL_PROTECTION_PERIOD 60 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
/**
@@ -90,7 +90,7 @@
* and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set
* below 2.
*/
- #define WATCH_TEMP_PERIOD 20 // Seconds
+ #define WATCH_TEMP_PERIOD 50 // Seconds
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
#endif
@@ -98,13 +98,13 @@
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
- #define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
+ #define THERMAL_PROTECTION_BED_PERIOD 30 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* As described above, except for the bed (M140/M190/M303).
*/
- #define WATCH_BED_TEMP_PERIOD 60 // Seconds
+ #define WATCH_BED_TEMP_PERIOD 120 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
@@ -128,14 +128,17 @@
* Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
* On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
*/
+ #if(!ENABLED(MachineCR10Orig))
#define AUTOTEMP
+#endif
#if ENABLED(AUTOTEMP)
#define AUTOTEMP_OLDWEIGHT 0.98
#endif
// Show extra position information in M114
-//#define M114_DETAIL
-
+ #if(!ENABLED(MachineCR10Orig))
+#define M114_DETAIL
+#endif
// Show Temperature ADC value
// Enable for M105 to include ADC values read from temperature sensors.
//#define SHOW_TEMP_ADC_VALUES
@@ -196,7 +199,7 @@
*/
//#define USE_CONTROLLER_FAN
#if ENABLED(USE_CONTROLLER_FAN)
- //#define CONTROLLER_FAN_PIN -1 // Set a custom pin for the controller fan
+ //#define CONTROLLER_FAN_PIN FAN1_PIN // Set a custom pin for the controller fan
#define CONTROLLERFAN_SECS 60 // Duration in seconds for the fan to run after all motors are disabled
#define CONTROLLERFAN_SPEED 255 // 255 == full speed
#endif
@@ -204,7 +207,8 @@
// When first starting the main fan, run it at full speed for the
// given number of milliseconds. This gets the fan spinning reliably
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
-//#define FAN_KICKSTART_TIME 100
+
+#define FAN_KICKSTART_TIME 100
// This defines the minimal speed for the main fan, run in PWM mode
// to enable uncomment and set minimal PWM speed for reliable running (1-255)
@@ -369,7 +373,7 @@
#define Y_HOME_BUMP_MM 5
#define Z_HOME_BUMP_MM 2
#define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate)
-//#define QUICK_HOME // If homing includes X and Y, do a diagonal move initially
+#define QUICK_HOME // If homing includes X and Y, do a diagonal move initially
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
@@ -491,19 +495,23 @@
// @section lcd
// Include a page of printer information in the LCD Main Menu
-//#define LCD_INFO_MENU
-
+ #if(!ENABLED(MachineCR10Orig))
+#define LCD_INFO_MENU
+#endif
// Leave out seldom-used LCD menu items to recover some Program Memory
-//#define SLIM_LCD_MENUS
+ #if(ENABLED(MachineCR10Orig))
+#define SLIM_LCD_MENUS
+#endif
// Scroll a longer status message into view
-//#define STATUS_MESSAGE_SCROLLING
+ #if(!ENABLED(MachineCR10Orig))
+#define STATUS_MESSAGE_SCROLLING
// On the Info Screen, display XY with one decimal place when possible
-//#define LCD_DECIMAL_SMALL_XY
-
+#define LCD_DECIMAL_SMALL_XY
+#endif
// The timeout (in ms) to return to the status screen from sub-menus
-//#define LCD_TIMEOUT_TO_STATUS 15000
+#define LCD_TIMEOUT_TO_STATUS 15000
// Add an 'M73' G-code to set the current percentage
//#define LCD_SET_PROGRESS_MANUALLY
@@ -550,8 +558,9 @@
// Reverse SD sort to show "more recent" files first, according to the card's FAT.
// Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended.
+ #if(!ENABLED(MachineCR10Orig))
#define SDCARD_RATHERRECENTFIRST
-
+#endif
// Add an option in the menu to run all auto#.g files
//#define MENU_ADDAUTOSTART
@@ -578,15 +587,16 @@
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
*/
- //#define SDCARD_SORT_ALPHA
-
+ #if(!ENABLED(MachineCR10Orig))
+ #define SDCARD_SORT_ALPHA
+#endif
// SD Card Sorting options
#if ENABLED(SDCARD_SORT_ALPHA)
#define SDSORT_LIMIT 40 // Maximum number of sorted items (10-256). Costs 27 bytes each.
#define FOLDER_SORTING -1 // -1=above 0=none 1=below
#define SDSORT_GCODE false // Allow turning sorting on/off with LCD and M34 g-code.
- #define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
- #define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
+ #define SDSORT_USES_RAM true // Pre-allocate a static array for faster pre-sorting.
+ #define SDSORT_USES_STACK true // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
#define SDSORT_CACHE_VFATS 2 // Maximum number of 13-byte VFAT entries to use for sorting.
@@ -597,7 +607,7 @@
//#define LONG_FILENAME_HOST_SUPPORT
// Enable this option to scroll long filenames in the SD card menu
- //#define SCROLL_LONG_FILENAMES
+ #define SCROLL_LONG_FILENAMES
/**
* This option allows you to abort SD printing when any endstop is triggered.
@@ -634,7 +644,7 @@
*/
#if ENABLED(DOGLCD)
// Show SD percentage next to the progress bar
- //#define DOGM_SD_PERCENT
+ #define DOGM_SD_PERCENT
// Enable to save many cycles by drawing a hollow frame on the Info Screen
#define XYZ_HOLLOW_FRAME
@@ -644,8 +654,9 @@
// A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
// Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
- //#define USE_BIG_EDIT_FONT
-
+ #if(!ENABLED(MachineCR10Orig))
+ #define USE_BIG_EDIT_FONT
+#endif
// A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM.
// Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
//#define USE_SMALL_INFOFONT
@@ -700,16 +711,20 @@
*
* Warning: Does not respect endstops!
*/
-//#define BABYSTEPPING
+#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
//#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA!
#define BABYSTEP_INVERT_Z false // Change if Z babysteps should go the other way
#define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
- //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
- //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
+ #if(ENABLED(ABL_EZABL) || ENABLED(ABL_BLTOUCH))
+ #define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
+ //#if(!ENABLED(MachineCR10Orig))
+ #define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
+ // #endif
+ #endif
+ #define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping.
#define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
// Note: Extra time may be added to mitigate controller latency.
- //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor
#endif
// @section extruder
@@ -730,19 +745,53 @@
* See http://marlinfw.org/docs/features/lin_advance.html for full instructions.
* Mention @Sebastianv650 on GitHub to alert the author of any issues.
*/
-//#define LIN_ADVANCE
+ #if(!ENABLED(MachineCR10Orig))
+#define LIN_ADVANCE
+#endif
#if ENABLED(LIN_ADVANCE)
- #define LIN_ADVANCE_K 0.22 // Unit: mm compression per 1mm/s extruder speed
+ #define LIN_ADVANCE_K 0.5 // Unit: mm compression per 1mm/s extruder speed
//#define LA_DEBUG // If enabled, this will generate debug information output over USB.
#endif
// @section leveling
+#if ENABLED(DELTA) && !defined(DELTA_PROBEABLE_RADIUS)
+ #define DELTA_PROBEABLE_RADIUS DELTA_PRINTABLE_RADIUS
+#elif IS_SCARA && !defined(SCARA_PRINTABLE_RADIUS)
+ #define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
+#endif
+
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL)
// Override the mesh area if the automatic (max) area is too large
- //#define MESH_MIN_X MESH_INSET
+
+ #if( (X_PROBE_OFFSET_FROM_EXTRUDER + 15) > 0 )
+ #define MESH_MIN_X (X_PROBE_OFFSET_FROM_EXTRUDER + 5)
+ #else
+ #define MESH_MIN_X 10
+ #endif
+
+ #if( (X_BED_SIZE + X_PROBE_OFFSET_FROM_EXTRUDER - 10) < X_BED_SIZE)
+ #define MESH_MAX_X (X_BED_SIZE + X_PROBE_OFFSET_FROM_EXTRUDER - 5)
+ #else
+ #define MESH_MAX_X (X_BED_SIZE - 10)
+ #endif
+
+ #if ( (Y_PROBE_OFFSET_FROM_EXTRUDER + 25) > 10 )
+ #define MESH_MIN_Y (Y_PROBE_OFFSET_FROM_EXTRUDER + 25)
+ #else
+ #define MESH_MIN_Y 25
+ #endif
+
+ #if( (Y_BED_SIZE + Y_PROBE_OFFSET_FROM_EXTRUDER - 25) < Y_BED_SIZE)
+ #define MESH_MAX_Y (Y_BED_SIZE + Y_PROBE_OFFSET_FROM_EXTRUDER - 25)
+ #else
+ #define MESH_MAX_Y (Y_BED_SIZE - 25)
+ #endif
+
+
+ //#define MESH_MIN_X 0 - X_PROBE_OFFSET_FROM_EXTRUDER
//#define MESH_MIN_Y MESH_INSET
- //#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
+ //#define MESH_MAX_X X_BED_SIZE - 5
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
#endif
@@ -751,7 +800,9 @@
//
// G2/G3 Arc Support
//
+ #if(!ENABLED(MachineCR10Orig))
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
+#endif
#if ENABLED(ARC_SUPPORT)
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
@@ -790,11 +841,9 @@
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2 (e.g. 8, 16, 32) because shifts and ors are used to do the ring-buffering.
-#if ENABLED(SDSUPPORT)
- #define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
-#else
+
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
-#endif
+
// @section serial
@@ -837,7 +886,7 @@
// enter the serial receive buffer, so they cannot be blocked.
// Currently handles M108, M112, M410
// Does not work on boards using AT90USB (USBCON) processors!
-//#define EMERGENCY_PARSER
+#define EMERGENCY_PARSER
// Bad Serial-connections can miss a received command by sending an 'ok'
// Therefore some clients abort after 30 seconds in a timeout.
@@ -846,8 +895,9 @@
//#define NO_TIMEOUTS 1000 // Milliseconds
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
-//#define ADVANCED_OK
-
+ #if(!ENABLED(MachineCR10Orig))
+#define ADVANCED_OK
+#endif
// @section extras
/**
@@ -898,43 +948,44 @@
* Requires NOZZLE_PARK_FEATURE.
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
*/
-//#define ADVANCED_PAUSE_FEATURE
+
+#define ADVANCED_PAUSE_FEATURE
+
#if ENABLED(ADVANCED_PAUSE_FEATURE)
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate.
- #define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract.
+ #define PAUSE_PARK_RETRACT_LENGTH 4 // (mm) Initial retract.
// This short retract is done immediately, before parking the nozzle.
- #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast.
+ #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 41 // (mm/s) Unload filament feedrate. This can be pretty fast.
#define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate.
- #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (mm) The length of filament for a complete unload.
+ #define FILAMENT_CHANGE_UNLOAD_LENGTH 430 // (mm) The length of filament for a complete unload.
// For Bowden, the full length of the tube and nozzle.
// For direct drive, the full length of the nozzle.
// Set to 0 for manual unloading.
#define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 6 // (mm/s) Slow move when starting load.
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (mm) Slow length, to allow time to insert material.
// 0 to disable start loading and skip to fast load only
- #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast.
+ #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 30 // (mm/s) Load filament feedrate. This can be pretty fast.
#define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate.
- #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle.
+ #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 430 // (mm) Load length of filament, from extruder gear to nozzle.
// For Bowden, the full length of the tube and nozzle.
// For direct drive, the full length of the nozzle.
//#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted.
#define ADVANCED_PAUSE_PURGE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate.
- #define ADVANCED_PAUSE_PURGE_LENGTH 50 // (mm) Length to extrude after loading.
+ #define ADVANCED_PAUSE_PURGE_LENGTH 20 // (mm) Length to extrude after loading.
// Set to 0 for manual extrusion.
// Filament can be extruded repeatedly from the Filament Change menu
// until extrusion is consistent, and to purge old filament.
// Filament Unload does a Retract, Delay, and Purge first:
- #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length.
+ #define FILAMENT_UNLOAD_RETRACT_LENGTH 4 // (mm) Unload initial retract length.
#define FILAMENT_UNLOAD_DELAY 5000 // (ms) Delay for the filament to cool after retract.
- #define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged.
-
+ #define FILAMENT_UNLOAD_PURGE_LENGTH 0 // (mm) An unretract is done, then this length is purged.
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety.
- #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed.
+ #define FILAMENT_CHANGE_ALERT_BEEPS 3 // Number of alert beeps to play when a response is needed.
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change.
- //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.
- //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
+ #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.
+ #define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
//#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
//#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302)
@@ -1021,19 +1072,6 @@
* You may also use software SPI if you wish to use general purpose IO pins.
*/
//#define HAVE_TMC2130
-#if ENABLED(HAVE_TMC2130) // Choose your axes here. This is mandatory!
- //#define X_IS_TMC2130
- //#define X2_IS_TMC2130
- //#define Y_IS_TMC2130
- //#define Y2_IS_TMC2130
- //#define Z_IS_TMC2130
- //#define Z2_IS_TMC2130
- //#define E0_IS_TMC2130
- //#define E1_IS_TMC2130
- //#define E2_IS_TMC2130
- //#define E3_IS_TMC2130
- //#define E4_IS_TMC2130
-#endif
/**
* Enable this for SilentStepStick Trinamic TMC2208 UART-configurable stepper drivers.
@@ -1046,7 +1084,22 @@
* (https://github.com/teemuatlut/TMC2208Stepper).
*/
//#define HAVE_TMC2208
-#if ENABLED(HAVE_TMC2208) // Choose your axes here. This is mandatory!
+
+#if ENABLED(HAVE_TMC2130) || ENABLED(HAVE_TMC2208)
+
+ // CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
+ //#define X_IS_TMC2130
+ //#define X2_IS_TMC2130
+ //#define Y_IS_TMC2130
+ //#define Y2_IS_TMC2130
+ //#define Z_IS_TMC2130
+ //#define Z2_IS_TMC2130
+ //#define E0_IS_TMC2130
+ //#define E1_IS_TMC2130
+ //#define E2_IS_TMC2130
+ //#define E3_IS_TMC2130
+ //#define E4_IS_TMC2130
+
//#define X_IS_TMC2208
//#define X2_IS_TMC2208
//#define Y_IS_TMC2208
@@ -1058,9 +1111,10 @@
//#define E2_IS_TMC2208
//#define E3_IS_TMC2208
//#define E4_IS_TMC2208
-#endif
-#if ENABLED(HAVE_TMC2130) || ENABLED(HAVE_TMC2208)
+ /**
+ * Stepper driver settings
+ */
#define R_SENSE 0.11 // R_sense resistor for SilentStepStick2130
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
@@ -1407,8 +1461,9 @@
/**
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
*/
-//#define PINS_DEBUGGING
-
+ #if(!ENABLED(MachineCR10Orig))
+#define PINS_DEBUGGING
+#endif
/**
* Auto-report temperatures with M155 S
*/
@@ -1417,8 +1472,9 @@
/**
* Include capabilities in M115 output
*/
+ #if(!ENABLED(MachineCR10Orig))
#define EXTENDED_CAPABILITIES_REPORT
-
+#endif
/**
* Disable all Volumetric extrusion options
*/
@@ -1461,26 +1517,42 @@
/**
* User-defined menu items that execute custom GCode
*/
-//#define CUSTOM_USER_MENUS
+#if(ENABLED(ABL_UBL))
+ #define CUSTOM_USER_MENUS
+#endif
+
#if ENABLED(CUSTOM_USER_MENUS)
- #define USER_SCRIPT_DONE "M117 User Script Done"
+ //#define USER_SCRIPT_DONE "M117 User Script Done"
#define USER_SCRIPT_AUDIBLE_FEEDBACK
- //#define USER_SCRIPT_RETURN // Return to status screen after a script
+ #define USER_SCRIPT_RETURN // Return to status screen after a script
- #define USER_DESC_1 "Home & UBL Info"
- #define USER_GCODE_1 "G28\nG29 W"
+#if ENABLED(BedDC)
+ #define USER_DESC_1 "UBL Commission Step 1"
+ #define USER_GCODE_1 "M502 \n M500 \n M501 \n M190 S55 \n M104 S225 \n G28 \n G29 P1 \n G29 S1 \n M117 Run Step 2 \n"
+
+ #define USER_DESC_2 "UBL Commission Step 2"
+ #define USER_GCODE_2 "G29 S1 \n G29 S0 \n G29 F 10.0 \n G29 A \n M500 \n G28 \n G29 L1 \n M109 S225 \n G1 X150 Y 150 \n G1 Z0 \n M117 Set Z Offset \n"
- #define USER_DESC_2 "Preheat for PLA"
- #define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
+ #define USER_DESC_3 "Prep for Z Adjust"
+ #define USER_GCODE_3 "M190 55 \n M104 235 \n G28 \n G29 L1 \n G1 X150 Y 150 \n G1 Z0"
+#endif
+
+#if ENABLED(BedAC)
+ #define USER_DESC_1 "UBL Commission Step 1"
+ #define USER_GCODE_1 "M502 \n M500 \n M501 \n M190 S75 \n M104 S225 \n G28 \n G29 P1 \n G29 S1 \n M117 Run Step 2 \n"
+
+ #define USER_DESC_2 "UBL Commission Step 2"
+ #define USER_GCODE_2 "G29 S1 \n G29 S0 \n G29 F 10.0 \n G29 A \n M500 \n G28 \n G29 L1 \n M109 S225 \n G1 X150 Y 150 \n G1 Z0 \n M117 Set Z Offset \n"
- #define USER_DESC_3 "Preheat for ABS"
- #define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
+ #define USER_DESC_3 "Prep for Z Adjust"
+ #define USER_GCODE_3 "M190 75 \n M104 235 \n G28 \n G29 L1 \n G1 X150 Y 150 \n G1 Z0 \n"
+#endif
- #define USER_DESC_4 "Heat Bed/Home/Level"
- #define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
+ #define USER_DESC_4 "Fill Mesh Points"
+ #define USER_GCODE_4 "G29 P3 \n G29 P3 \n G29 P3 \n G29 T \n"
- #define USER_DESC_5 "Home & Info"
- #define USER_GCODE_5 "G28\nM503"
+ #define USER_DESC_5 "Run Mesh Validation"
+ #define USER_GCODE_5 "G26 \n"
#endif
/**
@@ -1495,8 +1567,8 @@
* Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'.
* The host must be configured to handle the action command.
*/
-//#define ACTION_ON_PAUSE "pause"
-//#define ACTION_ON_RESUME "resume"
+#define ACTION_ON_PAUSE "pause"
+#define ACTION_ON_RESUME "resume"
//===========================================================================
//====================== I2C Position Encoder Settings ======================
From 6137b671fe5316dd7d32719917fe8a813f4b8ca2 Mon Sep 17 00:00:00 2001
From: InsanityAutomation
Date: Mon, 16 Apr 2018 13:54:56 -0400
Subject: [PATCH 4/8] Whitespace
---
Marlin/Version.h | 2 +-
Marlin/_Bootscreen.h | 2 +-
Marlin/_Statusscreen.h | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Marlin/Version.h b/Marlin/Version.h
index cecd626e26..e9976bf40c 100644
--- a/Marlin/Version.h
+++ b/Marlin/Version.h
@@ -93,4 +93,4 @@
*/
#define WEBSITE_URL "tinymachines3d.com"
-#endif // USE_AUTOMATIC_VERSIONING
+#endif // USE_AUTOMATIC_VERSIONING
diff --git a/Marlin/_Bootscreen.h b/Marlin/_Bootscreen.h
index 64b224471c..cf8c657d66 100644
--- a/Marlin/_Bootscreen.h
+++ b/Marlin/_Bootscreen.h
@@ -103,4 +103,4 @@ const unsigned char custom_start_bmp[] PROGMEM = {
};
-
+
diff --git a/Marlin/_Statusscreen.h b/Marlin/_Statusscreen.h
index c26149a6b2..8a3811c111 100644
--- a/Marlin/_Statusscreen.h
+++ b/Marlin/_Statusscreen.h
@@ -457,4 +457,4 @@ const unsigned char status_screen3_bmp[] PROGMEM = {
#endif
-#endif // HOTENDS >= 2
+#endif // HOTENDS >= 2
From 2a18869b506697220ff2ae09f481d61d40d3a3cd Mon Sep 17 00:00:00 2001
From: InsanityAutomation
Date: Tue, 17 Apr 2018 10:14:21 -0400
Subject: [PATCH 5/8] Breakout for sd detect pin
---
Marlin/Configuration.h | 2 +-
Marlin/Configuration_adv.h | 7 +++--
Marlin/pins_RAMPS.h | 58 +++++++++++++++++++++++++++-----------
3 files changed, 47 insertions(+), 20 deletions(-)
diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index b7065c6680..211dab1751 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -155,7 +155,7 @@
//#define ABL_BI
#define ABL_UBL
-
+//#define BoardRev2
#if(!ENABLED(MachineCR10Orig))
diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h
index b2810b2162..e43a524a66 100644
--- a/Marlin/Configuration_adv.h
+++ b/Marlin/Configuration_adv.h
@@ -514,7 +514,7 @@
#define LCD_TIMEOUT_TO_STATUS 15000
// Add an 'M73' G-code to set the current percentage
-//#define LCD_SET_PROGRESS_MANUALLY
+#define LCD_SET_PROGRESS_MANUALLY
#if ENABLED(SDSUPPORT) || ENABLED(LCD_SET_PROGRESS_MANUALLY)
//#define LCD_PROGRESS_BAR // Show a progress bar on HD44780 LCDs for SD printing
@@ -551,6 +551,7 @@
// as SD_DETECT_PIN in your board's pins definitions.
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
+
#define SD_DETECT_INVERTED
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
@@ -604,7 +605,7 @@
#endif
// This allows hosts to request long names for files and folders with M33
- //#define LONG_FILENAME_HOST_SUPPORT
+ #define LONG_FILENAME_HOST_SUPPORT
// Enable this option to scroll long filenames in the SD card menu
#define SCROLL_LONG_FILENAMES
@@ -626,7 +627,7 @@
/**
* Auto-report SdCard status with M27 S
*/
- //#define AUTO_REPORT_SD_STATUS
+ #define AUTO_REPORT_SD_STATUS
#endif // SDSUPPORT
diff --git a/Marlin/pins_RAMPS.h b/Marlin/pins_RAMPS.h
index e886a616f6..47113da56b 100644
--- a/Marlin/pins_RAMPS.h
+++ b/Marlin/pins_RAMPS.h
@@ -422,9 +422,13 @@
#endif
#define BTN_ENC 35
- #define SD_DETECT_PIN 49
- #define KILL_PIN 41
-
+ #if(ENABLED(BoardRev2))
+ #define SD_DETECT_PIN 49
+
+ #else
+ #define SD_DETECT_PIN -1
+ #endif
+ #define KILL_PIN 41
#if ENABLED(BQ_LCD_SMART_CONTROLLER)
#define LCD_BACKLIGHT_PIN 39
#endif
@@ -434,8 +438,13 @@
#define BTN_EN1 64
#define BTN_EN2 59
#define BTN_ENC 63
- #define SD_DETECT_PIN 42
-
+ #if(ENABLED(BoardRev2))
+ #define SD_DETECT_PIN 49
+ #else
+ #define SD_DETECT_PIN -1
+ #endif
+ #define KILL_PIN 41
+
#elif ENABLED(LCD_I2C_PANELOLU2)
#define BTN_EN1 47
@@ -451,7 +460,7 @@
#define BTN_ENC -1
#define LCD_SDSS SDSS
- #define SD_DETECT_PIN 49
+ //#define SD_DETECT_PIN 49
#elif ENABLED(VIKI2) || ENABLED(miniVIKI)
@@ -482,8 +491,12 @@
#define BTN_EN2 37
#define BTN_ENC 31
- #define LCD_SDSS SDSS
- #define SD_DETECT_PIN 49
+ #define LCD_SDSS SDSS
+ #if(ENABLED(BoardRev2))
+ #define SD_DETECT_PIN 49
+ #else
+ #define SD_DETECT_PIN -1
+ #endif
#define KILL_PIN 41
#elif ENABLED(MKS_MINI_12864) // Added in Marlin 1.1.6
@@ -506,9 +519,13 @@
#define BTN_EN2 33
#define BTN_ENC 35
- #define SD_DETECT_PIN 49
- #define KILL_PIN 64
-
+ #if(ENABLED(BoardRev2))
+ #define SD_DETECT_PIN 49
+ #else
+ #define SD_DETECT_PIN -1
+ #endif
+ #define KILL_PIN 41
+
#elif ENABLED(MINIPANEL)
#define BEEPER_PIN 42
@@ -529,9 +546,13 @@
#define BTN_EN2 63
#define BTN_ENC 59
- #define SD_DETECT_PIN 49
- #define KILL_PIN 64
-
+ #if(ENABLED(BoardRev2))
+ #define SD_DETECT_PIN 49
+ #else
+ #define SD_DETECT_PIN -1
+ #endif
+ #define KILL_PIN 41
+
#elif ENABLED(ZONESTAR_LCD)
#define ADC_KEYPAD_PIN 12
@@ -560,8 +581,13 @@
#endif
#if ENABLED(G3D_PANEL)
- #define SD_DETECT_PIN 49
- #define KILL_PIN 41
+ #if(ENABLED(BoardRev2))
+ #define SD_DETECT_PIN 49
+ #else
+ #define SD_DETECT_PIN -1
+ #endif
+ #define KILL_PIN 41
+
#endif
#endif
From c941fe470bdabed97b82e770d47a4d63db55262e Mon Sep 17 00:00:00 2001
From: InsanityAutomation
Date: Tue, 24 Apr 2018 09:25:00 -0400
Subject: [PATCH 6/8] Mesh Option Addition
---
Marlin/Configuration.h | 56 +++++++++++++++++++++++++-----------------
1 file changed, 34 insertions(+), 22 deletions(-)
diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 211dab1751..9c9e714005 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -102,8 +102,12 @@
* Base machine
* Choose one option below to define machine size, board, and parameters
*
+ *
+ Choose this for CR10 Original Melzi Board
*/
//#define MachineCR10Orig
+
+
//#define MachineMini
#define MachineCR10S
//#define MachineS4
@@ -155,6 +159,18 @@
//#define ABL_BI
#define ABL_UBL
+/*
+ *
+ * Choose a probe grid density below. Faster probes less points, but is less accurate.
+ * Extreme is for extremely uneven or tilted bed surfaces.
+ * UBL and Extreme are recommended with solid bed mounts as it becomes a one time commissioning.
+ * Standard is recommended in most other scenarios.
+ */
+//#define MeshFast
+#define MeshStd
+//#define MeshFine
+//#define MeshExtreme
+
//#define BoardRev2
@@ -165,7 +181,7 @@
#if(ENABLED(MachineMini))
#define CUSTOM_MACHINE_NAME "Mini SuPeR"
#elif(ENABLED(MachineCR10Orig))
-#define CUSTOM_MACHINE_NAME "300 Orig"
+#define CUSTOM_MACHINE_NAME "SuPeR CR-10"
#elif(ENABLED(MachineCR10S))
#define CUSTOM_MACHINE_NAME "300 SuPeR"
#elif(ENABLED(MachineS4))
@@ -1023,10 +1039,12 @@
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
+#define INVERT_E0_DIR true
#else
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR true
+#define INVERT_E0_DIR false
#endif
// Enable this option for Toshiba stepper drivers
//#define CONFIG_STEPPERS_TOSHIBA
@@ -1034,7 +1052,7 @@
// @section extruder
// For direct drive extruder v9 set to true, for geared extruder set to false.
-#define INVERT_E0_DIR false
+
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
@@ -1062,7 +1080,7 @@
#define Z_MAX_POS 300
#endif
-#if (ENABLED(MachineCR10S) || ENABLED(MachineCR10Orig))
+#if (ENABLED(MachineCR10S))
#define X_BED_SIZE 315
#define Y_BED_SIZE 310
#define Z_MAX_POS 400
@@ -1220,23 +1238,22 @@
#endif
#endif
+#if ENABLED(MeshFast)
+#define GRID_MAX_POINTS_X 3
+#elif (ENABLED(MeshStd) )
+#define GRID_MAX_POINTS_X 5
+#elif ENABLED( MeshFine)
+#define GRID_MAX_POINTS_X 8
+#elif ENABLED(MeshExtreme)
+#define GRID_MAX_POINTS_X 15
+#else
+ GRID_MAX_POINTS_X 3
+#endif
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
-#if ENABLED(MachineMini)
-#define GRID_MAX_POINTS_X 3
-#endif
-#if (ENABLED(MachineCR10S) || ENABLED(MachineCR10Orig))
-#define GRID_MAX_POINTS_X 5
-#endif
-#if ENABLED( MachineS4)
-#define GRID_MAX_POINTS_X 8
-#endif
-#if ENABLED(MachineS5)
-#define GRID_MAX_POINTS_X 10
-#endif
// Set the number of grid points per dimension.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
@@ -1310,7 +1327,6 @@
#define MESH_EDIT_GFX_OVERLAY // Display a graphics overlay while editing the mesh
#endif
#if ENABLED(MachineMini)
-#define GRID_MAX_POINTS_X 3 // Don't use more than 15 points per axis, implementation limited.
#define PROBE_PT_1_X 50 // Probing points for 3-Point leveling of the mesh
#define PROBE_PT_1_Y 180
#define PROBE_PT_2_X 180
@@ -1320,8 +1336,7 @@
#define MESH_INSET 15
#endif
-#if (ENABLED(MachineCR10S) || ENABLED(MachineCR10Orig))
-#define GRID_MAX_POINTS_X 5 // Don't use more than 15 points per axis, implementation limited.
+#if (ENABLED(MachineCR10S) )
#define PROBE_PT_1_X 50 // Probing points for 3-Point leveling of the mesh
#define PROBE_PT_1_Y 270
#define PROBE_PT_2_X 250
@@ -1332,7 +1347,6 @@
#endif
#if ENABLED( MachineS4)
-#define GRID_MAX_POINTS_X 8 // Don't use more than 15 points per axis, implementation limited.
#define PROBE_PT_1_X 60 // Probing points for 3-Point leveling of the mesh
#define PROBE_PT_1_Y 340
#define PROBE_PT_2_X 340
@@ -1342,7 +1356,6 @@
#define MESH_INSET 20
#endif
#if ENABLED(MachineS5)
-#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
#define PROBE_PT_1_X 80 // Probing points for 3-Point leveling of the mesh
#define PROBE_PT_1_Y 420
#define PROBE_PT_2_X 420
@@ -1368,7 +1381,6 @@
//===========================================================================
#define MESH_INSET 20 // Mesh inset margin on print area
-#define GRID_MAX_POINTS_X 5 // Don't use more than 7 points per axis, implementation limited.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
@@ -1567,7 +1579,7 @@
#if ENABLED(NOZZLE_PARK_FEATURE)
// Specify a park position as { X, Y, Z }
-#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MIN_POS + 10), 10 }
+#define NOZZLE_PARK_POINT { (10), (10), 20 }
#define NOZZLE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
#define NOZZLE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
#endif
From c6d99c772b0ea2b7bc08c385166e8e98203ab9ea Mon Sep 17 00:00:00 2001
From: InsanityAutomation
Date: Tue, 24 Apr 2018 11:18:46 -0400
Subject: [PATCH 7/8] Small Updates
---
Marlin/Configuration_adv.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h
index 9bb3feb85f..3888b42fc4 100644
--- a/Marlin/Configuration_adv.h
+++ b/Marlin/Configuration_adv.h
@@ -573,7 +573,7 @@
* an option on the LCD screen to continue the print from the last-known
* point in the file.
*/
- //#define POWER_LOSS_RECOVERY
+ #define POWER_LOSS_RECOVERY
/**
* Sort SD file listings in alphabetical order.
@@ -603,10 +603,10 @@
#endif
// SD Card Sorting options
#if ENABLED(SDCARD_SORT_ALPHA)
- #define SDSORT_LIMIT 40 // Maximum number of sorted items (10-256). Costs 27 bytes each.
+ #define SDSORT_LIMIT 25 // Maximum number of sorted items (10-256). Costs 27 bytes each.
#define FOLDER_SORTING -1 // -1=above 0=none 1=below
#define SDSORT_GCODE false // Allow turning sorting on/off with LCD and M34 g-code.
- #define SDSORT_USES_RAM true // Pre-allocate a static array for faster pre-sorting.
+ #define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
#define SDSORT_USES_STACK true // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
@@ -615,7 +615,7 @@
#endif
// This allows hosts to request long names for files and folders with M33
- #define LONG_FILENAME_HOST_SUPPORT
+ //#define LONG_FILENAME_HOST_SUPPORT
// Enable this option to scroll long filenames in the SD card menu
#define SCROLL_LONG_FILENAMES
@@ -726,7 +726,7 @@
#if ENABLED(BABYSTEPPING)
//#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA!
#define BABYSTEP_INVERT_Z false // Change if Z babysteps should go the other way
- #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion.
+ #define BABYSTEP_MULTIPLICATOR 5 // Babysteps are very small. Increase for faster motion.
#if(ENABLED(ABL_EZABL) || ENABLED(ABL_BLTOUCH))
#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping
//#if(!ENABLED(MachineCR10Orig))
From 3bdca8730e01986910298aa09764f37225f952d9 Mon Sep 17 00:00:00 2001
From: InsanityAutomation
Date: Thu, 26 Apr 2018 15:24:23 -0400
Subject: [PATCH 8/8] Modify a few things to merge nicer
---
Marlin/pins_RAMPS.h | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/Marlin/pins_RAMPS.h b/Marlin/pins_RAMPS.h
index 47113da56b..fde7f3b5d4 100644
--- a/Marlin/pins_RAMPS.h
+++ b/Marlin/pins_RAMPS.h
@@ -428,7 +428,8 @@
#else
#define SD_DETECT_PIN -1
#endif
- #define KILL_PIN 41
+ #define KILL_PIN 41
+
#if ENABLED(BQ_LCD_SMART_CONTROLLER)
#define LCD_BACKLIGHT_PIN 39
#endif
@@ -439,11 +440,10 @@
#define BTN_EN2 59
#define BTN_ENC 63
#if(ENABLED(BoardRev2))
- #define SD_DETECT_PIN 49
+ #define SD_DETECT_PIN 42
#else
#define SD_DETECT_PIN -1
#endif
- #define KILL_PIN 41
#elif ENABLED(LCD_I2C_PANELOLU2)
@@ -459,8 +459,8 @@
#define BTN_EN2 7 // 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13.
#define BTN_ENC -1
- #define LCD_SDSS SDSS
- //#define SD_DETECT_PIN 49
+ #define LCD_SDSS 53
+ #define SD_DETECT_PIN 49
#elif ENABLED(VIKI2) || ENABLED(miniVIKI)
@@ -476,7 +476,8 @@
#define BTN_EN2 7
#define BTN_ENC 39
- #define SD_DETECT_PIN -1 // Pin 49 for display sd interface, 72 for easy adapter board
+ #define SDSS 53
+ #define SD_DETECT_PIN -1 // Pin 49 for display sd interface, 72 for easy adapter board
#define KILL_PIN 31
#elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
@@ -491,7 +492,7 @@
#define BTN_EN2 37
#define BTN_ENC 31
- #define LCD_SDSS SDSS
+ #define LCD_SDSS 53
#if(ENABLED(BoardRev2))
#define SD_DETECT_PIN 49
#else
@@ -519,12 +520,13 @@
#define BTN_EN2 33
#define BTN_ENC 35
+ #define SDSS 53
#if(ENABLED(BoardRev2))
#define SD_DETECT_PIN 49
#else
#define SD_DETECT_PIN -1
#endif
- #define KILL_PIN 41
+ #define KILL_PIN 64
#elif ENABLED(MINIPANEL)
@@ -545,13 +547,13 @@
#define BTN_EN1 40
#define BTN_EN2 63
#define BTN_ENC 59
-
+ #define SDSS 53
#if(ENABLED(BoardRev2))
#define SD_DETECT_PIN 49
#else
#define SD_DETECT_PIN -1
#endif
- #define KILL_PIN 41
+ #define KILL_PIN 64
#elif ENABLED(ZONESTAR_LCD)