From d812e4a03fa3b1fbcd77682ec3872037e066546c Mon Sep 17 00:00:00 2001 From: Malte Reents Date: Fri, 16 Aug 2024 18:34:57 +0200 Subject: [PATCH] Changed Config.h and config_adv.h to example files Jetzt geht alles, jay! Man muss nur die beiden Z-Motoren vertauschen, don't know why --- .../Marlin/Configuration.h | 1030 ++++------------- .../Marlin/Configuration_adv.h | 370 +++--- Anycubic_i3_MEGA_2.1.2.4/Marlin/boards.h | 507 ++++++++ 3 files changed, 865 insertions(+), 1042 deletions(-) create mode 100644 Anycubic_i3_MEGA_2.1.2.4/Marlin/boards.h diff --git a/Anycubic_i3_MEGA_2.1.2.4/Marlin/Configuration.h b/Anycubic_i3_MEGA_2.1.2.4/Marlin/Configuration.h index 64cf879..3952bb6 100644 --- a/Anycubic_i3_MEGA_2.1.2.4/Marlin/Configuration.h +++ b/Anycubic_i3_MEGA_2.1.2.4/Marlin/Configuration.h @@ -21,6 +21,11 @@ */ #pragma once +#define CONFIG_EXAMPLES_DIR "config/examples/AnyCubic/i3 Mega/Trigorilla AVR" + +//#define I3MEGA_HAS_BLTOUCH +//#define I3MEGA_HAS_TMC2208 + /** * Configuration.h * @@ -36,53 +41,6 @@ * Advanced settings can be found in Configuration_adv.h */ #define CONFIGURATION_H_VERSION 02010204 -#define ANYCUBIC_TOUCHSCREEN -#define KNUTWURST_SPECIAL_MENU -// #define ANYCUBIC_TFT_DEBUG -// #define POWER_OUTAGE_TEST - -#define LCD_SERIAL_PORT 3 - -/* - * This feature is for debugging purpose only. - * It enabled more console output and should be - * disabled in production. It can cause the - * printer to stutter. - */ -// #define KNUTWURST_DEBUG - -/* - * Adjust the Trigorilla pin mapping. - */ -#if ENABLED(KNUTWURST_CHIRON) - #define TRIGORILLA_MAPPING_CHIRON - #define NO_AUTO_ASSIGN_WARNING -#else - #define TRIGORILLA_MAPPING_I3MEGA - #define SWAP_Z_MOTORS -#endif - -/* - * This enables the integrated Laser engaving feature - * in the anycubic touchscreen. It's currently only - * supported by the Anycubic MEGA Pro and therefore it - * is automatically set if the MEGA_P is enabled. - * - */ -#if ENABLED(KNUTWURST_MEGA_P) -// #define KNUTWURST_MEGA_P_LASER -#endif - -/* - * To ensure the correct endstop configuration, - * this has to be enabled to alter the motherboard - * configuration for the 4MAX printer family - */ -#if ENABLED(KNUTWURST_4MAXP2) - #define ANYCUBIC_4_MAX_PRO_ENDSTOPS - #define NO_AUTO_ASSIGN_WARNING -#endif - //=========================================================================== //============================= Getting Started ============================= @@ -108,7 +66,7 @@ // @section info // Author info of this build printed to the host during boot and M115 -#define STRING_CONFIG_H_AUTHOR "(knutwurst)" // Who made the changes. +#define STRING_CONFIG_H_AUTHOR "KNUTWURST, Malte Reents" // Who made the changes. //#define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes) /** @@ -133,11 +91,6 @@ // @section machine -// Choose the name from boards.h that matches your setup -#ifndef MOTHERBOARD - #define MOTHERBOARD BOARD_RAMPS_14_EFB -#endif - /** * 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. @@ -159,32 +112,17 @@ * * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] */ -#define BAUDRATE 250000 +#define BAUDRATE 9600 //#define BAUD_RATE_GCODE // Enable G-code M575 to set the baud rate -/* EXP1 Header - - --------------- - || D37 D35 || - || || - || [D17] [D16] || <---- Connect your ESP8266 Wifi module here (TX/RX) - /|| || - ||| D23 D25 || - \|| || - || D27 D29 || - || || - || [GND] [5V] || <---- Connect your ESP8266 Wifi module here (GND/VIO) - --------------- -*/ - /** * Select a secondary serial port on the board to use for communication with the host. * Currently Ethernet (-2) is only supported on Teensy 4.1 boards. * :[-2, -1, 0, 1, 2, 3, 4, 5, 6, 7] */ -//#define SERIAL_PORT_2 2 -//#define BAUDRATE_2 500000 // :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] Enable to override BAUDRATE +//#define SERIAL_PORT_2 -1 +//#define BAUDRATE_2 250000 // :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] Enable to override BAUDRATE /** * Select a third serial port on the board to use for communication with the host. @@ -197,8 +135,37 @@ // Enable the Bluetooth serial interface on AT90USB devices //#define BLUETOOTH +/** + * Select your version of the Trigorilla (RAMPS1.4) board here. + * + * 0 = Default Trigorilla + * 1 = Newer Trigorilla v1.1 (first seen late 2018) + * + * The only major difference is a slight change on the servo pin mapping. + * This setting only is relevant if you want to use BLtouch or similar + * mods to be used via servo pins. + * The new version is to be identified by a "TRIGORILLA1.1" lettering + * on the upper left of the PCB silkscreen. + */ +#define TRIGORILLA_VERSION 0 + +// Choose the name from boards.h that matches your setup +#if TRIGORILLA_VERSION == 1 + #define MOTHERBOARD BOARD_TRIGORILLA_14_11 +#else + #define MOTHERBOARD BOARD_TRIGORILLA_14 +#endif + +// i3 Mega remaps some Trigorilla 1.4 pins +#define TRIGORILLA_MAPPING_I3MEGA + +/** + * Some Anycubic machines have Z1 and Z2 swapped to save on wiring. + */ +//#define SWAP_Z_MOTORS + // Name displayed in the LCD "Ready" message and Info menu -//#define CUSTOM_MACHINE_NAME "3D Printer" +#define CUSTOM_MACHINE_NAME "Anycubic i3" // Printer's unique ID, used by some programs to differentiate between machines. // Choose your own or use a service like https://www.uuidgenerator.net/version4 @@ -221,53 +188,33 @@ * TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE'] */ -#if ENABLED(KNUTWURST_TMC) - #define X_DRIVER_TYPE TMC2208_STANDALONE - #define Y_DRIVER_TYPE TMC2208_STANDALONE - #define Z_DRIVER_TYPE TMC2208_STANDALONE - // #define X2_DRIVER_TYPE A4988 - // #define Y2_DRIVER_TYPE A4988 - #define Z2_DRIVER_TYPE TMC2208_STANDALONE - // #define Z3_DRIVER_TYPE A4988 - // #define Z4_DRIVER_TYPE A4988 - // #define I_DRIVER_TYPE A4988 - // #define J_DRIVER_TYPE A4988 - // #define K_DRIVER_TYPE A4988 - // #define U_DRIVER_TYPE A4988 - // #define V_DRIVER_TYPE A4988 - // #define W_DRIVER_TYPE A4988 - #define E0_DRIVER_TYPE TMC2208_STANDALONE - #define E1_DRIVER_TYPE TMC2208_STANDALONE - // #define E2_DRIVER_TYPE A4988 - // #define E3_DRIVER_TYPE A4988 - // #define E4_DRIVER_TYPE A4988 - // #define E5_DRIVER_TYPE A4988 - // #define E6_DRIVER_TYPE A4988 - // #define E7_DRIVER_TYPE A4988 +#if ENABLED(I3MEGA_HAS_TMC2208) + #define ALL_DRIVERS_TYPE TMC2208_STANDALONE #else - #define X_DRIVER_TYPE A4988 - #define Y_DRIVER_TYPE A4988 - #define Z_DRIVER_TYPE A4988 - // #define X2_DRIVER_TYPE A4988 - // #define Y2_DRIVER_TYPE A4988 - #define Z2_DRIVER_TYPE A4988 - // #define Z3_DRIVER_TYPE A4988 - // #define Z4_DRIVER_TYPE A4988 - // #define I_DRIVER_TYPE A4988 - // #define J_DRIVER_TYPE A4988 - // #define K_DRIVER_TYPE A4988 - // #define U_DRIVER_TYPE A4988 - // #define V_DRIVER_TYPE A4988 - // #define W_DRIVER_TYPE A4988 - #define E0_DRIVER_TYPE A4988 - #define E1_DRIVER_TYPE A4988 - // #define E2_DRIVER_TYPE A4988 - // #define E3_DRIVER_TYPE A4988 - // #define E4_DRIVER_TYPE A4988 - // #define E5_DRIVER_TYPE A4988 - // #define E6_DRIVER_TYPE A4988 - // #define E7_DRIVER_TYPE A4988 -#endif // if ENABLED(KNUTWURST_TMC) + #define ALL_DRIVERS_TYPE TMC2208_STANDALONE //alt: A4988 +#endif +#define X_DRIVER_TYPE ALL_DRIVERS_TYPE +#define Y_DRIVER_TYPE ALL_DRIVERS_TYPE +#define Z_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define I_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define J_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define K_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define U_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define V_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define W_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define X2_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define Y2_DRIVER_TYPE ALL_DRIVERS_TYPE +#define Z2_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define Z3_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define Z4_DRIVER_TYPE ALL_DRIVERS_TYPE +#define E0_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define E1_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define E2_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define E3_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define E4_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define E5_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define E6_DRIVER_TYPE ALL_DRIVERS_TYPE +//#define E7_DRIVER_TYPE ALL_DRIVERS_TYPE /** * Additional Axis Settings @@ -480,7 +427,7 @@ * See additional options in Configuration_adv.h. * :["PRUSA_MMU1", "PRUSA_MMU2", "PRUSA_MMU2S", "EXTENDABLE_EMU_MMU2", "EXTENDABLE_EMU_MMU2S"] */ -// #define MMU_MODEL PRUSA_MMU2 +//#define MMU_MODEL PRUSA_MMU2 // @section psu control @@ -636,11 +583,7 @@ * 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below. * 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below. */ -#if ENABLED(KNUTWURST_4MAXP2) - #define TEMP_SENSOR_0 11 -#else - #define TEMP_SENSOR_0 1 -#endif +#define TEMP_SENSOR_0 5 #define TEMP_SENSOR_1 0 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_3 0 @@ -648,11 +591,7 @@ #define TEMP_SENSOR_5 0 #define TEMP_SENSOR_6 0 #define TEMP_SENSOR_7 0 -#if ENABLED(KNUTWURST_4MAXP2) - #define TEMP_SENSOR_BED 5 -#else - #define TEMP_SENSOR_BED 1 -#endif +#define TEMP_SENSOR_BED 1 #define TEMP_SENSOR_PROBE 0 #define TEMP_SENSOR_CHAMBER 0 #define TEMP_SENSOR_COOLER 0 @@ -713,25 +652,21 @@ // Below this temperature the heater will be switched off // because it probably indicates a broken thermistor wire. -#define HEATER_0_MINTEMP 1 -#define HEATER_1_MINTEMP 1 -#define HEATER_2_MINTEMP 1 -#define HEATER_3_MINTEMP 1 -#define HEATER_4_MINTEMP 1 -#define HEATER_5_MINTEMP 1 -#define HEATER_6_MINTEMP 1 -#define HEATER_7_MINTEMP 1 -#define BED_MINTEMP 1 -#define CHAMBER_MINTEMP 1 +#define HEATER_0_MINTEMP 5 +#define HEATER_1_MINTEMP 5 +#define HEATER_2_MINTEMP 5 +#define HEATER_3_MINTEMP 5 +#define HEATER_4_MINTEMP 5 +#define HEATER_5_MINTEMP 5 +#define HEATER_6_MINTEMP 5 +#define HEATER_7_MINTEMP 5 +#define BED_MINTEMP 5 +#define CHAMBER_MINTEMP 5 // Above this temperature the heater will be switched off. // This can protect components from overheating, but NOT from shorts and failures. // (Use MINTEMP for thermistor short/failure protection.) -#if ENABLED(KNUTWURST_4MAXP2) - #define HEATER_0_MAXTEMP 300 -#else - #define HEATER_0_MAXTEMP 285 -#endif +#define HEATER_0_MAXTEMP 260 #define HEATER_1_MAXTEMP 275 #define HEATER_2_MAXTEMP 275 #define HEATER_3_MAXTEMP 275 @@ -776,28 +711,17 @@ //#define PID_PARAMS_PER_HOTEND // Use separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with G-code: M301 E[extruder number, 0-2] - #if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P) - #define DEFAULT_Kp 12.28 - #define DEFAULT_Ki 0.75 - #define DEFAULT_Kd 50.06 - #endif - - #if ENABLED(KNUTWURST_MEGA_X) - #define DEFAULT_Kp 15.94 - #define DEFAULT_Ki 1.17 - #define DEFAULT_Kd 54.19 - #endif - - #if ENABLED(KNUTWURST_CHIRON) - #define DEFAULT_Kp 20.00 - #define DEFAULT_Ki 0.50 - #define DEFAULT_Kd 106.55 - #endif - - #if ENABLED(KNUTWURST_4MAXP2) - #define DEFAULT_Kp 17.13 - #define DEFAULT_Ki 0.93 - #define DEFAULT_Kd 78.58 + // i3 Mega stock v5 hotend, 40W heater cartridge (3.6Ω @ 22°C) + #if ENABLED(PID_PARAMS_PER_HOTEND) + // Specify up to one value per hotend here, according to your setup. + // If there are fewer values, the last one applies to the remaining hotends. + #define DEFAULT_Kp_LIST { 14.92, 14.92 } + #define DEFAULT_Ki_LIST { 0.89, 0.89 } + #define DEFAULT_Kd_LIST { 62.64, 62.64 } + #else + #define DEFAULT_Kp 14.92 + #define DEFAULT_Ki 0.89 + #define DEFAULT_Kd 62.64 #endif #else #define BANG_MAX 255 // Limit hotend current while in bang-bang mode; 255=full current @@ -882,29 +806,10 @@ //#define MIN_BED_POWER 0 //#define PID_BED_DEBUG // Print Bed PID debug data to the serial port. - #if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P) - #define DEFAULT_bedKp 251.78 - #define DEFAULT_bedKi 49.57 - #define DEFAULT_bedKd 319.73 - #elif ENABLED(KNUTWURST_MEGA_X) - #define DEFAULT_bedKp 251.78 - #define DEFAULT_bedKi 49.57 - #define DEFAULT_bedKd 319.73 - #elif ENABLED(KNUTWURST_CHIRON) - #define DEFAULT_bedKp 97.10 - #define DEFAULT_bedKi 1.41 - #define DEFAULT_bedKd 1675.16 - #elif ENABLED(KNUTWURST_4MAXP2) - #define DEFAULT_bedKp 251.78 - #define DEFAULT_bedKi 49.57 - #define DEFAULT_bedKd 319.73 - #endif - - // 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 + // Anycubic i3 Mega Ultrabase (0.9Ω @ 22°C) + #define DEFAULT_bedKp 251.78 + #define DEFAULT_bedKi 49.57 + #define DEFAULT_bedKd 319.73 // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. #else @@ -1004,8 +909,8 @@ #define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders #define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed -// #define THERMAL_PROTECTION_CHAMBER // Enable thermal protection for the heated chamber -// #define THERMAL_PROTECTION_COOLER // Enable thermal protection for the laser cooling +#define THERMAL_PROTECTION_CHAMBER // Enable thermal protection for the heated chamber +#define THERMAL_PROTECTION_COOLER // Enable thermal protection for the laser cooling //=========================================================================== //============================= Mechanical Settings ========================= @@ -1198,13 +1103,9 @@ //#define USE_UMIN_PLUG //#define USE_VMIN_PLUG //#define USE_WMIN_PLUG -#if DISABLED(KNUTWURST_ONE_Z_ENDSTOP) - #define USE_XMAX_PLUG -#endif +#define USE_XMAX_PLUG // used as the second z stepper end limit switch //#define USE_YMAX_PLUG -#if ENABLED(KNUTWURST_CHIRON) - // #define USE_ZMAX_PLUG -#endif +//#define USE_ZMAX_PLUG //#define USE_IMAX_PLUG //#define USE_JMAX_PLUG //#define USE_KMAX_PLUG @@ -1263,71 +1164,25 @@ #endif // Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup). -#if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P, KNUTWURST_4MAXP2) - #define X_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. - #define Y_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. - #if BOTH(KNUTWURST_BLTOUCH, KNUTWURST_4MAXP2) - #define Z_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #else - #define Z_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. - #endif - #define I_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define J_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define K_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define U_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define V_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define W_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define X_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. - #define Y_MAX_ENDSTOP_INVERTING true // 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 I_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define J_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define K_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define U_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define V_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define W_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. -#elif ENABLED(KNUTWURST_MEGA_X) - #define X_MIN_ENDSTOP_INVERTING true // 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 true // Set to true to invert the logic of the endstop. - #define I_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define J_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define K_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define U_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define V_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define W_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define X_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. - #define Y_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. - #define Z_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. - #define I_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define J_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define K_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define U_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define V_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define W_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. -#elif ENABLED(KNUTWURST_CHIRON) - #define X_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. - #define Y_MIN_ENDSTOP_INVERTING true // 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 I_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define J_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define K_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define U_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define V_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define W_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 I_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define J_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define K_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define U_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define V_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. - #define W_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. -#endif // if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P, KNUTWURST_4MAXP2) +#define X_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. +#define Y_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. +#define Z_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. +#define I_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define J_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define K_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define U_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define V_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define W_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define X_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. +#define Y_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. +#define Z_MAX_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. +#define I_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define J_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define K_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define U_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define V_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define W_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define Z_MIN_PROBE_ENDSTOP_INVERTING DISABLED(I3MEGA_HAS_BLTOUCH) // Set to true to invert the logic of the probe. // 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. @@ -1375,71 +1230,14 @@ * Override with M92 * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] */ -#if ENABLED(KNUTWURST_MEGA) - #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 98 } -#endif - -#if ENABLED(KNUTWURST_MEGA_S) - #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 393 } -#endif - -#if ENABLED(KNUTWURST_MEGA_X) - #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 800, 400 } -#endif - -#if ENABLED(KNUTWURST_MEGA_P) - #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 415 } -#endif - -#if ENABLED(KNUTWURST_CHIRON) - #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 100, 400, 415 } -#endif - -#if ENABLED(KNUTWURST_4MAXP2) - #define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 80, 800, 415 } -#endif +#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 96.2 } /** * Default Max Feed Rate (linear=mm/s, rotational=°/s) * Override with M203 * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] */ -#if ENABLED(KNUTWURST_MEGA) - #if ENABLED(KNUTWURST_BMG) - #define DEFAULT_MAX_FEEDRATE { 500, 500, 6, 40 } - #else - #define DEFAULT_MAX_FEEDRATE { 500, 500, 6, 80 } - #endif -#endif - -#if ENABLED(KNUTWURST_MEGA_S) - #define DEFAULT_MAX_FEEDRATE { 500, 500, 6, 40 } // same feedrate for BMG -#endif - -#if ENABLED(KNUTWURST_MEGA_X) - #if ENABLED(KNUTWURST_BMG) - #define DEFAULT_MAX_FEEDRATE { 120, 120, 12, 40 } // correct for BMG? - #else - #define DEFAULT_MAX_FEEDRATE { 120, 120, 12, 60 } // thanks to Simon Geis - #endif -#endif - -#if ENABLED(KNUTWURST_MEGA_P) - #define DEFAULT_MAX_FEEDRATE { 500, 500, 6, 40 } -#endif - -#if ENABLED(KNUTWURST_CHIRON) - #if ENABLED(KNUTWURST_BMG) - #define DEFAULT_MAX_FEEDRATE { 100, 100, 20, 40 } - #else - #define DEFAULT_MAX_FEEDRATE { 100, 100, 20, 60 } - #endif -#endif - -#if ENABLED(KNUTWURST_4MAXP2) - #define DEFAULT_MAX_FEEDRATE { 150, 150, 18, 80 } -#endif - +#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 60 } //#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2 #if ENABLED(LIMITED_MAX_FR_EDITING) @@ -1452,23 +1250,7 @@ * Override with M201 * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] */ -#if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P) - #define DEFAULT_MAX_ACCELERATION { 3000, 2000, 60, 10000 } -#endif - -#if ENABLED(KNUTWURST_MEGA_X) - #define DEFAULT_MAX_ACCELERATION { 400, 400, 60, 10000 } // Original Values - // #define DEFAULT_MAX_ACCELERATION { 2000, 1500, 60, 10000 } -#endif - -#if ENABLED(KNUTWURST_CHIRON) - #define DEFAULT_MAX_ACCELERATION { 350, 350, 50, 20000 } -#endif - -#if ENABLED(KNUTWURST_4MAXP2) - #define DEFAULT_MAX_ACCELERATION { 1500, 1500, 70, 15000 } -#endif - +#define DEFAULT_MAX_ACCELERATION { 3000, 2000, 60, 10000 } //#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2 #if ENABLED(LIMITED_MAX_ACCEL_EDITING) @@ -1483,47 +1265,9 @@ * M204 R Retract Acceleration * M204 T Travel Acceleration */ - -#if ENABLED(KNUTWURST_MEGA) - #define DEFAULT_ACCELERATION 1500 // X, Y, Z and E acceleration for printing moves - #if ENABLED(KNUTWURST_BMG) - #define DEFAULT_RETRACT_ACCELERATION 1500 // E acceleration for retracts - #else - #define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts - #endif - - #define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z and E acceleration for printing moves -#endif - -#if ENABLED(KNUTWURST_MEGA_S) - #define DEFAULT_ACCELERATION 1500 // X, Y, Z and E acceleration for printing moves - #define DEFAULT_RETRACT_ACCELERATION 1500 // E acceleration for retracts - #define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves -#endif - -#if ENABLED(KNUTWURST_MEGA_X) - #define DEFAULT_ACCELERATION 400 // X, Y, Z and E acceleration for printing moves - #define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts - #define DEFAULT_TRAVEL_ACCELERATION 400 // X, Y, Z acceleration for travel (non printing) moves -#endif - -#if ENABLED(KNUTWURST_MEGA_P) - #define DEFAULT_ACCELERATION 1500 // X, Y, Z and E acceleration for printing moves - #define DEFAULT_RETRACT_ACCELERATION 1500 // E acceleration for retracts - #define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves -#endif - -#if ENABLED(KNUTWURST_CHIRON) - #define DEFAULT_ACCELERATION 350 // X, Y, Z and E acceleration for printing moves - #define DEFAULT_RETRACT_ACCELERATION 2000 // 3000 // E acceleration for retracts - #define DEFAULT_TRAVEL_ACCELERATION 350 // X, Y, Z acceleration for travel (non printing) moves -#endif - -#if ENABLED(KNUTWURST_4MAXP2) - #define DEFAULT_ACCELERATION 800 // X, Y, Z and E acceleration for printing moves - #define DEFAULT_RETRACT_ACCELERATION 1500 // E acceleration for retracts - #define DEFAULT_TRAVEL_ACCELERATION 1000 // X, Y, Z acceleration for travel (non printing) moves -#endif +#define DEFAULT_ACCELERATION 1500 // 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 limits (mm/s) @@ -1533,32 +1277,17 @@ * When changing speed and direction, if the difference is less than the * value set here, it may happen instantaneously. */ -#define CLASSIC_JERK +//#define CLASSIC_JERK #if ENABLED(CLASSIC_JERK) - #if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P) - #define DEFAULT_XJERK 8.0 - #define DEFAULT_YJERK 8.0 - #define DEFAULT_ZJERK 0.4 - #elif ENABLED(KNUTWURST_MEGA_X) - #define DEFAULT_XJERK 4.0 - #define DEFAULT_YJERK 4.0 - #define DEFAULT_ZJERK 0.2 - #elif ENABLED(KNUTWURST_CHIRON) - #define DEFAULT_XJERK 4.0 - #define DEFAULT_YJERK 4.0 - #define DEFAULT_ZJERK 0.4 - #elif ENABLED(KNUTWURST_4MAXP2) - #define DEFAULT_XJERK 8.0 - #define DEFAULT_YJERK 8.0 - #define DEFAULT_ZJERK 0.2 - #endif - - // #define DEFAULT_IJERK 0.3 - // #define DEFAULT_JJERK 0.3 - // #define DEFAULT_KJERK 0.3 - // #define DEFAULT_UJERK 0.3 - // #define DEFAULT_VJERK 0.3 - // #define DEFAULT_WJERK 0.3 + #define DEFAULT_XJERK 10.0 + #define DEFAULT_YJERK 10.0 + #define DEFAULT_ZJERK 0.3 + //#define DEFAULT_IJERK 0.3 + //#define DEFAULT_JJERK 0.3 + //#define DEFAULT_KJERK 0.3 + //#define DEFAULT_UJERK 0.3 + //#define DEFAULT_VJERK 0.3 + //#define DEFAULT_WJERK 0.3 //#define TRAVEL_EXTRA_XYJERK 0.0 // Additional jerk allowance for all travel moves @@ -1568,7 +1297,7 @@ #endif #endif -#define DEFAULT_EJERK 10.0 // May be used by Linear Advance +#define DEFAULT_EJERK 5.0 // May be used by Linear Advance /** * Junction Deviation Factor @@ -1578,22 +1307,7 @@ * https://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html */ #if DISABLED(CLASSIC_JERK) - #if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P) - #define JUNCTION_DEVIATION_MM 0.013 // (mm) Distance from real junction edge - #endif - - #if ENABLED(KNUTWURST_MEGA_X) - #define JUNCTION_DEVIATION_MM 0.016 // (mm) Distance from real junction edge - #endif - - #if ENABLED(KNUTWURST_CHIRON) - #define JUNCTION_DEVIATION_MM 0.018 // (mm) Distance from real junction edge - #endif - - #if ENABLED(KNUTWURST_4MAXP2) - #define JUNCTION_DEVIATION_MM 0.016 // (mm) Distance from real junction edge - #endif - + #define JUNCTION_DEVIATION_MM 0.013 // (mm) Distance from real junction edge #define JD_HANDLE_SMALL_SEGMENTS // Use curvature estimation instead of just the junction angle // for small segments (< 1mm) with large junction angles (> 135°). #endif @@ -1606,7 +1320,7 @@ * * See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained */ -#define S_CURVE_ACCELERATION +//#define S_CURVE_ACCELERATION //=========================================================================== //============================= Z Probe Options ============================= @@ -1622,9 +1336,7 @@ * The probe replaces the Z-MIN endstop and is used for Z homing. * (Automatically enables USE_PROBE_FOR_Z_HOMING.) */ -#if BOTH(KNUTWURST_BLTOUCH, KNUTWURST_4MAXP2) - #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN -#endif +//#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN // Force the use of the probe for Z-axis homing //#define USE_PROBE_FOR_Z_HOMING @@ -1642,7 +1354,7 @@ * - Normally-closed (NC) also connect to GND. * - Normally-open (NO) also connect to 5V. */ -//#define Z_MIN_PROBE_PIN 32 // Pin 32 is the RAMPS default +//#define Z_MIN_PROBE_PIN -1 /** * Probe Type @@ -1656,7 +1368,7 @@ * Use G29 repeatedly, adjusting the Z height at each point with movement commands * or (with LCD_BED_LEVELING) the LCD controller. */ -#if NONE(KNUTWURST_BLTOUCH, KNUTWURST_CHIRON) +#if DISABLED(I3MEGA_HAS_BLTOUCH) #define PROBE_MANUALLY #endif @@ -1675,15 +1387,15 @@ /** * Z Servo Probe, such as an endstop switch on a rotating arm. */ -#if ENABLED(KNUTWURST_CHIRON) - #define Z_PROBE_SERVO_NR 0 // Defaults to SERVO 0 connector. - #define Z_SERVO_ANGLES { 70, 0 } // Z Servo Deploy and Stow angles +//#define Z_PROBE_SERVO_NR 0 +#ifdef Z_PROBE_SERVO_NR + //#define Z_SERVO_ANGLES { 70, 0 } // Z Servo Deploy and Stow angles #endif /** * The BLTouch probe uses a Hall effect sensor and emulates a servo. */ -#if ENABLED(KNUTWURST_BLTOUCH) +#if ENABLED(I3MEGA_HAS_BLTOUCH) #define BLTOUCH #endif @@ -1837,32 +1549,17 @@ * | [-] | * O-- FRONT --+ */ -#if ENABLED(KNUTWURST_BLTOUCH) - #define NOZZLE_TO_PROBE_OFFSET { -2, -25, -0.4 } // https://www.thingiverse.com/thing:2824005 - // #define NOZZLE_TO_PROBE_OFFSET { 29, -15, 0 } //X-Carriage -#endif - -#if ENABLED(KNUTWURST_CHIRON) - #define NOZZLE_TO_PROBE_OFFSET { 0, 0, -16.8 } -#endif - -#if NONE(KNUTWURST_BLTOUCH, KNUTWURST_CHIRON) - #define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 } -#endif +#define NOZZLE_TO_PROBE_OFFSET { 0, -23, -1.54 } // Most probes should stay away from the edges of the bed, but // with NOZZLE_AS_PROBE this can be negative for a wider probing area. -#if ENABLED(KNUTWURST_CHIRON) - #define PROBING_MARGIN 15 -#else - #define PROBING_MARGIN 35 -#endif +#define PROBING_MARGIN 10 // X and Y axis travel speed (mm/min) between probes -#define XY_PROBE_FEEDRATE 8000 +#define XY_PROBE_FEEDRATE (133*60) // Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2) -#define Z_PROBE_FEEDRATE_FAST 600// HOMING_FEEDRATE_Z +#define Z_PROBE_FEEDRATE_FAST (4*60) // Feedrate (mm/min) for the "accurate" probe of each point #define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 2) @@ -1912,8 +1609,8 @@ * A total of 2 does fast/slow probes with a weighted average. * A total of 3 or more adds more slow probes, taking the average. */ -//#define MULTIPLE_PROBING 2 -//#define EXTRA_PROBING 1 +#define MULTIPLE_PROBING 2 +#define EXTRA_PROBING 1 /** * Z probes require clearance when deploying, stowing, and moving between @@ -1929,19 +1626,19 @@ * 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 20 // (mm) Z Clearance for Deploy/Stow +#define Z_CLEARANCE_DEPLOY_PROBE 10 // (mm) Z Clearance for Deploy/Stow #define Z_CLEARANCE_BETWEEN_PROBES 5 // (mm) Z Clearance between probe points #define Z_CLEARANCE_MULTI_PROBE 5 // (mm) Z Clearance between multiple probes //#define Z_AFTER_PROBING 5 // (mm) Z position after probing is done -#define Z_PROBE_LOW_POINT -10 // (mm) Farthest distance below the trigger-point to go before stopping +#define Z_PROBE_LOW_POINT -2 // (mm) 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 -50 -#define Z_PROBE_OFFSET_RANGE_MAX 50 +#define Z_PROBE_OFFSET_RANGE_MIN -20 +#define Z_PROBE_OFFSET_RANGE_MAX 20 // Enable the M48 repeatability test to test probe accuracy -#if ENABLED(KNUTWURST_BLTOUCH) +#if ENABLED(I3MEGA_HAS_BLTOUCH) #define Z_MIN_PROBE_REPEATABILITY_TEST #endif @@ -2005,210 +1702,33 @@ // @section extruder -#define DISABLE_E // Disable the extruder when not stepping +//#define DISABLE_E // Disable the extruder when not stepping #define DISABLE_OTHER_EXTRUDERS // Keep only the active extruder enabled // @section motion -#if DISABLED(KNUTWURST_TMC) - #if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_X) - // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. - #define INVERT_X_DIR true - #define INVERT_Y_DIR false - #define INVERT_Z_DIR false - // #define INVERT_I_DIR false - // #define INVERT_J_DIR false - // #define INVERT_K_DIR false - // #define INVERT_U_DIR false - // #define INVERT_V_DIR false - // #define INVERT_W_DIR false +// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. +#define INVERT_X_DIR true // set to true for stock drivers or TMC2208 with reversed connectors +#define INVERT_Y_DIR false // set to false for stock drivers or TMC2208 with reversed connectors +#define INVERT_Z_DIR false // set to false for stock drivers or TMC2208 with reversed connectors +//#define INVERT_I_DIR false +//#define INVERT_J_DIR false +//#define INVERT_K_DIR false +//#define INVERT_U_DIR false +//#define INVERT_V_DIR false +//#define INVERT_W_DIR false - // @section extruder +// @section extruder - // For direct drive extruder v9 set to true, for geared extruder set to false. - #if ENABLED(KNUTWURST_BMG) - #define INVERT_E0_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #else - #define INVERT_E0_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - #endif - - #define INVERT_E1_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_E2_DIR false - #define INVERT_E3_DIR false - #define INVERT_E4_DIR false - #define INVERT_E5_DIR false - #define INVERT_E6_DIR false - #define INVERT_E7_DIR false - #endif - - #if ENABLED(KNUTWURST_MEGA_P) - // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. - #define INVERT_X_DIR false // set to true for stock drivers or TMC2208 with reversed connectors - #define INVERT_Y_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_Z_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - - // @section extruder - - // For direct drive extruder v9 set to true, for geared extruder set to false. - #if ENABLED(KNUTWURST_BMG) - #define INVERT_E0_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - #else - #define INVERT_E0_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #endif - - #define INVERT_E1_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_E2_DIR false - #define INVERT_E3_DIR false - #define INVERT_E4_DIR false - #define INVERT_E5_DIR false - #define INVERT_E6_DIR false - #define INVERT_E7_DIR false - #endif - - #if ENABLED(KNUTWURST_CHIRON) - // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. - #define INVERT_X_DIR true // set to true for stock drivers or TMC2208 with reversed connectors - #define INVERT_Y_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_Z_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - - // @section extruder - - // For direct drive extruder v9 set to true, for geared extruder set to false. - #if ENABLED(KNUTWURST_BMG) - #define INVERT_E0_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #else - #define INVERT_E0_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - #endif - - #define INVERT_E1_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_E2_DIR false - #define INVERT_E3_DIR false - #define INVERT_E4_DIR false - #define INVERT_E5_DIR false - #define INVERT_E6_DIR false - #define INVERT_E7_DIR false - #endif - - #if ENABLED(KNUTWURST_4MAXP2) - // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. - #define INVERT_X_DIR false // set to true for stock drivers or TMC2208 with reversed connectors - #define INVERT_Y_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_Z_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - - // @section extruder - - // For direct drive extruder v9 set to true, for geared extruder set to false. - #if ENABLED(KNUTWURST_BMG) - #define INVERT_E0_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - #else - #define INVERT_E0_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #endif - #define INVERT_E1_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_E2_DIR false - #define INVERT_E3_DIR false - #define INVERT_E4_DIR false - #define INVERT_E5_DIR false - #define INVERT_E6_DIR false - #define INVERT_E7_DIR false - #endif -#endif // if DISABLED(KNUTWURST_TMC) - -#if ENABLED(KNUTWURST_TMC) - #if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_X) - // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. - #define INVERT_X_DIR false // set to true for stock drivers or TMC2208 with reversed connectors - #define INVERT_Y_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_Z_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - - // @section extruder - - // For direct drive extruder v9 set to true, for geared extruder set to false. - #if ENABLED(KNUTWURST_BMG) - #define INVERT_E0_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - #else - #define INVERT_E0_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #endif - - #define INVERT_E1_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_E2_DIR false - #define INVERT_E3_DIR false - #define INVERT_E4_DIR false - #define INVERT_E5_DIR false - #define INVERT_E6_DIR false - #define INVERT_E7_DIR false - #endif - - #if ENABLED(KNUTWURST_MEGA_P) - // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. - #define INVERT_X_DIR false // set to true for stock drivers or TMC2208 with reversed connectors - #define INVERT_Y_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_Z_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - - // @section extruder - - // For direct drive extruder v9 set to true, for geared extruder set to false. - #if ENABLED(KNUTWURST_BMG) - #define INVERT_E0_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #else - #define INVERT_E0_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - #endif - - #define INVERT_E1_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_E2_DIR false - #define INVERT_E3_DIR false - #define INVERT_E4_DIR false - #define INVERT_E5_DIR false - #define INVERT_E6_DIR false - #define INVERT_E7_DIR false - #endif - - #if ENABLED(KNUTWURST_CHIRON) - // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. - #define INVERT_X_DIR false // set to true for stock drivers or TMC2208 with reversed connectors - #define INVERT_Y_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_Z_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - - // @section extruder - - // For direct drive extruder v9 set to true, for geared extruder set to false. - #if ENABLED(KNUTWURST_BMG) - #define INVERT_E0_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - #else - #define INVERT_E0_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #endif - - #define INVERT_E1_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_E2_DIR false - #define INVERT_E3_DIR false - #define INVERT_E4_DIR false - #define INVERT_E5_DIR false - #define INVERT_E6_DIR false - #define INVERT_E7_DIR false - #endif - - #if ENABLED(KNUTWURST_4MAXP2) - // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. - #define INVERT_X_DIR false // set to true for stock drivers or TMC2208 with reversed connectors - #define INVERT_Y_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_Z_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - - // @section extruder - - // For direct drive extruder v9 set to true, for geared extruder set to false. - #if ENABLED(KNUTWURST_BMG) - #define INVERT_E0_DIR true // set to false for stock drivers or TMC2208 with reversed connectors - #else - #define INVERT_E0_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - #endif - #define INVERT_E1_DIR false // set to false for stock drivers or TMC2208 with reversed connectors - #define INVERT_E2_DIR false - #define INVERT_E3_DIR false - #define INVERT_E4_DIR false - #define INVERT_E5_DIR false - #define INVERT_E6_DIR false - #define INVERT_E7_DIR false - #endif -#endif // if ENABLED(KNUTWURST_TMC) +// 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 +#define INVERT_E4_DIR false +#define INVERT_E5_DIR false +#define INVERT_E6_DIR false +#define INVERT_E7_DIR false // @section homing @@ -2242,81 +1762,28 @@ // @section geometry // The size of the printable area -/* -#if ENABLED(KNUTWURST_MEGA) - #define X_BED_SIZE 215 - #define Y_BED_SIZE 215 - #define Z_MAX_POS 206 -#endif -*/ +#define X_BED_SIZE 210 +#define Y_BED_SIZE 210 -#if ENABLED(KNUTWURST_MEGA) - #define X_MIN_POS 0 - #define Y_MIN_POS 0 - #define Z_MIN_POS 0 - #define X_BED_SIZE 215 - #define Y_BED_SIZE 215 - #define Z_MAX_POS 206 - #define X_MAX_POS X_BED_SIZE - #define Y_MAX_POS Y_BED_SIZE -#endif - -#if ANY(KNUTWURST_MEGA_S, KNUTWURST_MEGA_P) - #define X_MIN_POS 0 - #define Y_MIN_POS 0 - #define Z_MIN_POS 0 - #define X_BED_SIZE 225 - #define Y_BED_SIZE 220 - #define Z_MAX_POS 210 - #define X_MAX_POS X_BED_SIZE - #define Y_MAX_POS Y_BED_SIZE -#endif - -#if ENABLED(KNUTWURST_MEGA_X) - #define X_MIN_POS 0 - #define Y_MIN_POS 0 - #define Z_MIN_POS 0 - #define X_BED_SIZE 310 - #define Y_BED_SIZE 310 - #define Z_MAX_POS 305 - #define X_MAX_POS X_BED_SIZE - #define Y_MAX_POS Y_BED_SIZE -#endif - -#if ENABLED(KNUTWURST_CHIRON) - #define X_MIN_POS -10 - #define Y_MIN_POS 0 - #define Z_MIN_POS 0 - #define X_BED_SIZE 400 - #define Y_BED_SIZE 400 - #define Z_MAX_POS 455 - #define X_MAX_POS X_BED_SIZE + 10 - #define Y_MAX_POS Y_BED_SIZE + 10 -#endif - -#if ENABLED(KNUTWURST_4MAXP2) - #define X_MIN_POS -6 - #define Y_MIN_POS 0 - #define Z_MIN_POS 0 - #define X_BED_SIZE 270 - #define Y_BED_SIZE 210 - #define Z_MAX_POS 190 - #define X_MAX_POS X_BED_SIZE - #define Y_MAX_POS Y_BED_SIZE -#endif - -// #define I_MIN_POS 0 -// #define I_MAX_POS 50 -// #define J_MIN_POS 0 -// #define J_MAX_POS 50 -// #define K_MIN_POS 0 -// #define K_MAX_POS 50 -// #define U_MIN_POS 0 -// #define U_MAX_POS 50 -// #define V_MIN_POS 0 -// #define V_MAX_POS 50 -// #define W_MIN_POS 0 -// #define W_MAX_POS 50 +// Travel limits (linear=mm, rotational=°) after homing, corresponding to endstop positions. +#define X_MIN_POS 0 +#define Y_MIN_POS 0 +#define Z_MIN_POS 0 +#define X_MAX_POS X_BED_SIZE +#define Y_MAX_POS Y_BED_SIZE +#define Z_MAX_POS 205 +//#define I_MIN_POS 0 +//#define I_MAX_POS 50 +//#define J_MIN_POS 0 +//#define J_MAX_POS 50 +//#define K_MIN_POS 0 +//#define K_MAX_POS 50 +//#define U_MIN_POS 0 +//#define U_MAX_POS 50 +//#define V_MIN_POS 0 +//#define V_MAX_POS 50 +//#define W_MIN_POS 0 +//#define W_MAX_POS 50 /** * Software Endstops @@ -2421,9 +1888,6 @@ // NOTE: After 'M412 H1' the host handles filament runout and this script does not apply. #define FILAMENT_RUNOUT_SCRIPT "M600" - // More relaxed threshold to prevent false-positive triggers (default: 5) - #define FILAMENT_RUNOUT_THRESHOLD 20 - // After a runout is detected, continue printing this length of filament // before executing the runout script. Useful for a sensor at the end of // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead. @@ -2475,34 +1939,28 @@ * 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. */ -#if EITHER(KNUTWURST_BLTOUCH, KNUTWURST_CHIRON) - // #define AUTO_BED_LEVELING_3POINT - // #define AUTO_BED_LEVELING_LINEAR +//#define AUTO_BED_LEVELING_3POINT +//#define AUTO_BED_LEVELING_LINEAR +#if ENABLED(I3MEGA_HAS_BLTOUCH) #define AUTO_BED_LEVELING_BILINEAR - // #define AUTO_BED_LEVELING_UBL - // #define MESH_BED_LEVELING #endif - -#if NONE(KNUTWURST_BLTOUCH, KNUTWURST_CHIRON) - // #define AUTO_BED_LEVELING_3POINT - // #define AUTO_BED_LEVELING_LINEAR - // #define AUTO_BED_LEVELING_BILINEAR - // #define AUTO_BED_LEVELING_UBL +//#define AUTO_BED_LEVELING_UBL +#if DISABLED(I3MEGA_HAS_BLTOUCH) #define MESH_BED_LEVELING -#endif /** * 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" +#endif /** * Normally G28 leaves leveling disabled on completion. Enable one of * these options to restore the prior leveling state or to always enable * leveling immediately after G28. */ -#define RESTORE_LEVELING_AFTER_G28 +//#define RESTORE_LEVELING_AFTER_G28 //#define ENABLE_LEVELING_AFTER_G28 /** @@ -2528,9 +1986,7 @@ * Turn on with the command 'M111 S32'. * NOTE: Requires a lot of flash! */ -#if ENABLED(KNUTWURST_DEBUG) - #define DEBUG_LEVELING_FEATURE -#endif +//#define DEBUG_LEVELING_FEATURE #if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL, PROBE_MANUALLY) // Set a height for the start of manual adjustment @@ -2545,7 +2001,7 @@ */ #define ENABLE_LEVELING_FADE_HEIGHT #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) - #define DEFAULT_LEVELING_FADE_HEIGHT 0.0 // (mm) Default fade height. + #define DEFAULT_LEVELING_FADE_HEIGHT 10.0 // (mm) Default fade height. #endif /** @@ -2563,7 +2019,7 @@ #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 G26. - #define MESH_TEST_HOTEND_TEMP 200 // (°C) Default nozzle temperature for G26. + #define MESH_TEST_HOTEND_TEMP 205 // (°C) Default nozzle temperature for G26. #define MESH_TEST_BED_TEMP 60 // (°C) Default bed temperature for G26. #define G26_XY_FEEDRATE 20 // (mm/s) Feedrate for G26 XY moves. #define G26_XY_FEEDRATE_TRAVEL 100 // (mm/s) Feedrate for G26 XY travel moves. @@ -2627,15 +2083,9 @@ //=================================== Mesh ================================== //=========================================================================== - #if ENABLED(KNUTWURST_CHIRON) - #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 - #else - #define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed - #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 - #endif + #define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed + #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 @@ -2712,10 +2162,7 @@ * - Allows Z homing only when XY positions are known and trusted. * - If stepper drivers sleep, XY homing may be required again before Z homing. */ -#if BOTH(KNUTWURST_BLTOUCH, KNUTWURST_4MAXP2) - #define Z_SAFE_HOMING -#endif - +//#define Z_SAFE_HOMING #if ENABLED(Z_SAFE_HOMING) #define Z_SAFE_HOMING_X_POINT X_CENTER // (mm) X point for Z homing @@ -2723,16 +2170,7 @@ #endif // Homing speeds (linear=mm/min, rotational=°/min) -#if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P) - #define HOMING_FEEDRATE_MM_M { (50 * 60), (50 * 60), (4 * 60) } -#elif ENABLED(KNUTWURST_MEGA_X) - #define HOMING_FEEDRATE_MM_M { (40 * 60), (40 * 60), (6 * 60) } -#elif ENABLED(KNUTWURST_CHIRON) - #define HOMING_FEEDRATE_MM_M { (30 * 60), (30 * 60), (6 * 60) } -#elif ENABLED(KNUTWURST_4MAXP2) - #define HOMING_FEEDRATE_MM_M { (40 * 60), (40 * 60), (4 * 60) } -#endif - +#define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (4*60) } // Validate that endstops are triggered on homing moves #define VALIDATE_HOMING_ENDSTOPS @@ -2813,9 +2251,9 @@ #define EEPROM_SETTINGS // Persistent storage with M500 and M501 //#define DISABLE_M503 // Saves ~2700 bytes of flash. Disable for release! #define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save flash. -//#define EEPROM_BOOT_SILENT // Keep M503 quiet and only give errors during first load +#define EEPROM_BOOT_SILENT // Keep M503 quiet and only give errors during first load #if ENABLED(EEPROM_SETTINGS) - #define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors. + //#define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors. //#define EEPROM_INIT_NOW // Init EEPROM on first boot after a new build. #endif @@ -2828,7 +2266,7 @@ // every couple of seconds when it can't accept commands. // #define HOST_KEEPALIVE_FEATURE // Disable this if your host doesn't like keepalive messages -#define DEFAULT_KEEPALIVE_INTERVAL 5 // Number of seconds between "busy" messages. Set with M113. +#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113. #define BUSY_WHILE_HEATING // Some hosts require "busy" messages even during heating // @section units @@ -2849,15 +2287,15 @@ // Preheat Constants - Up to 10 are supported without changes // #define PREHEAT_1_LABEL "PLA" -#define PREHEAT_1_TEMP_HOTEND 200 -#define PREHEAT_1_TEMP_BED 60 -//#define PREHEAT_1_TEMP_CHAMBER 35 +#define PREHEAT_1_TEMP_HOTEND 215 +#define PREHEAT_1_TEMP_BED 65 +#define PREHEAT_1_TEMP_CHAMBER 35 #define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_LABEL "ABS" -#define PREHEAT_2_TEMP_HOTEND 240 -#define PREHEAT_2_TEMP_BED 90 -//#define PREHEAT_2_TEMP_CHAMBER 35 +#define PREHEAT_2_TEMP_HOTEND 235 +#define PREHEAT_2_TEMP_BED 85 +#define PREHEAT_2_TEMP_CHAMBER 35 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 // @section motion @@ -3001,7 +2439,7 @@ * * View the current statistics with M78. */ -#define PRINTCOUNTER +//#define PRINTCOUNTER #if ENABLED(PRINTCOUNTER) #define PRINTCOUNTER_SAVE_INTERVAL 60 // (minutes) EEPROM save interval during print. A value of 0 will save stats at end of print. #endif @@ -3185,17 +2623,6 @@ // #define SPEAKER -// Play a (non-earpiercing) startup chime on startup/serial connection -// of the Trigorilla board -#define STARTUP_CHIME - -// -// ENDSTOP BEEP -// -// Short 2KHz beep when endstops are hit -// -// #define ENDSTOP_BEEP - // // The duration and frequency for the UI feedback sound. // Set these to 0 to disable audio feedback in the LCD menus. @@ -3645,10 +3072,11 @@ // // Touch-screen LCD for Anycubic printers // -//#define ANYCUBIC_LCD_I3MEGA +#define ANYCUBIC_LCD_I3MEGA //#define ANYCUBIC_LCD_CHIRON #if EITHER(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON) - //#define ANYCUBIC_LCD_DEBUG + #define LCD_SERIAL_PORT 3 + #define ANYCUBIC_LCD_DEBUG //#define ANYCUBIC_LCD_GCODE_EXT // Add ".gcode" to menu entries for DGUS clone compatibility #endif @@ -3661,7 +3089,7 @@ // Third-party or vendor-customized controller interfaces. // Sources should be installed in 'src/lcd/extui'. // -//#define EXTENSIBLE_UI +#define EXTENSIBLE_UI #if ENABLED(EXTENSIBLE_UI) //#define EXTUI_LOCAL_BEEPER // Enables use of local Beeper pin with external display @@ -3879,7 +3307,7 @@ // However, control resolution will be halved for each increment; // at zero value, there are 128 effective control positions. // :[0,1,2,3,4,5,6,7] -#define SOFT_PWM_SCALE 2 +#define SOFT_PWM_SCALE 0 // If SOFT_PWM_SCALE is set to a value higher than 0, dithering can // be used to mitigate the associated resolution loss. If enabled, @@ -3954,7 +3382,7 @@ #if ENABLED(NEOPIXEL_LED) #define NEOPIXEL_TYPE NEO_GRBW // NEO_GRBW, NEO_RGBW, NEO_GRB, NEO_RBG, etc. // See https://github.com/adafruit/Adafruit_NeoPixel/blob/master/Adafruit_NeoPixel.h - #define NEOPIXEL_PIN 4 // LED driving pin + //#define NEOPIXEL_PIN 4 // LED driving pin //#define NEOPIXEL2_TYPE NEOPIXEL_TYPE //#define NEOPIXEL2_PIN 5 #define NEOPIXEL_PIXELS 30 // Number of LEDs in the strip. (Longest strip when NEOPIXEL2_SEPARATE is disabled.) @@ -4004,9 +3432,7 @@ * Set this manually if there are extra servos needing manual control. * Set to 0 to turn off servo support. */ -#if ENABLED(KNUTWURST_CHIRON) - #define NUM_SERVOS 1 // Note: Servo index starts with 0 for M280-M282 commands -#endif +//#define NUM_SERVOS 3 // Note: Servo index starts with 0 for M280-M282 commands // (ms) Delay before the next move will start, to give the servo time to reach its target angle. // 300ms is a good value but you can try less delay. diff --git a/Anycubic_i3_MEGA_2.1.2.4/Marlin/Configuration_adv.h b/Anycubic_i3_MEGA_2.1.2.4/Marlin/Configuration_adv.h index 8364cea..aeb6bb5 100644 --- a/Anycubic_i3_MEGA_2.1.2.4/Marlin/Configuration_adv.h +++ b/Anycubic_i3_MEGA_2.1.2.4/Marlin/Configuration_adv.h @@ -21,6 +21,8 @@ */ #pragma once +#define CONFIG_EXAMPLES_DIR "config/examples/AnyCubic/i3 Mega/Trigorilla AVR" + /** * Configuration_adv.h * @@ -50,9 +52,6 @@ */ //#define CONFIG_EXPORT 2 // :[1:'JSON', 2:'config.ini', 3:'schema.json', 4:'schema.yml'] -#define KNUTWURST_MEGAS_ADV -#define KNUTWURST_TMC_ADV - //=========================================================================== //============================= Thermal Settings ============================ //=========================================================================== @@ -197,8 +196,6 @@ */ //#define HEPHESTOS2_HEATED_BED_KIT #if ENABLED(HEPHESTOS2_HEATED_BED_KIT) - #undef TEMP_SENSOR_BED - #define TEMP_SENSOR_BED 70 #define HEATER_BED_INVERTING true #endif @@ -301,61 +298,42 @@ * THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD */ #if ENABLED(THERMAL_PROTECTION_HOTENDS) - #if ENABLED(KNUTWURST_CHIRON) - #define THERMAL_PROTECTION_PERIOD 30 // (seconds) - #define THERMAL_PROTECTION_HYSTERESIS 20 // (°C) + #define THERMAL_PROTECTION_PERIOD 40 // (seconds) + #define THERMAL_PROTECTION_HYSTERESIS 4 // (°C) - #define WATCH_TEMP_PERIOD 60 // (seconds) - #define WATCH_TEMP_INCREASE 5 // (°C) - #else - #define THERMAL_PROTECTION_PERIOD 20 // (seconds) - #define THERMAL_PROTECTION_HYSTERESIS 15 // (°C) - - //#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops - #if BOTH(ADAPTIVE_FAN_SLOWING, PIDTEMP) - //#define NO_FAN_SLOWING_IN_PID_TUNING // Don't slow fan speed during M303 - #endif - - /** - * Whenever an M104, M109, or M303 increases the target temperature, the - * firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature - * hasn't increased by WATCH_TEMP_INCREASE degrees, the machine is halted and - * requires a hard reset. This test restarts with any M104/M109/M303, but only - * if the current temperature is far enough below the target for a reliable - * test. - * - * If you get false positives for "Heating failed", increase WATCH_TEMP_PERIOD - * and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set - * below 2. - */ - #define WATCH_TEMP_PERIOD 30 // (seconds) - #define WATCH_TEMP_INCREASE 3 // (°C) + //#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops + #if BOTH(ADAPTIVE_FAN_SLOWING, PIDTEMP) + //#define NO_FAN_SLOWING_IN_PID_TUNING // Don't slow fan speed during M303 #endif + + /** + * Whenever an M104, M109, or M303 increases the target temperature, the + * firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature + * hasn't increased by WATCH_TEMP_INCREASE degrees, the machine is halted and + * requires a hard reset. This test restarts with any M104/M109/M303, but only + * if the current temperature is far enough below the target for a reliable + * test. + * + * If you get false positives for "Heating failed", increase WATCH_TEMP_PERIOD + * and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set + * below 2. + */ + #define WATCH_TEMP_PERIOD 40 // (seconds) + #define WATCH_TEMP_INCREASE 2 // (°C) #endif /** * Thermal Protection parameters for the bed are just as above for hotends. */ #if ENABLED(THERMAL_PROTECTION_BED) - #if ENABLED(KNUTWURST_CHIRON) - #define THERMAL_PROTECTION_BED_PERIOD 120 // (seconds) - #define THERMAL_PROTECTION_BED_HYSTERESIS 15 // (°C) + #define THERMAL_PROTECTION_BED_PERIOD 20 // (seconds) + #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // (°C) - /** - * As described above, except for the bed (M140/M190/M303). - */ - #define WATCH_BED_TEMP_PERIOD 300 // (seconds) - #define WATCH_BED_TEMP_INCREASE 2 // (°C) - #else - #define THERMAL_PROTECTION_BED_PERIOD 30 // (seconds) - #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // (°C) - - /** - * As described above, except for the bed (M140/M190/M303). - */ - #define WATCH_BED_TEMP_PERIOD 120 // (seconds) - #define WATCH_BED_TEMP_INCREASE 2 // (°C) - #endif + /** + * As described above, except for the bed (M140/M190/M303). + */ + #define WATCH_BED_TEMP_PERIOD 60 // (seconds) + #define WATCH_BED_TEMP_INCREASE 2 // (°C) #endif /** @@ -501,11 +479,7 @@ // The number of consecutive low temperature errors that can occur // before a MINTEMP error is triggered. (Shouldn't be more than 10.) -#if ENABLED(KNUTWURST_CHIRON) - #define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 3 -#else - // #define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0 -#endif +//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0 /** * The number of milliseconds a hotend will preheat before starting to check @@ -730,15 +704,12 @@ * @section caselight * M355 Case Light on-off / brightness */ -#if ENABLED(KNUTWURST_4MAXP2) - #define CASE_LIGHT_ENABLE -#endif - +//#define CASE_LIGHT_ENABLE #if ENABLED(CASE_LIGHT_ENABLE) - #define CASE_LIGHT_PIN 45 // Override the default pin if needed + //#define CASE_LIGHT_PIN 4 // Override the default pin if needed #define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW #define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on - #define CASE_LIGHT_DEFAULT_BRIGHTNESS 255 // Set default power-up brightness (0-255, requires PWM pin) + #define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin) //#define CASE_LIGHT_NO_BRIGHTNESS // Disable brightness control. Enable for non-PWM lighting. //#define CASE_LIGHT_MAX_PWM 128 // Limit PWM duty cycle (0-255) //#define CASE_LIGHT_MENU // Add Case Light options to the LCD menu @@ -867,9 +838,7 @@ #ifdef Z2_DRIVER_TYPE //#define INVERT_Z2_VS_Z_DIR // Z2 direction signal is the opposite of Z - #if DISABLED(KNUTWURST_ONE_Z_ENDSTOP) - #define Z_MULTI_ENDSTOPS // Other Z axes have their own endstops - #endif + #define Z_MULTI_ENDSTOPS // Other Z axes have their own endstops #if ENABLED(Z_MULTI_ENDSTOPS) #define Z2_USE_ENDSTOP _XMAX_ // Z2 endstop board plug. Don't forget to enable USE_*_PLUG. #define Z2_ENDSTOP_ADJUSTMENT 0 // Z2 offset relative to Z endstop @@ -877,11 +846,7 @@ #ifdef Z3_DRIVER_TYPE //#define INVERT_Z3_VS_Z_DIR // Z3 direction signal is the opposite of Z #if ENABLED(Z_MULTI_ENDSTOPS) - #if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P, KNUTWURST_MEGA_X) - #define Z3_USE_ENDSTOP _YMAX_ // Z3 endstop board plug. Don't forget to enable USE_*_PLUG. - #elif ENABLED(KNUTWURST_CHIRON) - #define Z2_USE_ENDSTOP _XMAX_ - #endif + #define Z3_USE_ENDSTOP _YMAX_ // Z3 endstop board plug. Don't forget to enable USE_*_PLUG. #define Z3_ENDSTOP_ADJUSTMENT 0 // Z3 offset relative to Z endstop #endif #endif @@ -919,10 +884,8 @@ #define HOMING_BUMP_MM { 5, 5, 2 } // (linear=mm, rotational=°) Backoff from endstops after first bump #define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) -#if DISABLED(KNUTWURST_CHIRON) - #define HOMING_BACKOFF_POST_MM { 2, 2, 0 } // (linear=mm, rotational=°) Backoff from endstops after homing -#endif -// #define XY_COUNTERPART_BACKOFF_MM 0 // (mm) Backoff X after homing Y, and vice-versa +//#define HOMING_BACKOFF_POST_MM { 2, 2, 2 } // (linear=mm, rotational=°) Backoff from endstops after homing +//#define XY_COUNTERPART_BACKOFF_MM 0 // (mm) Backoff X after homing Y, and vice-versa //#define QUICK_HOME // If G28 contains XY do a diagonal move first //#define HOME_Y_BEFORE_X // If G28 contains XY home Y before X @@ -996,7 +959,7 @@ * * Set the default state here, change with 'M401 S' or UI, use M500 to save, M502 to reset. */ - #define BLTOUCH_HS_MODE false + //#define BLTOUCH_HS_MODE true #endif // BLTOUCH @@ -1523,12 +1486,12 @@ #endif // HAS_DISPLAY || DWIN_LCD_PROUI // Add 'M73' to set print job progress, overrides Marlin's built-in estimate -#define SET_PROGRESS_MANUALLY +//#define SET_PROGRESS_MANUALLY #if ENABLED(SET_PROGRESS_MANUALLY) #define SET_PROGRESS_PERCENT // Add 'P' parameter to set percentage done #define SET_REMAINING_TIME // Add 'R' parameter to set remaining time - #define SET_INTERACTION_TIME // Add 'C' parameter to set time until next filament change or other user interaction - #define M73_REPORT // Report M73 values to host + //#define SET_INTERACTION_TIME // Add 'C' parameter to set time until next filament change or other user interaction + //#define M73_REPORT // Report M73 values to host #if BOTH(M73_REPORT, SDSUPPORT) #define M73_REPORT_SD_ONLY // Report only when printing from SD #endif @@ -1575,12 +1538,12 @@ //#define SD_IGNORE_AT_STARTUP // Don't mount the SD card when starting up //#define SDCARD_READONLY // Read-only SD card (to save over 2K of flash) - #define GCODE_REPEAT_MARKERS // Enable G-code M808 to set repeat markers and do looping + //#define GCODE_REPEAT_MARKERS // Enable G-code M808 to set repeat markers and do looping #define SD_PROCEDURE_DEPTH 1 // Increase if you need more nested M32 calls #define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished - #define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // Use "M84XYE" to keep Z enabled so your bed stays in place + #define SD_FINISHED_RELEASECOMMAND "M84" // Use "M84XYE" to keep Z enabled so your bed stays in place // 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. @@ -1595,7 +1558,7 @@ //#define MEDIA_MENU_AT_TOP // Force the media menu to be listed on the top of the main menu - #define EVENT_GCODE_SD_ABORT "G27" // G-code to run on SD Abort Print (e.g., "G28XY" or "G27") + #define EVENT_GCODE_SD_ABORT "G28XY" // G-code to run on SD Abort Print (e.g., "G28XY" or "G27") #if ENABLED(PRINTER_EVENT_LEDS) #define PE_LEDS_COMPLETED_TIME (30*60) // (seconds) Time to keep the LED "done" color before restoring normal illumination @@ -1655,15 +1618,15 @@ * - 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 + //#define SDCARD_SORT_ALPHA // SD Card Sorting options #if ENABLED(SDCARD_SORT_ALPHA) - #define SDSORT_LIMIT 20 // Maximum number of sorted items (10-256). Costs 27 bytes each. + #define SDSORT_LIMIT 40 // Maximum number of sorted items (10-256). Costs 27 bytes each. #define SDSORT_FOLDERS -1 // -1=above 0=none 1=below #define SDSORT_GCODE false // Enable G-code M34 to set sorting behaviors: M34 S<-1|0|1> F<-1|0|1> - #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_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_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. @@ -2102,11 +2065,11 @@ * * Warning: Does not respect endstops! */ -#define BABYSTEPPING +//#define BABYSTEPPING #if ENABLED(BABYSTEPPING) //#define INTEGRATED_BABYSTEPPING // EXPERIMENTAL integration of babystepping into the Stepper ISR //#define BABYSTEP_WITHOUT_HOMING - #define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement) + //#define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement) //#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_MILLIMETER_UNITS // Specify BABYSTEP_MULTIPLICATOR_(XY|Z) in mm instead of micro-steps @@ -2125,10 +2088,7 @@ //#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 - #if ENABLED(KNUTWURST_BLTOUCH) - #define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping - #endif - + //#define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping #if ENABLED(BABYSTEP_ZPROBE_OFFSET) //#define BABYSTEP_HOTEND_Z_OFFSET // For multiple hotends, babystep relative Z offsets //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor @@ -2155,9 +2115,9 @@ #define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) #if ENABLED(DISTINCT_E_FACTORS) - #define ADVANCE_K { 0.0 } // (mm) Compression length per 1mm/s extruder speed, per extruder + #define ADVANCE_K { 0.22 } // (mm) Compression length per 1mm/s extruder speed, per extruder #else - #define ADVANCE_K 0.0 // (mm) Compression length applying to all extruders + #define ADVANCE_K 0.22 // (mm) Compression length applying to all extruders #endif //#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L. //#define LA_DEBUG // Print debug information to serial during operation. Disable for production use. @@ -2214,21 +2174,19 @@ * probe points will follow. This prevents any change from causing * the probe to be unable to reach any points. */ -#if ENABLED(KNUTWURST_BLTOUCH) - #if PROBE_SELECTED && !IS_KINEMATIC - #define PROBING_MARGIN_LEFT 10 - #define PROBING_MARGIN_RIGHT 10 - #define PROBING_MARGIN_FRONT 10 - #define PROBING_MARGIN_BACK 10 - #endif +#if PROBE_SELECTED && !IS_KINEMATIC + //#define PROBING_MARGIN_LEFT PROBING_MARGIN + //#define PROBING_MARGIN_RIGHT PROBING_MARGIN + //#define PROBING_MARGIN_FRONT PROBING_MARGIN + //#define PROBING_MARGIN_BACK PROBING_MARGIN #endif #if EITHER(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL) // Override the mesh area if the automatic (max) area is too large - #define MESH_MIN_X MESH_INSET - #define MESH_MIN_Y MESH_INSET - #define MESH_MAX_X X_BED_SIZE - (MESH_INSET) - #define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET) + //#define MESH_MIN_X MESH_INSET + //#define MESH_MIN_Y MESH_INSET + //#define MESH_MAX_X X_BED_SIZE - (MESH_INSET) + //#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET) #endif #if BOTH(AUTO_BED_LEVELING_UBL, EEPROM_SETTINGS) @@ -2338,7 +2296,7 @@ #define MIN_CIRCLE_SEGMENTS 72 // Minimum number of segments in a complete circle //#define ARC_SEGMENTS_PER_SEC 50 // Use the feedrate to choose the segment length #define N_ARC_CORRECTION 25 // Number of interpolated segments between corrections - #define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles + //#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles //#define SF_ARC_FIX // Enable only if using SkeinForge with "Arc Point" fillet procedure #endif @@ -2390,10 +2348,8 @@ * * Override the default value based on the driver type set in Configuration.h. */ -#if NONE(KNUTWURST_MEGA_P, KNUTWURST_TMC) - // #define MINIMUM_STEPPER_POST_DIR_DELAY 200 - // #define MINIMUM_STEPPER_PRE_DIR_DELAY 200 -#endif +//#define MINIMUM_STEPPER_POST_DIR_DELAY 650 +//#define MINIMUM_STEPPER_PRE_DIR_DELAY 650 /** * Minimum stepper driver pulse width (in µs) @@ -2406,9 +2362,8 @@ * * Override the default value based on the driver type set in Configuration.h. */ -#if NONE(KNUTWURST_MEGA_P, KNUTWURST_TMC) - // #define MINIMUM_STEPPER_PULSE 1 -#endif +//#define MINIMUM_STEPPER_PULSE 2 + /** * Maximum stepping rate (in Hz) the stepper driver allows * If undefined, defaults to 1MHz / (2 * MINIMUM_STEPPER_PULSE) @@ -2434,20 +2389,6 @@ // @section gcode -/* -#if ENABLED(KNUTWURST_CHIRON) - #if ENABLED(SDSUPPORT) - #define BLOCK_BUFFER_SIZE 8 // SD,LCD,Buttons take more memory, block buffer needs to be smaller - #else - #define BLOCK_BUFFER_SIZE 16 // maximize block buffer - #endif - - #define MAX_CMD_SIZE 96 - #define BUFSIZE 4 - #define TX_BUFFER_SIZE 0 - #define RX_BUFFER_SIZE 64 -#else -*/ // The number of linear moves that can be in the planner at once. // The value of BLOCK_BUFFER_SIZE must be a power of 2 (e.g., 8, 16, 32) #if BOTH(SDSUPPORT, DIRECT_STEPPING) @@ -2471,19 +2412,18 @@ // For debug-echo: 128 bytes for the optimal speed. // Other output doesn't need to be that speedy. // :[0, 2, 4, 8, 16, 32, 64, 128, 256] -#define TX_BUFFER_SIZE 0 +#define TX_BUFFER_SIZE 4 // Host Receive Buffer Size // Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough. // To use flow control, set this buffer size to at least 1024 bytes. // :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048] #define RX_BUFFER_SIZE 256 -// #endif #if RX_BUFFER_SIZE >= 1024 // Enable to have the controller send XON/XOFF control characters to // the host to signal the RX buffer is becoming full. - #define SERIAL_XON_XOFF + //#define SERIAL_XON_XOFF #endif #if ENABLED(SDSUPPORT) @@ -2711,74 +2651,31 @@ */ #define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #if ENABLED(KNUTWURST_4MAXP2) - #define PAUSE_PARK_RETRACT_FEEDRATE 40 // (mm/s) Initial retract feedrate. - #define PAUSE_PARK_RETRACT_LENGTH 4 // (mm) Initial retract. - // This short retract is done immediately, before parking the nozzle. - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 30 // (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 5 // (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 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 10 // (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. - #endif - - #if ENABLED(KNUTWURST_CHIRON) - #define PAUSE_PARK_RETRACT_FEEDRATE 40 // (mm/s) Initial retract feedrate. - #define PAUSE_PARK_RETRACT_LENGTH 4 // (mm) Initial retract. - // This short retract is done immediately, before parking the nozzle. - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 30 // (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 5 // (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 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 550 // (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. - #endif - - #if NONE(KNUTWURST_CHIRON, KNUTWURST_4MAXP2) - #define PAUSE_PARK_RETRACT_FEEDRATE 40 // (mm/s) Initial retract feedrate. - #define PAUSE_PARK_RETRACT_LENGTH 4 // (mm) Initial retract. - // This short retract is done immediately, before parking the nozzle. - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 30 // (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 555 // (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 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 538 // (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. - #endif - - #define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. - #define ADVANCED_PAUSE_PURGE_FEEDRATE 2 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. - #define ADVANCED_PAUSE_PURGE_LENGTH 2 // (mm) Length to extrude after loading. + #define PAUSE_PARK_RETRACT_FEEDRATE 50 // (mm/s) Initial retract feedrate. + #define PAUSE_PARK_RETRACT_LENGTH 2 // (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_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 555 // (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_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. + #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 538 // (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 60 // (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. - //#define ADVANCED_PAUSE_RESUME_PRIME 0 // (mm) Extra distance to prime nozzle after returning from park. - #define ADVANCED_PAUSE_FANS_PAUSE // Turn off print-cooling fans while the machine is paused. + #define ADVANCED_PAUSE_RESUME_PRIME 2 // (mm) Extra distance to prime nozzle after returning from park. + //#define ADVANCED_PAUSE_FANS_PAUSE // Turn off print-cooling fans while the machine is paused. // Filament Unload does a Retract, Delay, and Purge first: #define FILAMENT_UNLOAD_PURGE_RETRACT 13 // (mm) Unload initial retract length. @@ -2786,11 +2683,11 @@ #define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged. #define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 // (mm/s) feedrate to purge before unload - #define PAUSE_PARK_NOZZLE_TIMEOUT 300 // (seconds) Time limit before the nozzle is turned off for safety. + #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 PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. //#define FILAMENT_CHANGE_RESUME_ON_INSERT // Automatically continue / load filament when runout sensor is triggered again. - #define PAUSE_REHEAT_FAST_RESUME // Reduce number of waits by not prompting again post-timeout before continuing. + //#define PAUSE_REHEAT_FAST_RESUME // Reduce number of waits by not prompting again post-timeout before continuing. #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change @@ -3100,28 +2997,28 @@ * Set *_SERIAL_TX_PIN and *_SERIAL_RX_PIN to match for all drivers * on the same serial port, either here or in your board's pins file. */ - #define X_SLAVE_ADDRESS 0 - #define Y_SLAVE_ADDRESS 0 - #define Z_SLAVE_ADDRESS 0 - #define X2_SLAVE_ADDRESS 0 - #define Y2_SLAVE_ADDRESS 0 - #define Z2_SLAVE_ADDRESS 0 - #define Z3_SLAVE_ADDRESS 0 - #define Z4_SLAVE_ADDRESS 0 - #define I_SLAVE_ADDRESS 0 - #define J_SLAVE_ADDRESS 0 - #define K_SLAVE_ADDRESS 0 - #define U_SLAVE_ADDRESS 0 - #define V_SLAVE_ADDRESS 0 - #define W_SLAVE_ADDRESS 0 - #define E0_SLAVE_ADDRESS 0 - #define E1_SLAVE_ADDRESS 0 - #define E2_SLAVE_ADDRESS 0 - #define E3_SLAVE_ADDRESS 0 - #define E4_SLAVE_ADDRESS 0 - #define E5_SLAVE_ADDRESS 0 - #define E6_SLAVE_ADDRESS 0 - #define E7_SLAVE_ADDRESS 0 + //#define X_SLAVE_ADDRESS 0 + //#define Y_SLAVE_ADDRESS 0 + //#define Z_SLAVE_ADDRESS 0 + //#define X2_SLAVE_ADDRESS 0 + //#define Y2_SLAVE_ADDRESS 0 + //#define Z2_SLAVE_ADDRESS 0 + //#define Z3_SLAVE_ADDRESS 0 + //#define Z4_SLAVE_ADDRESS 0 + //#define I_SLAVE_ADDRESS 0 + //#define J_SLAVE_ADDRESS 0 + //#define K_SLAVE_ADDRESS 0 + //#define U_SLAVE_ADDRESS 0 + //#define V_SLAVE_ADDRESS 0 + //#define W_SLAVE_ADDRESS 0 + //#define E0_SLAVE_ADDRESS 0 + //#define E1_SLAVE_ADDRESS 0 + //#define E2_SLAVE_ADDRESS 0 + //#define E3_SLAVE_ADDRESS 0 + //#define E4_SLAVE_ADDRESS 0 + //#define E5_SLAVE_ADDRESS 0 + //#define E6_SLAVE_ADDRESS 0 + //#define E7_SLAVE_ADDRESS 0 // @section tmc/smart @@ -3434,15 +3331,8 @@ * * See https://marlinfw.org/docs/configuration/2.0.9/laser_spindle.html for more config details. */ -// #define SPINDLE_FEATURE - -#if ENABLED(KNUTWURST_MEGA_P) - #define LASER_FEATURE - - #define SPINDLE_LASER_ENA_PIN 40 // D40 should be unused. The laser is only connected to the PWM output. - #define SPINDLE_LASER_PWM_PIN HEATER_0_PIN -#endif - +//#define SPINDLE_FEATURE +//#define LASER_FEATURE #if EITHER(SPINDLE_FEATURE, LASER_FEATURE) #define SPINDLE_LASER_ACTIVE_STATE LOW // Set to "HIGH" if SPINDLE_LASER_ENA_PIN is active HIGH @@ -3801,8 +3691,8 @@ /** * Support for MeatPack G-code compression (https://github.com/scottmudge/OctoPrint-MeatPack) */ -#define MEATPACK_ON_SERIAL_PORT_1 -#define MEATPACK_ON_SERIAL_PORT_2 +//#define MEATPACK_ON_SERIAL_PORT_1 +//#define MEATPACK_ON_SERIAL_PORT_2 //#define GCODE_CASE_INSENSITIVE // Accept G-code sent to the firmware in lowercase @@ -3875,17 +3765,17 @@ #define MAIN_MENU_ITEM_2_GCODE "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND) //#define MAIN_MENU_ITEM_2_CONFIRM - #define MAIN_MENU_ITEM_3_DESC "Preheat for " PREHEAT_2_LABEL - #define MAIN_MENU_ITEM_3_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND) - // #define MAIN_MENU_ITEM_3_CONFIRM + //#define MAIN_MENU_ITEM_3_DESC "Preheat for " PREHEAT_2_LABEL + //#define MAIN_MENU_ITEM_3_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND) + //#define MAIN_MENU_ITEM_3_CONFIRM - #define MAIN_MENU_ITEM_4_DESC "Heat Bed/Home/Level" - #define MAIN_MENU_ITEM_4_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29" - // #define MAIN_MENU_ITEM_4_CONFIRM + //#define MAIN_MENU_ITEM_4_DESC "Heat Bed/Home/Level" + //#define MAIN_MENU_ITEM_4_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29" + //#define MAIN_MENU_ITEM_4_CONFIRM - #define MAIN_MENU_ITEM_5_DESC "Home & Info" - #define MAIN_MENU_ITEM_5_GCODE "G28\nM503" - // #define MAIN_MENU_ITEM_5_CONFIRM + //#define MAIN_MENU_ITEM_5_DESC "Home & Info" + //#define MAIN_MENU_ITEM_5_GCODE "G28\nM503" + //#define MAIN_MENU_ITEM_5_CONFIRM #endif // @section custom config menu @@ -3971,10 +3861,10 @@ */ #define HOST_ACTION_COMMANDS #if ENABLED(HOST_ACTION_COMMANDS) - #define HOST_PAUSE_M76 // Tell the host to pause in response to M76 + //#define HOST_PAUSE_M76 // Tell the host to pause in response to M76 #define HOST_PROMPT_SUPPORT // Initiate host prompts to get user feedback #if ENABLED(HOST_PROMPT_SUPPORT) - #define HOST_STATUS_NOTIFICATIONS // Send some status messages to the host as notifications + //#define HOST_STATUS_NOTIFICATIONS // Send some status messages to the host as notifications #endif //#define HOST_START_MENU_ITEM // Add a menu item that tells the host to start //#define HOST_SHUTDOWN_MENU_ITEM // Add a menu item that tells the host to shut down diff --git a/Anycubic_i3_MEGA_2.1.2.4/Marlin/boards.h b/Anycubic_i3_MEGA_2.1.2.4/Marlin/boards.h new file mode 100644 index 0000000..1e2f5bc --- /dev/null +++ b/Anycubic_i3_MEGA_2.1.2.4/Marlin/boards.h @@ -0,0 +1,507 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 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 . + * + */ +#pragma once + +/** + * Whenever changes are made to this file, please update Marlin/Makefile + * and _data/boards.yml in the MarlinDocumentation repo. + */ + +#include "macros.h" + +#define BOARD_UNKNOWN -1 + +// +// RAMPS 1.3 / 1.4 - ATmega1280, ATmega2560 +// + +#define BOARD_RAMPS_OLD 1000 // MEGA/RAMPS up to 1.2 + +#define BOARD_RAMPS_13_EFB 1010 // RAMPS 1.3 (Power outputs: Hotend, Fan, Bed) +#define BOARD_RAMPS_13_EEB 1011 // RAMPS 1.3 (Power outputs: Hotend0, Hotend1, Bed) +#define BOARD_RAMPS_13_EFF 1012 // RAMPS 1.3 (Power outputs: Hotend, Fan0, Fan1) +#define BOARD_RAMPS_13_EEF 1013 // RAMPS 1.3 (Power outputs: Hotend0, Hotend1, Fan) +#define BOARD_RAMPS_13_SF 1014 // RAMPS 1.3 (Power outputs: Spindle, Controller Fan) + +#define BOARD_RAMPS_14_EFB 1020 // RAMPS 1.4 (Power outputs: Hotend, Fan, Bed) +#define BOARD_RAMPS_14_EEB 1021 // RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Bed) +#define BOARD_RAMPS_14_EFF 1022 // RAMPS 1.4 (Power outputs: Hotend, Fan0, Fan1) +#define BOARD_RAMPS_14_EEF 1023 // RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Fan) +#define BOARD_RAMPS_14_SF 1024 // RAMPS 1.4 (Power outputs: Spindle, Controller Fan) + +#define BOARD_RAMPS_PLUS_EFB 1030 // RAMPS Plus 3DYMY (Power outputs: Hotend, Fan, Bed) +#define BOARD_RAMPS_PLUS_EEB 1031 // RAMPS Plus 3DYMY (Power outputs: Hotend0, Hotend1, Bed) +#define BOARD_RAMPS_PLUS_EFF 1032 // RAMPS Plus 3DYMY (Power outputs: Hotend, Fan0, Fan1) +#define BOARD_RAMPS_PLUS_EEF 1033 // RAMPS Plus 3DYMY (Power outputs: Hotend0, Hotend1, Fan) +#define BOARD_RAMPS_PLUS_SF 1034 // RAMPS Plus 3DYMY (Power outputs: Spindle, Controller Fan) + +// +// RAMPS Derivatives - ATmega1280, ATmega2560 +// + +#define BOARD_3DRAG 1100 // 3Drag Controller +#define BOARD_K8200 1101 // Velleman K8200 Controller (derived from 3Drag Controller) +#define BOARD_K8400 1102 // Velleman K8400 Controller (derived from 3Drag Controller) +#define BOARD_K8600 1103 // Velleman K8600 Controller (Vertex Nano) +#define BOARD_K8800 1104 // Velleman K8800 Controller (Vertex Delta) +#define BOARD_BAM_DICE 1105 // 2PrintBeta BAM&DICE with STK drivers +#define BOARD_BAM_DICE_DUE 1106 // 2PrintBeta BAM&DICE Due with STK drivers +#define BOARD_MKS_BASE 1107 // MKS BASE v1.0 +#define BOARD_MKS_BASE_14 1108 // MKS BASE v1.4 with Allegro A4982 stepper drivers +#define BOARD_MKS_BASE_15 1109 // MKS BASE v1.5 with Allegro A4982 stepper drivers +#define BOARD_MKS_BASE_16 1110 // MKS BASE v1.6 with Allegro A4982 stepper drivers +#define BOARD_MKS_BASE_HEROIC 1111 // MKS BASE 1.0 with Heroic HR4982 stepper drivers +#define BOARD_MKS_GEN_13 1112 // MKS GEN v1.3 or 1.4 +#define BOARD_MKS_GEN_L 1113 // MKS GEN L +#define BOARD_KFB_2 1114 // BigTreeTech or BIQU KFB2.0 +#define BOARD_ZRIB_V20 1115 // zrib V2.0 (Chinese RAMPS replica) +#define BOARD_ZRIB_V52 1116 // zrib V5.2 (Chinese RAMPS replica) +#define BOARD_FELIX2 1117 // Felix 2.0+ Electronics Board (RAMPS like) +#define BOARD_RIGIDBOARD 1118 // Invent-A-Part RigidBoard +#define BOARD_RIGIDBOARD_V2 1119 // Invent-A-Part RigidBoard V2 +#define BOARD_SAINSMART_2IN1 1120 // Sainsmart 2-in-1 board +#define BOARD_ULTIMAKER 1121 // Ultimaker +#define BOARD_ULTIMAKER_OLD 1122 // Ultimaker (Older electronics. Pre 1.5.4. This is rare) +#define BOARD_AZTEEG_X3 1123 // Azteeg X3 +#define BOARD_AZTEEG_X3_PRO 1124 // Azteeg X3 Pro +#define BOARD_ULTIMAIN_2 1125 // Ultimainboard 2.x (Uses TEMP_SENSOR 20) +#define BOARD_RUMBA 1126 // Rumba +#define BOARD_RUMBA_RAISE3D 1127 // Raise3D N series Rumba derivative +#define BOARD_RL200 1128 // Rapide Lite 200 (v1, low-cost RUMBA clone with drv) +#define BOARD_FORMBOT_TREX2PLUS 1129 // Formbot T-Rex 2 Plus +#define BOARD_FORMBOT_TREX3 1130 // Formbot T-Rex 3 +#define BOARD_FORMBOT_RAPTOR 1131 // Formbot Raptor +#define BOARD_FORMBOT_RAPTOR2 1132 // Formbot Raptor 2 +#define BOARD_BQ_ZUM_MEGA_3D 1133 // bq ZUM Mega 3D +#define BOARD_MAKEBOARD_MINI 1134 // MakeBoard Mini v2.1.2 by MicroMake +#define BOARD_TRIGORILLA_13 1135 // TriGorilla Anycubic version 1.3-based on RAMPS EFB +#define BOARD_TRIGORILLA_14 1136 // ... Ver 1.4 +#define BOARD_TRIGORILLA_14_11 1137 // ... Rev 1.1 (new servo pin order) +#define BOARD_RAMPS_ENDER_4 1138 // Creality: Ender-4, CR-8 +#define BOARD_RAMPS_CREALITY 1139 // Creality: CR10S, CR20, CR-X +#define BOARD_DAGOMA_F5 1140 // Dagoma F5 +#define BOARD_FYSETC_F6_13 1141 // FYSETC F6 1.3 +#define BOARD_FYSETC_F6_14 1142 // FYSETC F6 1.4 +#define BOARD_DUPLICATOR_I3_PLUS 1143 // Wanhao Duplicator i3 Plus +#define BOARD_VORON 1144 // VORON Design +#define BOARD_TRONXY_V3_1_0 1145 // Tronxy TRONXY-V3-1.0 +#define BOARD_Z_BOLT_X_SERIES 1146 // Z-Bolt X Series +#define BOARD_TT_OSCAR 1147 // TT OSCAR +#define BOARD_OVERLORD 1148 // Overlord/Overlord Pro +#define BOARD_HJC2560C_REV1 1149 // ADIMLab Gantry v1 +#define BOARD_HJC2560C_REV2 1150 // ADIMLab Gantry v2 +#define BOARD_TANGO 1151 // BIQU Tango V1 +#define BOARD_MKS_GEN_L_V2 1152 // MKS GEN L V2 +#define BOARD_MKS_GEN_L_V21 1153 // MKS GEN L V2.1 +#define BOARD_COPYMASTER_3D 1154 // Copymaster 3D +#define BOARD_ORTUR_4 1155 // Ortur 4 +#define BOARD_TENLOG_D3_HERO 1156 // Tenlog D3 Hero IDEX printer +#define BOARD_TENLOG_MB1_V23 1157 // Tenlog D3, D5, D6 IDEX Printer +#define BOARD_RAMPS_S_12_EEFB 1158 // Ramps S 1.2 by Sakul.cz (Power outputs: Hotend0, Hotend1, Fan, Bed) +#define BOARD_RAMPS_S_12_EEEB 1159 // Ramps S 1.2 by Sakul.cz (Power outputs: Hotend0, Hotend1, Hotend2, Bed) +#define BOARD_RAMPS_S_12_EFFB 1160 // Ramps S 1.2 by Sakul.cz (Power outputs: Hotend, Fan0, Fan1, Bed) +#define BOARD_LONGER3D_LK1_PRO 1161 // Longer LK1 PRO / Alfawise U20 Pro (PRO version) +#define BOARD_LONGER3D_LKx_PRO 1162 // Longer LKx PRO / Alfawise Uxx Pro (PRO version) +#define BOARD_ZRIB_V53 1163 // Zonestar zrib V5.3 (Chinese RAMPS replica) +#define BOARD_PXMALION_CORE_I3 1164 // Pxmalion Core I3 +// PATCH START: Knutwurst +#define BOARD_TRIGORILLA_CHIRON 1165 // TriGorilla Anycubic version 1.4 based on RAMPS EFB for Chiron +// PATCH END: Knutwurst + +// +// RAMBo and derivatives +// + +#define BOARD_RAMBO 1200 // Rambo +#define BOARD_MINIRAMBO 1201 // Mini-Rambo +#define BOARD_MINIRAMBO_10A 1202 // Mini-Rambo 1.0a +#define BOARD_EINSY_RAMBO 1203 // Einsy Rambo +#define BOARD_EINSY_RETRO 1204 // Einsy Retro +#define BOARD_SCOOVO_X9H 1205 // abee Scoovo X9H +#define BOARD_RAMBO_THINKERV2 1206 // ThinkerV2 + +// +// Other ATmega1280, ATmega2560 +// + +#define BOARD_CNCONTROLS_11 1300 // Cartesio CN Controls V11 +#define BOARD_CNCONTROLS_12 1301 // Cartesio CN Controls V12 +#define BOARD_CNCONTROLS_15 1302 // Cartesio CN Controls V15 +#define BOARD_CHEAPTRONIC 1303 // Cheaptronic v1.0 +#define BOARD_CHEAPTRONIC_V2 1304 // Cheaptronic v2.0 +#define BOARD_MIGHTYBOARD_REVE 1305 // Makerbot Mightyboard Revision E +#define BOARD_MEGATRONICS 1306 // Megatronics +#define BOARD_MEGATRONICS_2 1307 // Megatronics v2.0 +#define BOARD_MEGATRONICS_3 1308 // Megatronics v3.0 +#define BOARD_MEGATRONICS_31 1309 // Megatronics v3.1 +#define BOARD_MEGATRONICS_32 1310 // Megatronics v3.2 +#define BOARD_ELEFU_3 1311 // Elefu Ra Board (v3) +#define BOARD_LEAPFROG 1312 // Leapfrog +#define BOARD_MEGACONTROLLER 1313 // Mega controller +#define BOARD_GT2560_REV_A 1314 // Geeetech GT2560 Rev A +#define BOARD_GT2560_REV_A_PLUS 1315 // Geeetech GT2560 Rev A+ (with auto level probe) +#define BOARD_GT2560_REV_B 1316 // Geeetech GT2560 Rev B +#define BOARD_GT2560_V3 1317 // Geeetech GT2560 Rev B for A10(M/T/D) +#define BOARD_GT2560_V4 1318 // Geeetech GT2560 Rev B for A10(M/T/D) +#define BOARD_GT2560_V3_MC2 1319 // Geeetech GT2560 Rev B for Mecreator2 +#define BOARD_GT2560_V3_A20 1320 // Geeetech GT2560 Rev B for A20(M/T/D) +#define BOARD_EINSTART_S 1321 // Einstart retrofit +#define BOARD_WANHAO_ONEPLUS 1322 // Wanhao 0ne+ i3 Mini +#define BOARD_LEAPFROG_XEED2015 1323 // Leapfrog Xeed 2015 +#define BOARD_PICA_REVB 1324 // PICA Shield (original version) +#define BOARD_PICA 1325 // PICA Shield (rev C or later) +#define BOARD_INTAMSYS40 1326 // Intamsys 4.0 (Funmat HT) +#define BOARD_MALYAN_M180 1327 // Malyan M180 Mainboard Version 2 (no display function, direct G-code only) +#define BOARD_GT2560_V4_A20 1328 // Geeetech GT2560 Rev B for A20(M/T/D) +#define BOARD_PROTONEER_CNC_SHIELD_V3 1329 // Mega controller & Protoneer CNC Shield V3.00 +#define BOARD_WEEDO_62A 1330 // WEEDO 62A board (TINA2, Monoprice Cadet, etc.) + +// +// ATmega1281, ATmega2561 +// + +#define BOARD_MINITRONICS 1400 // Minitronics v1.0/1.1 +#define BOARD_SILVER_GATE 1401 // Silvergate v1.0 + +// +// Sanguinololu and Derivatives - ATmega644P, ATmega1284P +// + +#define BOARD_SANGUINOLOLU_11 1500 // Sanguinololu < 1.2 +#define BOARD_SANGUINOLOLU_12 1501 // Sanguinololu 1.2 and above +#define BOARD_MELZI 1502 // Melzi +#define BOARD_MELZI_V2 1503 // Melzi V2 +#define BOARD_MELZI_MAKR3D 1504 // Melzi with ATmega1284 (MaKr3d version) +#define BOARD_MELZI_CREALITY 1505 // Melzi Creality3D (for CR-10 etc) +#define BOARD_MELZI_MALYAN 1506 // Melzi Malyan M150 +#define BOARD_MELZI_TRONXY 1507 // Tronxy X5S +#define BOARD_STB_11 1508 // STB V1.1 +#define BOARD_AZTEEG_X1 1509 // Azteeg X1 +#define BOARD_ANET_10 1510 // Anet 1.0 (Melzi clone) +#define BOARD_ZMIB_V2 1511 // ZoneStar ZMIB V2 + +// +// Other ATmega644P, ATmega644, ATmega1284P +// + +#define BOARD_GEN3_MONOLITHIC 1600 // Gen3 Monolithic Electronics +#define BOARD_GEN3_PLUS 1601 // Gen3+ +#define BOARD_GEN6 1602 // Gen6 +#define BOARD_GEN6_DELUXE 1603 // Gen6 deluxe +#define BOARD_GEN7_CUSTOM 1604 // Gen7 custom (Alfons3 Version) https://github.com/Alfons3/Generation_7_Electronics +#define BOARD_GEN7_12 1605 // Gen7 v1.1, v1.2 +#define BOARD_GEN7_13 1606 // Gen7 v1.3 +#define BOARD_GEN7_14 1607 // Gen7 v1.4 +#define BOARD_OMCA_A 1608 // Alpha OMCA +#define BOARD_OMCA 1609 // Final OMCA +#define BOARD_SETHI 1610 // Sethi 3D_1 + +// +// Teensyduino - AT90USB1286, AT90USB1286P +// + +#define BOARD_TEENSYLU 1700 // Teensylu +#define BOARD_PRINTRBOARD 1701 // Printrboard (AT90USB1286) +#define BOARD_PRINTRBOARD_REVF 1702 // Printrboard Revision F (AT90USB1286) +#define BOARD_BRAINWAVE 1703 // Brainwave (AT90USB646) +#define BOARD_BRAINWAVE_PRO 1704 // Brainwave Pro (AT90USB1286) +#define BOARD_SAV_MKI 1705 // SAV Mk-I (AT90USB1286) +#define BOARD_TEENSY2 1706 // Teensy++2.0 (AT90USB1286) +#define BOARD_5DPRINT 1707 // 5DPrint D8 Driver Board + +// +// LPC1768 ARM Cortex-M3 +// + +#define BOARD_RAMPS_14_RE_ARM_EFB 2000 // Re-ARM with RAMPS 1.4 (Power outputs: Hotend, Fan, Bed) +#define BOARD_RAMPS_14_RE_ARM_EEB 2001 // Re-ARM with RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Bed) +#define BOARD_RAMPS_14_RE_ARM_EFF 2002 // Re-ARM with RAMPS 1.4 (Power outputs: Hotend, Fan0, Fan1) +#define BOARD_RAMPS_14_RE_ARM_EEF 2003 // Re-ARM with RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Fan) +#define BOARD_RAMPS_14_RE_ARM_SF 2004 // Re-ARM with RAMPS 1.4 (Power outputs: Spindle, Controller Fan) +#define BOARD_MKS_SBASE 2005 // MKS-Sbase +#define BOARD_AZSMZ_MINI 2006 // AZSMZ Mini +#define BOARD_BIQU_BQ111_A4 2007 // BIQU BQ111-A4 +#define BOARD_SELENA_COMPACT 2008 // Selena Compact +#define BOARD_BIQU_B300_V1_0 2009 // BIQU B300_V1.0 +#define BOARD_MKS_SGEN_L 2010 // MKS-SGen-L +#define BOARD_GMARSH_X6_REV1 2011 // GMARSH X6, revision 1 prototype +#define BOARD_BTT_SKR_V1_1 2012 // BigTreeTech SKR v1.1 +#define BOARD_BTT_SKR_V1_3 2013 // BigTreeTech SKR v1.3 +#define BOARD_BTT_SKR_V1_4 2014 // BigTreeTech SKR v1.4 +#define BOARD_EMOTRONIC 2015 // eMotion-Tech eMotronic + +// +// LPC1769 ARM Cortex-M3 +// + +#define BOARD_MKS_SGEN 2500 // MKS-SGen +#define BOARD_AZTEEG_X5_GT 2501 // Azteeg X5 GT +#define BOARD_AZTEEG_X5_MINI 2502 // Azteeg X5 Mini +#define BOARD_AZTEEG_X5_MINI_WIFI 2503 // Azteeg X5 Mini Wifi +#define BOARD_COHESION3D_REMIX 2504 // Cohesion3D ReMix +#define BOARD_COHESION3D_MINI 2505 // Cohesion3D Mini +#define BOARD_SMOOTHIEBOARD 2506 // Smoothieboard +#define BOARD_TH3D_EZBOARD 2507 // TH3D EZBoard v1.0 +#define BOARD_BTT_SKR_V1_4_TURBO 2508 // BigTreeTech SKR v1.4 TURBO +#define BOARD_MKS_SGEN_L_V2 2509 // MKS SGEN_L V2 +#define BOARD_BTT_SKR_E3_TURBO 2510 // BigTreeTech SKR E3 Turbo +#define BOARD_FLY_CDY 2511 // FLYmaker FLY CDY + +// +// SAM3X8E ARM Cortex-M3 +// + +#define BOARD_DUE3DOM 3000 // DUE3DOM for Arduino DUE +#define BOARD_DUE3DOM_MINI 3001 // DUE3DOM MINI for Arduino DUE +#define BOARD_RADDS 3002 // RADDS +#define BOARD_RAMPS_FD_V1 3003 // RAMPS-FD v1 +#define BOARD_RAMPS_FD_V2 3004 // RAMPS-FD v2 +#define BOARD_RAMPS_SMART_EFB 3005 // RAMPS-SMART (Power outputs: Hotend, Fan, Bed) +#define BOARD_RAMPS_SMART_EEB 3006 // RAMPS-SMART (Power outputs: Hotend0, Hotend1, Bed) +#define BOARD_RAMPS_SMART_EFF 3007 // RAMPS-SMART (Power outputs: Hotend, Fan0, Fan1) +#define BOARD_RAMPS_SMART_EEF 3008 // RAMPS-SMART (Power outputs: Hotend0, Hotend1, Fan) +#define BOARD_RAMPS_SMART_SF 3009 // RAMPS-SMART (Power outputs: Spindle, Controller Fan) +#define BOARD_RAMPS_DUO_EFB 3010 // RAMPS Duo (Power outputs: Hotend, Fan, Bed) +#define BOARD_RAMPS_DUO_EEB 3011 // RAMPS Duo (Power outputs: Hotend0, Hotend1, Bed) +#define BOARD_RAMPS_DUO_EFF 3012 // RAMPS Duo (Power outputs: Hotend, Fan0, Fan1) +#define BOARD_RAMPS_DUO_EEF 3013 // RAMPS Duo (Power outputs: Hotend0, Hotend1, Fan) +#define BOARD_RAMPS_DUO_SF 3014 // RAMPS Duo (Power outputs: Spindle, Controller Fan) +#define BOARD_RAMPS4DUE_EFB 3015 // RAMPS4DUE (Power outputs: Hotend, Fan, Bed) +#define BOARD_RAMPS4DUE_EEB 3016 // RAMPS4DUE (Power outputs: Hotend0, Hotend1, Bed) +#define BOARD_RAMPS4DUE_EFF 3017 // RAMPS4DUE (Power outputs: Hotend, Fan0, Fan1) +#define BOARD_RAMPS4DUE_EEF 3018 // RAMPS4DUE (Power outputs: Hotend0, Hotend1, Fan) +#define BOARD_RAMPS4DUE_SF 3019 // RAMPS4DUE (Power outputs: Spindle, Controller Fan) +#define BOARD_RURAMPS4D_11 3020 // RuRAMPS4Duo v1.1 +#define BOARD_RURAMPS4D_13 3021 // RuRAMPS4Duo v1.3 +#define BOARD_ULTRATRONICS_PRO 3022 // ReprapWorld Ultratronics Pro V1.0 +#define BOARD_ARCHIM1 3023 // UltiMachine Archim1 (with DRV8825 drivers) +#define BOARD_ARCHIM2 3024 // UltiMachine Archim2 (with TMC2130 drivers) +#define BOARD_ALLIGATOR 3025 // Alligator Board R2 +#define BOARD_CNCONTROLS_15D 3026 // Cartesio CN Controls V15 on DUE +#define BOARD_KRATOS32 3027 // K.3D Kratos32 (Arduino Due Shield) + +// +// SAM3X8C ARM Cortex-M3 +// + +#define BOARD_PRINTRBOARD_G2 3100 // Printrboard G2 +#define BOARD_ADSK 3101 // Arduino DUE Shield Kit (ADSK) + +// +// STM32 ARM Cortex-M0+ +// + +#define BOARD_BTT_EBB42_V1_1 4000 // BigTreeTech EBB42 V1.1 (STM32G0B1CB) +#define BOARD_BTT_SKR_MINI_E3_V3_0 4001 // BigTreeTech SKR Mini E3 V3.0 (STM32G0B0RE / STM32G0B1RE) +#define BOARD_BTT_MANTA_E3_EZ_V1_0 4002 // BigTreeTech Manta E3 EZ V1.0 (STM32G0B1RE) +#define BOARD_BTT_MANTA_M4P_V2_1 4003 // BigTreeTech Manta M4P V2.1 (STM32G0B0RE) +#define BOARD_BTT_MANTA_M5P_V1_0 4004 // BigTreeTech Manta M5P V1.0 (STM32G0B1RE) +#define BOARD_BTT_MANTA_M8P_V1_0 4005 // BigTreeTech Manta M8P V1.0 (STM32G0B1VE) +#define BOARD_BTT_MANTA_M8P_V1_1 4006 // BigTreeTech Manta M8P V1.1 (STM32G0B1VE) + +// +// STM32 ARM Cortex-M3 +// + +#define BOARD_MALYAN_M200_V2 5000 // STM32F070CB controller +#define BOARD_MALYAN_M300 5001 // STM32F070-based delta +#define BOARD_STM32F103RE 5002 // STM32F103RE Libmaple-based STM32F1 controller +#define BOARD_MALYAN_M200 5003 // STM32C8 Libmaple-based STM32F1 controller +#define BOARD_STM3R_MINI 5004 // STM32F103RE Libmaple-based STM32F1 controller +#define BOARD_GTM32_PRO_VB 5005 // STM32F103VE controller +#define BOARD_GTM32_MINI 5006 // STM32F103VE controller +#define BOARD_GTM32_MINI_A30 5007 // STM32F103VE controller +#define BOARD_GTM32_REV_B 5008 // STM32F103VE controller +#define BOARD_MORPHEUS 5009 // STM32F103C8 / STM32F103CB Libmaple-based STM32F1 controller +#define BOARD_CHITU3D 5010 // Chitu3D (STM32F103RE) +#define BOARD_MKS_ROBIN 5011 // MKS Robin (STM32F103ZE) +#define BOARD_MKS_ROBIN_MINI 5012 // MKS Robin Mini (STM32F103VE) +#define BOARD_MKS_ROBIN_NANO 5013 // MKS Robin Nano (STM32F103VE) +#define BOARD_MKS_ROBIN_NANO_V2 5014 // MKS Robin Nano V2 (STM32F103VE) +#define BOARD_MKS_ROBIN_LITE 5015 // MKS Robin Lite/Lite2 (STM32F103RC) +#define BOARD_MKS_ROBIN_LITE3 5016 // MKS Robin Lite3 (STM32F103RC) +#define BOARD_MKS_ROBIN_PRO 5017 // MKS Robin Pro (STM32F103ZE) +#define BOARD_MKS_ROBIN_E3 5018 // MKS Robin E3 (STM32F103RC) +#define BOARD_MKS_ROBIN_E3_V1_1 5019 // MKS Robin E3 V1.1 (STM32F103RC) +#define BOARD_MKS_ROBIN_E3D 5020 // MKS Robin E3D (STM32F103RC) +#define BOARD_MKS_ROBIN_E3D_V1_1 5021 // MKS Robin E3D V1.1 (STM32F103RC) +#define BOARD_MKS_ROBIN_E3P 5022 // MKS Robin E3P (STM32F103VE) +#define BOARD_BTT_SKR_MINI_V1_1 5023 // BigTreeTech SKR Mini v1.1 (STM32F103RC) +#define BOARD_BTT_SKR_MINI_E3_V1_0 5024 // BigTreeTech SKR Mini E3 (STM32F103RC) +#define BOARD_BTT_SKR_MINI_E3_V1_2 5025 // BigTreeTech SKR Mini E3 V1.2 (STM32F103RC) +#define BOARD_BTT_SKR_MINI_E3_V2_0 5026 // BigTreeTech SKR Mini E3 V2.0 (STM32F103RC / STM32F103RE) +#define BOARD_BTT_SKR_MINI_MZ_V1_0 5027 // BigTreeTech SKR Mini MZ V1.0 (STM32F103RC) +#define BOARD_BTT_SKR_E3_DIP 5028 // BigTreeTech SKR E3 DIP V1.0 (STM32F103RC / STM32F103RE) +#define BOARD_BTT_SKR_CR6 5029 // BigTreeTech SKR CR6 v1.0 (STM32F103RE) +#define BOARD_JGAURORA_A5S_A1 5030 // JGAurora A5S A1 (STM32F103ZE) +#define BOARD_FYSETC_AIO_II 5031 // FYSETC AIO_II (STM32F103RC) +#define BOARD_FYSETC_CHEETAH 5032 // FYSETC Cheetah (STM32F103RC) +#define BOARD_FYSETC_CHEETAH_V12 5033 // FYSETC Cheetah V1.2 (STM32F103RC) +#define BOARD_LONGER3D_LK 5034 // Longer3D LK1/2 - Alfawise U20/U20+/U30 (STM32F103VE) +#define BOARD_CCROBOT_MEEB_3DP 5035 // ccrobot-online.com MEEB_3DP (STM32F103RC) +#define BOARD_CHITU3D_V5 5036 // Chitu3D TronXY X5SA V5 Board (STM32F103ZE) +#define BOARD_CHITU3D_V6 5037 // Chitu3D TronXY X5SA V6 Board (STM32F103ZE) +#define BOARD_CHITU3D_V9 5038 // Chitu3D TronXY X5SA V9 Board (STM32F103ZE) +#define BOARD_CREALITY_V4 5039 // Creality v4.x (STM32F103RC / STM32F103RE) +#define BOARD_CREALITY_V422 5040 // Creality v4.2.2 (STM32F103RC / STM32F103RE) +#define BOARD_CREALITY_V423 5041 // Creality v4.2.3 (STM32F103RC / STM32F103RE) +#define BOARD_CREALITY_V425 5042 // Creality v4.2.5 (STM32F103RC / STM32F103RE) +#define BOARD_CREALITY_V427 5043 // Creality v4.2.7 (STM32F103RC / STM32F103RE) +#define BOARD_CREALITY_V4210 5044 // Creality v4.2.10 (STM32F103RC / STM32F103RE) as found in the CR-30 +#define BOARD_CREALITY_V431 5045 // Creality v4.3.1 (STM32F103RC / STM32F103RE) +#define BOARD_CREALITY_V431_A 5046 // Creality v4.3.1a (STM32F103RC / STM32F103RE) +#define BOARD_CREALITY_V431_B 5047 // Creality v4.3.1b (STM32F103RC / STM32F103RE) +#define BOARD_CREALITY_V431_C 5048 // Creality v4.3.1c (STM32F103RC / STM32F103RE) +#define BOARD_CREALITY_V431_D 5049 // Creality v4.3.1d (STM32F103RC / STM32F103RE) +#define BOARD_CREALITY_V452 5050 // Creality v4.5.2 (STM32F103RC / STM32F103RE) +#define BOARD_CREALITY_V453 5051 // Creality v4.5.3 (STM32F103RC / STM32F103RE) +#define BOARD_CREALITY_V521 5052 // Creality v5.2.1 (STM32F103VE) as found in the SV04 +#define BOARD_CREALITY_V24S1 5053 // Creality v2.4.S1 (STM32F103RC / STM32F103RE) v101 as found in the Ender-7 +#define BOARD_CREALITY_V24S1_301 5054 // Creality v2.4.S1_301 (STM32F103RC / STM32F103RE) v301 as found in the Ender-3 S1 +#define BOARD_CREALITY_V25S1 5055 // Creality v2.5.S1 (STM32F103RE) as found in the CR-10 Smart Pro +#define BOARD_TRIGORILLA_PRO 5056 // Trigorilla Pro (STM32F103ZE) +#define BOARD_FLY_MINI 5057 // FLYmaker FLY MINI (STM32F103RC) +#define BOARD_FLSUN_HISPEED 5058 // FLSUN HiSpeedV1 (STM32F103VE) +#define BOARD_BEAST 5059 // STM32F103RE Libmaple-based controller +#define BOARD_MINGDA_MPX_ARM_MINI 5060 // STM32F103ZE Mingda MD-16 +#define BOARD_GTM32_PRO_VD 5061 // STM32F103VE controller +#define BOARD_ZONESTAR_ZM3E2 5062 // Zonestar ZM3E2 (STM32F103RC) +#define BOARD_ZONESTAR_ZM3E4 5063 // Zonestar ZM3E4 V1 (STM32F103VC) +#define BOARD_ZONESTAR_ZM3E4V2 5064 // Zonestar ZM3E4 V2 (STM32F103VC) +#define BOARD_ERYONE_ERY32_MINI 5065 // Eryone Ery32 mini (STM32F103VE) +#define BOARD_PANDA_PI_V29 5066 // Panda Pi V2.9 - Standalone (STM32F103RC) +#define BOARD_SOVOL_V131 5067 // Sovol V1.3.1 (GD32F103RE) + +// +// ARM Cortex-M4F +// + +#define BOARD_TEENSY31_32 5100 // Teensy3.1 and Teensy3.2 +#define BOARD_TEENSY35_36 5101 // Teensy3.5 and Teensy3.6 + +// +// STM32 ARM Cortex-M4F +// + +#define BOARD_ARMED 5200 // Arm'ed STM32F4-based controller +#define BOARD_RUMBA32_V1_0 5201 // RUMBA32 STM32F446VE based controller from Aus3D +#define BOARD_RUMBA32_V1_1 5202 // RUMBA32 STM32F446VE based controller from Aus3D +#define BOARD_RUMBA32_MKS 5203 // RUMBA32 STM32F446VE based controller from Makerbase +#define BOARD_RUMBA32_BTT 5204 // RUMBA32 STM32F446VE based controller from BIGTREETECH +#define BOARD_BLACK_STM32F407VE 5205 // BLACK_STM32F407VE +#define BOARD_BLACK_STM32F407ZE 5206 // BLACK_STM32F407ZE +#define BOARD_BTT_SKR_MINI_E3_V3_0_1 5207 // BigTreeTech SKR Mini E3 V3.0.1 (STM32F401RC) +#define BOARD_BTT_SKR_PRO_V1_1 5208 // BigTreeTech SKR Pro v1.1 (STM32F407ZG) +#define BOARD_BTT_SKR_PRO_V1_2 5209 // BigTreeTech SKR Pro v1.2 (STM32F407ZG) +#define BOARD_BTT_BTT002_V1_0 5210 // BigTreeTech BTT002 v1.0 (STM32F407VG) +#define BOARD_BTT_E3_RRF 5211 // BigTreeTech E3 RRF (STM32F407VG) +#define BOARD_BTT_SKR_V2_0_REV_A 5212 // BigTreeTech SKR v2.0 Rev A (STM32F407VG) +#define BOARD_BTT_SKR_V2_0_REV_B 5213 // BigTreeTech SKR v2.0 Rev B (STM32F407VG/STM32F429VG) +#define BOARD_BTT_GTR_V1_0 5214 // BigTreeTech GTR v1.0 (STM32F407IGT) +#define BOARD_BTT_OCTOPUS_V1_0 5215 // BigTreeTech Octopus v1.0 (STM32F446ZE) +#define BOARD_BTT_OCTOPUS_V1_1 5216 // BigTreeTech Octopus v1.1 (STM32F446ZE) +#define BOARD_BTT_OCTOPUS_PRO_V1_0 5217 // BigTreeTech Octopus Pro v1.0 (STM32F446ZE / STM32F429ZG) +#define BOARD_LERDGE_K 5218 // Lerdge K (STM32F407ZG) +#define BOARD_LERDGE_S 5219 // Lerdge S (STM32F407VE) +#define BOARD_LERDGE_X 5220 // Lerdge X (STM32F407VE) +#define BOARD_FYSETC_S6 5221 // FYSETC S6 (STM32F446VE) +#define BOARD_FYSETC_S6_V2_0 5222 // FYSETC S6 v2.0 (STM32F446VE) +#define BOARD_FYSETC_SPIDER 5223 // FYSETC Spider (STM32F446VE) +#define BOARD_FLYF407ZG 5224 // FLYmaker FLYF407ZG (STM32F407ZG) +#define BOARD_MKS_ROBIN2 5225 // MKS Robin2 V1.0 (STM32F407ZE) +#define BOARD_MKS_ROBIN_PRO_V2 5226 // MKS Robin Pro V2 (STM32F407VE) +#define BOARD_MKS_ROBIN_NANO_V3 5227 // MKS Robin Nano V3 (STM32F407VG) +#define BOARD_MKS_ROBIN_NANO_V3_1 5228 // MKS Robin Nano V3.1 (STM32F407VE) +#define BOARD_MKS_MONSTER8_V1 5229 // MKS Monster8 V1 (STM32F407VE) +#define BOARD_MKS_MONSTER8_V2 5230 // MKS Monster8 V2 (STM32F407VE) +#define BOARD_ANET_ET4 5231 // ANET ET4 V1.x (STM32F407VG) +#define BOARD_ANET_ET4P 5232 // ANET ET4P V1.x (STM32F407VG) +#define BOARD_FYSETC_CHEETAH_V20 5233 // FYSETC Cheetah V2.0 (STM32F401RC) +#define BOARD_TH3D_EZBOARD_V2 5234 // TH3D EZBoard v2.0 (STM32F405RG) +#define BOARD_OPULO_LUMEN_REV3 5235 // Opulo Lumen PnP Controller REV3 (STM32F407VE / STM32F407VG) +#define BOARD_MKS_ROBIN_NANO_V1_3_F4 5236 // MKS Robin Nano V1.3 and MKS Robin Nano-S V1.3 (STM32F407VE) +#define BOARD_MKS_EAGLE 5237 // MKS Eagle (STM32F407VE) +#define BOARD_ARTILLERY_RUBY 5238 // Artillery Ruby (STM32F401RC) +#define BOARD_FYSETC_SPIDER_V2_2 5239 // FYSETC Spider V2.2 (STM32F446VE) +#define BOARD_CREALITY_V24S1_301F4 5240 // Creality v2.4.S1_301F4 (STM32F401RC) as found in the Ender-3 S1 F4 +#define BOARD_OPULO_LUMEN_REV4 5241 // Opulo Lumen PnP Controller REV4 (STM32F407VE / STM32F407VG) +#define BOARD_FYSETC_SPIDER_KING407 5242 // FYSETC Spider King407 (STM32F407ZG) +#define BOARD_MKS_SKIPR_V1 5243 // MKS SKIPR v1.0 all-in-one board (STM32F407VE) +#define BOARD_TRONXY_V10 5244 // TRONXY V10 (STM32F446ZE) + +// +// ARM Cortex-M7 +// + +#define BOARD_REMRAM_V1 6000 // RemRam v1 +#define BOARD_TEENSY41 6001 // Teensy 4.1 +#define BOARD_T41U5XBB 6002 // T41U5XBB Teensy 4.1 breakout board +#define BOARD_NUCLEO_F767ZI 6003 // ST NUCLEO-F767ZI Dev Board +#define BOARD_BTT_SKR_SE_BX_V2 6004 // BigTreeTech SKR SE BX V2.0 (STM32H743II) +#define BOARD_BTT_SKR_SE_BX_V3 6005 // BigTreeTech SKR SE BX V3.0 (STM32H743II) +#define BOARD_BTT_SKR_V3_0 6006 // BigTreeTech SKR V3.0 (STM32H743VI / STM32H723VG) +#define BOARD_BTT_SKR_V3_0_EZ 6007 // BigTreeTech SKR V3.0 EZ (STM32H743VI / STM32H723VG) +#define BOARD_BTT_OCTOPUS_MAX_EZ_V1_0 6008 // BigTreeTech Octopus Max EZ V1.0 (STM32H723ZE) + +// +// Espressif ESP32 WiFi +// + +#define BOARD_ESPRESSIF_ESP32 7000 // Generic ESP32 +#define BOARD_MRR_ESPA 7001 // MRR ESPA based on ESP32 (native pins only) +#define BOARD_MRR_ESPE 7002 // MRR ESPE based on ESP32 (with I2S stepper stream) +#define BOARD_E4D_BOX 7003 // E4d@BOX +#define BOARD_RESP32_CUSTOM 7004 // Rutilea ESP32 custom board +#define BOARD_FYSETC_E4 7005 // FYSETC E4 +#define BOARD_PANDA_ZHU 7006 // Panda_ZHU +#define BOARD_PANDA_M4 7007 // Panda_M4 +#define BOARD_MKS_TINYBEE 7008 // MKS TinyBee based on ESP32 (with I2S stepper stream) +#define BOARD_ENWI_ESPNP 7009 // enwi ESPNP based on ESP32 (with I2S stepper stream) + +// +// SAMD51 ARM Cortex-M4 +// + +#define BOARD_AGCM4_RAMPS_144 7100 // RAMPS 1.4.4 +#define BOARD_BRICOLEMON_V1_0 7101 // Bricolemon +#define BOARD_BRICOLEMON_LITE_V1_0 7102 // Bricolemon Lite + +// +// SAMD21 ARM Cortex-M4 +// + +#define BOARD_MINITRONICS20 7103 // Minitronics v2.0 + +// +// Custom board +// + +#define BOARD_CUSTOM 9998 // Custom pins definition for development and/or rare boards + +// +// Simulations +// + +#define BOARD_SIMULATED 9999 + +#define _MB_1(B) (defined(BOARD_##B) && MOTHERBOARD==BOARD_##B) +#define MB(V...) DO(MB,||,V)