From 32f10f6693f98804cc44c82b5fc63514658fac7c Mon Sep 17 00:00:00 2001 From: Dmitriy Pleshevskiy Date: Tue, 5 Dec 2023 11:14:43 +0300 Subject: [PATCH] initial commit --- Creality-Ender3-V2/Configuration.h | 3166 ++++++++++++ Creality-Ender3-V2/Configuration_adv.h | 4356 +++++++++++++++++ Creality-Ender3-V2/DWIN_SET/0T5UIC1.HZK | Bin 0 -> 125440 bytes Creality-Ender3-V2/DWIN_SET/0_start.jpg | Bin 0 -> 14172 bytes Creality-Ender3-V2/DWIN_SET/1_English.jpg | Bin 0 -> 32581 bytes Creality-Ender3-V2/DWIN_SET/2_Chinese.jpg | Bin 0 -> 32457 bytes Creality-Ender3-V2/DWIN_SET/3.ICO | Bin 0 -> 30763 bytes Creality-Ender3-V2/DWIN_SET/3_bg.jpg | Bin 0 -> 5217 bytes Creality-Ender3-V2/DWIN_SET/4.ICO | Bin 0 -> 92780 bytes Creality-Ender3-V2/DWIN_SET/7.ICO | Bin 0 -> 217989 bytes Creality-Ender3-V2/DWIN_SET/T5UIC1.CFG | Bin 0 -> 16 bytes .../DWIN_SET/T5UIC1_V20_4页面_191022.BIN | Bin 0 -> 17937 bytes .../firmwares/firmware-20231205-015843.bin | Bin 0 -> 170904 bytes Makefile | 13 + 14 files changed, 7535 insertions(+) create mode 100644 Creality-Ender3-V2/Configuration.h create mode 100644 Creality-Ender3-V2/Configuration_adv.h create mode 100755 Creality-Ender3-V2/DWIN_SET/0T5UIC1.HZK create mode 100755 Creality-Ender3-V2/DWIN_SET/0_start.jpg create mode 100755 Creality-Ender3-V2/DWIN_SET/1_English.jpg create mode 100755 Creality-Ender3-V2/DWIN_SET/2_Chinese.jpg create mode 100755 Creality-Ender3-V2/DWIN_SET/3.ICO create mode 100755 Creality-Ender3-V2/DWIN_SET/3_bg.jpg create mode 100755 Creality-Ender3-V2/DWIN_SET/4.ICO create mode 100755 Creality-Ender3-V2/DWIN_SET/7.ICO create mode 100755 Creality-Ender3-V2/DWIN_SET/T5UIC1.CFG create mode 100755 Creality-Ender3-V2/DWIN_SET/T5UIC1_V20_4页面_191022.BIN create mode 100755 Creality-Ender3-V2/firmwares/firmware-20231205-015843.bin create mode 100644 Makefile diff --git a/Creality-Ender3-V2/Configuration.h b/Creality-Ender3-V2/Configuration.h new file mode 100644 index 0000000..4c4124e --- /dev/null +++ b/Creality-Ender3-V2/Configuration.h @@ -0,0 +1,3166 @@ +/** + * 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 + +#define CONFIG_EXAMPLES_DIR "config/examples/Creality/Ender-3 V2/CrealityV422/MarlinUI" + +/** + * Configuration.h + * + * Basic settings such as: + * + * - Type of electronics + * - Type of temperature sensor + * - Printer geometry + * - Endstop configuration + * - LCD controller + * - Extra features + * + * Advanced settings can be found in Configuration_adv.h + */ +#define CONFIGURATION_H_VERSION 02000905 + +//=========================================================================== +//============================= Getting Started ============================= +//=========================================================================== + +/** + * Here are some useful links to help get your machine configured and calibrated: + * + * Example Configs: https://github.com/MarlinFirmware/Configurations/branches/all + * + * Průša Calculator: https://blog.prusaprinters.org/calculator_3416/ + * + * Calibration Guides: https://reprap.org/wiki/Calibration + * https://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide + * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap + * https://youtu.be/wAL9d7FgInk + * + * Calibration Objects: https://www.thingiverse.com/thing:5573 + * https://www.thingiverse.com/thing:1278865 + */ + +// @section info + +// Author info of this build printed to the host during boot and M115 +#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes. +//#define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes) + +/** + * *** VENDORS PLEASE READ *** + * + * Marlin allows you to add a custom boot image for Graphical LCDs. + * With this option Marlin will first show your custom screen followed + * by the standard Marlin logo with version number and web URL. + * + * We encourage you to take advantage of this new feature and we also + * respectfully request that you retain the unmodified Marlin boot screen. + */ + +// Show the Marlin bootscreen on startup. ** ENABLE FOR PRODUCTION ** +#define SHOW_BOOTSCREEN + +// Show the bitmap in Marlin/_Bootscreen.h on startup. +//#define SHOW_CUSTOM_BOOTSCREEN + +// Show the bitmap in Marlin/_Statusscreen.h on the status screen. +//#define CUSTOM_STATUS_SCREEN_IMAGE + +// @section machine + +// Choose the name from boards.h that matches your setup +#ifndef MOTHERBOARD + #define MOTHERBOARD BOARD_CREALITY_V4 +#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. + * Serial port -1 is the USB emulated serial port, if available. + * Note: The first serial port (-1 or 0) will always be used by the Arduino bootloader. + * + * :[-1, 0, 1, 2, 3, 4, 5, 6, 7] + */ +#define SERIAL_PORT 1 + +/** + * Serial Port Baud Rate + * This is the default communication speed for all serial ports. + * Set the baud rate defaults for additional serial ports below. + * + * 250000 works in most cases, but you might try a lower speed if + * you commonly experience drop-outs during host printing. + * You may try up to 1000000 to speed up SD file transfer. + * + * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] + */ +#define BAUDRATE 115200 +//#define BAUD_RATE_GCODE // Enable G-code M575 to set the baud rate + +/** + * 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 -1 +//#define BAUDRATE_2 250000 // Enable to override BAUDRATE + +/** + * Select a third serial port on the board to use for communication with the host. + * Currently only supported for AVR, DUE, LPC1768/9 and STM32/STM32F1 + * :[-1, 0, 1, 2, 3, 4, 5, 6, 7] + */ +//#define SERIAL_PORT_3 1 +//#define BAUDRATE_3 250000 // Enable to override BAUDRATE + +// Enable the Bluetooth serial interface on AT90USB devices +//#define BLUETOOTH + +// Name displayed in the LCD "Ready" message and Info menu +#define CUSTOM_MACHINE_NAME "CE3 V2" + +// 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 +#define MACHINE_UUID "c238a83a-ee2a-4fd9-984a-d6961f4fc82f" + +/** + * Stepper Drivers + * + * These settings allow Marlin to tune stepper driver timing and enable advanced options for + * stepper drivers that support them. You may also override timing options in Configuration_adv.h. + * + * Use TMC2208/TMC2208_STANDALONE for TMC2225 drivers and TMC2209/TMC2209_STANDALONE for TMC2226 drivers. + * + * Options: A4988, A5984, DRV8825, LV8729, L6470, L6474, POWERSTEP01, + * 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 + * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', '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'] + */ +#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 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 E0_DRIVER_TYPE TMC2208_STANDALONE +//#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 + +/** + * Additional Axis Settings + * + * AXISn_NAME defines the letter used to refer to the axis in (most) G-code commands. + * By convention the names and roles are typically: + * 'A' : Rotational axis parallel to X + * 'B' : Rotational axis parallel to Y + * 'C' : Rotational axis parallel to Z + * 'U' : Secondary linear axis parallel to X + * 'V' : Secondary linear axis parallel to Y + * 'W' : Secondary linear axis parallel to Z + * + * Regardless of these settings the axes are internally named I, J, K. + */ +#ifdef I_DRIVER_TYPE + #define AXIS4_NAME 'A' // :['A', 'B', 'C', 'U', 'V', 'W'] +#endif +#ifdef J_DRIVER_TYPE + #define AXIS5_NAME 'B' // :['B', 'C', 'U', 'V', 'W'] +#endif +#ifdef K_DRIVER_TYPE + #define AXIS6_NAME 'C' // :['C', 'U', 'V', 'W'] +#endif + +// @section extruder + +// This defines the number of extruders +// :[0, 1, 2, 3, 4, 5, 6, 7, 8] +#define EXTRUDERS 1 + +// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc. +#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 + +// For Cyclops or any "multi-extruder" that shares a single nozzle. +//#define SINGLENOZZLE + +// Save and restore temperature and fan speed on tool-change. +// Set standby for the unselected tool with M104/106/109 T... +#if ENABLED(SINGLENOZZLE) + //#define SINGLENOZZLE_STANDBY_TEMP + //#define SINGLENOZZLE_STANDBY_FAN +#endif + +/** + * Multi-Material Unit + * Set to one of these predefined models: + * + * PRUSA_MMU1 : Průša MMU1 (The "multiplexer" version) + * PRUSA_MMU2 : Průša MMU2 + * PRUSA_MMU2S : Průša MMU2S (Requires MK3S extruder with motion sensor, EXTRUDERS = 5) + * EXTENDABLE_EMU_MMU2 : MMU with configurable number of filaments (ERCF, SMuFF or similar with Průša MMU2 compatible firmware) + * EXTENDABLE_EMU_MMU2S : MMUS with configurable number of filaments (ERCF, SMuFF or similar with Průša MMU2 compatible firmware) + * + * Requires NOZZLE_PARK_FEATURE to park print head in case MMU unit fails. + * See additional options in Configuration_adv.h. + */ +//#define MMU_MODEL PRUSA_MMU2 + +// A dual extruder that uses a single stepper motor +//#define SWITCHING_EXTRUDER +#if ENABLED(SWITCHING_EXTRUDER) + #define SWITCHING_EXTRUDER_SERVO_NR 0 + #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1[, E2, E3] + #if EXTRUDERS > 3 + #define SWITCHING_EXTRUDER_E23_SERVO_NR 1 + #endif +#endif + +// A dual-nozzle that uses a servomotor to raise/lower one (or both) of the nozzles +//#define SWITCHING_NOZZLE +#if ENABLED(SWITCHING_NOZZLE) + #define SWITCHING_NOZZLE_SERVO_NR 0 + //#define SWITCHING_NOZZLE_E1_SERVO_NR 1 // If two servos are used, the index of the second + #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1 (single servo) or lowered/raised (dual servo) +#endif + +/** + * Two separate X-carriages with extruders that connect to a moving part + * via a solenoid docking mechanism. Requires SOL1_PIN and SOL2_PIN. + */ +//#define PARKING_EXTRUDER + +/** + * Two separate X-carriages with extruders that connect to a moving part + * via a magnetic docking mechanism using movements and no solenoid + * + * project : https://www.thingiverse.com/thing:3080893 + * movements : https://youtu.be/0xCEiG9VS3k + * https://youtu.be/Bqbcs0CU2FE + */ +//#define MAGNETIC_PARKING_EXTRUDER + +#if EITHER(PARKING_EXTRUDER, MAGNETIC_PARKING_EXTRUDER) + + #define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders + #define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder + + #if ENABLED(PARKING_EXTRUDER) + + #define PARKING_EXTRUDER_SOLENOIDS_INVERT // If enabled, the solenoid is NOT magnetized with applied voltage + #define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil + #define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // (ms) Delay for magnetic field. No delay if 0 or not defined. + //#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381 + + #elif ENABLED(MAGNETIC_PARKING_EXTRUDER) + + #define MPE_FAST_SPEED 9000 // (mm/min) Speed for travel before last distance point + #define MPE_SLOW_SPEED 4500 // (mm/min) Speed for last distance travel to park and couple + #define MPE_TRAVEL_DISTANCE 10 // (mm) Last distance point + #define MPE_COMPENSATION 0 // Offset Compensation -1 , 0 , 1 (multiplier) only for coupling + + #endif + +#endif + +/** + * Switching Toolhead + * + * Support for swappable and dockable toolheads, such as + * the E3D Tool Changer. Toolheads are locked with a servo. + */ +//#define SWITCHING_TOOLHEAD + +/** + * Magnetic Switching Toolhead + * + * Support swappable and dockable toolheads with a magnetic + * docking mechanism using movement and no servo. + */ +//#define MAGNETIC_SWITCHING_TOOLHEAD + +/** + * Electromagnetic Switching Toolhead + * + * Parking for CoreXY / HBot kinematics. + * Toolheads are parked at one edge and held with an electromagnet. + * Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4 + */ +//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD + +#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD) + #define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock + #define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis + #define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis + #define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders + #if ENABLED(SWITCHING_TOOLHEAD) + #define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector + #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock + #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD) + #define SWITCHING_TOOLHEAD_Y_RELEASE 5 // (mm) Security distance Y axis + #define SWITCHING_TOOLHEAD_X_SECURITY { 90, 150 } // (mm) Security distance X axis (T0,T1) + //#define PRIME_BEFORE_REMOVE // Prime the nozzle before release from the dock + #if ENABLED(PRIME_BEFORE_REMOVE) + #define SWITCHING_TOOLHEAD_PRIME_MM 20 // (mm) Extruder prime length + #define SWITCHING_TOOLHEAD_RETRACT_MM 10 // (mm) Retract after priming length + #define SWITCHING_TOOLHEAD_PRIME_FEEDRATE 300 // (mm/min) Extruder prime feedrate + #define SWITCHING_TOOLHEAD_RETRACT_FEEDRATE 2400 // (mm/min) Extruder retract feedrate + #endif + #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD) + #define SWITCHING_TOOLHEAD_Z_HOP 2 // (mm) Z raise for switching + #endif +#endif + +/** + * "Mixing Extruder" + * - Adds G-codes M163 and M164 to set and "commit" the current mix factors. + * - Extends the stepping routines to move multiple steppers in proportion to the mix. + * - Optional support for Repetier Firmware's 'M164 S' supporting virtual tools. + * - This implementation supports up to two mixing extruders. + * - Enable DIRECT_MIXING_IN_G1 for M165 and mixing in G1 (from Pia Taubert's reference implementation). + */ +//#define MIXING_EXTRUDER +#if ENABLED(MIXING_EXTRUDER) + #define MIXING_STEPPERS 2 // Number of steppers in your mixing extruder + #define MIXING_VIRTUAL_TOOLS 16 // Use the Virtual Tool method with M163 and M164 + //#define DIRECT_MIXING_IN_G1 // Allow ABCDHI mix factors in G1 movement commands + //#define GRADIENT_MIX // Support for gradient mixing with M166 and LCD + //#define MIXING_PRESETS // Assign 8 default V-tool presets for 2 or 3 MIXING_STEPPERS + #if ENABLED(GRADIENT_MIX) + //#define GRADIENT_VTOOL // Add M166 T to use a V-tool index as a Gradient alias + #endif +#endif + +// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing). +// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder). +// For the other hotends it is their distance from the extruder 0 hotend. +//#define HOTEND_OFFSET_X { 0.0, 20.00 } // (mm) relative X-offset for each nozzle +//#define HOTEND_OFFSET_Y { 0.0, 5.00 } // (mm) relative Y-offset for each nozzle +//#define HOTEND_OFFSET_Z { 0.0, 0.00 } // (mm) relative Z-offset for each nozzle + +// @section machine + +/** + * Power Supply Control + * + * Enable and connect the power supply to the PS_ON_PIN. + * Specify whether the power supply is active HIGH or active LOW. + */ +//#define PSU_CONTROL +//#define PSU_NAME "Power Supply" + +#if ENABLED(PSU_CONTROL) + //#define MKS_PWC // Using the MKS PWC add-on + //#define PS_OFF_CONFIRM // Confirm dialog when power off + //#define PS_OFF_SOUND // Beep 1s when power off + #define PSU_ACTIVE_STATE LOW // Set 'LOW' for ATX, 'HIGH' for X-Box + + //#define PSU_DEFAULT_OFF // Keep power off until enabled directly with M80 + //#define PSU_POWERUP_DELAY 250 // (ms) Delay for the PSU to warm up to full power + //#define LED_POWEROFF_TIMEOUT 10000 // (ms) Turn off LEDs after power-off, with this amount of delay + + //#define POWER_OFF_TIMER // Enable M81 D to power off after a delay + //#define POWER_OFF_WAIT_FOR_COOLDOWN // Enable M81 S to power off only after cooldown + + //#define PSU_POWERUP_GCODE "M355 S1" // G-code to run after power-on (e.g., case light on) + //#define PSU_POWEROFF_GCODE "M355 S0" // G-code to run before power-off (e.g., case light off) + + //#define AUTO_POWER_CONTROL // Enable automatic control of the PS_ON pin + #if ENABLED(AUTO_POWER_CONTROL) + #define AUTO_POWER_FANS // Turn on PSU if fans need power + #define AUTO_POWER_E_FANS + #define AUTO_POWER_CONTROLLERFAN + #define AUTO_POWER_CHAMBER_FAN + #define AUTO_POWER_COOLER_FAN + #define POWER_TIMEOUT 30 // (s) Turn off power if the machine is idle for this duration + //#define POWER_OFF_DELAY 60 // (s) Delay of poweroff after M81 command. Useful to let fans run for extra time. + #endif + #if EITHER(AUTO_POWER_CONTROL, POWER_OFF_WAIT_FOR_COOLDOWN) + //#define AUTO_POWER_E_TEMP 50 // (°C) PSU on if any extruder is over this temperature + //#define AUTO_POWER_CHAMBER_TEMP 30 // (°C) PSU on if the chamber is over this temperature + //#define AUTO_POWER_COOLER_TEMP 26 // (°C) PSU on if the cooler is over this temperature + #endif +#endif + +//=========================================================================== +//============================= Thermal Settings ============================ +//=========================================================================== +// @section temperature + +/** + * --NORMAL IS 4.7kΩ PULLUP!-- 1kΩ pullup can be used on hotend sensor, using correct resistor and table + * + * Temperature sensors available: + * + * SPI RTD/Thermocouple Boards - IMPORTANT: Read the NOTE below! + * ------- + * -5 : MAX31865 with Pt100/Pt1000, 2, 3, or 4-wire (only for sensors 0-1) + * NOTE: You must uncomment/set the MAX31865_*_OHMS_n defines below. + * -3 : MAX31855 with Thermocouple, -200°C to +700°C (only for sensors 0-1) + * -2 : MAX6675 with Thermocouple, 0°C to +700°C (only for sensors 0-1) + * + * NOTE: Ensure TEMP_n_CS_PIN is set in your pins file for each TEMP_SENSOR_n using an SPI Thermocouple. By default, + * Hardware SPI on the default serial bus is used. If you have also set TEMP_n_SCK_PIN and TEMP_n_MISO_PIN, + * Software SPI will be used on those ports instead. You can force Hardware SPI on the default bus in the + * Configuration_adv.h file. At this time, separate Hardware SPI buses for sensors are not supported. + * + * Analog Themocouple Boards + * ------- + * -4 : AD8495 with Thermocouple + * -1 : AD595 with Thermocouple + * + * Analog Thermistors - 4.7kΩ pullup - Normal + * ------- + * 1 : 100kΩ EPCOS - Best choice for EPCOS thermistors + * 331 : 100kΩ Same as #1, but 3.3V scaled for MEGA + * 332 : 100kΩ Same as #1, but 3.3V scaled for DUE + * 2 : 200kΩ ATC Semitec 204GT-2 + * 202 : 200kΩ Copymaster 3D + * 3 : ???Ω Mendel-parts thermistor + * 4 : 10kΩ Generic Thermistor !! DO NOT use for a hotend - it gives bad resolution at high temp. !! + * 5 : 100kΩ ATC Semitec 104GT-2/104NT-4-R025H42G - Used in ParCan, J-Head, and E3D, SliceEngineering 300°C + * 501 : 100kΩ Zonestar - Tronxy X3A + * 502 : 100kΩ Zonestar - used by hot bed in Zonestar Průša P802M + * 503 : 100kΩ Zonestar (Z8XM2) Heated Bed thermistor + * 504 : 100kΩ Zonestar P802QR2 (Part# QWG-104F-B3950) Hotend Thermistor + * 505 : 100kΩ Zonestar P802QR2 (Part# QWG-104F-3950) Bed Thermistor + * 512 : 100kΩ RPW-Ultra hotend + * 6 : 100kΩ EPCOS - Not as accurate as table #1 (created using a fluke thermocouple) + * 7 : 100kΩ Honeywell 135-104LAG-J01 + * 71 : 100kΩ Honeywell 135-104LAF-J01 + * 8 : 100kΩ Vishay 0603 SMD NTCS0603E3104FXT + * 9 : 100kΩ GE Sensing AL03006-58.2K-97-G1 + * 10 : 100kΩ RS PRO 198-961 + * 11 : 100kΩ Keenovo AC silicone mats, most Wanhao i3 machines - beta 3950, 1% + * 12 : 100kΩ Vishay 0603 SMD NTCS0603E3104FXT (#8) - calibrated for Makibox hot bed + * 13 : 100kΩ Hisens up to 300°C - for "Simple ONE" & "All In ONE" hotend - beta 3950, 1% + * 15 : 100kΩ Calibrated for JGAurora A5 hotend + * 18 : 200kΩ ATC Semitec 204GT-2 Dagoma.Fr - MKS_Base_DKU001327 + * 22 : 100kΩ GTM32 Pro vB - hotend - 4.7kΩ pullup to 3.3V and 220Ω to analog input + * 23 : 100kΩ GTM32 Pro vB - bed - 4.7kΩ pullup to 3.3v and 220Ω to analog input + * 30 : 100kΩ Kis3d Silicone heating mat 200W/300W with 6mm precision cast plate (EN AW 5083) NTC100K - beta 3950 + * 60 : 100kΩ Maker's Tool Works Kapton Bed Thermistor - beta 3950 + * 61 : 100kΩ Formbot/Vivedino 350°C Thermistor - beta 3950 + * 66 : 4.7MΩ Dyze Design High Temperature Thermistor + * 67 : 500kΩ SliceEngineering 450°C Thermistor + * 68 : PT100 amplifier board from Dyze Design + * 70 : 100kΩ bq Hephestos 2 + * 75 : 100kΩ Generic Silicon Heat Pad with NTC100K MGB18-104F39050L32 + * 2000 : 100kΩ Ultimachine Rambo TDK NTCG104LH104KT1 NTC100K motherboard Thermistor + * + * Analog Thermistors - 1kΩ pullup - Atypical, and requires changing out the 4.7kΩ pullup for 1kΩ. + * ------- (but gives greater accuracy and more stable PID) + * 51 : 100kΩ EPCOS (1kΩ pullup) + * 52 : 200kΩ ATC Semitec 204GT-2 (1kΩ pullup) + * 55 : 100kΩ ATC Semitec 104GT-2 - Used in ParCan & J-Head (1kΩ pullup) + * + * Analog Thermistors - 10kΩ pullup - Atypical + * ------- + * 99 : 100kΩ Found on some Wanhao i3 machines with a 10kΩ pull-up resistor + * + * Analog RTDs (Pt100/Pt1000) + * ------- + * 110 : Pt100 with 1kΩ pullup (atypical) + * 147 : Pt100 with 4.7kΩ pullup + * 1010 : Pt1000 with 1kΩ pullup (atypical) + * 1047 : Pt1000 with 4.7kΩ pullup (E3D) + * 20 : Pt100 with circuit in the Ultimainboard V2.x with mainboard ADC reference voltage = INA826 amplifier-board supply voltage. + * NOTE: (1) Must use an ADC input with no pullup. (2) Some INA826 amplifiers are unreliable at 3.3V so consider using sensor 147, 110, or 21. + * 21 : Pt100 with circuit in the Ultimainboard V2.x with 3.3v ADC reference voltage (STM32, LPC176x....) and 5V INA826 amplifier board supply. + * NOTE: ADC pins are not 5V tolerant. Not recommended because it's possible to damage the CPU by going over 500°C. + * 201 : Pt100 with circuit in Overlord, similar to Ultimainboard V2.x + * + * Custom/Dummy/Other Thermal Sensors + * ------ + * 0 : not used + * 1000 : Custom - Specify parameters in Configuration_adv.h + * + * !!! Use these for Testing or Development purposes. NEVER for production machine. !!! + * 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. + * + */ +#define TEMP_SENSOR_0 1 +#define TEMP_SENSOR_1 0 +#define TEMP_SENSOR_2 0 +#define TEMP_SENSOR_3 0 +#define TEMP_SENSOR_4 0 +#define TEMP_SENSOR_5 0 +#define TEMP_SENSOR_6 0 +#define TEMP_SENSOR_7 0 +#define TEMP_SENSOR_BED 1 +#define TEMP_SENSOR_PROBE 0 +#define TEMP_SENSOR_CHAMBER 0 +#define TEMP_SENSOR_COOLER 0 +#define TEMP_SENSOR_BOARD 0 +#define TEMP_SENSOR_REDUNDANT 0 + +// Dummy thermistor constant temperature readings, for use with 998 and 999 +#define DUMMY_THERMISTOR_998_VALUE 25 +#define DUMMY_THERMISTOR_999_VALUE 100 + +// Resistor values when using MAX31865 sensors (-5) on TEMP_SENSOR_0 / 1 +//#define MAX31865_SENSOR_OHMS_0 100 // (Ω) Typically 100 or 1000 (PT100 or PT1000) +//#define MAX31865_CALIBRATION_OHMS_0 430 // (Ω) Typically 430 for Adafruit PT100; 4300 for Adafruit PT1000 +//#define MAX31865_SENSOR_OHMS_1 100 +//#define MAX31865_CALIBRATION_OHMS_1 430 + +#define TEMP_RESIDENCY_TIME 10 // (seconds) Time to wait for hotend to "settle" in M109 +#define TEMP_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer +#define TEMP_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target + +#define TEMP_BED_RESIDENCY_TIME 10 // (seconds) Time to wait for bed to "settle" in M190 +#define TEMP_BED_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer +#define TEMP_BED_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target + +#define TEMP_CHAMBER_RESIDENCY_TIME 10 // (seconds) Time to wait for chamber to "settle" in M191 +#define TEMP_CHAMBER_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer +#define TEMP_CHAMBER_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target + +/** + * Redundant Temperature Sensor (TEMP_SENSOR_REDUNDANT) + * + * Use a temp sensor as a redundant sensor for another reading. Select an unused temperature sensor, and another + * sensor you'd like it to be redundant for. If the two thermistors differ by TEMP_SENSOR_REDUNDANT_MAX_DIFF (°C), + * the print will be aborted. Whichever sensor is selected will have its normal functions disabled; i.e. selecting + * the Bed sensor (-1) will disable bed heating/monitoring. + * + * For selecting source/target use: COOLER, PROBE, BOARD, CHAMBER, BED, E0, E1, E2, E3, E4, E5, E6, E7 + */ +#if TEMP_SENSOR_REDUNDANT + #define TEMP_SENSOR_REDUNDANT_SOURCE E1 // The sensor that will provide the redundant reading. + #define TEMP_SENSOR_REDUNDANT_TARGET E0 // The sensor that we are providing a redundant reading for. + #define TEMP_SENSOR_REDUNDANT_MAX_DIFF 10 // (°C) Temperature difference that will trigger a print abort. +#endif + +// Below this temperature the heater will be switched off +// because it probably indicates a broken thermistor wire. +#define HEATER_0_MINTEMP 0 +#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 0 +#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.) +#define HEATER_0_MAXTEMP 275 +#define HEATER_1_MAXTEMP 275 +#define HEATER_2_MAXTEMP 275 +#define HEATER_3_MAXTEMP 275 +#define HEATER_4_MAXTEMP 275 +#define HEATER_5_MAXTEMP 275 +#define HEATER_6_MAXTEMP 275 +#define HEATER_7_MAXTEMP 275 +#define BED_MAXTEMP 120 +#define CHAMBER_MAXTEMP 60 + +/** + * Thermal Overshoot + * During heatup (and printing) the temperature can often "overshoot" the target by many degrees + * (especially before PID tuning). Setting the target temperature too close to MAXTEMP guarantees + * a MAXTEMP shutdown! Use these values to forbid temperatures being set too close to MAXTEMP. + */ +#define HOTEND_OVERSHOOT 15 // (°C) Forbid temperatures over MAXTEMP - OVERSHOOT +#define BED_OVERSHOOT 10 // (°C) Forbid temperatures over MAXTEMP - OVERSHOOT +#define COOLER_OVERSHOOT 2 // (°C) Forbid temperatures closer than OVERSHOOT + +//=========================================================================== +//============================= PID Settings ================================ +//=========================================================================== + +// Enable PIDTEMP for PID control or MPCTEMP for Predictive Model. +// temperature control. Disable both for bang-bang heating. +#define PIDTEMP // See the PID Tuning Guide at https://reprap.org/wiki/PID_Tuning +//#define MPCTEMP // ** EXPERIMENTAL ** + +#define BANG_MAX 255 // Limits current to nozzle while in bang-bang mode; 255=full current +#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current +#define PID_K1 0.95 // Smoothing factor within any PID loop + +#if ENABLED(PIDTEMP) + //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders) + // Set/get with G-code: M301 E[extruder number, 0-2] + + #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 { 28.72, 28.72 } + #define DEFAULT_Ki_LIST { 2.62, 2.62 } + #define DEFAULT_Kd_LIST { 78.81, 78.81 } + #else + // Ender 3 v2 + #define DEFAULT_Kp 28.72 + #define DEFAULT_Ki 2.62 + #define DEFAULT_Kd 78.81 + #endif +#endif + +/** + * Model Predictive Control for hotend + * + * Use a physical model of the hotend to control temperature. When configured correctly + * this gives better responsiveness and stability than PID and it also removes the need + * for PID_EXTRUSION_SCALING and PID_FAN_SCALING. Use M306 T to autotune the model. + */ +#if ENABLED(MPCTEMP) + //#define MPC_EDIT_MENU // Add MPC editing to the "Advanced Settings" menu. (~1300 bytes of flash) + //#define MPC_AUTOTUNE_MENU // Add MPC auto-tuning to the "Advanced Settings" menu. (~350 bytes of flash) + + #define MPC_MAX BANG_MAX // (0..255) Current to nozzle while MPC is active. + #define MPC_HEATER_POWER { 40.0f } // (W) Heat cartridge powers. + + #define MPC_INCLUDE_FAN // Model the fan speed? + + // Measured physical constants from M306 + #define MPC_BLOCK_HEAT_CAPACITY { 16.7f } // (J/K) Heat block heat capacities. + #define MPC_SENSOR_RESPONSIVENESS { 0.22f } // (K/s per ∆K) Rate of change of sensor temperature from heat block. + #define MPC_AMBIENT_XFER_COEFF { 0.068f } // (W/K) Heat transfer coefficients from heat block to room air with fan off. + #if ENABLED(MPC_INCLUDE_FAN) + #define MPC_AMBIENT_XFER_COEFF_FAN255 { 0.097f } // (W/K) Heat transfer coefficients from heat block to room air with fan on full. + #endif + + // For one fan and multiple hotends MPC needs to know how to apply the fan cooling effect. + #if ENABLED(MPC_INCLUDE_FAN) + //#define MPC_FAN_0_ALL_HOTENDS + //#define MPC_FAN_0_ACTIVE_HOTEND + #endif + + #define FILAMENT_HEAT_CAPACITY_PERMM { 5.6e-3f } // 0.0056 J/K/mm for 1.75mm PLA (0.0149 J/K/mm for 2.85mm PLA). + //#define FILAMENT_HEAT_CAPACITY_PERMM { 3.6e-3f } // 0.0036 J/K/mm for 1.75mm PETG (0.0094 J/K/mm for 2.85mm PETG). + + // Advanced options + #define MPC_SMOOTHING_FACTOR 0.5f // (0.0...1.0) Noisy temperature sensors may need a lower value for stabilization. + #define MPC_MIN_AMBIENT_CHANGE 1.0f // (K/s) Modeled ambient temperature rate of change, when correcting model inaccuracies. + #define MPC_STEADYSTATE 0.5f // (K/s) Temperature change rate for steady state logic to be enforced. + + #define MPC_TUNING_POS { X_CENTER, Y_CENTER, 1.0f } // (mm) M306 Autotuning position, ideally bed center at first layer height. + #define MPC_TUNING_END_Z 10.0f // (mm) M306 Autotuning final Z position. +#endif + +//=========================================================================== +//====================== PID > Bed Temperature Control ====================== +//=========================================================================== + +/** + * PID Bed Heating + * + * If this option is enabled set PID constants below. + * If this option is disabled, bang-bang will be used and BED_LIMIT_SWITCHING will enable hysteresis. + * + * The PID frequency will be the same as the extruder PWM. + * If PID_dT is the default, and correct for the hardware/configuration, that means 7.689Hz, + * which is fine for driving a square wave into a resistive load and does not significantly + * impact FET heating. This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W + * heater. If your configuration is significantly different than this and you don't understand + * the issues involved, don't use bed PID until someone else verifies that your hardware works. + */ +#define PIDTEMPBED + +//#define BED_LIMIT_SWITCHING + +/** + * Max Bed Power + * Applies to all forms of bed control (PID, bang-bang, and bang-bang with hysteresis). + * When set to any value below 255, enables a form of PWM to the bed that acts like a divider + * so don't use it unless you are OK with PWM on your bed. (See the comment on enabling PIDTEMPBED) + */ +#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current + +#if ENABLED(PIDTEMPBED) + //#define MIN_BED_POWER 0 + //#define PID_BED_DEBUG // Sends debug data to the serial port. + + // Ender 3 V2 + #define DEFAULT_bedKp 462.10 + #define DEFAULT_bedKi 85.47 + #define DEFAULT_bedKd 624.59 + + // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. +#endif // PIDTEMPBED + +//=========================================================================== +//==================== PID > Chamber Temperature Control ==================== +//=========================================================================== + +/** + * PID Chamber Heating + * + * If this option is enabled set PID constants below. + * If this option is disabled, bang-bang will be used and CHAMBER_LIMIT_SWITCHING will enable + * hysteresis. + * + * The PID frequency will be the same as the extruder PWM. + * If PID_dT is the default, and correct for the hardware/configuration, that means 7.689Hz, + * which is fine for driving a square wave into a resistive load and does not significantly + * impact FET heating. This also works fine on a Fotek SSR-10DA Solid State Relay into a 200W + * heater. If your configuration is significantly different than this and you don't understand + * the issues involved, don't use chamber PID until someone else verifies that your hardware works. + */ +//#define PIDTEMPCHAMBER +//#define CHAMBER_LIMIT_SWITCHING + +/** + * Max Chamber Power + * Applies to all forms of chamber control (PID, bang-bang, and bang-bang with hysteresis). + * When set to any value below 255, enables a form of PWM to the chamber heater that acts like a divider + * so don't use it unless you are OK with PWM on your heater. (See the comment on enabling PIDTEMPCHAMBER) + */ +#define MAX_CHAMBER_POWER 255 // limits duty cycle to chamber heater; 255=full current + +#if ENABLED(PIDTEMPCHAMBER) + #define MIN_CHAMBER_POWER 0 + //#define PID_CHAMBER_DEBUG // Sends debug data to the serial port. + + // Lasko "MyHeat Personal Heater" (200w) modified with a Fotek SSR-10DA to control only the heating element + // and placed inside the small Creality printer enclosure tent. + // + #define DEFAULT_chamberKp 37.04 + #define DEFAULT_chamberKi 1.40 + #define DEFAULT_chamberKd 655.17 + // M309 P37.04 I1.04 D655.17 + + // FIND YOUR OWN: "M303 E-2 C8 S50" to run autotune on the chamber at 50 degreesC for 8 cycles. +#endif // PIDTEMPCHAMBER + +#if ANY(PIDTEMP, PIDTEMPBED, PIDTEMPCHAMBER) + //#define PID_DEBUG // Sends debug data to the serial port. Use 'M303 D' to toggle activation. + //#define PID_OPENLOOP // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX + //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay + #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + + //#define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of flash) + //#define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of flash) +#endif + +// @section extruder + +/** + * Prevent extrusion if the temperature is below EXTRUDE_MINTEMP. + * Add M302 to set the minimum extrusion temperature and/or turn + * cold extrusion prevention on and off. + * + * *** IT IS HIGHLY RECOMMENDED TO LEAVE THIS OPTION ENABLED! *** + */ +#define PREVENT_COLD_EXTRUSION +#define EXTRUDE_MINTEMP 180 + +/** + * Prevent a single extrusion longer than EXTRUDE_MAXLENGTH. + * Note: For Bowden Extruders make this large enough to allow load/unload. + */ +#define PREVENT_LENGTHY_EXTRUDE +#define EXTRUDE_MAXLENGTH 1000 + +//=========================================================================== +//======================== Thermal Runaway Protection ======================= +//=========================================================================== + +/** + * Thermal Protection provides additional protection to your printer from damage + * and fire. Marlin always includes safe min and max temperature ranges which + * protect against a broken or disconnected thermistor wire. + * + * The issue: If a thermistor falls out, it will report the much lower + * temperature of the air in the room, and the the firmware will keep + * the heater on. + * + * If you get "Thermal Runaway" or "Heating failed" errors the + * details can be tuned in Configuration_adv.h + */ + +#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 + +//=========================================================================== +//============================= Mechanical Settings ========================= +//=========================================================================== + +// @section machine + +// Enable one of the options below for CoreXY, CoreXZ, or CoreYZ kinematics, +// either in the usual order or reversed +//#define COREXY +//#define COREXZ +//#define COREYZ +//#define COREYX +//#define COREZX +//#define COREZY +//#define MARKFORGED_XY // MarkForged. See https://reprap.org/forum/read.php?152,504042 +//#define MARKFORGED_YX + +// Enable for a belt style printer with endless "Z" motion +//#define BELTPRINTER + +// Enable for Polargraph Kinematics +//#define POLARGRAPH +#if ENABLED(POLARGRAPH) + #define POLARGRAPH_MAX_BELT_LEN 1035.0 + #define POLAR_SEGMENTS_PER_SECOND 5 +#endif + +// Enable for DELTA kinematics and configure below +//#define DELTA +#if ENABLED(DELTA) + + // Make delta curves from many straight lines (linear interpolation). + // This is a trade-off between visible corners (not enough segments) + // and processor overload (too many expensive sqrt calls). + #define DELTA_SEGMENTS_PER_SECOND 200 + + // After homing move down to a height where XY movement is unconstrained + //#define DELTA_HOME_TO_SAFE_ZONE + + // Delta calibration menu + // uncomment to add three points calibration menu option. + // See http://minow.blogspot.com/index.html#4918805519571907051 + //#define DELTA_CALIBRATION_MENU + + // uncomment to add G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results) + //#define DELTA_AUTO_CALIBRATION + + // NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them + + #if ENABLED(DELTA_AUTO_CALIBRATION) + // set the default number of probe points : n*n (1 -> 7) + #define DELTA_CALIBRATION_DEFAULT_POINTS 4 + #endif + + #if EITHER(DELTA_AUTO_CALIBRATION, DELTA_CALIBRATION_MENU) + // Set the steprate for papertest probing + #define PROBE_MANUALLY_STEP 0.05 // (mm) + #endif + + // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). + #define DELTA_PRINTABLE_RADIUS 140.0 // (mm) + + // Maximum reachable area + #define DELTA_MAX_RADIUS 140.0 // (mm) + + // Center-to-center distance of the holes in the diagonal push rods. + #define DELTA_DIAGONAL_ROD 250.0 // (mm) + + // Distance between bed and nozzle Z home position + #define DELTA_HEIGHT 250.00 // (mm) Get this value from G33 auto calibrate + + #define DELTA_ENDSTOP_ADJ { 0.0, 0.0, 0.0 } // Get these values from G33 auto calibrate + + // Horizontal distance bridged by diagonal push rods when effector is centered. + #define DELTA_RADIUS 124.0 // (mm) Get this value from G33 auto calibrate + + // Trim adjustments for individual towers + // tower angle corrections for X and Y tower / rotate XYZ so Z tower angle = 0 + // measured in degrees anticlockwise looking from above the printer + #define DELTA_TOWER_ANGLE_TRIM { 0.0, 0.0, 0.0 } // Get these values from G33 auto calibrate + + // Delta radius and diagonal rod adjustments (mm) + //#define DELTA_RADIUS_TRIM_TOWER { 0.0, 0.0, 0.0 } + //#define DELTA_DIAGONAL_ROD_TRIM_TOWER { 0.0, 0.0, 0.0 } +#endif + +/** + * MORGAN_SCARA was developed by QHARLEY in South Africa in 2012-2013. + * Implemented and slightly reworked by JCERNY in June, 2014. + * + * Mostly Printed SCARA is an open source design by Tyler Williams. See: + * https://www.thingiverse.com/thing:2487048 + * https://www.thingiverse.com/thing:1241491 + */ +//#define MORGAN_SCARA +//#define MP_SCARA +#if EITHER(MORGAN_SCARA, MP_SCARA) + // If movement is choppy try lowering this value + #define SCARA_SEGMENTS_PER_SECOND 200 + + // Length of inner and outer support arms. Measure arm lengths precisely. + #define SCARA_LINKAGE_1 150 // (mm) + #define SCARA_LINKAGE_2 150 // (mm) + + // SCARA tower offset (position of Tower relative to bed zero position) + // This needs to be reasonably accurate as it defines the printbed position in the SCARA space. + #define SCARA_OFFSET_X 100 // (mm) + #define SCARA_OFFSET_Y -56 // (mm) + + #if ENABLED(MORGAN_SCARA) + + //#define DEBUG_SCARA_KINEMATICS + #define SCARA_FEEDRATE_SCALING // Convert XY feedrate from mm/s to degrees/s on the fly + + // Radius around the center where the arm cannot reach + #define MIDDLE_DEAD_ZONE_R 0 // (mm) + + #define THETA_HOMING_OFFSET 0 // Calculated from Calibration Guide and M360 / M114. See http://reprap.harleystudio.co.za/?page_id=1073 + #define PSI_HOMING_OFFSET 0 // Calculated from Calibration Guide and M364 / M114. See http://reprap.harleystudio.co.za/?page_id=1073 + + #elif ENABLED(MP_SCARA) + + #define SCARA_OFFSET_THETA1 12 // degrees + #define SCARA_OFFSET_THETA2 131 // degrees + + #endif + +#endif + +// Enable for TPARA kinematics and configure below +//#define AXEL_TPARA +#if ENABLED(AXEL_TPARA) + #define DEBUG_ROBOT_KINEMATICS + #define ROBOT_SEGMENTS_PER_SECOND 200 + + // Length of inner and outer support arms. Measure arm lengths precisely. + #define ROBOT_LINKAGE_1 120 // (mm) + #define ROBOT_LINKAGE_2 120 // (mm) + + // SCARA tower offset (position of Tower relative to bed zero position) + // This needs to be reasonably accurate as it defines the printbed position in the SCARA space. + #define ROBOT_OFFSET_X 0 // (mm) + #define ROBOT_OFFSET_Y 0 // (mm) + #define ROBOT_OFFSET_Z 0 // (mm) + + #define SCARA_FEEDRATE_SCALING // Convert XY feedrate from mm/s to degrees/s on the fly + + // Radius around the center where the arm cannot reach + #define MIDDLE_DEAD_ZONE_R 0 // (mm) + + // Calculated from Calibration Guide and M360 / M114. See http://reprap.harleystudio.co.za/?page_id=1073 + #define THETA_HOMING_OFFSET 0 + #define PSI_HOMING_OFFSET 0 +#endif + +//=========================================================================== +//============================== Endstop Settings =========================== +//=========================================================================== + +// @section homing + +// Specify here all the endstop connectors that are connected to any endstop or probe. +// Almost all printers will be using one per axis. Probes will use one or more of the +// extra connectors. Leave undefined any used for non-endstop and non-probe purposes. +#define USE_XMIN_PLUG +#define USE_YMIN_PLUG +#define USE_ZMIN_PLUG +//#define USE_IMIN_PLUG +//#define USE_JMIN_PLUG +//#define USE_KMIN_PLUG +//#define USE_XMAX_PLUG +//#define USE_YMAX_PLUG +//#define USE_ZMAX_PLUG +//#define USE_IMAX_PLUG +//#define USE_JMAX_PLUG +//#define USE_KMAX_PLUG + +// Enable pullup for all endstops to prevent a floating state +#define ENDSTOPPULLUPS +#if DISABLED(ENDSTOPPULLUPS) + // Disable ENDSTOPPULLUPS to set pullups individually + //#define ENDSTOPPULLUP_XMIN + //#define ENDSTOPPULLUP_YMIN + //#define ENDSTOPPULLUP_ZMIN + //#define ENDSTOPPULLUP_IMIN + //#define ENDSTOPPULLUP_JMIN + //#define ENDSTOPPULLUP_KMIN + //#define ENDSTOPPULLUP_XMAX + //#define ENDSTOPPULLUP_YMAX + //#define ENDSTOPPULLUP_ZMAX + //#define ENDSTOPPULLUP_IMAX + //#define ENDSTOPPULLUP_JMAX + //#define ENDSTOPPULLUP_KMAX + //#define ENDSTOPPULLUP_ZMIN_PROBE +#endif + +// Enable pulldown for all endstops to prevent a floating state +//#define ENDSTOPPULLDOWNS +#if DISABLED(ENDSTOPPULLDOWNS) + // Disable ENDSTOPPULLDOWNS to set pulldowns individually + //#define ENDSTOPPULLDOWN_XMIN + //#define ENDSTOPPULLDOWN_YMIN + //#define ENDSTOPPULLDOWN_ZMIN + //#define ENDSTOPPULLDOWN_IMIN + //#define ENDSTOPPULLDOWN_JMIN + //#define ENDSTOPPULLDOWN_KMIN + //#define ENDSTOPPULLDOWN_XMAX + //#define ENDSTOPPULLDOWN_YMAX + //#define ENDSTOPPULLDOWN_ZMAX + //#define ENDSTOPPULLDOWN_IMAX + //#define ENDSTOPPULLDOWN_JMAX + //#define ENDSTOPPULLDOWN_KMAX + //#define ENDSTOPPULLDOWN_ZMIN_PROBE +#endif + +// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup). +#define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define Z_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. +#define 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 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 Z_MIN_PROBE_ENDSTOP_INVERTING false // 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. +#define ENDSTOP_INTERRUPTS_FEATURE + +/** + * Endstop Noise Threshold + * + * Enable if your probe or endstops falsely trigger due to noise. + * + * - Higher values may affect repeatability or accuracy of some bed probes. + * - To fix noise install a 100nF ceramic capacitor in parallel with the switch. + * - This feature is not required for common micro-switches mounted on PCBs + * based on the Makerbot design, which already have the 100nF capacitor. + * + * :[2,3,4,5,6,7] + */ +//#define ENDSTOP_NOISE_THRESHOLD 2 + +// Check for stuck or disconnected endstops during homing moves. +//#define DETECT_BROKEN_ENDSTOP + +//============================================================================= +//============================== Movement Settings ============================ +//============================================================================= +// @section motion + +/** + * Default Settings + * + * These settings can be reset by M502 + * + * Note that if EEPROM is enabled, saved values will override these. + */ + +/** + * With this option each E stepper can have its own factors for the + * following movement settings. If fewer factors are given than the + * total number of extruders, the last value applies to the rest. + */ +//#define DISTINCT_E_FACTORS + +/** + * Default Axis Steps Per Unit (steps/mm) + * Override with M92 + * X, Y, Z [, I [, J [, K]]], E0 [, E1[, E2...]] + */ +#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 93 } + +/** + * Default Max Feed Rate (mm/s) + * Override with M203 + * X, Y, Z [, I [, J [, K]]], E0 [, E1[, E2...]] + */ +#define DEFAULT_MAX_FEEDRATE { 500, 500, 5, 25 } + +//#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2 +#if ENABLED(LIMITED_MAX_FR_EDITING) + #define MAX_FEEDRATE_EDIT_VALUES { 600, 600, 10, 50 } // ...or, set your own edit limits +#endif + +/** + * Default Max Acceleration (change/s) change = mm/s + * (Maximum start speed for accelerated moves) + * Override with M201 + * X, Y, Z [, I [, J [, K]]], E0 [, E1[, E2...]] + */ +#define DEFAULT_MAX_ACCELERATION { 500, 500, 100, 1000 } + +//#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2 +#if ENABLED(LIMITED_MAX_ACCEL_EDITING) + #define MAX_ACCEL_EDIT_VALUES { 6000, 6000, 200, 20000 } // ...or, set your own edit limits +#endif + +/** + * Default Acceleration (change/s) change = mm/s + * Override with M204 + * + * M204 P Acceleration + * M204 R Retract Acceleration + * M204 T Travel Acceleration + */ +#define DEFAULT_ACCELERATION 500 // X, Y, Z ... and E acceleration for printing moves +#define DEFAULT_RETRACT_ACCELERATION 500 // E acceleration for retracts +#define DEFAULT_TRAVEL_ACCELERATION 1000 // X, Y, Z ... acceleration for travel (non printing) moves + +/** + * Default Jerk limits (mm/s) + * Override with M205 X Y Z E + * + * "Jerk" specifies the minimum speed change that requires acceleration. + * When changing speed and direction, if the difference is less than the + * value set here, it may happen instantaneously. + */ +#define CLASSIC_JERK +#if ENABLED(CLASSIC_JERK) + #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 TRAVEL_EXTRA_XYJERK 0.0 // Additional jerk allowance for all travel moves + + //#define LIMITED_JERK_EDITING // Limit edit via M205 or LCD to DEFAULT_aJERK * 2 + #if ENABLED(LIMITED_JERK_EDITING) + #define MAX_JERK_EDIT_VALUES { 20, 20, 0.6, 10 } // ...or, set your own edit limits + #endif +#endif + +#define DEFAULT_EJERK 5.0 // May be used by Linear Advance + +/** + * Junction Deviation Factor + * + * See: + * https://reprap.org/forum/read.php?1,739819 + * https://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html + */ +#if DISABLED(CLASSIC_JERK) + #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 + +/** + * S-Curve Acceleration + * + * This option eliminates vibration during printing by fitting a Bézier + * curve to move acceleration, producing much smoother direction changes. + * + * See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained + */ +//#define S_CURVE_ACCELERATION + +//=========================================================================== +//============================= Z Probe Options ============================= +//=========================================================================== +// @section probes + +// +// See https://marlinfw.org/docs/configuration/probes.html +// + +/** + * Enable this option for a probe connected to the Z-MIN pin. + * The probe replaces the Z-MIN endstop and is used for Z homing. + * (Automatically enables USE_PROBE_FOR_Z_HOMING.) + */ +#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 + +/** + * Z_MIN_PROBE_PIN + * + * Define this pin if the probe is not connected to Z_MIN_PIN. + * If not defined the default pin for the selected MOTHERBOARD + * will be used. Most of the time the default is what you want. + * + * - The simplest option is to use a free endstop connector. + * - Use 5V for powered (usually inductive) sensors. + * + * - RAMPS 1.3/1.4 boards may use the 5V, GND, and Aux4->D32 pin: + * - For simple switches connect... + * - normally-closed switches to GND and D32. + * - normally-open switches to 5V and D32. + */ +//#define Z_MIN_PROBE_PIN 32 // Pin 32 is the RAMPS default + +/** + * Probe Type + * + * Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc. + * Activate one of these to use Auto Bed Leveling below. + */ + +/** + * The "Manual Probe" provides a means to do "Auto" Bed Leveling without a probe. + * Use G29 repeatedly, adjusting the Z height at each point with movement commands + * or (with LCD_BED_LEVELING) the LCD controller. + */ +#define PROBE_MANUALLY + +/** + * A Fix-Mounted Probe either doesn't deploy or needs manual deployment. + * (e.g., an inductive probe or a nozzle-based probe-switch.) + */ +//#define FIX_MOUNTED_PROBE + +/** + * Use the nozzle as the probe, as with a conductive + * nozzle system or a piezo-electric smart effector. + */ +//#define NOZZLE_AS_PROBE + +/** + * Z Servo Probe, such as an endstop switch on a rotating arm. + */ +//#define Z_PROBE_SERVO_NR 0 // Defaults to SERVO 0 connector. +//#define Z_SERVO_ANGLES { 70, 0 } // Z Servo Deploy and Stow angles + +/** + * The BLTouch probe uses a Hall effect sensor and emulates a servo. + */ +//#define BLTOUCH + +/** + * MagLev V4 probe by MDD + * + * This probe is deployed and activated by powering a built-in electromagnet. + */ +//#define MAGLEV4 +#if ENABLED(MAGLEV4) + //#define MAGLEV_TRIGGER_PIN 11 // Set to the connected digital output + #define MAGLEV_TRIGGER_DELAY 15 // Changing this risks overheating the coil +#endif + +/** + * Touch-MI Probe by hotends.fr + * + * This probe is deployed and activated by moving the X-axis to a magnet at the edge of the bed. + * By default, the magnet is assumed to be on the left and activated by a home. If the magnet is + * on the right, enable and set TOUCH_MI_DEPLOY_XPOS to the deploy position. + * + * Also requires: BABYSTEPPING, BABYSTEP_ZPROBE_OFFSET, Z_SAFE_HOMING, + * and a minimum Z_HOMING_HEIGHT of 10. + */ +//#define TOUCH_MI_PROBE +#if ENABLED(TOUCH_MI_PROBE) + #define TOUCH_MI_RETRACT_Z 0.5 // Height at which the probe retracts + //#define TOUCH_MI_DEPLOY_XPOS (X_MAX_BED + 2) // For a magnet on the right side of the bed + //#define TOUCH_MI_MANUAL_DEPLOY // For manual deploy (LCD menu) +#endif + +// A probe that is deployed and stowed with a solenoid pin (SOL1_PIN) +//#define SOLENOID_PROBE + +// A sled-mounted probe like those designed by Charles Bell. +//#define Z_PROBE_SLED +//#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like. + +// A probe deployed by moving the x-axis, such as the Wilson II's rack-and-pinion probe designed by Marty Rice. +//#define RACK_AND_PINION_PROBE +#if ENABLED(RACK_AND_PINION_PROBE) + #define Z_PROBE_DEPLOY_X X_MIN_POS + #define Z_PROBE_RETRACT_X X_MAX_POS +#endif + +// Duet Smart Effector (for delta printers) - https://bit.ly/2ul5U7J +// When the pin is defined you can use M672 to set/reset the probe sensitivity. +//#define DUET_SMART_EFFECTOR +#if ENABLED(DUET_SMART_EFFECTOR) + #define SMART_EFFECTOR_MOD_PIN -1 // Connect a GPIO pin to the Smart Effector MOD pin +#endif + +/** + * Use StallGuard2 to probe the bed with the nozzle. + * Requires stallGuard-capable Trinamic stepper drivers. + * CAUTION: This can damage machines with Z lead screws. + * Take extreme care when setting up this feature. + */ +//#define SENSORLESS_PROBING + +/** + * Allen key retractable z-probe as seen on many Kossel delta printers - https://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe + * Deploys by touching z-axis belt. Retracts by pushing the probe down. + */ +//#define Z_PROBE_ALLEN_KEY +#if ENABLED(Z_PROBE_ALLEN_KEY) + // 2 or 3 sets of coordinates for deploying and retracting the spring loaded touch probe on G29, + // if servo actuated touch probe is not defined. Uncomment as appropriate for your printer/probe. + + #define Z_PROBE_ALLEN_KEY_DEPLOY_1 { 30.0, DELTA_PRINTABLE_RADIUS, 100.0 } + #define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE XY_PROBE_FEEDRATE + + #define Z_PROBE_ALLEN_KEY_DEPLOY_2 { 0.0, DELTA_PRINTABLE_RADIUS, 100.0 } + #define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (XY_PROBE_FEEDRATE)/10 + + #define Z_PROBE_ALLEN_KEY_DEPLOY_3 { 0.0, (DELTA_PRINTABLE_RADIUS) * 0.75, 100.0 } + #define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE XY_PROBE_FEEDRATE + + #define Z_PROBE_ALLEN_KEY_STOW_1 { -64.0, 56.0, 23.0 } // Move the probe into position + #define Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE XY_PROBE_FEEDRATE + + #define Z_PROBE_ALLEN_KEY_STOW_2 { -64.0, 56.0, 3.0 } // Push it down + #define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (XY_PROBE_FEEDRATE)/10 + + #define Z_PROBE_ALLEN_KEY_STOW_3 { -64.0, 56.0, 50.0 } // Move it up to clear + #define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE XY_PROBE_FEEDRATE + + #define Z_PROBE_ALLEN_KEY_STOW_4 { 0.0, 0.0, 50.0 } + #define Z_PROBE_ALLEN_KEY_STOW_4_FEEDRATE XY_PROBE_FEEDRATE + +#endif // Z_PROBE_ALLEN_KEY + +/** + * Nozzle-to-Probe offsets { X, Y, Z } + * + * X and Y offset + * Use a caliper or ruler to measure the distance from the tip of + * the Nozzle to the center-point of the Probe in the X and Y axes. + * + * Z offset + * - For the Z offset use your best known value and adjust at runtime. + * - Common probes trigger below the nozzle and have negative values for Z offset. + * - Probes triggering above the nozzle height are uncommon but do exist. When using + * probes such as this, carefully set Z_CLEARANCE_DEPLOY_PROBE and Z_CLEARANCE_BETWEEN_PROBES + * to avoid collisions during probing. + * + * Tune and Adjust + * - Probe Offsets can be tuned at runtime with 'M851', LCD menus, babystepping, etc. + * - PROBE_OFFSET_WIZARD (configuration_adv.h) can be used for setting the Z offset. + * + * Assuming the typical work area orientation: + * - Probe to RIGHT of the Nozzle has a Positive X offset + * - Probe to LEFT of the Nozzle has a Negative X offset + * - Probe in BACK of the Nozzle has a Positive Y offset + * - Probe in FRONT of the Nozzle has a Negative Y offset + * + * Some examples: + * #define NOZZLE_TO_PROBE_OFFSET { 10, 10, -1 } // Example "1" + * #define NOZZLE_TO_PROBE_OFFSET {-10, 5, -1 } // Example "2" + * #define NOZZLE_TO_PROBE_OFFSET { 5, -5, -1 } // Example "3" + * #define NOZZLE_TO_PROBE_OFFSET {-15,-10, -1 } // Example "4" + * + * +-- BACK ---+ + * | [+] | + * L | 1 | R <-- Example "1" (right+, back+) + * E | 2 | I <-- Example "2" ( left-, back+) + * F |[-] N [+]| G <-- Nozzle + * T | 3 | H <-- Example "3" (right+, front-) + * | 4 | T <-- Example "4" ( left-, front-) + * | [-] | + * O-- FRONT --+ + */ +#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 } + +// 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. +#define PROBING_MARGIN 10 + +// X and Y axis travel speed (mm/min) between probes +#define XY_PROBE_FEEDRATE (50*60) + +// Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2) +#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) + +/** + * Probe Activation Switch + * A switch indicating proper deployment, or an optical + * switch triggered when the carriage is near the bed. + */ +//#define PROBE_ACTIVATION_SWITCH +#if ENABLED(PROBE_ACTIVATION_SWITCH) + #define PROBE_ACTIVATION_SWITCH_STATE LOW // State indicating probe is active + //#define PROBE_ACTIVATION_SWITCH_PIN PC6 // Override default pin +#endif + +/** + * Tare Probe (determine zero-point) prior to each probe. + * Useful for a strain gauge or piezo sensor that needs to factor out + * elements such as cables pulling on the carriage. + */ +//#define PROBE_TARE +#if ENABLED(PROBE_TARE) + #define PROBE_TARE_TIME 200 // (ms) Time to hold tare pin + #define PROBE_TARE_DELAY 200 // (ms) Delay after tare before + #define PROBE_TARE_STATE HIGH // State to write pin for tare + //#define PROBE_TARE_PIN PA5 // Override default pin + #if ENABLED(PROBE_ACTIVATION_SWITCH) + //#define PROBE_TARE_ONLY_WHILE_INACTIVE // Fail to tare/probe if PROBE_ACTIVATION_SWITCH is active + #endif +#endif + +/** + * Probe Enable / Disable + * The probe only provides a triggered signal when enabled. + */ +//#define PROBE_ENABLE_DISABLE +#if ENABLED(PROBE_ENABLE_DISABLE) + //#define PROBE_ENABLE_PIN -1 // Override the default pin here +#endif + +/** + * Multiple Probing + * + * You may get improved results by probing 2 or more times. + * With EXTRA_PROBING the more atypical reading(s) will be disregarded. + * + * 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 + +/** + * Z probes require clearance when deploying, stowing, and moving between + * probe points to avoid hitting the bed and other hardware. + * Servo-mounted probes require extra space for the arm to rotate. + * Inductive probes need space to keep from triggering early. + * + * Use these settings to specify the distance (mm) to raise the probe (or + * lower the bed). The values set here apply over and above any (negative) + * probe Z Offset set with NOZZLE_TO_PROBE_OFFSET, M851, or the LCD. + * Only integer values >= 1 are valid here. + * + * Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle. + * But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle. + */ +#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow +#define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points +#define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes +//#define Z_AFTER_PROBING 5 // Z position after probing is done + +#define Z_PROBE_LOW_POINT -2 // Farthest distance below the trigger-point to go before stopping + +// For M851 give a range for adjusting the Z probe offset +#define Z_PROBE_OFFSET_RANGE_MIN -10 +#define Z_PROBE_OFFSET_RANGE_MAX 10 + +// Enable the M48 repeatability test to test probe accuracy +//#define Z_MIN_PROBE_REPEATABILITY_TEST + +// Before deploy/stow pause for user confirmation +//#define PAUSE_BEFORE_DEPLOY_STOW +#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW) + //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe +#endif + +/** + * Enable one or more of the following if probing seems unreliable. + * Heaters and/or fans can be disabled during probing to minimize electrical + * noise. A delay can also be added to allow noise and vibration to settle. + * These options are most useful for the BLTouch probe, but may also improve + * readings with inductive probes and piezo sensors. + */ +//#define PROBING_HEATERS_OFF // Turn heaters off when probing +#if ENABLED(PROBING_HEATERS_OFF) + //#define WAIT_FOR_BED_HEATER // Wait for bed to heat back up between probes (to improve accuracy) + //#define WAIT_FOR_HOTEND // Wait for hotend to heat back up between probes (to improve accuracy & prevent cold extrude) +#endif +//#define PROBING_FANS_OFF // Turn fans off when probing +//#define PROBING_ESTEPPERS_OFF // Turn all extruder steppers off when probing +//#define PROBING_STEPPERS_OFF // Turn all steppers off (unless needed to hold position) when probing (including extruders) +//#define DELAY_BEFORE_PROBING 200 // (ms) To prevent vibrations from triggering piezo sensors + +// Require minimum nozzle and/or bed temperature for probing +//#define PREHEAT_BEFORE_PROBING +#if ENABLED(PREHEAT_BEFORE_PROBING) + #define PROBING_NOZZLE_TEMP 120 // (°C) Only applies to E0 at this time + #define PROBING_BED_TEMP 50 +#endif + +// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 +// :{ 0:'Low', 1:'High' } +#define X_ENABLE_ON 0 +#define Y_ENABLE_ON 0 +#define Z_ENABLE_ON 0 +#define E_ENABLE_ON 0 // For all extruders +//#define I_ENABLE_ON 0 +//#define J_ENABLE_ON 0 +//#define K_ENABLE_ON 0 + +// Disable axis steppers immediately when they're not being stepped. +// WARNING: When motors turn off there is a chance of losing position accuracy! +#define DISABLE_X false +#define DISABLE_Y false +#define DISABLE_Z false +//#define DISABLE_I false +//#define DISABLE_J false +//#define DISABLE_K false + +// Turn off the display blinking that warns about possible accuracy reduction +//#define DISABLE_REDUCED_ACCURACY_WARNING + +// @section extruder + +#define DISABLE_E false // Disable the extruder when not stepping +#define DISABLE_INACTIVE_EXTRUDER // Keep only the active extruder enabled + +// @section machine + +// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. +#define INVERT_X_DIR false +#define INVERT_Y_DIR false +#define INVERT_Z_DIR true +//#define INVERT_I_DIR false +//#define INVERT_J_DIR false +//#define INVERT_K_DIR false + +// @section extruder + +// For direct drive extruder v9 set to true, for geared extruder set to false. +#define INVERT_E0_DIR false +#define INVERT_E1_DIR false +#define INVERT_E2_DIR false +#define INVERT_E3_DIR false +#define INVERT_E4_DIR false +#define INVERT_E5_DIR false +#define INVERT_E6_DIR false +#define INVERT_E7_DIR false + +// @section homing + +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed. Also enable HOME_AFTER_DEACTIVATE for extra safety. +//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated. Also enable NO_MOTION_BEFORE_HOMING for extra safety. + +/** + * Set Z_IDLE_HEIGHT if the Z-Axis moves on its own when steppers are disabled. + * - Use a low value (i.e., Z_MIN_POS) if the nozzle falls down to the bed. + * - Use a large value (i.e., Z_MAX_POS) if the bed falls down, away from the nozzle. + */ +//#define Z_IDLE_HEIGHT Z_HOME_POS + +//#define Z_HOMING_HEIGHT 4 // (mm) Minimal Z height before homing (G28) for Z clearance above the bed, clamps, ... + // Be sure to have this much clearance over your Z_MAX_POS to prevent grinding. + +//#define Z_AFTER_HOMING 10 // (mm) Height to move to after homing Z + +// Direction of endstops when homing; 1=MAX, -1=MIN +// :[-1,1] +#define X_HOME_DIR -1 +#define Y_HOME_DIR -1 +#define Z_HOME_DIR -1 +//#define I_HOME_DIR -1 +//#define J_HOME_DIR -1 +//#define K_HOME_DIR -1 + +// @section machine + +// The size of the printable area +#define X_BED_SIZE 220 +#define Y_BED_SIZE 220 + +// Travel limits (mm) 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 250 +//#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 + +/** + * Software Endstops + * + * - Prevent moves outside the set machine bounds. + * - Individual axes can be disabled, if desired. + * - X and Y only apply to Cartesian robots. + * - Use 'M211' to set software endstops on/off or report current state + */ + +// Min software endstops constrain movement within minimum coordinate bounds +#define MIN_SOFTWARE_ENDSTOPS +#if ENABLED(MIN_SOFTWARE_ENDSTOPS) + #define MIN_SOFTWARE_ENDSTOP_X + #define MIN_SOFTWARE_ENDSTOP_Y + #define MIN_SOFTWARE_ENDSTOP_Z + #define MIN_SOFTWARE_ENDSTOP_I + #define MIN_SOFTWARE_ENDSTOP_J + #define MIN_SOFTWARE_ENDSTOP_K +#endif + +// Max software endstops constrain movement within maximum coordinate bounds +#define MAX_SOFTWARE_ENDSTOPS +#if ENABLED(MAX_SOFTWARE_ENDSTOPS) + #define MAX_SOFTWARE_ENDSTOP_X + #define MAX_SOFTWARE_ENDSTOP_Y + #define MAX_SOFTWARE_ENDSTOP_Z + #define MAX_SOFTWARE_ENDSTOP_I + #define MAX_SOFTWARE_ENDSTOP_J + #define MAX_SOFTWARE_ENDSTOP_K +#endif + +#if EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS) + //#define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD +#endif + +/** + * Filament Runout Sensors + * Mechanical or opto endstops are used to check for the presence of filament. + * + * IMPORTANT: Runout will only trigger if Marlin is aware that a print job is running. + * Marlin knows a print job is running when: + * 1. Running a print job from media started with M24. + * 2. The Print Job Timer has been started with M75. + * 3. The heaters were turned on and PRINTJOB_TIMER_AUTOSTART is enabled. + * + * RAMPS-based boards use SERVO3_PIN for the first runout sensor. + * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc. + */ +//#define FILAMENT_RUNOUT_SENSOR +#if ENABLED(FILAMENT_RUNOUT_SENSOR) + #define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500. + #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. + + #define FIL_RUNOUT_STATE LOW // Pin state indicating that filament is NOT present. + #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. + //#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins. + //#define WATCH_ALL_RUNOUT_SENSORS // Execute runout script on any triggering sensor, not only for the active extruder. + // This is automatically enabled for MIXING_EXTRUDERs. + + // Override individually if the runout sensors vary + //#define FIL_RUNOUT1_STATE LOW + //#define FIL_RUNOUT1_PULLUP + //#define FIL_RUNOUT1_PULLDOWN + + //#define FIL_RUNOUT2_STATE LOW + //#define FIL_RUNOUT2_PULLUP + //#define FIL_RUNOUT2_PULLDOWN + + //#define FIL_RUNOUT3_STATE LOW + //#define FIL_RUNOUT3_PULLUP + //#define FIL_RUNOUT3_PULLDOWN + + //#define FIL_RUNOUT4_STATE LOW + //#define FIL_RUNOUT4_PULLUP + //#define FIL_RUNOUT4_PULLDOWN + + //#define FIL_RUNOUT5_STATE LOW + //#define FIL_RUNOUT5_PULLUP + //#define FIL_RUNOUT5_PULLDOWN + + //#define FIL_RUNOUT6_STATE LOW + //#define FIL_RUNOUT6_PULLUP + //#define FIL_RUNOUT6_PULLDOWN + + //#define FIL_RUNOUT7_STATE LOW + //#define FIL_RUNOUT7_PULLUP + //#define FIL_RUNOUT7_PULLDOWN + + //#define FIL_RUNOUT8_STATE LOW + //#define FIL_RUNOUT8_PULLUP + //#define FIL_RUNOUT8_PULLDOWN + + // Commands to execute on filament runout. + // With multiple runout sensors use the %c placeholder for the current tool in commands (e.g., "M600 T%c") + // NOTE: After 'M412 H1' the host handles filament runout and this script does not apply. + #define FILAMENT_RUNOUT_SCRIPT "M600" + + // 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. + //#define FILAMENT_RUNOUT_DISTANCE_MM 25 + + #ifdef FILAMENT_RUNOUT_DISTANCE_MM + // Enable this option to use an encoder disc that toggles the runout pin + // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM + // large enough to avoid false positives.) + //#define FILAMENT_MOTION_SENSOR + #endif +#endif + +//=========================================================================== +//=============================== Bed Leveling ============================== +//=========================================================================== +// @section calibrate + +/** + * Choose one of the options below to enable G29 Bed Leveling. The parameters + * and behavior of G29 will change depending on your selection. + * + * If using a Probe for Z Homing, enable Z_SAFE_HOMING also! + * + * - AUTO_BED_LEVELING_3POINT + * Probe 3 arbitrary points on the bed (that aren't collinear) + * You specify the XY coordinates of all 3 points. + * The result is a single tilted plane. Best for a flat bed. + * + * - AUTO_BED_LEVELING_LINEAR + * Probe several points in a grid. + * You specify the rectangle and the density of sample points. + * The result is a single tilted plane. Best for a flat bed. + * + * - AUTO_BED_LEVELING_BILINEAR + * Probe several points in a grid. + * You specify the rectangle and the density of sample points. + * The result is a mesh, best for large or uneven beds. + * + * - AUTO_BED_LEVELING_UBL (Unified Bed Leveling) + * A comprehensive bed leveling system combining the features and benefits + * of other systems. UBL also includes integrated Mesh Generation, Mesh + * Validation and Mesh Editing systems. + * + * - MESH_BED_LEVELING + * Probe a grid manually + * The result is a mesh, suitable for large or uneven beds. (See BILINEAR.) + * For machines without a probe, Mesh Bed Leveling provides a method to perform + * leveling in steps so you can manually adjust the Z height at each grid-point. + * With an LCD controller the process is guided step-by-step. + */ +//#define AUTO_BED_LEVELING_3POINT +//#define AUTO_BED_LEVELING_LINEAR +//#define AUTO_BED_LEVELING_BILINEAR +#define AUTO_BED_LEVELING_UBL +//#define MESH_BED_LEVELING + +/** + * 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 ENABLE_LEVELING_AFTER_G28 + +/** + * Auto-leveling needs preheating + */ +//#define PREHEAT_BEFORE_LEVELING +#if ENABLED(PREHEAT_BEFORE_LEVELING) + #define LEVELING_NOZZLE_TEMP 120 // (°C) Only applies to E0 at this time + #define LEVELING_BED_TEMP 50 +#endif + +/** + * Enable detailed logging of G28, G29, M48, etc. + * Turn on with the command 'M111 S32'. + * NOTE: Requires a lot of PROGMEM! + */ +//#define DEBUG_LEVELING_FEATURE + +#if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL, PROBE_MANUALLY) + // Set a height for the start of manual adjustment + #define MANUAL_PROBE_START_Z 0.2 // (mm) Comment out to use the last-measured height +#endif + +#if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_UBL) + // Gradually reduce leveling correction until a set height is reached, + // at which point movement will be level to the machine's XY plane. + // The height can be set with M420 Z + #define ENABLE_LEVELING_FADE_HEIGHT + #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) + #define DEFAULT_LEVELING_FADE_HEIGHT 10.0 // (mm) Default fade height. + #endif + + // For Cartesian machines, instead of dividing moves on mesh boundaries, + // split up moves into short segments like a Delta. This follows the + // contours of the bed more closely than edge-to-edge straight moves. + #define SEGMENT_LEVELED_MOVES + #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one) + + /** + * Enable the G26 Mesh Validation Pattern tool. + */ + //#define G26_MESH_VALIDATION + #if ENABLED(G26_MESH_VALIDATION) + #define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle. + #define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for 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. + #define G26_RETRACT_MULTIPLIER 1.0 // G26 Q (retraction) used by default between mesh test elements. + #endif + +#endif + +#if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR) + + // Set the number of grid points per dimension. + #define GRID_MAX_POINTS_X 3 + #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X + + // Probe along the Y axis, advancing X after each column + //#define PROBE_Y_FIRST + + #if ENABLED(AUTO_BED_LEVELING_BILINEAR) + + // Beyond the probed grid, continue the implied tilt? + // Default is to maintain the height of the nearest edge. + #define EXTRAPOLATE_BEYOND_GRID + + // + // Experimental Subdivision of the grid by Catmull-Rom method. + // Synthesizes intermediate points to produce a more detailed mesh. + // + //#define ABL_BILINEAR_SUBDIVISION + #if ENABLED(ABL_BILINEAR_SUBDIVISION) + // Number of subdivisions between probe points + #define BILINEAR_SUBDIVISIONS 3 + #endif + + #endif + +#elif ENABLED(AUTO_BED_LEVELING_UBL) + + //=========================================================================== + //========================= Unified Bed Leveling ============================ + //=========================================================================== + + //#define MESH_EDIT_GFX_OVERLAY // Display a graphics overlay while editing the mesh + + #define MESH_INSET 1 // Set Mesh bounds as an inset region of the bed + #define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited. + #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X + + //#define UBL_HILBERT_CURVE // Use Hilbert distribution for less travel when probing multiple points + + #define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle + #define UBL_SAVE_ACTIVE_ON_M500 // Save the currently active mesh in the current slot on M500 + + //#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // When the nozzle is off the mesh, this value is used + // as the Z-Height correction value. + + //#define UBL_MESH_WIZARD // Run several commands in a row to get a complete mesh + +#elif ENABLED(MESH_BED_LEVELING) + + //=========================================================================== + //=================================== Mesh ================================== + //=========================================================================== + + #define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed + #define GRID_MAX_POINTS_X 3 // Don't use more than 7 points per axis, implementation limited. + #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X + + //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS + +#endif // BED_LEVELING + +/** + * Add a bed leveling sub-menu for ABL or MBL. + * Include a guided procedure if manual probing is enabled. + */ +#define LCD_BED_LEVELING + +#if ENABLED(LCD_BED_LEVELING) + #define MESH_EDIT_Z_STEP 0.025 // (mm) Step size while manually probing Z axis. + #define LCD_PROBE_Z_RANGE 4 // (mm) Z Range centered on Z_MIN_POS for LCD Z adjustment + //#define MESH_EDIT_MENU // Add a menu to edit mesh points +#endif + +// Add a menu item to move between bed corners for manual bed adjustment +#define LCD_BED_TRAMMING + +#if ENABLED(LCD_BED_TRAMMING) + #define BED_TRAMMING_INSET_LFRB { 30, 30, 30, 30 } // (mm) Left, Front, Right, Back insets + #define BED_TRAMMING_HEIGHT 0.0 // (mm) Z height of nozzle at leveling points + #define BED_TRAMMING_Z_HOP 4.0 // (mm) Z height of nozzle between leveling points + //#define BED_TRAMMING_INCLUDE_CENTER // Move to the center after the last corner + //#define BED_TRAMMING_USE_PROBE + #if ENABLED(BED_TRAMMING_USE_PROBE) + #define BED_TRAMMING_PROBE_TOLERANCE 0.1 // (mm) + #define BED_TRAMMING_VERIFY_RAISED // After adjustment triggers the probe, re-probe to verify + //#define BED_TRAMMING_AUDIO_FEEDBACK + #endif + + /** + * Corner Leveling Order + * + * Set 2 or 4 points. When 2 points are given, the 3rd is the center of the opposite edge. + * + * LF Left-Front RF Right-Front + * LB Left-Back RB Right-Back + * + * Examples: + * + * Default {LF,RB,LB,RF} {LF,RF} {LB,LF} + * LB --------- RB LB --------- RB LB --------- RB LB --------- RB + * | 4 3 | | 3 2 | | <3> | | 1 | + * | | | | | | | <3>| + * | 1 2 | | 1 4 | | 1 2 | | 2 | + * LF --------- RF LF --------- RF LF --------- RF LF --------- RF + */ + #define BED_TRAMMING_LEVELING_ORDER { LF, RF, RB, LB } +#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" + +// @section homing + +// The center of the bed is at (X=0, Y=0) +//#define BED_CENTER_AT_0_0 + +// Manually set the home position. Leave these undefined for automatic settings. +// For DELTA this is the top-center of the Cartesian print volume. +//#define MANUAL_X_HOME_POS 0 +//#define MANUAL_Y_HOME_POS 0 +//#define MANUAL_Z_HOME_POS 0 +//#define MANUAL_I_HOME_POS 0 +//#define MANUAL_J_HOME_POS 0 +//#define MANUAL_K_HOME_POS 0 + +/** + * Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. + * + * - Moves the Z probe (or nozzle) to a defined XY point before Z homing. + * - Allows Z homing only when XY positions are known and trusted. + * - If stepper drivers sleep, XY homing may be required again before Z homing. + */ +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE - 10) / 2) // X point for Z homing + #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE - 10) / 2) // Y point for Z homing +#endif + +// Homing speeds (mm/min) +#define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (4*60) } + +// Validate that endstops are triggered on homing moves +#define VALIDATE_HOMING_ENDSTOPS + +// @section calibrate + +/** + * Bed Skew Compensation + * + * This feature corrects for misalignment in the XYZ axes. + * + * Take the following steps to get the bed skew in the XY plane: + * 1. Print a test square (e.g., https://www.thingiverse.com/thing:2563185) + * 2. For XY_DIAG_AC measure the diagonal A to C + * 3. For XY_DIAG_BD measure the diagonal B to D + * 4. For XY_SIDE_AD measure the edge A to D + * + * Marlin automatically computes skew factors from these measurements. + * Skew factors may also be computed and set manually: + * + * - Compute AB : SQRT(2*AC*AC+2*BD*BD-4*AD*AD)/2 + * - XY_SKEW_FACTOR : TAN(PI/2-ACOS((AC*AC-AB*AB-AD*AD)/(2*AB*AD))) + * + * If desired, follow the same procedure for XZ and YZ. + * Use these diagrams for reference: + * + * Y Z Z + * ^ B-------C ^ B-------C ^ B-------C + * | / / | / / | / / + * | / / | / / | / / + * | A-------D | A-------D | A-------D + * +-------------->X +-------------->X +-------------->Y + * XY_SKEW_FACTOR XZ_SKEW_FACTOR YZ_SKEW_FACTOR + */ +//#define SKEW_CORRECTION + +#if ENABLED(SKEW_CORRECTION) + // Input all length measurements here: + #define XY_DIAG_AC 282.8427124746 + #define XY_DIAG_BD 282.8427124746 + #define XY_SIDE_AD 200 + + // Or, set the default skew factors directly here + // to override the above measurements: + #define XY_SKEW_FACTOR 0.0 + + //#define SKEW_CORRECTION_FOR_Z + #if ENABLED(SKEW_CORRECTION_FOR_Z) + #define XZ_DIAG_AC 282.8427124746 + #define XZ_DIAG_BD 282.8427124746 + #define YZ_DIAG_AC 282.8427124746 + #define YZ_DIAG_BD 282.8427124746 + #define YZ_SIDE_AD 200 + #define XZ_SKEW_FACTOR 0.0 + #define YZ_SKEW_FACTOR 0.0 + #endif + + // Enable this option for M852 to set skew at runtime + //#define SKEW_CORRECTION_GCODE +#endif + +//============================================================================= +//============================= Additional Features =========================== +//============================================================================= + +// @section extras + +/** + * EEPROM + * + * Persistent storage to preserve configurable settings across reboots. + * + * M500 - Store settings to EEPROM. + * M501 - Read settings from EEPROM. (i.e., Throw away unsaved changes) + * M502 - Revert settings to "factory" defaults. (Follow with M500 to init the EEPROM.) + */ +#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 PROGMEM. +#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_INIT_NOW // Init EEPROM on first boot after a new build. +#endif + +// +// Host Keepalive +// +// When enabled Marlin will send a busy status message to the host +// 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 2 // Number of seconds between "busy" messages. Set with M113. +#define BUSY_WHILE_HEATING // Some hosts require "busy" messages even during heating + +// +// G20/G21 Inch mode support +// +//#define INCH_MODE_SUPPORT + +// +// M149 Set temperature units support +// +//#define TEMPERATURE_UNITS_SUPPORT + +// @section temperature + +// +// Preheat Constants - Up to 6 are supported without changes +// +#define PREHEAT_1_LABEL "PLA" +#define PREHEAT_1_TEMP_HOTEND 185 +#define PREHEAT_1_TEMP_BED 45 +#define PREHEAT_1_TEMP_CHAMBER 35 +#define PREHEAT_1_FAN_SPEED 255 // Value from 0 to 255 + +#define PREHEAT_2_LABEL "ABS" +#define PREHEAT_2_TEMP_HOTEND 240 +#define PREHEAT_2_TEMP_BED 70 +#define PREHEAT_2_TEMP_CHAMBER 35 +#define PREHEAT_2_FAN_SPEED 255 // Value from 0 to 255 + +/** + * Nozzle Park + * + * Park the nozzle at the given XYZ position on idle or G27. + * + * The "P" parameter controls the action applied to the Z axis: + * + * P0 (Default) If Z is below park Z raise the nozzle. + * P1 Raise the nozzle always to Z-park height. + * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS. + */ +#define NOZZLE_PARK_FEATURE + +#if ENABLED(NOZZLE_PARK_FEATURE) + // Specify a park position as { X, Y, Z_raise } + #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } + #define NOZZLE_PARK_MOVE 0 // Park motion: 0 = XY Move, 1 = X Only, 2 = Y Only, 3 = X before Y, 4 = Y before X + #define NOZZLE_PARK_Z_RAISE_MIN 2 // (mm) Always raise Z by at least this distance + #define NOZZLE_PARK_XY_FEEDRATE 100 // (mm/s) X and Y axes feedrate (also used for delta Z axis) + #define NOZZLE_PARK_Z_FEEDRATE 5 // (mm/s) Z axis feedrate (not used for delta printers) +#endif + +/** + * Clean Nozzle Feature -- EXPERIMENTAL + * + * Adds the G12 command to perform a nozzle cleaning process. + * + * Parameters: + * P Pattern + * S Strokes / Repetitions + * T Triangles (P1 only) + * + * Patterns: + * P0 Straight line (default). This process requires a sponge type material + * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions) + * between the start / end points. + * + * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the + * number of zig-zag triangles to do. "S" defines the number of strokes. + * Zig-zags are done in whichever is the narrower dimension. + * For example, "G12 P1 S1 T3" will execute: + * + * -- + * | (X0, Y1) | /\ /\ /\ | (X1, Y1) + * | | / \ / \ / \ | + * A | | / \ / \ / \ | + * | | / \ / \ / \ | + * | (X0, Y0) | / \/ \/ \ | (X1, Y0) + * -- +--------------------------------+ + * |________|_________|_________| + * T1 T2 T3 + * + * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE. + * "R" specifies the radius. "S" specifies the stroke count. + * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT. + * + * Caveats: The ending Z should be the same as starting Z. + * Attention: EXPERIMENTAL. G-code arguments may change. + */ +//#define NOZZLE_CLEAN_FEATURE + +#if ENABLED(NOZZLE_CLEAN_FEATURE) + // Default number of pattern repetitions + #define NOZZLE_CLEAN_STROKES 12 + + // Default number of triangles + #define NOZZLE_CLEAN_TRIANGLES 3 + + // Specify positions for each tool as { { X, Y, Z }, { X, Y, Z } } + // Dual hotend system may use { { -20, (Y_BED_SIZE / 2), (Z_MIN_POS + 1) }, { 420, (Y_BED_SIZE / 2), (Z_MIN_POS + 1) }} + #define NOZZLE_CLEAN_START_POINT { { 30, 30, (Z_MIN_POS + 1) } } + #define NOZZLE_CLEAN_END_POINT { { 100, 60, (Z_MIN_POS + 1) } } + + // Circular pattern radius + #define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5 + // Circular pattern circle fragments number + #define NOZZLE_CLEAN_CIRCLE_FN 10 + // Middle point of circle + #define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT + + // Move the nozzle to the initial position after cleaning + #define NOZZLE_CLEAN_GOBACK + + // For a purge/clean station that's always at the gantry height (thus no Z move) + //#define NOZZLE_CLEAN_NO_Z + + // For a purge/clean station mounted on the X axis + //#define NOZZLE_CLEAN_NO_Y + + // Require a minimum hotend temperature for cleaning + #define NOZZLE_CLEAN_MIN_TEMP 170 + //#define NOZZLE_CLEAN_HEATUP // Heat up the nozzle instead of skipping wipe + + // Explicit wipe G-code script applies to a G12 with no arguments. + //#define WIPE_SEQUENCE_COMMANDS "G1 X-17 Y25 Z10 F4000\nG1 Z1\nM114\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 Z15\nM400\nG0 X-10.0 Y-9.0" + +#endif + +/** + * Print Job Timer + * + * Automatically start and stop the print job timer on M104/M109/M140/M190/M141/M191. + * The print job timer will only be stopped if the bed/chamber target temp is + * below BED_MINTEMP/CHAMBER_MINTEMP. + * + * M104 (hotend, no wait) - high temp = none, low temp = stop timer + * M109 (hotend, wait) - high temp = start timer, low temp = stop timer + * M140 (bed, no wait) - high temp = none, low temp = stop timer + * M190 (bed, wait) - high temp = start timer, low temp = none + * M141 (chamber, no wait) - high temp = none, low temp = stop timer + * M191 (chamber, wait) - high temp = start timer, low temp = none + * + * For M104/M109, high temp is anything over EXTRUDE_MINTEMP / 2. + * For M140/M190, high temp is anything over BED_MINTEMP. + * For M141/M191, high temp is anything over CHAMBER_MINTEMP. + * + * The timer can also be controlled with the following commands: + * + * M75 - Start the print job timer + * M76 - Pause the print job timer + * M77 - Stop the print job timer + */ +#define PRINTJOB_TIMER_AUTOSTART + +/** + * Print Counter + * + * Track statistical data such as: + * + * - Total print jobs + * - Total successful print jobs + * - Total failed print jobs + * - Total time printing + * + * View the current statistics with M78. + */ +//#define PRINTCOUNTER +#if ENABLED(PRINTCOUNTER) + #define PRINTCOUNTER_SAVE_INTERVAL 60 // (minutes) EEPROM save interval during print +#endif + +/** + * Password + * + * Set a numerical password for the printer which can be requested: + * + * - When the printer boots up + * - Upon opening the 'Print from Media' Menu + * - When SD printing is completed or aborted + * + * The following G-codes can be used: + * + * M510 - Lock Printer. Blocks all commands except M511. + * M511 - Unlock Printer. + * M512 - Set, Change and Remove Password. + * + * If you forget the password and get locked out you'll need to re-flash + * the firmware with the feature disabled, reset EEPROM, and (optionally) + * re-flash the firmware again with this feature enabled. + */ +//#define PASSWORD_FEATURE +#if ENABLED(PASSWORD_FEATURE) + #define PASSWORD_LENGTH 4 // (#) Number of digits (1-9). 3 or 4 is recommended + #define PASSWORD_ON_STARTUP + #define PASSWORD_UNLOCK_GCODE // Unlock with the M511 P command. Disable to prevent brute-force attack. + #define PASSWORD_CHANGE_GCODE // Change the password with M512 P S. + //#define PASSWORD_ON_SD_PRINT_MENU // This does not prevent gcodes from running + //#define PASSWORD_AFTER_SD_PRINT_END + //#define PASSWORD_AFTER_SD_PRINT_ABORT + //#include "Configuration_Secure.h" // External file with PASSWORD_DEFAULT_VALUE +#endif + +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + +// @section lcd + +/** + * LCD LANGUAGE + * + * Select the language to display on the LCD. These languages are available: + * + * en, an, bg, ca, cz, da, de, el, el_CY, es, eu, fi, fr, gl, hr, hu, it, + * jp_kana, ko_KR, nl, pl, pt, pt_br, ro, ru, sk, sv, tr, uk, vi, zh_CN, zh_TW + * + * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cz':'Czech', 'da':'Danish', 'de':'German', 'el':'Greek (Greece)', 'el_CY':'Greek (Cyprus)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'hu':'Hungarian', 'it':'Italian', 'jp_kana':'Japanese', 'ko_KR':'Korean (South Korea)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt_br':'Portuguese (Brazilian)', 'ro':'Romanian', 'ru':'Russian', 'sk':'Slovak', 'sv':'Swedish', 'tr':'Turkish', 'uk':'Ukrainian', 'vi':'Vietnamese', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Traditional)' } + */ +#define LCD_LANGUAGE en + +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCDs provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See https://marlinfw.org/docs/development/lcd_language.html + * + * :['JAPANESE', 'WESTERN', 'CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE + +/** + * Info Screen Style (0:Classic, 1:Průša) + * + * :[0:'Classic', 1:'Průša'] + */ +#define LCD_INFO_SCREEN_STYLE 0 + +/** + * SD CARD + * + * SD Card support is disabled by default. If your controller has an SD slot, + * you must uncomment the following option or it won't work. + */ +#define SDSUPPORT + +/** + * SD CARD: ENABLE CRC + * + * Use CRC checks and retries on the SD communication. + */ +//#define SD_CHECK_AND_RETRY + +/** + * LCD Menu Items + * + * Disable all menus and only display the Status Screen, or + * just remove some extraneous menu items to recover space. + */ +//#define NO_LCD_MENUS +//#define SLIM_LCD_MENUS + +// +// ENCODER SETTINGS +// +// This option overrides the default number of encoder pulses needed to +// produce one step. Should be increased for high-resolution encoders. +// +#define ENCODER_PULSES_PER_STEP 4 + +// +// Use this option to override the number of step signals required to +// move between next/prev menu items. +// +#define ENCODER_STEPS_PER_MENU_ITEM 1 + +/** + * Encoder Direction Options + * + * Test your encoder's behavior first with both options disabled. + * + * Reversed Value Edit and Menu Nav? Enable REVERSE_ENCODER_DIRECTION. + * Reversed Menu Navigation only? Enable REVERSE_MENU_DIRECTION. + * Reversed Value Editing only? Enable BOTH options. + */ + +// +// This option reverses the encoder direction everywhere. +// +// Set this option if CLOCKWISE causes values to DECREASE +// +//#define REVERSE_ENCODER_DIRECTION + +// +// This option reverses the encoder direction for navigating LCD menus. +// +// If CLOCKWISE normally moves DOWN this makes it go UP. +// If CLOCKWISE normally moves UP this makes it go DOWN. +// +//#define REVERSE_MENU_DIRECTION + +// +// This option reverses the encoder direction for Select Screen. +// +// If CLOCKWISE normally moves LEFT this makes it go RIGHT. +// If CLOCKWISE normally moves RIGHT this makes it go LEFT. +// +//#define REVERSE_SELECT_DIRECTION + +// +// Individual Axis Homing +// +// Add individual axis homing items (Home X, Home Y, and Home Z) to the LCD menu. +// +//#define INDIVIDUAL_AXIS_HOMING_MENU +//#define INDIVIDUAL_AXIS_HOMING_SUBMENU + +// +// SPEAKER/BUZZER +// +// If you have a speaker that can produce tones, enable it here. +// By default Marlin assumes you have a buzzer with a fixed frequency. +// +//#define SPEAKER + +// +// The duration and frequency for the UI feedback sound. +// Set these to 0 to disable audio feedback in the LCD menus. +// +// Note: Test audio output with the G-Code: +// M300 S P +// +#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 2 +#define LCD_FEEDBACK_FREQUENCY_HZ 5000 + +//============================================================================= +//======================== LCD / Controller Selection ========================= +//======================== (Character-based LCDs) ========================= +//============================================================================= + +// +// RepRapDiscount Smart Controller. +// https://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// +//#define REPRAP_DISCOUNT_SMART_CONTROLLER + +// +// GT2560 (YHCB2004) LCD Display +// +// Requires Testato, Koepel softwarewire library and +// Andriy Golovnya's LiquidCrystal_AIP31068 library. +// +//#define YHCB2004 + +// +// Original RADDS LCD Display+Encoder+SDCardReader +// http://doku.radds.org/dokumentation/lcd-display/ +// +//#define RADDS_DISPLAY + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// +// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) +// https://reprap.org/wiki/PanelOne +// +//#define PANEL_ONE + +// +// GADGETS3D G3D LCD/SD Controller +// https://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel +// +// Note: Usually sold with a blue PCB. +// +//#define G3D_PANEL + +// +// RigidBot Panel V1.0 +// http://www.inventapart.com/ +// +//#define RIGIDBOT_PANEL + +// +// Makeboard 3D Printer Parts 3D Printer Mini Display 1602 Mini Controller +// https://www.aliexpress.com/item/32765887917.html +// +//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602 + +// +// ANET and Tronxy 20x4 Controller +// +//#define ZONESTAR_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin. + // This LCD is known to be susceptible to electrical interference + // which scrambles the display. Pressing any button clears it up. + // This is a LCD2004 display with 5 analog buttons. + +// +// Generic 16x2, 16x4, 20x2, or 20x4 character-based LCD. +// +//#define ULTRA_LCD + +//============================================================================= +//======================== LCD / Controller Selection ========================= +//===================== (I2C and Shift-Register LCDs) ===================== +//============================================================================= + +// +// CONTROLLER TYPE: I2C +// +// Note: These controllers require the installation of Arduino's LiquidCrystal_I2C +// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C +// + +// +// Elefu RA Board Control Panel +// http://www.elefu.com/index.php?route=product/product&product_id=53 +// +//#define RA_CONTROL_PANEL + +// +// Sainsmart (YwRobot) LCD Displays +// +// These require F.Malpartida's LiquidCrystal_I2C library +// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home +// +//#define LCD_SAINSMART_I2C_1602 +//#define LCD_SAINSMART_I2C_2004 + +// +// Generic LCM1602 LCD adapter +// +//#define LCM1602 + +// +// PANELOLU2 LCD with status LEDs, +// separate encoder and click inputs. +// +// Note: This controller requires Arduino's LiquidTWI2 library v1.2.3 or later. +// For more info: https://github.com/lincomatic/LiquidTWI2 +// +// Note: The PANELOLU2 encoder click input can either be directly connected to +// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1). +// +//#define LCD_I2C_PANELOLU2 + +// +// Panucatt VIKI LCD with status LEDs, +// integrated click & L/R/U/D buttons, separate encoder inputs. +// +//#define LCD_I2C_VIKI + +// +// CONTROLLER TYPE: Shift register panels +// + +// +// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH +// LCD configuration: https://reprap.org/wiki/SAV_3D_LCD +// +//#define SAV_3DLCD + +// +// 3-wire SR LCD with strobe using 74HC4094 +// https://github.com/mikeshub/SailfishLCD +// Uses the code directly from Sailfish +// +//#define FF_INTERFACEBOARD + +// +// TFT GLCD Panel with Marlin UI +// Panel connected to main board by SPI or I2C interface. +// See https://github.com/Serhiy-K/TFTGLCDAdapter +// +//#define TFTGLCD_PANEL_SPI +//#define TFTGLCD_PANEL_I2C + +//============================================================================= +//======================= LCD / Controller Selection ======================= +//========================= (Graphical LCDs) ======================== +//============================================================================= + +// +// CONTROLLER TYPE: Graphical 128x64 (DOGM) +// +// IMPORTANT: The U8glib library is required for Graphical Display! +// https://github.com/olikraus/U8glib_Arduino +// +// NOTE: If the LCD is unresponsive you may need to reverse the plugs. +// + +// +// RepRapDiscount FULL GRAPHIC Smart Controller +// https://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller +// +//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER + +// +// K.3D Full Graphic Smart Controller +// +//#define K3D_FULL_GRAPHIC_SMART_CONTROLLER + +// +// ReprapWorld Graphical LCD +// https://reprapworld.com/?products_details&products_id/1218 +// +//#define REPRAPWORLD_GRAPHICAL_LCD + +// +// Activate one of these if you have a Panucatt Devices +// Viki 2.0 or mini Viki with Graphic LCD +// https://www.panucatt.com +// +//#define VIKI2 +//#define miniVIKI + +// +// Alfawise Ex8 printer LCD marked as WYH L12864 COG +// +//#define WYH_L12864 + +// +// MakerLab Mini Panel with graphic +// controller and SD support - https://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// MaKr3d Makr-Panel with graphic controller and SD support. +// https://reprap.org/wiki/MaKr3d_MaKrPanel +// +//#define MAKRPANEL + +// +// Adafruit ST7565 Full Graphic Controller. +// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/ +// +//#define ELB_FULL_GRAPHIC_CONTROLLER + +// +// BQ LCD Smart Controller shipped by +// default with the BQ Hephestos 2 and Witbox 2. +// +//#define BQ_LCD_SMART_CONTROLLER + +// +// Cartesio UI +// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface +// +//#define CARTESIO_UI + +// +// LCD for Melzi Card with Graphical LCD +// +//#define LCD_FOR_MELZI + +// +// Original Ulticontroller from Ultimaker 2 printer with SSD1309 I2C display and encoder +// https://github.com/Ultimaker/Ultimaker2/tree/master/1249_Ulticontroller_Board_(x1) +// +//#define ULTI_CONTROLLER + +// +// MKS MINI12864 with graphic controller and SD support +// https://reprap.org/wiki/MKS_MINI_12864 +// +//#define MKS_MINI_12864 + +// +// MKS MINI12864 V3 is an alias for FYSETC_MINI_12864_2_1. Type A/B. NeoPixel RGB Backlight. +// +//#define MKS_MINI_12864_V3 + +// +// MKS LCD12864A/B with graphic controller and SD support. Follows MKS_MINI_12864 pinout. +// https://www.aliexpress.com/item/33018110072.html +// +//#define MKS_LCD12864A +//#define MKS_LCD12864B + +// +// FYSETC variant of the MINI12864 graphic controller with SD support +// https://wiki.fysetc.com/Mini12864_Panel/ +// +//#define FYSETC_MINI_12864_X_X // Type C/D/E/F. No tunable RGB Backlight by default +//#define FYSETC_MINI_12864_1_2 // Type C/D/E/F. Simple RGB Backlight (always on) +//#define FYSETC_MINI_12864_2_0 // Type A/B. Discreet RGB Backlight +//#define FYSETC_MINI_12864_2_1 // Type A/B. NeoPixel RGB Backlight +//#define FYSETC_GENERIC_12864_1_1 // Larger display with basic ON/OFF backlight. + +// +// BigTreeTech Mini 12864 V1.0 is an alias for FYSETC_MINI_12864_2_1. Type A/B. NeoPixel RGB Backlight. +// +//#define BTT_MINI_12864_V1 + +// +// Factory display for Creality CR-10 +// https://www.aliexpress.com/item/32833148327.html +// +// This is RAMPS-compatible using a single 10-pin connector. +// (For CR-10 owners who want to replace the Melzi Creality board but retain the display) +// +//#define CR10_STOCKDISPLAY + +// +// Ender-2 OEM display, a variant of the MKS_MINI_12864 +// +//#define ENDER2_STOCKDISPLAY + +// +// ANET and Tronxy Graphical Controller +// +// Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6 +// A clone of the RepRapDiscount full graphics display but with +// different pins/wiring (see pins_ANET_10.h). Enable one of these. +// +//#define ANET_FULL_GRAPHICS_LCD +//#define ANET_FULL_GRAPHICS_LCD_ALT_WIRING + +// +// AZSMZ 12864 LCD with SD +// https://www.aliexpress.com/item/32837222770.html +// +//#define AZSMZ_12864 + +// +// Silvergate GLCD controller +// https://github.com/android444/Silvergate +// +//#define SILVER_GATE_GLCD_CONTROLLER + +//============================================================================= +//============================== OLED Displays ============================== +//============================================================================= + +// +// SSD1306 OLED full graphics generic display +// +//#define U8GLIB_SSD1306 + +// +// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules +// +//#define SAV_3DGLCD +#if ENABLED(SAV_3DGLCD) + #define U8GLIB_SSD1306 + //#define U8GLIB_SH1106 +#endif + +// +// TinyBoy2 128x64 OLED / Encoder Panel +// +//#define OLED_PANEL_TINYBOY2 + +// +// MKS OLED 1.3" 128×64 Full Graphics Controller +// https://reprap.org/wiki/MKS_12864OLED +// +// Tiny, but very sharp OLED display +// +//#define MKS_12864OLED // Uses the SH1106 controller (default) +//#define MKS_12864OLED_SSD1306 // Uses the SSD1306 controller + +// +// Zonestar OLED 128×64 Full Graphics Controller +// +//#define ZONESTAR_12864LCD // Graphical (DOGM) with ST7920 controller +//#define ZONESTAR_12864OLED // 1.3" OLED with SH1106 controller (default) +//#define ZONESTAR_12864OLED_SSD1306 // 0.96" OLED with SSD1306 controller + +// +// Einstart S OLED SSD1306 +// +//#define U8GLIB_SH1106_EINSTART + +// +// Overlord OLED display/controller with i2c buzzer and LEDs +// +//#define OVERLORD_OLED + +// +// FYSETC OLED 2.42" 128×64 Full Graphics Controller with WS2812 RGB +// Where to find : https://www.aliexpress.com/item/4000345255731.html +//#define FYSETC_242_OLED_12864 // Uses the SSD1309 controller + +// +// K.3D SSD1309 OLED 2.42" 128×64 Full Graphics Controller +// +//#define K3D_242_OLED_CONTROLLER // Software SPI + +//============================================================================= +//========================== Extensible UI Displays =========================== +//============================================================================= + +/** + * DGUS Touch Display with DWIN OS. (Choose one.) + * ORIGIN : https://www.aliexpress.com/item/32993409517.html + * FYSETC : https://www.aliexpress.com/item/32961471929.html + * MKS : https://www.aliexpress.com/item/1005002008179262.html + * + * Flash display with DGUS Displays for Marlin: + * - Format the SD card to FAT32 with an allocation size of 4kb. + * - Download files as specified for your type of display. + * - Plug the microSD card into the back of the display. + * - Boot the display and wait for the update to complete. + * + * ORIGIN (Marlin DWIN_SET) + * - Download https://github.com/coldtobi/Marlin_DGUS_Resources + * - Copy the downloaded DWIN_SET folder to the SD card. + * + * FYSETC (Supplier default) + * - Download https://github.com/FYSETC/FYSTLCD-2.0 + * - Copy the downloaded SCREEN folder to the SD card. + * + * HIPRECY (Supplier default) + * - Download https://github.com/HiPrecy/Touch-Lcd-LEO + * - Copy the downloaded DWIN_SET folder to the SD card. + * + * MKS (MKS-H43) (Supplier default) + * - Download https://github.com/makerbase-mks/MKS-H43 + * - Copy the downloaded DWIN_SET folder to the SD card. + * + * RELOADED (T5UID1) + * - Download https://github.com/Desuuuu/DGUS-reloaded/releases + * - Copy the downloaded DWIN_SET folder to the SD card. + */ +//#define DGUS_LCD_UI_ORIGIN +//#define DGUS_LCD_UI_FYSETC +//#define DGUS_LCD_UI_HIPRECY +//#define DGUS_LCD_UI_MKS +//#define DGUS_LCD_UI_RELOADED +#if ENABLED(DGUS_LCD_UI_MKS) + #define USE_MKS_GREEN_UI +#endif + +// +// Touch-screen LCD for Malyan M200/M300 printers +// +//#define MALYAN_LCD + +// +// Touch UI for FTDI EVE (FT800/FT810) displays +// See Configuration_adv.h for all configuration options. +// +//#define TOUCH_UI_FTDI_EVE + +// +// Touch-screen LCD for Anycubic printers +// +//#define ANYCUBIC_LCD_I3MEGA +//#define ANYCUBIC_LCD_CHIRON +#if EITHER(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON) + //#define ANYCUBIC_LCD_DEBUG +#endif + +// +// 320x240 Nextion 2.8" serial TFT Resistive Touch Screen NX3224T028 +// +//#define NEXTION_TFT + +// +// Third-party or vendor-customized controller interfaces. +// Sources should be installed in 'src/lcd/extui'. +// +//#define EXTENSIBLE_UI + +#if ENABLED(EXTENSIBLE_UI) + //#define EXTUI_LOCAL_BEEPER // Enables use of local Beeper pin with external display +#endif + +//============================================================================= +//=============================== Graphical TFTs ============================== +//============================================================================= + +/** + * Specific TFT Model Presets. Enable one of the following options + * or enable TFT_GENERIC and set sub-options. + */ + +// +// 480x320, 3.5", SPI Display with Rotary Encoder from MKS +// Usually paired with MKS Robin Nano V2 & V3 +// +//#define MKS_TS35_V2_0 + +// +// 320x240, 2.4", FSMC Display From MKS +// Usually paired with MKS Robin Nano V1.2 +// +//#define MKS_ROBIN_TFT24 + +// +// 320x240, 2.8", FSMC Display From MKS +// Usually paired with MKS Robin Nano V1.2 +// +//#define MKS_ROBIN_TFT28 + +// +// 320x240, 3.2", FSMC Display From MKS +// Usually paired with MKS Robin Nano V1.2 +// +//#define MKS_ROBIN_TFT32 + +// +// 480x320, 3.5", FSMC Display From MKS +// Usually paired with MKS Robin Nano V1.2 +// +//#define MKS_ROBIN_TFT35 + +// +// 480x272, 4.3", FSMC Display From MKS +// +//#define MKS_ROBIN_TFT43 + +// +// 320x240, 3.2", FSMC Display From MKS +// Usually paired with MKS Robin +// +//#define MKS_ROBIN_TFT_V1_1R + +// +// 480x320, 3.5", FSMC Stock Display from TronxXY +// +//#define TFT_TRONXY_X5SA + +// +// 480x320, 3.5", FSMC Stock Display from AnyCubic +// +//#define ANYCUBIC_TFT35 + +// +// 320x240, 2.8", FSMC Stock Display from Longer/Alfawise +// +//#define LONGER_LK_TFT28 + +// +// 320x240, 2.8", FSMC Stock Display from ET4 +// +//#define ANET_ET4_TFT28 + +// +// 480x320, 3.5", FSMC Stock Display from ET5 +// +//#define ANET_ET5_TFT35 + +// +// 1024x600, 7", RGB Stock Display with Rotary Encoder from BIQU-BX +// +//#define BIQU_BX_TFT70 + +// +// 480x320, 3.5", SPI Stock Display with Rotary Encoder from BIQU B1 SE Series +// +//#define BTT_TFT35_SPI_V1_0 + +// +// Generic TFT with detailed options +// +//#define TFT_GENERIC +#if ENABLED(TFT_GENERIC) + // :[ 'AUTO', 'ST7735', 'ST7789', 'ST7796', 'R61505', 'ILI9328', 'ILI9341', 'ILI9488' ] + #define TFT_DRIVER AUTO + + // Interface. Enable one of the following options: + //#define TFT_INTERFACE_FSMC + //#define TFT_INTERFACE_SPI + + // TFT Resolution. Enable one of the following options: + //#define TFT_RES_320x240 + //#define TFT_RES_480x272 + //#define TFT_RES_480x320 + //#define TFT_RES_1024x600 +#endif + +/** + * TFT UI - User Interface Selection. Enable one of the following options: + * + * TFT_CLASSIC_UI - Emulated DOGM - 128x64 Upscaled + * TFT_COLOR_UI - Marlin Default Menus, Touch Friendly, using full TFT capabilities + * TFT_LVGL_UI - A Modern UI using LVGL + * + * For LVGL_UI also copy the 'assets' folder from the build directory to the + * root of your SD card, together with the compiled firmware. + */ +//#define TFT_CLASSIC_UI +//#define TFT_COLOR_UI +//#define TFT_LVGL_UI + +#if ENABLED(TFT_LVGL_UI) + //#define MKS_WIFI_MODULE // MKS WiFi module +#endif + +/** + * TFT Rotation. Set to one of the following values: + * + * TFT_ROTATE_90, TFT_ROTATE_90_MIRROR_X, TFT_ROTATE_90_MIRROR_Y, + * TFT_ROTATE_180, TFT_ROTATE_180_MIRROR_X, TFT_ROTATE_180_MIRROR_Y, + * TFT_ROTATE_270, TFT_ROTATE_270_MIRROR_X, TFT_ROTATE_270_MIRROR_Y, + * TFT_MIRROR_X, TFT_MIRROR_Y, TFT_NO_ROTATION + */ +//#define TFT_ROTATION TFT_NO_ROTATION + +//============================================================================= +//============================ Other Controllers ============================ +//============================================================================= + +// +// Ender-3 v2 OEM display. A DWIN display with Rotary Encoder. +// +//#define DWIN_CREALITY_LCD // Creality UI +//#define DWIN_LCD_PROUI // Pro UI by MRiscoC +//#define DWIN_CREALITY_LCD_JYERSUI // Jyers UI by Jacob Myers +#define DWIN_MARLINUI_PORTRAIT // MarlinUI (portrait orientation) +//#define DWIN_MARLINUI_LANDSCAPE // MarlinUI (landscape orientation) + +// +// Touch Screen Settings +// +//#define TOUCH_SCREEN +#if ENABLED(TOUCH_SCREEN) + #define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens + #define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus + + //#define TOUCH_IDLE_SLEEP 300 // (s) Turn off the TFT backlight if set (5mn) + + #define TOUCH_SCREEN_CALIBRATION + + //#define TOUCH_CALIBRATION_X 12316 + //#define TOUCH_CALIBRATION_Y -8981 + //#define TOUCH_OFFSET_X -43 + //#define TOUCH_OFFSET_Y 257 + //#define TOUCH_ORIENTATION TOUCH_LANDSCAPE + + #if BOTH(TOUCH_SCREEN_CALIBRATION, EEPROM_SETTINGS) + #define TOUCH_CALIBRATION_AUTO_SAVE // Auto save successful calibration values to EEPROM + #endif + + #if ENABLED(TFT_COLOR_UI) + //#define SINGLE_TOUCH_NAVIGATION + #endif +#endif + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// https://reprapworld.com/products/electronics/ramps/keypad_v1_0_fully_assembled/ +// +//#define REPRAPWORLD_KEYPAD +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // (mm) Distance to move per key-press + +// +// EasyThreeD ET-4000+ with button input and status LED +// +//#define EASYTHREED_UI + +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + +// @section extras + +// Set number of user-controlled fans. Disable to use all board-defined fans. +// :[1,2,3,4,5,6,7,8] +//#define NUM_M106_FANS 1 + +// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency +// which is not as annoying as with the hardware PWM. On the other hand, if this frequency +// is too low, you should also increment SOFT_PWM_SCALE. +#define FAN_SOFT_PWM + +// Incrementing this by 1 will double the software PWM frequency, +// affecting heaters, and the fan if FAN_SOFT_PWM is enabled. +// 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 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, +// some of the PWM cycles are stretched so on average the desired +// duty cycle is attained. +//#define SOFT_PWM_DITHER + +// Temperature status LEDs that display the hotend and bed temperature. +// If all hotends, bed temperature, and target temperature are under 54C +// then the BLUE led is on. Otherwise the RED led is on. (1C hysteresis) +//#define TEMP_STAT_LEDS + +// Support for the BariCUDA Paste Extruder +//#define BARICUDA + +// Support for BlinkM/CyzRgb +//#define BLINKM + +// Support for PCA9632 PWM LED driver +//#define PCA9632 + +// Support for PCA9533 PWM LED driver +//#define PCA9533 + +/** + * RGB LED / LED Strip Control + * + * Enable support for an RGB LED connected to 5V digital pins, or + * an RGB Strip connected to MOSFETs controlled by digital pins. + * + * Adds the M150 command to set the LED (or LED strip) color. + * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of + * luminance values can be set from 0 to 255. + * For NeoPixel LED an overall brightness parameter is also available. + * + * *** CAUTION *** + * LED Strips require a MOSFET Chip between PWM lines and LEDs, + * as the Arduino cannot handle the current the LEDs will require. + * Failure to follow this precaution can destroy your Arduino! + * NOTE: A separate 5V power supply is required! The NeoPixel LED needs + * more current than the Arduino 5V linear regulator can produce. + * *** CAUTION *** + * + * LED Type. Enable only one of the following two options. + */ +//#define RGB_LED +//#define RGBW_LED + +#if EITHER(RGB_LED, RGBW_LED) + //#define RGB_LED_R_PIN 34 + //#define RGB_LED_G_PIN 43 + //#define RGB_LED_B_PIN 35 + //#define RGB_LED_W_PIN -1 +#endif + +// Support for Adafruit NeoPixel LED driver +//#define NEOPIXEL_LED +#if ENABLED(NEOPIXEL_LED) + #define NEOPIXEL_TYPE NEO_GRB // NEO_GRBW, NEO_RGBW, NEO_GRB, NEO_RBG, etc. + // See https://github.com/adafruit/Adafruit_NeoPixel/blob/master/Adafruit_NeoPixel.h + #define NEOPIXEL_PIN PB2 // LED driving pin + //#define NEOPIXEL2_TYPE NEOPIXEL_TYPE + //#define NEOPIXEL2_PIN 5 + #define NEOPIXEL_PIXELS 4 // Number of LEDs in the strip. (Longest strip when NEOPIXEL2_SEPARATE is disabled.) + #define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once. + #define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255) + //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup + + // Support for second Adafruit NeoPixel LED driver controlled with M150 S1 ... + //#define NEOPIXEL2_SEPARATE + #if ENABLED(NEOPIXEL2_SEPARATE) + #define NEOPIXEL2_PIXELS 15 // Number of LEDs in the second strip + #define NEOPIXEL2_BRIGHTNESS 127 // Initial brightness (0-255) + #define NEOPIXEL2_STARTUP_TEST // Cycle through colors at startup + #else + //#define NEOPIXEL2_INSERIES // Default behavior is NeoPixel 2 in parallel + #endif + + // Use some of the NeoPixel LEDs for static (background) lighting + //#define NEOPIXEL_BKGD_INDEX_FIRST 0 // Index of the first background LED + //#define NEOPIXEL_BKGD_INDEX_LAST 5 // Index of the last background LED + //#define NEOPIXEL_BKGD_COLOR { 255, 255, 255, 0 } // R, G, B, W + //#define NEOPIXEL_BKGD_ALWAYS_ON // Keep the backlight on when other NeoPixels are off +#endif + +/** + * Printer Event LEDs + * + * During printing, the LEDs will reflect the printer status: + * + * - Gradually change from blue to violet as the heated bed gets to target temp + * - Gradually change from violet to red as the hotend gets to temperature + * - Change to white to illuminate work surface + * - Change to green once print has finished + * - Turn off after the print has finished and the user has pushed a button + */ +#if ANY(BLINKM, RGB_LED, RGBW_LED, PCA9632, PCA9533, NEOPIXEL_LED) + #define PRINTER_EVENT_LEDS +#endif + +/** + * Number of servos + * + * For some servo-related options NUM_SERVOS will be set automatically. + * Set this manually if there are extra servos needing manual control. + * Set to 0 to turn off servo support. + */ +//#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. +// If the servo can't reach the requested position, increase it. +#define SERVO_DELAY { 300 } + +// Only power servos during movement, otherwise leave off to prevent jitter +//#define DEACTIVATE_SERVOS_AFTER_MOVE + +// Edit servo angles with M281 and save to EEPROM with M500 +//#define EDITABLE_SERVO_ANGLES + +// Disable servo with M282 to reduce power consumption, noise, and heat when not in use +//#define SERVO_DETACH_GCODE diff --git a/Creality-Ender3-V2/Configuration_adv.h b/Creality-Ender3-V2/Configuration_adv.h new file mode 100644 index 0000000..7e8af1d --- /dev/null +++ b/Creality-Ender3-V2/Configuration_adv.h @@ -0,0 +1,4356 @@ +/** + * 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 + +#define CONFIG_EXAMPLES_DIR "config/examples/Creality/Ender-3 V2/CrealityV422/MarlinUI" + +/** + * Configuration_adv.h + * + * Advanced settings. + * Only change these if you know exactly what you're doing. + * Some of these settings can damage your printer if improperly set! + * + * Basic settings can be found in Configuration.h + */ +#define CONFIGURATION_ADV_H_VERSION 02000905 + +//=========================================================================== +//============================= Thermal Settings ============================ +//=========================================================================== +// @section temperature + +/** + * Thermocouple sensors are quite sensitive to noise. Any noise induced in + * the sensor wires, such as by stepper motor wires run in parallel to them, + * may result in the thermocouple sensor reporting spurious errors. This + * value is the number of errors which can occur in a row before the error + * is reported. This allows us to ignore intermittent error conditions while + * still detecting an actual failure, which should result in a continuous + * stream of errors from the sensor. + * + * Set this value to 0 to fail on the first error to occur. + */ +#define THERMOCOUPLE_MAX_ERRORS 15 + +// +// Custom Thermistor 1000 parameters +// +#if TEMP_SENSOR_0 == 1000 + #define HOTEND0_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND0_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND0_BETA 3950 // Beta value +#endif + +#if TEMP_SENSOR_1 == 1000 + #define HOTEND1_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND1_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND1_BETA 3950 // Beta value +#endif + +#if TEMP_SENSOR_2 == 1000 + #define HOTEND2_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND2_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND2_BETA 3950 // Beta value +#endif + +#if TEMP_SENSOR_3 == 1000 + #define HOTEND3_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND3_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND3_BETA 3950 // Beta value +#endif + +#if TEMP_SENSOR_4 == 1000 + #define HOTEND4_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND4_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND4_BETA 3950 // Beta value +#endif + +#if TEMP_SENSOR_5 == 1000 + #define HOTEND5_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND5_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND5_BETA 3950 // Beta value +#endif + +#if TEMP_SENSOR_6 == 1000 + #define HOTEND6_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND6_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND6_BETA 3950 // Beta value +#endif + +#if TEMP_SENSOR_7 == 1000 + #define HOTEND7_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define HOTEND7_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define HOTEND7_BETA 3950 // Beta value +#endif + +#if TEMP_SENSOR_BED == 1000 + #define BED_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define BED_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define BED_BETA 3950 // Beta value +#endif + +#if TEMP_SENSOR_CHAMBER == 1000 + #define CHAMBER_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define CHAMBER_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define CHAMBER_BETA 3950 // Beta value +#endif + +#if TEMP_SENSOR_COOLER == 1000 + #define COOLER_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define COOLER_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define COOLER_BETA 3950 // Beta value +#endif + +#if TEMP_SENSOR_PROBE == 1000 + #define PROBE_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define PROBE_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define PROBE_BETA 3950 // Beta value +#endif + +#if TEMP_SENSOR_BOARD == 1000 + #define BOARD_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define BOARD_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define BOARD_BETA 3950 // Beta value +#endif + +#if TEMP_SENSOR_REDUNDANT == 1000 + #define REDUNDANT_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor + #define REDUNDANT_RESISTANCE_25C_OHMS 100000 // Resistance at 25C + #define REDUNDANT_BETA 3950 // Beta value +#endif + +/** + * Thermocouple Options — for MAX6675 (-2), MAX31855 (-3), and MAX31865 (-5). + */ +//#define TEMP_SENSOR_FORCE_HW_SPI // Ignore SCK/MOSI/MISO pins; use CS and the default SPI bus. +//#define MAX31865_SENSOR_WIRES_0 2 // (2-4) Number of wires for the probe connected to a MAX31865 board. +//#define MAX31865_SENSOR_WIRES_1 2 + +//#define MAX31865_50HZ_FILTER // Use a 50Hz filter instead of the default 60Hz. +//#define MAX31865_USE_READ_ERROR_DETECTION // Treat value spikes (20°C delta in under 1s) as read errors. + +//#define MAX31865_USE_AUTO_MODE // Read faster and more often than 1-shot; bias voltage always on; slight effect on RTD temperature. +//#define MAX31865_MIN_SAMPLING_TIME_MSEC 100 // (ms) 1-shot: minimum read interval. Reduces bias voltage effects by leaving sensor unpowered for longer intervals. +//#define MAX31865_IGNORE_INITIAL_FAULTY_READS 10 // Ignore some read faults (keeping the temperature reading) to work around a possible issue (#23439). + +//#define MAX31865_WIRE_OHMS_0 0.95f // For 2-wire, set the wire resistances for more accurate readings. +//#define MAX31865_WIRE_OHMS_1 0.0f + +/** + * Hephestos 2 24V heated bed upgrade kit. + * https://store.bq.com/en/heated-bed-kit-hephestos2 + */ +//#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 + +// +// Heated Bed Bang-Bang options +// +#if DISABLED(PIDTEMPBED) + #define BED_CHECK_INTERVAL 5000 // (ms) Interval between checks in bang-bang control + #if ENABLED(BED_LIMIT_SWITCHING) + #define BED_HYSTERESIS 2 // (°C) Only set the relevant heater state when ABS(T-target) > BED_HYSTERESIS + #endif +#endif + +// +// Heated Chamber options +// +#if DISABLED(PIDTEMPCHAMBER) + #define CHAMBER_CHECK_INTERVAL 5000 // (ms) Interval between checks in bang-bang control + #if ENABLED(CHAMBER_LIMIT_SWITCHING) + #define CHAMBER_HYSTERESIS 2 // (°C) Only set the relevant heater state when ABS(T-target) > CHAMBER_HYSTERESIS + #endif +#endif + +#if TEMP_SENSOR_CHAMBER + //#define HEATER_CHAMBER_PIN P2_04 // Required heater on/off pin (example: SKR 1.4 Turbo HE1 plug) + //#define HEATER_CHAMBER_INVERTING false + //#define FAN1_PIN -1 // Remove the fan signal on pin P2_04 (example: SKR 1.4 Turbo HE1 plug) + + //#define CHAMBER_FAN // Enable a fan on the chamber + #if ENABLED(CHAMBER_FAN) + //#define CHAMBER_FAN_INDEX 2 // Index of a fan to repurpose as the chamber fan. (Default: first unused fan) + #define CHAMBER_FAN_MODE 2 // Fan control mode: 0=Static; 1=Linear increase when temp is higher than target; 2=V-shaped curve; 3=similar to 1 but fan is always on. + #if CHAMBER_FAN_MODE == 0 + #define CHAMBER_FAN_BASE 255 // Chamber fan PWM (0-255) + #elif CHAMBER_FAN_MODE == 1 + #define CHAMBER_FAN_BASE 128 // Base chamber fan PWM (0-255); turns on when chamber temperature is above the target + #define CHAMBER_FAN_FACTOR 25 // PWM increase per °C above target + #elif CHAMBER_FAN_MODE == 2 + #define CHAMBER_FAN_BASE 128 // Minimum chamber fan PWM (0-255) + #define CHAMBER_FAN_FACTOR 25 // PWM increase per °C difference from target + #elif CHAMBER_FAN_MODE == 3 + #define CHAMBER_FAN_BASE 128 // Base chamber fan PWM (0-255) + #define CHAMBER_FAN_FACTOR 25 // PWM increase per °C above target + #endif + #endif + + //#define CHAMBER_VENT // Enable a servo-controlled vent on the chamber + #if ENABLED(CHAMBER_VENT) + #define CHAMBER_VENT_SERVO_NR 1 // Index of the vent servo + #define HIGH_EXCESS_HEAT_LIMIT 5 // How much above target temp to consider there is excess heat in the chamber + #define LOW_EXCESS_HEAT_LIMIT 3 + #define MIN_COOLING_SLOPE_TIME_CHAMBER_VENT 20 + #define MIN_COOLING_SLOPE_DEG_CHAMBER_VENT 1.5 + #endif +#endif + +// +// Laser Cooler options +// +#if TEMP_SENSOR_COOLER + #define COOLER_MINTEMP 8 // (°C) + #define COOLER_MAXTEMP 26 // (°C) + #define COOLER_DEFAULT_TEMP 16 // (°C) + #define TEMP_COOLER_HYSTERESIS 1 // (°C) Temperature proximity considered "close enough" to the target + #define COOLER_PIN 8 // Laser cooler on/off pin used to control power to the cooling element (e.g., TEC, External chiller via relay) + #define COOLER_INVERTING false + #define TEMP_COOLER_PIN 15 // Laser/Cooler temperature sensor pin. ADC is required. + #define COOLER_FAN // Enable a fan on the cooler, Fan# 0,1,2,3 etc. + #define COOLER_FAN_INDEX 0 // FAN number 0, 1, 2 etc. e.g. + #if ENABLED(COOLER_FAN) + #define COOLER_FAN_BASE 100 // Base Cooler fan PWM (0-255); turns on when Cooler temperature is above the target + #define COOLER_FAN_FACTOR 25 // PWM increase per °C above target + #endif +#endif + +// +// Motherboard Sensor options +// +#if TEMP_SENSOR_BOARD + #define THERMAL_PROTECTION_BOARD // Halt the printer if the board sensor leaves the temp range below. + #define BOARD_MINTEMP 8 // (°C) + #define BOARD_MAXTEMP 70 // (°C) + #ifndef TEMP_BOARD_PIN + //#define TEMP_BOARD_PIN -1 // Board temp sensor pin, if not set in pins file. + #endif +#endif + +/** + * Thermal Protection provides additional protection to your printer from damage + * and fire. Marlin always includes safe min and max temperature ranges which + * protect against a broken or disconnected thermistor wire. + * + * The issue: If a thermistor falls out, it will report the much lower + * temperature of the air in the room, and the the firmware will keep + * the heater on. + * + * The solution: Once the temperature reaches the target, start observing. + * If the temperature stays too far below the target (hysteresis) for too + * long (period), the firmware will halt the machine as a safety precaution. + * + * If you get false positives for "Thermal Runaway", increase + * THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD + */ +#if ENABLED(THERMAL_PROTECTION_HOTENDS) + #define THERMAL_PROTECTION_PERIOD 40 // Seconds + #define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius + + //#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 // Degrees Celsius +#endif + +/** + * Thermal Protection parameters for the bed are just as above for hotends. + */ +#if ENABLED(THERMAL_PROTECTION_BED) + #define THERMAL_PROTECTION_BED_PERIOD 180 // Seconds + #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * As described above, except for the bed (M140/M190/M303). + */ + #define WATCH_BED_TEMP_PERIOD 180 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius +#endif + +/** + * Thermal Protection parameters for the heated chamber. + */ +#if ENABLED(THERMAL_PROTECTION_CHAMBER) + #define THERMAL_PROTECTION_CHAMBER_PERIOD 20 // Seconds + #define THERMAL_PROTECTION_CHAMBER_HYSTERESIS 2 // Degrees Celsius + + /** + * Heated chamber watch settings (M141/M191). + */ + #define WATCH_CHAMBER_TEMP_PERIOD 60 // Seconds + #define WATCH_CHAMBER_TEMP_INCREASE 2 // Degrees Celsius +#endif + +/** + * Thermal Protection parameters for the laser cooler. + */ +#if ENABLED(THERMAL_PROTECTION_COOLER) + #define THERMAL_PROTECTION_COOLER_PERIOD 10 // Seconds + #define THERMAL_PROTECTION_COOLER_HYSTERESIS 3 // Degrees Celsius + + /** + * Laser cooling watch settings (M143/M193). + */ + #define WATCH_COOLER_TEMP_PERIOD 60 // Seconds + #define WATCH_COOLER_TEMP_INCREASE 3 // Degrees Celsius +#endif + +#if ANY(THERMAL_PROTECTION_HOTENDS, THERMAL_PROTECTION_BED, THERMAL_PROTECTION_CHAMBER, THERMAL_PROTECTION_COOLER) + /** + * Thermal Protection Variance Monitor - EXPERIMENTAL. + * Kill the machine on a stuck temperature sensor. Disable if you get false positives. + */ + //#define THERMAL_PROTECTION_VARIANCE_MONITOR // Detect a sensor malfunction preventing temperature updates +#endif + +#if ENABLED(PIDTEMP) + // Add an experimental additional term to the heater power, proportional to the extrusion speed. + // A well-chosen Kc value should add just enough power to melt the increased material volume. + //#define PID_EXTRUSION_SCALING + #if ENABLED(PID_EXTRUSION_SCALING) + #define DEFAULT_Kc (100) // heating power = Kc * e_speed + #define LPQ_MAX_LEN 50 + #endif + + /** + * Add an experimental additional term to the heater power, proportional to the fan speed. + * A well-chosen Kf value should add just enough power to compensate for power-loss from the cooling fan. + * You can either just add a constant compensation with the DEFAULT_Kf value + * or follow the instruction below to get speed-dependent compensation. + * + * Constant compensation (use only with fanspeeds of 0% and 100%) + * --------------------------------------------------------------------- + * A good starting point for the Kf-value comes from the calculation: + * kf = (power_fan * eff_fan) / power_heater * 255 + * where eff_fan is between 0.0 and 1.0, based on fan-efficiency and airflow to the nozzle / heater. + * + * Example: + * Heater: 40W, Fan: 0.1A * 24V = 2.4W, eff_fan = 0.8 + * Kf = (2.4W * 0.8) / 40W * 255 = 12.24 + * + * Fan-speed dependent compensation + * -------------------------------- + * 1. To find a good Kf value, set the hotend temperature, wait for it to settle, and enable the fan (100%). + * Make sure PID_FAN_SCALING_LIN_FACTOR is 0 and PID_FAN_SCALING_ALTERNATIVE_DEFINITION is not enabled. + * If you see the temperature drop repeat the test, increasing the Kf value slowly, until the temperature + * drop goes away. If the temperature overshoots after enabling the fan, the Kf value is too big. + * 2. Note the Kf-value for fan-speed at 100% + * 3. Determine a good value for PID_FAN_SCALING_MIN_SPEED, which is around the speed, where the fan starts moving. + * 4. Repeat step 1. and 2. for this fan speed. + * 5. Enable PID_FAN_SCALING_ALTERNATIVE_DEFINITION and enter the two identified Kf-values in + * PID_FAN_SCALING_AT_FULL_SPEED and PID_FAN_SCALING_AT_MIN_SPEED. Enter the minimum speed in PID_FAN_SCALING_MIN_SPEED + */ + //#define PID_FAN_SCALING + #if ENABLED(PID_FAN_SCALING) + //#define PID_FAN_SCALING_ALTERNATIVE_DEFINITION + #if ENABLED(PID_FAN_SCALING_ALTERNATIVE_DEFINITION) + // The alternative definition is used for an easier configuration. + // Just figure out Kf at fullspeed (255) and PID_FAN_SCALING_MIN_SPEED. + // DEFAULT_Kf and PID_FAN_SCALING_LIN_FACTOR are calculated accordingly. + + #define PID_FAN_SCALING_AT_FULL_SPEED 13.0 //=PID_FAN_SCALING_LIN_FACTOR*255+DEFAULT_Kf + #define PID_FAN_SCALING_AT_MIN_SPEED 6.0 //=PID_FAN_SCALING_LIN_FACTOR*PID_FAN_SCALING_MIN_SPEED+DEFAULT_Kf + #define PID_FAN_SCALING_MIN_SPEED 10.0 // Minimum fan speed at which to enable PID_FAN_SCALING + + #define DEFAULT_Kf (255.0*PID_FAN_SCALING_AT_MIN_SPEED-PID_FAN_SCALING_AT_FULL_SPEED*PID_FAN_SCALING_MIN_SPEED)/(255.0-PID_FAN_SCALING_MIN_SPEED) + #define PID_FAN_SCALING_LIN_FACTOR (PID_FAN_SCALING_AT_FULL_SPEED-DEFAULT_Kf)/255.0 + + #else + #define PID_FAN_SCALING_LIN_FACTOR (0) // Power loss due to cooling = Kf * (fan_speed) + #define DEFAULT_Kf 10 // A constant value added to the PID-tuner + #define PID_FAN_SCALING_MIN_SPEED 10 // Minimum fan speed at which to enable PID_FAN_SCALING + #endif + #endif +#endif + +/** + * Automatic Temperature Mode + * + * Dynamically adjust the hotend target temperature based on planned E moves. + * + * (Contrast with PID_EXTRUSION_SCALING, which tracks E movement and adjusts PID + * behavior using an additional kC value.) + * + * Autotemp is calculated by (mintemp + factor * mm_per_sec), capped to maxtemp. + * + * Enable Autotemp Mode with M104/M109 F S B. + * Disable by sending M104/M109 with no F parameter (or F0 with AUTOTEMP_PROPORTIONAL). + */ +#define AUTOTEMP +#if ENABLED(AUTOTEMP) + #define AUTOTEMP_OLDWEIGHT 0.98 // Factor used to weight previous readings (0.0 < value < 1.0) + // Turn on AUTOTEMP on M104/M109 by default using proportions set here + //#define AUTOTEMP_PROPORTIONAL + #if ENABLED(AUTOTEMP_PROPORTIONAL) + #define AUTOTEMP_MIN_P 0 // (°C) Added to the target temperature + #define AUTOTEMP_MAX_P 5 // (°C) Added to the target temperature + #define AUTOTEMP_FACTOR_P 1 // Apply this F parameter by default (overridden by M104/M109 F) + #endif +#endif + +// Show Temperature ADC value +// Enable for M105 to include ADC values read from temperature sensors. +//#define SHOW_TEMP_ADC_VALUES + +/** + * High Temperature Thermistor Support + * + * Thermistors able to support high temperature tend to have a hard time getting + * good readings at room and lower temperatures. This means TEMP_SENSOR_X_RAW_LO_TEMP + * will probably be caught when the heating element first turns on during the + * preheating process, which will trigger a min_temp_error as a safety measure + * and force stop everything. + * To circumvent this limitation, we allow for a preheat time (during which, + * min_temp_error won't be triggered) and add a min_temp buffer to handle + * aberrant readings. + * + * If you want to enable this feature for your hotend thermistor(s) + * uncomment and set values > 0 in the constants below + */ + +// The number of consecutive low temperature errors that can occur +// before a min_temp_error is triggered. (Shouldn't be more than 10.) +//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0 + +// The number of milliseconds a hotend will preheat before starting to check +// the temperature. This value should NOT be set to the time it takes the +// hot end to reach the target temperature, but the time it takes to reach +// the minimum temperature your thermistor can read. The lower the better/safer. +// This shouldn't need to be more than 30 seconds (30000) +//#define MILLISECONDS_PREHEAT_TIME 0 + +// @section extruder + +// Extruder runout prevention. +// If the machine is idle and the temperature over MINTEMP +// then extrude some filament every couple of SECONDS. +//#define EXTRUDER_RUNOUT_PREVENT +#if ENABLED(EXTRUDER_RUNOUT_PREVENT) + #define EXTRUDER_RUNOUT_MINTEMP 190 + #define EXTRUDER_RUNOUT_SECONDS 30 + #define EXTRUDER_RUNOUT_SPEED 1500 // (mm/min) + #define EXTRUDER_RUNOUT_EXTRUDE 5 // (mm) +#endif + +/** + * Hotend Idle Timeout + * Prevent filament in the nozzle from charring and causing a critical jam. + */ +//#define HOTEND_IDLE_TIMEOUT +#if ENABLED(HOTEND_IDLE_TIMEOUT) + #define HOTEND_IDLE_TIMEOUT_SEC (5*60) // (seconds) Time without extruder movement to trigger protection + #define HOTEND_IDLE_MIN_TRIGGER 180 // (°C) Minimum temperature to enable hotend protection + #define HOTEND_IDLE_NOZZLE_TARGET 0 // (°C) Safe temperature for the nozzle after timeout + #define HOTEND_IDLE_BED_TARGET 0 // (°C) Safe temperature for the bed after timeout +#endif + +// @section temperature + +// Calibration for AD595 / AD8495 sensor to adjust temperature measurements. +// The final temperature is calculated as (measuredTemp * GAIN) + OFFSET. +#define TEMP_SENSOR_AD595_OFFSET 0.0 +#define TEMP_SENSOR_AD595_GAIN 1.0 +#define TEMP_SENSOR_AD8495_OFFSET 0.0 +#define TEMP_SENSOR_AD8495_GAIN 1.0 + +/** + * Controller Fan + * To cool down the stepper drivers and MOSFETs. + * + * The fan turns on automatically whenever any driver is enabled and turns + * off (or reduces to idle speed) shortly after drivers are turned off. + */ +//#define USE_CONTROLLER_FAN +#if ENABLED(USE_CONTROLLER_FAN) + //#define CONTROLLER_FAN_PIN -1 // Set a custom pin for the controller fan + //#define CONTROLLER_FAN_USE_Z_ONLY // With this option only the Z axis is considered + //#define CONTROLLER_FAN_IGNORE_Z // Ignore Z stepper. Useful when stepper timeout is disabled. + #define CONTROLLERFAN_SPEED_MIN 0 // (0-255) Minimum speed. (If set below this value the fan is turned off.) + #define CONTROLLERFAN_SPEED_ACTIVE 255 // (0-255) Active speed, used when any motor is enabled + #define CONTROLLERFAN_SPEED_IDLE 0 // (0-255) Idle speed, used when motors are disabled + #define CONTROLLERFAN_IDLE_TIME 60 // (seconds) Extra time to keep the fan running after disabling motors + + // Use TEMP_SENSOR_BOARD as a trigger for enabling the controller fan + //#define CONTROLLER_FAN_MIN_BOARD_TEMP 40 // (°C) Turn on the fan if the board reaches this temperature + + //#define CONTROLLER_FAN_EDITABLE // Enable M710 configurable settings + #if ENABLED(CONTROLLER_FAN_EDITABLE) + #define CONTROLLER_FAN_MENU // Enable the Controller Fan submenu + #endif +#endif + +// When first starting the main fan, run it at full speed for the +// given number of milliseconds. This gets the fan spinning reliably +// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu) +//#define FAN_KICKSTART_TIME 100 + +// Some coolers may require a non-zero "off" state. +//#define FAN_OFF_PWM 1 + +/** + * PWM Fan Scaling + * + * Define the min/max speeds for PWM fans (as set with M106). + * + * With these options the M106 0-255 value range is scaled to a subset + * to ensure that the fan has enough power to spin, or to run lower + * current fans with higher current. (e.g., 5V/12V fans with 12V/24V) + * Value 0 always turns off the fan. + * + * Define one or both of these to override the default 0-255 range. + */ +#define FAN_MIN_PWM 50 +//#define FAN_MAX_PWM 128 + +/** + * Fan Fast PWM + * + * Combinations of PWM Modes, prescale values and TOP resolutions are used internally + * to produce a frequency as close as possible to the desired frequency. + * + * FAST_PWM_FAN_FREQUENCY + * Set this to your desired frequency. + * For AVR, if left undefined this defaults to F = F_CPU/(2*255*1) + * i.e., F = 31.4kHz on 16MHz microcontrollers or F = 39.2kHz on 20MHz microcontrollers. + * For non AVR, if left undefined this defaults to F = 1Khz. + * This F value is only to protect the hardware from an absence of configuration + * and not to complete it when users are not aware that the frequency must be specifically set to support the target board. + * + * NOTE: Setting very low frequencies (< 10 Hz) may result in unexpected timer behavior. + * Setting very high frequencies can damage your hardware. + * + * USE_OCR2A_AS_TOP [undefined by default] + * Boards that use TIMER2 for PWM have limitations resulting in only a few possible frequencies on TIMER2: + * 16MHz MCUs: [62.5kHz, 31.4kHz (default), 7.8kHz, 3.92kHz, 1.95kHz, 977Hz, 488Hz, 244Hz, 60Hz, 122Hz, 30Hz] + * 20MHz MCUs: [78.1kHz, 39.2kHz (default), 9.77kHz, 4.9kHz, 2.44kHz, 1.22kHz, 610Hz, 305Hz, 153Hz, 76Hz, 38Hz] + * A greater range can be achieved by enabling USE_OCR2A_AS_TOP. But note that this option blocks the use of + * PWM on pin OC2A. Only use this option if you don't need PWM on 0C2A. (Check your schematic.) + * USE_OCR2A_AS_TOP sacrifices duty cycle control resolution to achieve this broader range of frequencies. + */ +//#define FAST_PWM_FAN // Increase the fan PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino +#if ENABLED(FAST_PWM_FAN) + //#define FAST_PWM_FAN_FREQUENCY 31400 // Define here to override the defaults below + //#define USE_OCR2A_AS_TOP + #ifndef FAST_PWM_FAN_FREQUENCY + #ifdef __AVR__ + #define FAST_PWM_FAN_FREQUENCY ((F_CPU) / (2 * 255 * 1)) + #else + #define FAST_PWM_FAN_FREQUENCY 1000U + #endif + #endif +#endif + +/** + * Use one of the PWM fans as a redundant part-cooling fan + */ +//#define REDUNDANT_PART_COOLING_FAN 2 // Index of the fan to sync with FAN 0. + +// @section extruder + +/** + * Extruder cooling fans + * + * Extruder auto fans automatically turn on when their extruders' + * temperatures go above EXTRUDER_AUTO_FAN_TEMPERATURE. + * + * Your board's pins file specifies the recommended pins. Override those here + * or set to -1 to disable completely. + * + * Multiple extruders can be assigned to the same pin in which case + * the fan will turn on when any selected extruder is above the threshold. + */ +#define E0_AUTO_FAN_PIN -1 +#define E1_AUTO_FAN_PIN -1 +#define E2_AUTO_FAN_PIN -1 +#define E3_AUTO_FAN_PIN -1 +#define E4_AUTO_FAN_PIN -1 +#define E5_AUTO_FAN_PIN -1 +#define E6_AUTO_FAN_PIN -1 +#define E7_AUTO_FAN_PIN -1 +#define CHAMBER_AUTO_FAN_PIN -1 +#define COOLER_AUTO_FAN_PIN -1 + +#define EXTRUDER_AUTO_FAN_TEMPERATURE 50 +#define EXTRUDER_AUTO_FAN_SPEED 255 // 255 == full speed +#define CHAMBER_AUTO_FAN_TEMPERATURE 30 +#define CHAMBER_AUTO_FAN_SPEED 255 +#define COOLER_AUTO_FAN_TEMPERATURE 18 +#define COOLER_AUTO_FAN_SPEED 255 + +/** + * Hotend Cooling Fans tachometers + * + * Define one or more tachometer pins to enable fan speed + * monitoring, and reporting of fan speeds with M123. + * + * NOTE: Only works with fans up to 7000 RPM. + */ +//#define FOURWIRES_FANS // Needed with AUTO_FAN when 4-wire PWM fans are installed +//#define E0_FAN_TACHO_PIN -1 +//#define E0_FAN_TACHO_PULLUP +//#define E0_FAN_TACHO_PULLDOWN +//#define E1_FAN_TACHO_PIN -1 +//#define E1_FAN_TACHO_PULLUP +//#define E1_FAN_TACHO_PULLDOWN +//#define E2_FAN_TACHO_PIN -1 +//#define E2_FAN_TACHO_PULLUP +//#define E2_FAN_TACHO_PULLDOWN +//#define E3_FAN_TACHO_PIN -1 +//#define E3_FAN_TACHO_PULLUP +//#define E3_FAN_TACHO_PULLDOWN +//#define E4_FAN_TACHO_PIN -1 +//#define E4_FAN_TACHO_PULLUP +//#define E4_FAN_TACHO_PULLDOWN +//#define E5_FAN_TACHO_PIN -1 +//#define E5_FAN_TACHO_PULLUP +//#define E5_FAN_TACHO_PULLDOWN +//#define E6_FAN_TACHO_PIN -1 +//#define E6_FAN_TACHO_PULLUP +//#define E6_FAN_TACHO_PULLDOWN +//#define E7_FAN_TACHO_PIN -1 +//#define E7_FAN_TACHO_PULLUP +//#define E7_FAN_TACHO_PULLDOWN + +/** + * Part-Cooling Fan Multiplexer + * + * This feature allows you to digitally multiplex the fan output. + * The multiplexer is automatically switched at tool-change. + * Set FANMUX[012]_PINs below for up to 2, 4, or 8 multiplexed fans. + */ +#define FANMUX0_PIN -1 +#define FANMUX1_PIN -1 +#define FANMUX2_PIN -1 + +/** + * M355 Case Light on-off / brightness + */ +//#define CASE_LIGHT_ENABLE +#if ENABLED(CASE_LIGHT_ENABLE) + //#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 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 + #if ENABLED(NEOPIXEL_LED) + //#define CASE_LIGHT_USE_NEOPIXEL // Use NeoPixel LED as case light + #endif + #if EITHER(RGB_LED, RGBW_LED) + //#define CASE_LIGHT_USE_RGB_LED // Use RGB / RGBW LED as case light + #endif + #if EITHER(CASE_LIGHT_USE_NEOPIXEL, CASE_LIGHT_USE_RGB_LED) + #define CASE_LIGHT_DEFAULT_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White } + #endif +#endif + +// @section homing + +// If you want endstops to stay on (by default) even when not homing +// enable this option. Override at any time with M120, M121. +//#define ENDSTOPS_ALWAYS_ON_DEFAULT + +// @section extras + +//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats. + +// Employ an external closed loop controller. Override pins here if needed. +//#define EXTERNAL_CLOSED_LOOP_CONTROLLER +#if ENABLED(EXTERNAL_CLOSED_LOOP_CONTROLLER) + //#define CLOSED_LOOP_ENABLE_PIN -1 + //#define CLOSED_LOOP_MOVE_COMPLETE_PIN -1 +#endif + +/** + * Dual X Carriage + * + * This setup has two X carriages that can move independently, each with its own hotend. + * The carriages can be used to print an object with two colors or materials, or in + * "duplication mode" it can print two identical or X-mirrored objects simultaneously. + * The inactive carriage is parked automatically to prevent oozing. + * X1 is the left carriage, X2 the right. They park and home at opposite ends of the X axis. + * By default the X2 stepper is assigned to the first unused E plug on the board. + * + * The following Dual X Carriage modes can be selected with M605 S: + * + * 0 : (FULL_CONTROL) The slicer has full control over both X-carriages and can achieve optimal travel + * results as long as it supports dual X-carriages. (M605 S0) + * + * 1 : (AUTO_PARK) The firmware automatically parks and unparks the X-carriages on tool-change so + * that additional slicer support is not required. (M605 S1) + * + * 2 : (DUPLICATION) The firmware moves the second X-carriage and extruder in synchronization with + * the first X-carriage and extruder, to print 2 copies of the same object at the same time. + * Set the constant X-offset and temperature differential with M605 S2 X[offs] R[deg] and + * follow with M605 S2 to initiate duplicated movement. + * + * 3 : (MIRRORED) Formbot/Vivedino-inspired mirrored mode in which the second extruder duplicates + * the movement of the first except the second extruder is reversed in the X axis. + * Set the initial X offset and temperature differential with M605 S2 X[offs] R[deg] and + * follow with M605 S3 to initiate mirrored movement. + */ +//#define DUAL_X_CARRIAGE +#if ENABLED(DUAL_X_CARRIAGE) + #define X1_MIN_POS X_MIN_POS // Set to X_MIN_POS + #define X1_MAX_POS X_BED_SIZE // A max coordinate so the X1 carriage can't hit the parked X2 carriage + #define X2_MIN_POS 80 // A min coordinate so the X2 carriage can't hit the parked X1 carriage + #define X2_MAX_POS 353 // The max position of the X2 carriage, typically also the home position + #define X2_HOME_DIR 1 // Set to 1. The X2 carriage always homes to the max endstop position + #define X2_HOME_POS X2_MAX_POS // Default X2 home position. Set to X2_MAX_POS. + // NOTE: For Dual X Carriage use M218 T1 Xn to override the X2_HOME_POS. + // This allows recalibration of endstops distance without a rebuild. + // Remember to set the second extruder's X-offset to 0 in your slicer. + + // This is the default power-up mode which can be changed later using M605 S. + #define DEFAULT_DUAL_X_CARRIAGE_MODE DXC_AUTO_PARK_MODE + + // Default x offset in duplication mode (typically set to half print bed width) + #define DEFAULT_DUPLICATION_X_OFFSET 100 + + // Default action to execute following M605 mode change commands. Typically G28X to apply new mode. + //#define EVENT_GCODE_IDEX_AFTER_MODECHANGE "G28X" +#endif + +/** + * Multi-Stepper / Multi-Endstop + * + * When X2_DRIVER_TYPE is defined, this indicates that the X and X2 motors work in tandem. + * The following explanations for X also apply to Y and Z multi-stepper setups. + * Endstop offsets may be changed by 'M666 X Y Z' and stored to EEPROM. + * + * - Enable INVERT_X2_VS_X_DIR if the X2 motor requires an opposite DIR signal from X. + * + * - Enable X_DUAL_ENDSTOPS if the second motor has its own endstop, with adjustable offset. + * + * - Extra endstops are included in the output of 'M119'. + * + * - Set X_DUAL_ENDSTOP_ADJUSTMENT to the known error in the X2 endstop. + * Applied to the X2 motor on 'G28' / 'G28 X'. + * Get the offset by homing X and measuring the error. + * Also set with 'M666 X' and stored to EEPROM with 'M500'. + * + * - Use X2_USE_ENDSTOP to set the endstop plug by name. (_XMIN_, _XMAX_, _YMIN_, _YMAX_, _ZMIN_, _ZMAX_) + */ +#if HAS_X2_STEPPER && DISABLED(DUAL_X_CARRIAGE) + //#define INVERT_X2_VS_X_DIR // X2 direction signal is the opposite of X + //#define X_DUAL_ENDSTOPS // X2 has its own endstop + #if ENABLED(X_DUAL_ENDSTOPS) + #define X2_USE_ENDSTOP _XMAX_ // X2 endstop board plug. Don't forget to enable USE_*_PLUG. + #define X2_ENDSTOP_ADJUSTMENT 0 // X2 offset relative to X endstop + #endif +#endif + +#if HAS_DUAL_Y_STEPPERS + //#define INVERT_Y2_VS_Y_DIR // Y2 direction signal is the opposite of Y + //#define Y_DUAL_ENDSTOPS // Y2 has its own endstop + #if ENABLED(Y_DUAL_ENDSTOPS) + #define Y2_USE_ENDSTOP _YMAX_ // Y2 endstop board plug. Don't forget to enable USE_*_PLUG. + #define Y2_ENDSTOP_ADJUSTMENT 0 // Y2 offset relative to Y endstop + #endif +#endif + +// +// Multi-Z steppers +// +#ifdef Z2_DRIVER_TYPE + //#define INVERT_Z2_VS_Z_DIR // Z2 direction signal is the opposite of Z + + //#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 Y endstop + #endif + #ifdef Z3_DRIVER_TYPE + //#define INVERT_Z3_VS_Z_DIR // Z3 direction signal is the opposite of Z + #if ENABLED(Z_MULTI_ENDSTOPS) + #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 Y endstop + #endif + #endif + #ifdef Z4_DRIVER_TYPE + //#define INVERT_Z4_VS_Z_DIR // Z4 direction signal is the opposite of Z + #if ENABLED(Z_MULTI_ENDSTOPS) + #define Z4_USE_ENDSTOP _ZMAX_ // Z4 endstop board plug. Don't forget to enable USE_*_PLUG. + #define Z4_ENDSTOP_ADJUSTMENT 0 // Z4 offset relative to Y endstop + #endif + #endif +#endif + +// Drive the E axis with two synchronized steppers +//#define E_DUAL_STEPPER_DRIVERS +#if ENABLED(E_DUAL_STEPPER_DRIVERS) + //#define INVERT_E1_VS_E0_DIR // E direction signals are opposites +#endif + +// Activate a solenoid on the active extruder with M380. Disable all with M381. +// Define SOL0_PIN, SOL1_PIN, etc., for each extruder that has a solenoid. +//#define EXT_SOLENOID + +// @section homing + +/** + * Homing Procedure + * Homing (G28) does an indefinite move towards the endstops to establish + * the position of the toolhead relative to the workspace. + */ + +//#define SENSORLESS_BACKOFF_MM { 2, 2, 0 } // (mm) Backoff from endstops before sensorless homing + +#define HOMING_BUMP_MM { 5, 5, 2 } // (mm) Backoff from endstops after first bump +#define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) + +//#define HOMING_BACKOFF_POST_MM { 2, 2, 2 } // (mm) Backoff from endstops after homing + +#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 +//#define HOME_Z_FIRST // Home Z first. Requires a Z-MIN endstop (not a probe). +//#define CODEPENDENT_XY_HOMING // If X/Y can't home without homing Y/X first + +// @section bltouch + +#if ENABLED(BLTOUCH) + /** + * Either: Use the defaults (recommended) or: For special purposes, use the following DEFINES + * Do not activate settings that the probe might not understand. Clones might misunderstand + * advanced commands. + * + * Note: If the probe is not deploying, do a "Reset" and "Self-Test" and then check the + * wiring of the BROWN, RED and ORANGE wires. + * + * Note: If the trigger signal of your probe is not being recognized, it has been very often + * because the BLACK and WHITE wires needed to be swapped. They are not "interchangeable" + * like they would be with a real switch. So please check the wiring first. + * + * Settings for all BLTouch and clone probes: + */ + + // Safety: The probe needs time to recognize the command. + // Minimum command delay (ms). Enable and increase if needed. + //#define BLTOUCH_DELAY 500 + + /** + * Settings for BLTOUCH Classic 1.2, 1.3 or BLTouch Smart 1.0, 2.0, 2.2, 3.0, 3.1, and most clones: + */ + + // Feature: Switch into SW mode after a deploy. It makes the output pulse longer. Can be useful + // in special cases, like noisy or filtered input configurations. + //#define BLTOUCH_FORCE_SW_MODE + + /** + * Settings for BLTouch Smart 3.0 and 3.1 + * Summary: + * - Voltage modes: 5V and OD (open drain - "logic voltage free") output modes + * - High-Speed mode + * - Disable LCD voltage options + */ + + /** + * Danger: Don't activate 5V mode unless attached to a 5V-tolerant controller! + * V3.0 or 3.1: Set default mode to 5V mode at Marlin startup. + * If disabled, OD mode is the hard-coded default on 3.0 + * On startup, Marlin will compare its eeprom to this value. If the selected mode + * differs, a mode set eeprom write will be completed at initialization. + * Use the option below to force an eeprom write to a V3.1 probe regardless. + */ + //#define BLTOUCH_SET_5V_MODE + + /** + * Safety: Activate if connecting a probe with an unknown voltage mode. + * V3.0: Set a probe into mode selected above at Marlin startup. Required for 5V mode on 3.0 + * V3.1: Force a probe with unknown mode into selected mode at Marlin startup ( = Probe EEPROM write ) + * To preserve the life of the probe, use this once then turn it off and re-flash. + */ + //#define BLTOUCH_FORCE_MODE_SET + + /** + * Enable "HIGH SPEED" option for probing. + * Danger: Disable if your probe sometimes fails. Only suitable for stable well-adjusted systems. + * This feature was designed for Deltabots with very fast Z moves; however, higher speed Cartesians + * might be able to use it. If the machine can't raise Z fast enough the BLTouch may go into ALARM. + * + * Set the default state here, change with 'M401 S' or UI, use M500 to save, M502 to reset. + */ + //#define BLTOUCH_HS_MODE true + + // Safety: Enable voltage mode settings in the LCD menu. + //#define BLTOUCH_LCD_VOLTAGE_MENU + +#endif // BLTOUCH + +// @section extras + +/** + * Z Steppers Auto-Alignment + * Add the G34 command to align multiple Z steppers using a bed probe. + */ +//#define Z_STEPPER_AUTO_ALIGN +#if ENABLED(Z_STEPPER_AUTO_ALIGN) + /** + * Define probe X and Y positions for Z1, Z2 [, Z3 [, Z4]] + * These positions are machine-relative and do not shift with the M206 home offset! + * If not defined, probe limits will be used. + * Override with 'M422 S X Y'. + */ + //#define Z_STEPPER_ALIGN_XY { { 10, 190 }, { 100, 10 }, { 190, 190 } } + + /** + * Orientation for the automatically-calculated probe positions. + * Override Z stepper align points with 'M422 S X Y' + * + * 2 Steppers: (0) (1) + * | | 2 | + * | 1 2 | | + * | | 1 | + * + * 3 Steppers: (0) (1) (2) (3) + * | 3 | 1 | 2 1 | 2 | + * | | 3 | | 3 | + * | 1 2 | 2 | 3 | 1 | + * + * 4 Steppers: (0) (1) (2) (3) + * | 4 3 | 1 4 | 2 1 | 3 2 | + * | | | | | + * | 1 2 | 2 3 | 3 4 | 4 1 | + */ + #ifndef Z_STEPPER_ALIGN_XY + //#define Z_STEPPERS_ORIENTATION 0 + #endif + + /** + * Z Stepper positions for more rapid convergence in bed alignment. + * Requires 3 or 4 Z steppers. + * + * Define Stepper XY positions for Z1, Z2, Z3... corresponding to the screw + * positions in the bed carriage, with one position per Z stepper in stepper + * driver order. + */ + //#define Z_STEPPER_ALIGN_STEPPER_XY { { 210.7, 102.5 }, { 152.6, 220.0 }, { 94.5, 102.5 } } + + #ifndef Z_STEPPER_ALIGN_STEPPER_XY + // Amplification factor. Used to scale the correction step up or down in case + // the stepper (spindle) position is farther out than the test point. + #define Z_STEPPER_ALIGN_AMP 1.0 // Use a value > 1.0 NOTE: This may cause instability! + #endif + + // On a 300mm bed a 5% grade would give a misalignment of ~1.5cm + #define G34_MAX_GRADE 5 // (%) Maximum incline that G34 will handle + #define Z_STEPPER_ALIGN_ITERATIONS 5 // Number of iterations to apply during alignment + #define Z_STEPPER_ALIGN_ACC 0.02 // Stop iterating early if the accuracy is better than this + #define RESTORE_LEVELING_AFTER_G34 // Restore leveling after G34 is done? + // After G34, re-home Z (G28 Z) or just calculate it from the last probe heights? + // Re-homing might be more precise in reproducing the actual 'G28 Z' homing height, especially on an uneven bed. + #define HOME_AFTER_G34 +#endif + +// +// Add the G35 command to read bed corners to help adjust screws. Requires a bed probe. +// +//#define ASSISTED_TRAMMING +#if ENABLED(ASSISTED_TRAMMING) + + // Define positions for probe points. + #define TRAMMING_POINT_XY { { 20, 20 }, { 180, 20 }, { 180, 180 }, { 20, 180 } } + + // Define position names for probe points. + #define TRAMMING_POINT_NAME_1 "Front-Left" + #define TRAMMING_POINT_NAME_2 "Front-Right" + #define TRAMMING_POINT_NAME_3 "Back-Right" + #define TRAMMING_POINT_NAME_4 "Back-Left" + + #define RESTORE_LEVELING_AFTER_G35 // Enable to restore leveling setup after operation + //#define REPORT_TRAMMING_MM // Report Z deviation (mm) for each point relative to the first + + //#define ASSISTED_TRAMMING_WIZARD // Add a Tramming Wizard to the LCD menu + + //#define ASSISTED_TRAMMING_WAIT_POSITION { X_CENTER, Y_CENTER, 30 } // Move the nozzle out of the way for adjustment + + /** + * Screw thread: + * M3: 30 = Clockwise, 31 = Counter-Clockwise + * M4: 40 = Clockwise, 41 = Counter-Clockwise + * M5: 50 = Clockwise, 51 = Counter-Clockwise + */ + #define TRAMMING_SCREW_THREAD 30 + +#endif + +// @section motion + +#define AXIS_RELATIVE_MODES { false, false, false, false } + +// Add a Duplicate option for well-separated conjoined nozzles +//#define MULTI_NOZZLE_DUPLICATION + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +#define INVERT_X_STEP_PIN false +#define INVERT_Y_STEP_PIN false +#define INVERT_Z_STEP_PIN false +#define INVERT_I_STEP_PIN false +#define INVERT_J_STEP_PIN false +#define INVERT_K_STEP_PIN false +#define INVERT_E_STEP_PIN false + +/** + * Idle Stepper Shutdown + * Set DISABLE_INACTIVE_? 'true' to shut down axis steppers after an idle period. + * The Deactive Time can be overridden with M18 and M84. Set to 0 for No Timeout. + */ +#define DEFAULT_STEPPER_DEACTIVE_TIME 120 +#define DISABLE_INACTIVE_X true +#define DISABLE_INACTIVE_Y true +#define DISABLE_INACTIVE_Z true // Set 'false' if the nozzle could fall onto your printed part! +#define DISABLE_INACTIVE_I true +#define DISABLE_INACTIVE_J true +#define DISABLE_INACTIVE_K true +#define DISABLE_INACTIVE_E true + +// Default Minimum Feedrates for printing and travel moves +#define DEFAULT_MINIMUMFEEDRATE 0.0 // (mm/s) Minimum feedrate. Set with M205 S. +#define DEFAULT_MINTRAVELFEEDRATE 0.0 // (mm/s) Minimum travel feedrate. Set with M205 T. + +// Minimum time that a segment needs to take as the buffer gets emptied +#define DEFAULT_MINSEGMENTTIME 20000 // (µs) Set with M205 B. + +// Slow down the machine if the lookahead buffer is (by default) half full. +// Increase the slowdown divisor for larger buffer sizes. +#define SLOWDOWN +#if ENABLED(SLOWDOWN) + #define SLOWDOWN_DIVISOR 2 +#endif + +/** + * XY Frequency limit + * Reduce resonance by limiting the frequency of small zigzag infill moves. + * See https://hydraraptor.blogspot.com/2010/12/frequency-limit.html + * Use M201 F G to change limits at runtime. + */ +//#define XY_FREQUENCY_LIMIT 10 // (Hz) Maximum frequency of small zigzag infill moves. Set with M201 F. +#ifdef XY_FREQUENCY_LIMIT + #define XY_FREQUENCY_MIN_PERCENT 5 // (percent) Minimum FR percentage to apply. Set with M201 G. +#endif + +// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end +// of the buffer and all stops. This should not be much greater than zero and should only be changed +// if unwanted behavior is observed on a user's machine when running at very slow speeds. +#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s) + +// +// Backlash Compensation +// Adds extra movement to axes on direction-changes to account for backlash. +// +//#define BACKLASH_COMPENSATION +#if ENABLED(BACKLASH_COMPENSATION) + // Define values for backlash distance and correction. + // If BACKLASH_GCODE is enabled these values are the defaults. + #define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm) One value for each linear axis + #define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction + + // Add steps for motor direction changes on CORE kinematics + //#define CORE_BACKLASH + + // Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments + // to reduce print artifacts. (Enabling this is costly in memory and computation!) + //#define BACKLASH_SMOOTHING_MM 3 // (mm) + + // Add runtime configuration and tuning of backlash values (M425) + //#define BACKLASH_GCODE + + #if ENABLED(BACKLASH_GCODE) + // Measure the Z backlash when probing (G29) and set with "M425 Z" + #define MEASURE_BACKLASH_WHEN_PROBING + + #if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) + // When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT + // mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION + // increments while checking for the contact to be broken. + #define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm) + #define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm) + #define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_FEEDRATE_SLOW // (mm/min) + #endif + #endif +#endif + +/** + * Automatic backlash, position and hotend offset calibration + * + * Enable G425 to run automatic calibration using an electrically- + * conductive cube, bolt, or washer mounted on the bed. + * + * G425 uses the probe to touch the top and sides of the calibration object + * on the bed and measures and/or correct positional offsets, axis backlash + * and hotend offsets. + * + * Note: HOTEND_OFFSET and CALIBRATION_OBJECT_CENTER must be set to within + * ±5mm of true values for G425 to succeed. + */ +//#define CALIBRATION_GCODE +#if ENABLED(CALIBRATION_GCODE) + + //#define CALIBRATION_SCRIPT_PRE "M117 Starting Auto-Calibration\nT0\nG28\nG12\nM117 Calibrating..." + //#define CALIBRATION_SCRIPT_POST "M500\nM117 Calibration data saved" + + #define CALIBRATION_MEASUREMENT_RESOLUTION 0.01 // mm + + #define CALIBRATION_FEEDRATE_SLOW 60 // mm/min + #define CALIBRATION_FEEDRATE_FAST 1200 // mm/min + #define CALIBRATION_FEEDRATE_TRAVEL 3000 // mm/min + + // The following parameters refer to the conical section of the nozzle tip. + #define CALIBRATION_NOZZLE_TIP_HEIGHT 1.0 // mm + #define CALIBRATION_NOZZLE_OUTER_DIAMETER 2.0 // mm + + // Uncomment to enable reporting (required for "G425 V", but consumes PROGMEM). + //#define CALIBRATION_REPORTING + + // The true location and dimension the cube/bolt/washer on the bed. + #define CALIBRATION_OBJECT_CENTER { 264.0, -22.0, -2.0 } // mm + #define CALIBRATION_OBJECT_DIMENSIONS { 10.0, 10.0, 10.0 } // mm + + // Comment out any sides which are unreachable by the probe. For best + // auto-calibration results, all sides must be reachable. + #define CALIBRATION_MEASURE_RIGHT + #define CALIBRATION_MEASURE_FRONT + #define CALIBRATION_MEASURE_LEFT + #define CALIBRATION_MEASURE_BACK + + //#define CALIBRATION_MEASURE_IMIN + //#define CALIBRATION_MEASURE_IMAX + //#define CALIBRATION_MEASURE_JMIN + //#define CALIBRATION_MEASURE_JMAX + //#define CALIBRATION_MEASURE_KMIN + //#define CALIBRATION_MEASURE_KMAX + + // Probing at the exact top center only works if the center is flat. If + // probing on a screwhead or hollow washer, probe near the edges. + //#define CALIBRATION_MEASURE_AT_TOP_EDGES + + // Define the pin to read during calibration + #ifndef CALIBRATION_PIN + //#define CALIBRATION_PIN -1 // Define here to override the default pin + #define CALIBRATION_PIN_INVERTING false // Set to true to invert the custom pin + //#define CALIBRATION_PIN_PULLDOWN + #define CALIBRATION_PIN_PULLUP + #endif +#endif + +/** + * Adaptive Step Smoothing increases the resolution of multi-axis moves, particularly at step frequencies + * below 1kHz (for AVR) or 10kHz (for ARM), where aliasing between axes in multi-axis moves causes audible + * vibration and surface artifacts. The algorithm adapts to provide the best possible step smoothing at the + * lowest stepping frequencies. + */ +#define ADAPTIVE_STEP_SMOOTHING + +/** + * Custom Microstepping + * Override as-needed for your setup. Up to 3 MS pins are supported. + */ +//#define MICROSTEP1 LOW,LOW,LOW +//#define MICROSTEP2 HIGH,LOW,LOW +//#define MICROSTEP4 LOW,HIGH,LOW +//#define MICROSTEP8 HIGH,HIGH,LOW +//#define MICROSTEP16 LOW,LOW,HIGH +//#define MICROSTEP32 HIGH,LOW,HIGH + +// Microstep settings (Requires a board with pins named X_MS1, X_MS2, etc.) +#define MICROSTEP_MODES { 16, 16, 16, 16, 16, 16 } // [1,2,4,8,16] + +/** + * @section stepper motor current + * + * Some boards have a means of setting the stepper motor current via firmware. + * + * The power on motor currents are set by: + * PWM_MOTOR_CURRENT - used by MINIRAMBO & ULTIMAIN_2 + * known compatible chips: A4982 + * DIGIPOT_MOTOR_CURRENT - used by BQ_ZUM_MEGA_3D, RAMBO & SCOOVO_X9H + * known compatible chips: AD5206 + * DAC_MOTOR_CURRENT_DEFAULT - used by PRINTRBOARD_REVF & RIGIDBOARD_V2 + * known compatible chips: MCP4728 + * DIGIPOT_I2C_MOTOR_CURRENTS - used by 5DPRINT, AZTEEG_X3_PRO, AZTEEG_X5_MINI_WIFI, MIGHTYBOARD_REVE + * known compatible chips: MCP4451, MCP4018 + * + * Motor currents can also be set by M907 - M910 and by the LCD. + * M907 - applies to all. + * M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H + * M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2 + */ +//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps +//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A) +//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis + +/** + * I2C-based DIGIPOTs (e.g., Azteeg X3 Pro) + */ +//#define DIGIPOT_MCP4018 // Requires https://github.com/felias-fogg/SlowSoftI2CMaster +//#define DIGIPOT_MCP4451 +#if EITHER(DIGIPOT_MCP4018, DIGIPOT_MCP4451) + #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT:4 AZTEEG_X3_PRO:8 MKS_SBASE:5 MIGHTYBOARD_REVE:5 + + // Actual motor currents in Amps. The number of entries must match DIGIPOT_I2C_NUM_CHANNELS. + // These correspond to the physical drivers, so be mindful if the order is changed. + #define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO + + //#define DIGIPOT_USE_RAW_VALUES // Use DIGIPOT_MOTOR_CURRENT raw wiper values (instead of A4988 motor currents) + + /** + * Common slave addresses: + * + * A (A shifted) B (B shifted) IC + * Smoothie 0x2C (0x58) 0x2D (0x5A) MCP4451 + * AZTEEG_X3_PRO 0x2C (0x58) 0x2E (0x5C) MCP4451 + * AZTEEG_X5_MINI 0x2C (0x58) 0x2E (0x5C) MCP4451 + * AZTEEG_X5_MINI_WIFI 0x58 0x5C MCP4451 + * MIGHTYBOARD_REVE 0x2F (0x5E) MCP4018 + */ + //#define DIGIPOT_I2C_ADDRESS_A 0x2C // Unshifted slave address for first DIGIPOT + //#define DIGIPOT_I2C_ADDRESS_B 0x2D // Unshifted slave address for second DIGIPOT +#endif + +//=========================================================================== +//=============================Additional Features=========================== +//=========================================================================== + +// @section lcd + +#if HAS_MANUAL_MOVE_MENU + #define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 2*60 } // (mm/min) Feedrates for manual moves along X, Y, Z, E from panel + #define FINE_MANUAL_MOVE 0.025 // (mm) Smallest manual move (< 0.1mm) applying to Z on most machines + #if IS_ULTIPANEL + #define MANUAL_E_MOVES_RELATIVE // Display extruder move distance rather than "position" + #define ULTIPANEL_FEEDMULTIPLY // Encoder sets the feedrate multiplier on the Status Screen + #endif +#endif + +// Change values more rapidly when the encoder is rotated faster +#define ENCODER_RATE_MULTIPLIER +#if ENABLED(ENCODER_RATE_MULTIPLIER) + #define ENCODER_5X_STEPS_PER_SEC 30 // (steps/s) Encoder rate for 5x speed + #define ENCODER_10X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 10x speed + #define ENCODER_100X_STEPS_PER_SEC 130 // (steps/s) Encoder rate for 100x speed +#endif + +// Play a beep when the feedrate is changed from the Status Screen +//#define BEEP_ON_FEEDRATE_CHANGE +#if ENABLED(BEEP_ON_FEEDRATE_CHANGE) + #define FEEDRATE_CHANGE_BEEP_DURATION 10 + #define FEEDRATE_CHANGE_BEEP_FREQUENCY 440 +#endif + +// +// LCD Backlight Timeout +// +//#define LCD_BACKLIGHT_TIMEOUT 30 // (s) Timeout before turning off the backlight + +#if HAS_BED_PROBE && EITHER(HAS_MARLINUI_MENU, HAS_TFT_LVGL_UI) + //#define PROBE_OFFSET_WIZARD // Add a Probe Z Offset calibration option to the LCD menu + #if ENABLED(PROBE_OFFSET_WIZARD) + /** + * Enable to init the Probe Z-Offset when starting the Wizard. + * Use a height slightly above the estimated nozzle-to-probe Z offset. + * For example, with an offset of -5, consider a starting height of -4. + */ + //#define PROBE_OFFSET_WIZARD_START_Z -4.0 + + // Set a convenient position to do the calibration (probing point and nozzle/bed-distance) + //#define PROBE_OFFSET_WIZARD_XY_POS { X_CENTER, Y_CENTER } + #endif +#endif + +#if HAS_MARLINUI_MENU + + #if HAS_BED_PROBE + // Add calibration in the Probe Offsets menu to compensate for X-axis twist. + //#define X_AXIS_TWIST_COMPENSATION + #if ENABLED(X_AXIS_TWIST_COMPENSATION) + /** + * Enable to init the Probe Z-Offset when starting the Wizard. + * Use a height slightly above the estimated nozzle-to-probe Z offset. + * For example, with an offset of -5, consider a starting height of -4. + */ + #define XATC_START_Z 0.0 + #define XATC_MAX_POINTS 3 // Number of points to probe in the wizard + #define XATC_Y_POSITION Y_CENTER // (mm) Y position to probe + #define XATC_Z_OFFSETS { 0, 0, 0 } // Z offsets for X axis sample points + #endif + #endif + + // Include a page of printer information in the LCD Main Menu + //#define LCD_INFO_MENU + #if ENABLED(LCD_INFO_MENU) + //#define LCD_PRINTER_INFO_IS_BOOTSCREEN // Show bootscreen(s) instead of Printer Info pages + #endif + + // BACK menu items keep the highlight at the top + //#define TURBO_BACK_MENU_ITEM + + // Insert a menu for preheating at the top level to allow for quick access + //#define PREHEAT_SHORTCUT_MENU_ITEM + +#endif // HAS_MARLINUI_MENU + +#if ANY(HAS_DISPLAY, DWIN_LCD_PROUI, DWIN_CREALITY_LCD_JYERSUI) + //#define SOUND_MENU_ITEM // Add a mute option to the LCD menu + #define SOUND_ON_DEFAULT // Buzzer/speaker default enabled state +#endif + +#if EITHER(HAS_DISPLAY, DWIN_LCD_PROUI) + // The timeout to return to the status screen from sub-menus + //#define LCD_TIMEOUT_TO_STATUS 15000 // (ms) + + #if ENABLED(SHOW_BOOTSCREEN) + #define BOOTSCREEN_TIMEOUT 4000 // (ms) Total Duration to display the boot screen(s) + #if EITHER(HAS_MARLINUI_U8GLIB, TFT_COLOR_UI) + #define BOOT_MARLIN_LOGO_SMALL // Show a smaller Marlin logo on the Boot Screen (saving lots of flash) + #endif + #endif + + // Scroll a longer status message into view + //#define STATUS_MESSAGE_SCROLLING + + // Apply a timeout to low-priority status messages + //#define STATUS_MESSAGE_TIMEOUT_SEC 30 // (seconds) + + // On the Info Screen, display XY with one decimal place when possible + //#define LCD_DECIMAL_SMALL_XY + + // Add an 'M73' G-code to set the current percentage + //#define LCD_SET_PROGRESS_MANUALLY + + // Show the E position (filament used) during printing + //#define LCD_SHOW_E_TOTAL + + /** + * LED Control Menu + * Add LED Control to the LCD menu + */ + //#define LED_CONTROL_MENU + #if ENABLED(LED_CONTROL_MENU) + #define LED_COLOR_PRESETS // Enable the Preset Color menu option + //#define NEO2_COLOR_PRESETS // Enable a second NeoPixel Preset Color menu option + #if ENABLED(LED_COLOR_PRESETS) + #define LED_USER_PRESET_RED 255 // User defined RED value + #define LED_USER_PRESET_GREEN 128 // User defined GREEN value + #define LED_USER_PRESET_BLUE 0 // User defined BLUE value + #define LED_USER_PRESET_WHITE 255 // User defined WHITE value + #define LED_USER_PRESET_BRIGHTNESS 255 // User defined intensity + //#define LED_USER_PRESET_STARTUP // Have the printer display the user preset color on startup + #endif + #if ENABLED(NEO2_COLOR_PRESETS) + #define NEO2_USER_PRESET_RED 255 // User defined RED value + #define NEO2_USER_PRESET_GREEN 128 // User defined GREEN value + #define NEO2_USER_PRESET_BLUE 0 // User defined BLUE value + #define NEO2_USER_PRESET_WHITE 255 // User defined WHITE value + #define NEO2_USER_PRESET_BRIGHTNESS 255 // User defined intensity + //#define NEO2_USER_PRESET_STARTUP // Have the printer display the user preset color on startup for the second strip + #endif + #endif + +#endif + +// LCD Print Progress options +#if EITHER(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY) + #if CAN_SHOW_REMAINING_TIME + //#define SHOW_REMAINING_TIME // Display estimated time to completion + #if ENABLED(SHOW_REMAINING_TIME) + //#define USE_M73_REMAINING_TIME // Use remaining time from M73 command instead of estimation + //#define ROTATE_PROGRESS_DISPLAY // Display (P)rogress, (E)lapsed, and (R)emaining time + #endif + #endif + + #if EITHER(HAS_MARLINUI_U8GLIB, EXTENSIBLE_UI) + //#define PRINT_PROGRESS_SHOW_DECIMALS // Show progress with decimal digits + #endif + + #if EITHER(HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL) + //#define LCD_PROGRESS_BAR // Show a progress bar on HD44780 LCDs for SD printing + #if ENABLED(LCD_PROGRESS_BAR) + #define PROGRESS_BAR_BAR_TIME 2000 // (ms) Amount of time to show the bar + #define PROGRESS_BAR_MSG_TIME 3000 // (ms) Amount of time to show the status message + #define PROGRESS_MSG_EXPIRE 0 // (ms) Amount of time to retain the status message (0=forever) + //#define PROGRESS_MSG_ONCE // Show the message for MSG_TIME then clear it + //#define LCD_PROGRESS_BAR_TEST // Add a menu item to test the progress bar + #endif + #endif +#endif + +#if ENABLED(SDSUPPORT) + /** + * SD Card SPI Speed + * May be required to resolve "volume init" errors. + * + * Enable and set to SPI_HALF_SPEED, SPI_QUARTER_SPEED, or SPI_EIGHTH_SPEED + * otherwise full speed will be applied. + * + * :['SPI_HALF_SPEED', 'SPI_QUARTER_SPEED', 'SPI_EIGHTH_SPEED'] + */ + //#define SD_SPI_SPEED SPI_HALF_SPEED + + // The standard SD detect circuit reads LOW when media is inserted and HIGH when empty. + // Enable this option and set to HIGH if your SD cards are incorrectly detected. + //#define SD_DETECT_STATE HIGH + + //#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 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" // 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. + #define SDCARD_RATHERRECENTFIRST + + #define SD_MENU_CONFIRM_START // Confirm the selected SD file before printing + + //#define NO_SD_AUTOSTART // Remove auto#.g file support completely to save some Flash, SRAM + //#define MENU_ADDAUTOSTART // Add a menu option to run auto#.g files + + //#define BROWSE_MEDIA_ON_INSERT // Open the file browser when media is inserted + + //#define MEDIA_MENU_AT_TOP // Force the media menu to be listed on the top of the main menu + + #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 + #endif + + /** + * Continue after Power-Loss (Creality3D) + * + * Store the current state to the SD Card at the start of each layer + * during SD printing. If the recovery file is found at boot time, present + * an option on the LCD screen to continue the print from the last-known + * point in the file. + */ + #define POWER_LOSS_RECOVERY + #if ENABLED(POWER_LOSS_RECOVERY) + #define PLR_ENABLED_DEFAULT false // Power Loss Recovery enabled by default. (Set with 'M413 Sn' & M500) + //#define BACKUP_POWER_SUPPLY // Backup power / UPS to move the steppers on power loss + //#define POWER_LOSS_ZRAISE 2 // (mm) Z axis raise on resume (on power loss with UPS) + //#define POWER_LOSS_PIN 44 // Pin to detect power loss. Set to -1 to disable default pin on boards without module. + //#define POWER_LOSS_STATE HIGH // State of pin indicating power loss + //#define POWER_LOSS_PULLUP // Set pullup / pulldown as appropriate for your sensor + //#define POWER_LOSS_PULLDOWN + //#define POWER_LOSS_PURGE_LEN 20 // (mm) Length of filament to purge on resume + //#define POWER_LOSS_RETRACT_LEN 10 // (mm) Length of filament to retract on fail. Requires backup power. + + // Without a POWER_LOSS_PIN the following option helps reduce wear on the SD card, + // especially with "vase mode" printing. Set too high and vases cannot be continued. + #define POWER_LOSS_MIN_Z_CHANGE 0.05 // (mm) Minimum Z change before saving power-loss data + + // Enable if Z homing is needed for proper recovery. 99.9% of the time this should be disabled! + //#define POWER_LOSS_RECOVER_ZHOME + #if ENABLED(POWER_LOSS_RECOVER_ZHOME) + //#define POWER_LOSS_ZHOME_POS { 0, 0 } // Safe XY position to home Z while avoiding objects on the bed + #endif + #endif + + /** + * Sort SD file listings in alphabetical order. + * + * With this option enabled, items on SD cards will be sorted + * by name for easier navigation. + * + * By default... + * + * - Use the slowest -but safest- method for sorting. + * - Folders are sorted to the top. + * - The sort key is statically allocated. + * - No added G-code (M34) support. + * - 40 item sorting limit. (Items after the first 40 are unsorted.) + * + * SD sorting uses static allocation (as set by SDSORT_LIMIT), allowing the + * compiler to calculate the worst-case usage and throw an error if the SRAM + * limit is exceeded. + * + * - SDSORT_USES_RAM provides faster sorting via a static directory buffer. + * - SDSORT_USES_STACK does the same, but uses a local stack-based buffer. + * - 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 + + // SD Card Sorting options + #if ENABLED(SDCARD_SORT_ALPHA) + #define SDSORT_LIMIT 40 // Maximum number of sorted items (10-256). Costs 27 bytes each. + #define FOLDER_SORTING -1 // -1=above 0=none 1=below + #define SDSORT_GCODE false // Allow turning sorting on/off with LCD and M34 G-code. + #define SDSORT_USES_RAM true // 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 true // Keep sorted items in RAM longer for speedy performance. Most expensive option. + #define SDSORT_DYNAMIC_RAM true // 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. + // Note: Only affects SCROLL_LONG_FILENAMES with SDSORT_CACHE_NAMES but not SDSORT_DYNAMIC_RAM. + #endif + + // Allow international symbols in long filenames. To display correctly, the + // LCD's font must contain the characters. Check your selected LCD language. + //#define UTF_FILENAME_SUPPORT + + //#define LONG_FILENAME_HOST_SUPPORT // Get the long filename of a file/folder with 'M33 ' and list long filenames with 'M20 L' + //#define LONG_FILENAME_WRITE_SUPPORT // Create / delete files with long filenames via M28, M30, and Binary Transfer Protocol + + #define SCROLL_LONG_FILENAMES // Scroll long filenames in the SD card menu + + //#define SD_ABORT_NO_COOLDOWN // Leave the heaters on after Stop Print (not recommended!) + + /** + * Abort SD printing when any endstop is triggered. + * This feature is enabled with 'M540 S1' or from the LCD menu. + * Endstops must be activated for this option to work. + */ + //#define SD_ABORT_ON_ENDSTOP_HIT + + //#define SD_REPRINT_LAST_SELECTED_FILE // On print completion open the LCD Menu and select the same file + + //#define AUTO_REPORT_SD_STATUS // Auto-report media status with 'M27 S' + + /** + * Support for USB thumb drives using an Arduino USB Host Shield or + * equivalent MAX3421E breakout board. The USB thumb drive will appear + * to Marlin as an SD card. + * + * The MAX3421E can be assigned the same pins as the SD card reader, with + * the following pin mapping: + * + * SCLK, MOSI, MISO --> SCLK, MOSI, MISO + * INT --> SD_DETECT_PIN [1] + * SS --> SDSS + * + * [1] On AVR an interrupt-capable pin is best for UHS3 compatibility. + */ + //#define USB_FLASH_DRIVE_SUPPORT + #if ENABLED(USB_FLASH_DRIVE_SUPPORT) + /** + * USB Host Shield Library + * + * - UHS2 uses no interrupts and has been production-tested + * on a LulzBot TAZ Pro with a 32-bit Archim board. + * + * - UHS3 is newer code with better USB compatibility. But it + * is less tested and is known to interfere with Servos. + * [1] This requires USB_INTR_PIN to be interrupt-capable. + */ + //#define USE_UHS2_USB + //#define USE_UHS3_USB + + /** + * Native USB Host supported by some boards (USB OTG) + */ + //#define USE_OTG_USB_HOST + + #if DISABLED(USE_OTG_USB_HOST) + #define USB_CS_PIN SDSS + #define USB_INTR_PIN SD_DETECT_PIN + #endif + #endif + + /** + * When using a bootloader that supports SD-Firmware-Flashing, + * add a menu item to activate SD-FW-Update on the next reboot. + * + * Requires ATMEGA2560 (Arduino Mega) + * + * Tested with this bootloader: + * https://github.com/FleetProbe/MicroBridge-Arduino-ATMega2560 + */ + //#define SD_FIRMWARE_UPDATE + #if ENABLED(SD_FIRMWARE_UPDATE) + #define SD_FIRMWARE_UPDATE_EEPROM_ADDR 0x1FF + #define SD_FIRMWARE_UPDATE_ACTIVE_VALUE 0xF0 + #define SD_FIRMWARE_UPDATE_INACTIVE_VALUE 0xFF + #endif + + /** + * Enable this option if you have more than ~3K of unused flash space. + * Marlin will embed all settings in the firmware binary as compressed data. + * Use 'M503 C' to write the settings out to the SD Card as 'mc.zip'. + * See docs/ConfigEmbedding.md for details on how to use 'mc-apply.py'. + */ + //#define CONFIGURATION_EMBEDDING + + // Add an optimized binary file transfer mode, initiated with 'M28 B1' + //#define BINARY_FILE_TRANSFER + + #if ENABLED(BINARY_FILE_TRANSFER) + // Include extra facilities (e.g., 'M20 F') supporting firmware upload via BINARY_FILE_TRANSFER + //#define CUSTOM_FIRMWARE_UPLOAD + #endif + + /** + * Set this option to one of the following (or the board's defaults apply): + * + * LCD - Use the SD drive in the external LCD controller. + * ONBOARD - Use the SD drive on the control board. + * CUSTOM_CABLE - Use a custom cable to access the SD (as defined in a pins file). + * + * :[ 'LCD', 'ONBOARD', 'CUSTOM_CABLE' ] + */ + //#define SDCARD_CONNECTION LCD + + // Enable if SD detect is rendered useless (e.g., by using an SD extender) + //#define NO_SD_DETECT + + /** + * Multiple volume support - EXPERIMENTAL. + * Adds 'M21 Pm' / 'M21 S' / 'M21 U' to mount SD Card / USB Drive. + */ + //#define MULTI_VOLUME + #if ENABLED(MULTI_VOLUME) + #define VOLUME_SD_ONBOARD + #define VOLUME_USB_FLASH_DRIVE + #define DEFAULT_VOLUME SV_SD_ONBOARD + #define DEFAULT_SHARED_VOLUME SV_USB_FLASH_DRIVE + #endif + +#endif // SDSUPPORT + +/** + * By default an onboard SD card reader may be shared as a USB mass- + * storage device. This option hides the SD card from the host PC. + */ +#define NO_SD_HOST_DRIVE // Disable SD Card access over USB (for security). + +/** + * Additional options for Graphical Displays + * + * Use the optimizations here to improve printing performance, + * which can be adversely affected by graphical display drawing, + * especially when doing several short moves, and when printing + * on DELTA and SCARA machines. + * + * Some of these options may result in the display lagging behind + * controller events, as there is a trade-off between reliable + * printing performance versus fast display updates. + */ +#if HAS_MARLINUI_U8GLIB + // Save many cycles by drawing a hollow frame or no frame on the Info Screen + //#define XYZ_NO_FRAME + #define XYZ_HOLLOW_FRAME + + // A bigger font is available for edit items. Costs 3120 bytes of flash. + // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. + //#define USE_BIG_EDIT_FONT + + // A smaller font may be used on the Info Screen. Costs 2434 bytes of flash. + // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. + //#define USE_SMALL_INFOFONT + + /** + * Graphical Display Sleep + * + * The U8G library provides sleep / wake functions for SH1106, SSD1306, + * SSD1309, and some other DOGM displays. + * Enable this option to save energy and prevent OLED pixel burn-in. + * Adds the menu item Configuration > LCD Timeout (m) to set a wait period + * from 0 (disabled) to 99 minutes. + */ + //#define DISPLAY_SLEEP_MINUTES 2 // (minutes) Timeout before turning off the screen + + /** + * ST7920-based LCDs can emulate a 16 x 4 character display using + * the ST7920 character-generator for very fast screen updates. + * Enable LIGHTWEIGHT_UI to use this special display mode. + * + * Since LIGHTWEIGHT_UI has limited space, the position and status + * message occupy the same line. Set STATUS_EXPIRE_SECONDS to the + * length of time to display the status message before clearing. + * + * Set STATUS_EXPIRE_SECONDS to zero to never clear the status. + * This will prevent position updates from being displayed. + */ + #if IS_U8GLIB_ST7920 + // Enable this option and reduce the value to optimize screen updates. + // The normal delay is 10µs. Use the lowest value that still gives a reliable display. + //#define DOGM_SPI_DELAY_US 5 + + //#define LIGHTWEIGHT_UI + #if ENABLED(LIGHTWEIGHT_UI) + #define STATUS_EXPIRE_SECONDS 20 + #endif + #endif + + /** + * Status (Info) Screen customizations + * These options may affect code size and screen render time. + * Custom status screens can forcibly override these settings. + */ + //#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones + //#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends) + #define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM for numbered hotends) + #define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating + #define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating + #define STATUS_CHAMBER_ANIM // Use a second bitmap to indicate chamber heating + //#define STATUS_CUTTER_ANIM // Use a second bitmap to indicate spindle / laser active + //#define STATUS_COOLER_ANIM // Use a second bitmap to indicate laser cooling + //#define STATUS_FLOWMETER_ANIM // Use multiple bitmaps to indicate coolant flow + //#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap + //#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap + //#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames + //#define STATUS_HEAT_PERCENT // Show heating in a progress bar + //#define BOOT_MARLIN_LOGO_ANIMATED // Animated Marlin logo. Costs ~3260 (or ~940) bytes of flash. + + // Frivolous Game Options + //#define MARLIN_BRICKOUT + //#define MARLIN_INVADERS + //#define MARLIN_SNAKE + //#define GAMES_EASTER_EGG // Add extra blank lines above the "Games" sub-menu + +#endif // HAS_MARLINUI_U8GLIB + +#if HAS_MARLINUI_U8GLIB || IS_DWIN_MARLINUI + // Show SD percentage next to the progress bar + //#define SHOW_SD_PERCENT + + // Enable to save many cycles by drawing a hollow frame on Menu Screens + #define MENU_HOLLOW_FRAME + + // Swap the CW/CCW indicators in the graphics overlay + //#define OVERLAY_GFX_REVERSE +#endif + +// +// Additional options for DGUS / DWIN displays +// +#if HAS_DGUS_LCD + #define LCD_BAUDRATE 115200 + + #define DGUS_RX_BUFFER_SIZE 128 + #define DGUS_TX_BUFFER_SIZE 48 + //#define SERIAL_STATS_RX_BUFFER_OVERRUNS // Fix Rx overrun situation (Currently only for AVR) + + #define DGUS_UPDATE_INTERVAL_MS 500 // (ms) Interval between automatic screen updates + + #if ANY(DGUS_LCD_UI_FYSETC, DGUS_LCD_UI_MKS, DGUS_LCD_UI_HIPRECY) + #define DGUS_PRINT_FILENAME // Display the filename during printing + #define DGUS_PREHEAT_UI // Display a preheat screen during heatup + + #if EITHER(DGUS_LCD_UI_FYSETC, DGUS_LCD_UI_MKS) + //#define DGUS_UI_MOVE_DIS_OPTION // Disabled by default for FYSETC and MKS + #else + #define DGUS_UI_MOVE_DIS_OPTION // Enabled by default for UI_HIPRECY + #endif + + #define DGUS_FILAMENT_LOADUNLOAD + #if ENABLED(DGUS_FILAMENT_LOADUNLOAD) + #define DGUS_FILAMENT_PURGE_LENGTH 10 + #define DGUS_FILAMENT_LOAD_LENGTH_PER_TIME 0.5 // (mm) Adjust in proportion to DGUS_UPDATE_INTERVAL_MS + #endif + + #define DGUS_UI_WAITING // Show a "waiting" screen between some screens + #if ENABLED(DGUS_UI_WAITING) + #define DGUS_UI_WAITING_STATUS 10 + #define DGUS_UI_WAITING_STATUS_PERIOD 8 // Increase to slower waiting status looping + #endif + #endif +#endif // HAS_DGUS_LCD + +// +// Additional options for AnyCubic Chiron TFT displays +// +#if ENABLED(ANYCUBIC_LCD_CHIRON) + // By default the type of panel is automatically detected. + // Enable one of these options if you know the panel type. + //#define CHIRON_TFT_STANDARD + //#define CHIRON_TFT_NEW + + // Enable the longer Anycubic powerup startup tune + //#define AC_DEFAULT_STARTUP_TUNE + + /** + * Display Folders + * By default the file browser lists all G-code files (including those in subfolders) in a flat list. + * Enable this option to display a hierarchical file browser. + * + * NOTES: + * - Without this option it helps to enable SDCARD_SORT_ALPHA so files are sorted before/after folders. + * - When used with the "new" panel, folder names will also have '.gcode' appended to their names. + * This hack is currently required to force the panel to show folders. + */ + #define AC_SD_FOLDER_VIEW +#endif + +// +// Specify additional languages for the UI. Default specified by LCD_LANGUAGE. +// +#if ANY(DOGLCD, TFT_COLOR_UI, TOUCH_UI_FTDI_EVE, IS_DWIN_MARLINUI) + //#define LCD_LANGUAGE_2 fr + //#define LCD_LANGUAGE_3 de + //#define LCD_LANGUAGE_4 es + //#define LCD_LANGUAGE_5 it + #ifdef LCD_LANGUAGE_2 + //#define LCD_LANGUAGE_AUTO_SAVE // Automatically save language to EEPROM on change + #endif +#endif + +// +// Touch UI for the FTDI Embedded Video Engine (EVE) +// +#if ENABLED(TOUCH_UI_FTDI_EVE) + // Display board used + //#define LCD_FTDI_VM800B35A // FTDI 3.5" with FT800 (320x240) + //#define LCD_4DSYSTEMS_4DLCD_FT843 // 4D Systems 4.3" (480x272) + //#define LCD_HAOYU_FT800CB // Haoyu with 4.3" or 5" (480x272) + //#define LCD_HAOYU_FT810CB // Haoyu with 5" (800x480) + //#define LCD_LULZBOT_CLCD_UI // LulzBot Color LCD UI + //#define LCD_FYSETC_TFT81050 // FYSETC with 5" (800x480) + //#define LCD_EVE3_50G // Matrix Orbital 5.0", 800x480, BT815 + //#define LCD_EVE2_50G // Matrix Orbital 5.0", 800x480, FT813 + + // Correct the resolution if not using the stock TFT panel. + //#define TOUCH_UI_320x240 + //#define TOUCH_UI_480x272 + //#define TOUCH_UI_800x480 + + // Mappings for boards with a standard RepRapDiscount Display connector + //#define AO_EXP1_PINMAP // LulzBot CLCD UI EXP1 mapping + //#define AO_EXP2_PINMAP // LulzBot CLCD UI EXP2 mapping + //#define CR10_TFT_PINMAP // Rudolph Riedel's CR10 pin mapping + //#define S6_TFT_PINMAP // FYSETC S6 pin mapping + //#define F6_TFT_PINMAP // FYSETC F6 pin mapping + + //#define OTHER_PIN_LAYOUT // Define pins manually below + #if ENABLED(OTHER_PIN_LAYOUT) + // Pins for CS and MOD_RESET (PD) must be chosen + #define CLCD_MOD_RESET 9 + #define CLCD_SPI_CS 10 + + // If using software SPI, specify pins for SCLK, MOSI, MISO + //#define CLCD_USE_SOFT_SPI + #if ENABLED(CLCD_USE_SOFT_SPI) + #define CLCD_SOFT_SPI_MOSI 11 + #define CLCD_SOFT_SPI_MISO 12 + #define CLCD_SOFT_SPI_SCLK 13 + #endif + #endif + + // Display Orientation. An inverted (i.e. upside-down) display + // is supported on the FT800. The FT810 and beyond also support + // portrait and mirrored orientations. + //#define TOUCH_UI_INVERTED + //#define TOUCH_UI_PORTRAIT + //#define TOUCH_UI_MIRRORED + + // UTF8 processing and rendering. + // Unsupported characters are shown as '?'. + //#define TOUCH_UI_USE_UTF8 + #if ENABLED(TOUCH_UI_USE_UTF8) + // Western accents support. These accented characters use + // combined bitmaps and require relatively little storage. + #define TOUCH_UI_UTF8_WESTERN_CHARSET + #if ENABLED(TOUCH_UI_UTF8_WESTERN_CHARSET) + // Additional character groups. These characters require + // full bitmaps and take up considerable storage: + //#define TOUCH_UI_UTF8_SUPERSCRIPTS // ¹ ² ³ + //#define TOUCH_UI_UTF8_COPYRIGHT // © ® + //#define TOUCH_UI_UTF8_GERMANIC // ß + //#define TOUCH_UI_UTF8_SCANDINAVIAN // Æ Ð Ø Þ æ ð ø þ + //#define TOUCH_UI_UTF8_PUNCTUATION // « » ¿ ¡ + //#define TOUCH_UI_UTF8_CURRENCY // ¢ £ ¤ ¥ + //#define TOUCH_UI_UTF8_ORDINALS // º ª + //#define TOUCH_UI_UTF8_MATHEMATICS // ± × ÷ + //#define TOUCH_UI_UTF8_FRACTIONS // ¼ ½ ¾ + //#define TOUCH_UI_UTF8_SYMBOLS // µ ¶ ¦ § ¬ + #endif + + // Cyrillic character set, costs about 27KiB of flash + //#define TOUCH_UI_UTF8_CYRILLIC_CHARSET + #endif + + // Use a smaller font when labels don't fit buttons + #define TOUCH_UI_FIT_TEXT + + // Use a numeric passcode for "Screen lock" keypad. + // (recommended for smaller displays) + //#define TOUCH_UI_PASSCODE + + // Output extra debug info for Touch UI events + //#define TOUCH_UI_DEBUG + + // Developer menu (accessed by touching "About Printer" copyright text) + //#define TOUCH_UI_DEVELOPER_MENU +#endif + +// +// Classic UI Options +// +#if TFT_SCALED_DOGLCD + //#define TFT_MARLINUI_COLOR 0xFFFF // White + //#define TFT_MARLINBG_COLOR 0x0000 // Black + //#define TFT_DISABLED_COLOR 0x0003 // Almost black + //#define TFT_BTCANCEL_COLOR 0xF800 // Red + //#define TFT_BTARROWS_COLOR 0xDEE6 // 11011 110111 00110 Yellow + //#define TFT_BTOKMENU_COLOR 0x145F // 00010 100010 11111 Cyan +#endif + +// +// ADC Button Debounce +// +#if HAS_ADC_BUTTONS + #define ADC_BUTTON_DEBOUNCE_DELAY 16 // Increase if buttons bounce or repeat too fast +#endif + +// @section safety + +/** + * The watchdog hardware timer will do a reset and disable all outputs + * if the firmware gets too overloaded to read the temperature sensors. + * + * If you find that watchdog reboot causes your AVR board to hang forever, + * enable WATCHDOG_RESET_MANUAL to use a custom timer instead of WDTO. + * NOTE: This method is less reliable as it can only catch hangups while + * interrupts are enabled. + */ +#define USE_WATCHDOG +#if ENABLED(USE_WATCHDOG) + //#define WATCHDOG_RESET_MANUAL +#endif + +// @section lcd + +/** + * Babystepping enables movement of the axes by tiny increments without changing + * the current position values. This feature is used primarily to adjust the Z + * axis in the first layer of a print in real-time. + * + * Warning: Does not respect endstops! + */ +#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_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 + #define BABYSTEP_MULTIPLICATOR_Z 1 // (steps or mm) Steps or millimeter distance for each Z babystep + #define BABYSTEP_MULTIPLICATOR_XY 1 // (steps or mm) Steps or millimeter distance for each XY babystep + + #define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping. + #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING) + #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds. + // Note: Extra time may be added to mitigate controller latency. + //#define MOVE_Z_WHEN_IDLE // Jump to the move Z menu on doubleclick when printer is idle. + #if ENABLED(MOVE_Z_WHEN_IDLE) + #define MOVE_Z_IDLE_MULTIPLICATOR 1 // Multiply 1mm by this factor for the move step size. + #endif + #endif + + //#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 + + //#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 + #endif +#endif + +// @section extruder + +/** + * Linear Pressure Control v1.5 + * + * Assumption: advance [steps] = k * (delta velocity [steps/s]) + * K=0 means advance disabled. + * + * NOTE: K values for LIN_ADVANCE 1.5 differ from earlier versions! + * + * Set K around 0.22 for 3mm PLA Direct Drive with ~6.5cm between the drive gear and heatbreak. + * Larger K values will be needed for flexible filament and greater distances. + * If this algorithm produces a higher speed offset than the extruder can handle (compared to E jerk) + * print acceleration will be reduced during the affected moves to keep within the limit. + * + * See https://marlinfw.org/docs/features/lin_advance.html for full instructions. + */ +//#define LIN_ADVANCE +#if ENABLED(LIN_ADVANCE) + //#define EXTRA_LIN_ADVANCE_K // Enable for second linear advance constants + #define LIN_ADVANCE_K 0.22 // Unit: mm compression per 1mm/s extruder speed + //#define LA_DEBUG // If enabled, this will generate debug information output over USB. + //#define EXPERIMENTAL_SCURVE // Enable this option to permit S-Curve Acceleration + //#define ALLOW_LOW_EJERK // Allow a DEFAULT_EJERK value of <10. Recommended for direct drive hotends. +#endif + +// @section leveling + +/** + * Points to probe for all 3-point Leveling procedures. + * Override if the automatically selected points are inadequate. + */ +#if EITHER(AUTO_BED_LEVELING_3POINT, AUTO_BED_LEVELING_UBL) + //#define PROBE_PT_1_X 15 + //#define PROBE_PT_1_Y 180 + //#define PROBE_PT_2_X 15 + //#define PROBE_PT_2_Y 20 + //#define PROBE_PT_3_X 170 + //#define PROBE_PT_3_Y 20 +#endif + +/** + * Probing Margins + * + * Override PROBING_MARGIN for each side of the build plate + * Useful to get probe points to exact positions on targets or + * to allow leveling to avoid plate clamps on only specific + * sides of the bed. With NOZZLE_AS_PROBE negative values are + * allowed, to permit probing outside the bed. + * + * If you are replacing the prior *_PROBE_BED_POSITION options, + * LEFT and FRONT values in most cases will map directly over + * RIGHT and REAR would be the inverse such as + * (X/Y_BED_SIZE - RIGHT/BACK_PROBE_BED_POSITION) + * + * This will allow all positions to match at compilation, however + * should the probe position be modified with M851XY then the + * probe points will follow. This prevents any change from causing + * the probe to be unable to reach any points. + */ +#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) +#endif + +#if BOTH(AUTO_BED_LEVELING_UBL, EEPROM_SETTINGS) + //#define OPTIMIZED_MESH_STORAGE // Store mesh with less precision to save EEPROM space +#endif + +/** + * Repeatedly attempt G29 leveling until it succeeds. + * Stop after G29_MAX_RETRIES attempts. + */ +//#define G29_RETRY_AND_RECOVER +#if ENABLED(G29_RETRY_AND_RECOVER) + #define G29_MAX_RETRIES 3 + #define G29_HALT_ON_FAILURE + /** + * Specify the GCODE commands that will be executed when leveling succeeds, + * between attempts, and after the maximum number of retries have been tried. + */ + #define G29_SUCCESS_COMMANDS "M117 Bed leveling done." + #define G29_RECOVER_COMMANDS "M117 Probe failed. Rewiping.\nG28\nG12 P0 S12 T0" + #define G29_FAILURE_COMMANDS "M117 Bed leveling failed.\nG0 Z10\nM300 P25 S880\nM300 P50 S0\nM300 P25 S880\nM300 P50 S0\nM300 P25 S880\nM300 P50 S0\nG4 S1" + +#endif + +/** + * Thermal Probe Compensation + * + * Adjust probe measurements to compensate for distortion associated with the temperature + * of the probe, bed, and/or hotend. + * Use G76 to automatically calibrate this feature for probe and bed temperatures. + * (Extruder temperature/offset values must be calibrated manually.) + * Use M871 to set temperature/offset values manually. + * For more details see https://marlinfw.org/docs/features/probe_temp_compensation.html + */ +//#define PTC_PROBE // Compensate based on probe temperature +//#define PTC_BED // Compensate based on bed temperature +//#define PTC_HOTEND // Compensate based on hotend temperature + +#if ANY(PTC_PROBE, PTC_BED, PTC_HOTEND) + /** + * If the probe is outside the defined range, use linear extrapolation with the closest + * point and the point with index PTC_LINEAR_EXTRAPOLATION. e.g., If set to 4 it will use the + * linear extrapolation between data[0] and data[4] for values below PTC_PROBE_START. + */ + //#define PTC_LINEAR_EXTRAPOLATION 4 + + #if ENABLED(PTC_PROBE) + // Probe temperature calibration generates a table of values starting at PTC_PROBE_START + // (e.g., 30), in steps of PTC_PROBE_RES (e.g., 5) with PTC_PROBE_COUNT (e.g., 10) samples. + #define PTC_PROBE_START 30 // (°C) + #define PTC_PROBE_RES 5 // (°C) + #define PTC_PROBE_COUNT 10 + #define PTC_PROBE_ZOFFS { 0 } // (µm) Z adjustments per sample + #endif + + #if ENABLED(PTC_BED) + // Bed temperature calibration builds a similar table. + #define PTC_BED_START 60 // (°C) + #define PTC_BED_RES 5 // (°C) + #define PTC_BED_COUNT 10 + #define PTC_BED_ZOFFS { 0 } // (µm) Z adjustments per sample + #endif + + #if ENABLED(PTC_HOTEND) + // Note: There is no automatic calibration for the hotend. Use M871. + #define PTC_HOTEND_START 180 // (°C) + #define PTC_HOTEND_RES 5 // (°C) + #define PTC_HOTEND_COUNT 20 + #define PTC_HOTEND_ZOFFS { 0 } // (µm) Z adjustments per sample + #endif + + // G76 options + #if BOTH(PTC_PROBE, PTC_BED) + // Park position to wait for probe cooldown + #define PTC_PARK_POS { 0, 0, 100 } + + // Probe position to probe and wait for probe to reach target temperature + //#define PTC_PROBE_POS { 12.0f, 7.3f } // Example: MK52 magnetic heatbed + #define PTC_PROBE_POS { 90, 100 } + + // The temperature the probe should be at while taking measurements during + // bed temperature calibration. + #define PTC_PROBE_TEMP 30 // (°C) + + // Height above Z=0.0 to raise the nozzle. Lowering this can help the probe to heat faster. + // Note: The Z=0.0 offset is determined by the probe Z offset (e.g., as set with M851 Z). + #define PTC_PROBE_HEATING_OFFSET 0.5 + #endif +#endif // PTC_PROBE || PTC_BED || PTC_HOTEND + +// @section extras + +// +// G60/G61 Position Save and Return +// +//#define SAVED_POSITIONS 1 // Each saved position slot costs 12 bytes + +// +// G2/G3 Arc Support +// +#define ARC_SUPPORT // Requires ~3226 bytes +#if ENABLED(ARC_SUPPORT) + #define MIN_ARC_SEGMENT_MM 0.1 // (mm) Minimum length of each arc segment + #define MAX_ARC_SEGMENT_MM 1.0 // (mm) Maximum length of each arc segment + #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 SF_ARC_FIX // Enable only if using SkeinForge with "Arc Point" fillet procedure +#endif + +// G5 Bézier Curve Support with XYZE destination and IJPQ offsets +//#define BEZIER_CURVE_SUPPORT // Requires ~2666 bytes + +#if EITHER(ARC_SUPPORT, BEZIER_CURVE_SUPPORT) + //#define CNC_WORKSPACE_PLANES // Allow G2/G3/G5 to operate in XY, ZX, or YZ planes +#endif + +/** + * Direct Stepping + * + * Comparable to the method used by Klipper, G6 direct stepping significantly + * reduces motion calculations, increases top printing speeds, and results in + * less step aliasing by calculating all motions in advance. + * Preparing your G-code: https://github.com/colinrgodsey/step-daemon + */ +//#define DIRECT_STEPPING + +/** + * G38 Probe Target + * + * This option adds G38.2 and G38.3 (probe towards target) + * and optionally G38.4 and G38.5 (probe away from target). + * Set MULTIPLE_PROBING for G38 to probe more than once. + */ +//#define G38_PROBE_TARGET +#if ENABLED(G38_PROBE_TARGET) + //#define G38_PROBE_AWAY // Include G38.4 and G38.5 to probe away from target + #define G38_MINIMUM_MOVE 0.0275 // (mm) Minimum distance that will produce a move. +#endif + +// Moves (or segments) with fewer steps than this will be joined with the next move +#define MIN_STEPS_PER_SEGMENT 6 + +/** + * Minimum delay before and after setting the stepper DIR (in ns) + * 0 : No delay (Expect at least 10µS since one Stepper ISR must transpire) + * 20 : Minimum for TMC2xxx drivers + * 200 : Minimum for A4988 drivers + * 400 : Minimum for A5984 drivers + * 500 : Minimum for LV8729 drivers (guess, no info in datasheet) + * 650 : Minimum for DRV8825 drivers + * 1500 : Minimum for TB6600 drivers (guess, no info in datasheet) + * 15000 : Minimum for TB6560 drivers (guess, no info in datasheet) + * + * Override the default value based on the driver type set in Configuration.h. + */ +//#define MINIMUM_STEPPER_POST_DIR_DELAY 650 +//#define MINIMUM_STEPPER_PRE_DIR_DELAY 650 + +/** + * Minimum stepper driver pulse width (in µs) + * 0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers + * 0 : Minimum 500ns for LV8729, adjusted in stepper.h + * 1 : Minimum for A4988 and A5984 stepper drivers + * 2 : Minimum for DRV8825 stepper drivers + * 3 : Minimum for TB6600 stepper drivers + * 30 : Minimum for TB6560 stepper drivers + * + * Override the default value based on the driver type set in Configuration.h. + */ +//#define MINIMUM_STEPPER_PULSE 2 + +/** + * Maximum stepping rate (in Hz) the stepper driver allows + * If undefined, defaults to 1MHz / (2 * MINIMUM_STEPPER_PULSE) + * 5000000 : Maximum for TMC2xxx stepper drivers + * 1000000 : Maximum for LV8729 stepper driver + * 500000 : Maximum for A4988 stepper driver + * 250000 : Maximum for DRV8825 stepper driver + * 150000 : Maximum for TB6600 stepper driver + * 15000 : Maximum for TB6560 stepper driver + * + * Override the default value based on the driver type set in Configuration.h. + */ +//#define MAXIMUM_STEPPER_RATE 250000 + +// @section temperature + +// Control heater 0 and heater 1 in parallel. +//#define HEATERS_PARALLEL + +//=========================================================================== +//================================= Buffers ================================= +//=========================================================================== + +// @section motion + +// 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) + #define BLOCK_BUFFER_SIZE 8 +#elif ENABLED(SDSUPPORT) + #define BLOCK_BUFFER_SIZE 16 +#else + #define BLOCK_BUFFER_SIZE 16 +#endif + +// @section serial + +// The ASCII buffer for serial input +#define MAX_CMD_SIZE 96 +#define BUFSIZE 4 + +// Transmission to Host Buffer Size +// To save 386 bytes of flash (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0. +// To buffer a simple "ok" you need 4 bytes. +// For ADVANCED_OK (M105) you need 32 bytes. +// 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 + +// 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 1024 + +#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 +#endif + +#if ENABLED(SDSUPPORT) + // Enable this option to collect and display the maximum + // RX queue usage after transferring a file to SD. + //#define SERIAL_STATS_MAX_RX_QUEUED + + // Enable this option to collect and display the number + // of dropped bytes after a file transfer to SD. + //#define SERIAL_STATS_DROPPED_RX +#endif + +// Monitor RX buffer usage +// Dump an error to the serial port if the serial receive buffer overflows. +// If you see these errors, increase the RX_BUFFER_SIZE value. +// Not supported on all platforms. +//#define RX_BUFFER_MONITOR + +/** + * Emergency Command Parser + * + * Add a low-level parser to intercept certain commands as they + * enter the serial receive buffer, so they cannot be blocked. + * Currently handles M108, M112, M410, M876 + * NOTE: Not yet implemented for all platforms. + */ +#define EMERGENCY_PARSER + +/** + * Realtime Reporting (requires EMERGENCY_PARSER) + * + * - Report position and state of the machine (like Grbl). + * - Auto-report position during long moves. + * - Useful for CNC/LASER. + * + * Adds support for commands: + * S000 : Report State and Position while moving. + * P000 : Instant Pause / Hold while moving. + * R000 : Resume from Pause / Hold. + * + * - During Hold all Emergency Parser commands are available, as usual. + * - Enable NANODLP_Z_SYNC and NANODLP_ALL_AXIS for move command end-state reports. + */ +//#define REALTIME_REPORTING_COMMANDS +#if ENABLED(REALTIME_REPORTING_COMMANDS) + //#define FULL_REPORT_TO_HOST_FEATURE // Auto-report the machine status like Grbl CNC +#endif + +// Bad Serial-connections can miss a received command by sending an 'ok' +// Therefore some clients abort after 30 seconds in a timeout. +// Some other clients start sending commands while receiving a 'wait'. +// This "wait" is only sent when the buffer is empty. 1 second is a good value here. +//#define NO_TIMEOUTS 1000 // Milliseconds + +// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary. +//#define ADVANCED_OK + +// Printrun may have trouble receiving long strings all at once. +// This option inserts short delays between lines of serial output. +#define SERIAL_OVERRUN_PROTECTION + +// For serial echo, the number of digits after the decimal point +//#define SERIAL_FLOAT_PRECISION 4 + +/** + * Set the number of proportional font spaces required to fill up a typical character space. + * This can help to better align the output of commands like `G29 O` Mesh Output. + * + * For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0. + * Otherwise, adjust according to your client and font. + */ +#define PROPORTIONAL_FONT_RATIO 1.0 + +// @section extras + +/** + * Extra Fan Speed + * Adds a secondary fan speed for each print-cooling fan. + * 'M106 P T3-255' : Set a secondary speed for + * 'M106 P T2' : Use the set secondary speed + * 'M106 P T1' : Restore the previous fan speed + */ +//#define EXTRA_FAN_SPEED + +/** + * Firmware-based and LCD-controlled retract + * + * Add G10 / G11 commands for automatic firmware-based retract / recover. + * Use M207 and M208 to define parameters for retract / recover. + * + * Use M209 to enable or disable auto-retract. + * With auto-retract enabled, all G1 E moves within the set range + * will be converted to firmware-based retract/recover moves. + * + * Be sure to turn off auto-retract during filament change. + * + * Note that M207 / M208 / M209 settings are saved to EEPROM. + */ +//#define FWRETRACT +#if ENABLED(FWRETRACT) + #define FWRETRACT_AUTORETRACT // Override slicer retractions + #if ENABLED(FWRETRACT_AUTORETRACT) + #define MIN_AUTORETRACT 0.1 // (mm) Don't convert E moves under this length + #define MAX_AUTORETRACT 10.0 // (mm) Don't convert E moves over this length + #endif + #define RETRACT_LENGTH 3 // (mm) Default retract length (positive value) + #define RETRACT_LENGTH_SWAP 13 // (mm) Default swap retract length (positive value) + #define RETRACT_FEEDRATE 45 // (mm/s) Default feedrate for retracting + #define RETRACT_ZRAISE 0 // (mm) Default retract Z-raise + #define RETRACT_RECOVER_LENGTH 0 // (mm) Default additional recover length (added to retract length on recover) + #define RETRACT_RECOVER_LENGTH_SWAP 0 // (mm) Default additional swap recover length (added to retract length on recover from toolchange) + #define RETRACT_RECOVER_FEEDRATE 8 // (mm/s) Default feedrate for recovering from retraction + #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // (mm/s) Default feedrate for recovering from swap retraction + #if ENABLED(MIXING_EXTRUDER) + //#define RETRACT_SYNC_MIXING // Retract and restore all mixing steppers simultaneously + #endif +#endif + +/** + * Universal tool change settings. + * Applies to all types of extruders except where explicitly noted. + */ +#if HAS_MULTI_EXTRUDER + // Z raise distance for tool-change, as needed for some extruders + #define TOOLCHANGE_ZRAISE 2 // (mm) + //#define TOOLCHANGE_ZRAISE_BEFORE_RETRACT // Apply raise before swap retraction (if enabled) + //#define TOOLCHANGE_NO_RETURN // Never return to previous position on tool-change + #if ENABLED(TOOLCHANGE_NO_RETURN) + //#define EVENT_GCODE_AFTER_TOOLCHANGE "G12X" // Extra G-code to run after tool-change + #endif + + /** + * Extra G-code to run while executing tool-change commands. Can be used to use an additional + * stepper motor (e.g., I axis in Configuration.h) to drive the tool-changer. + */ + //#define EVENT_GCODE_TOOLCHANGE_T0 "G28 A\nG1 A0" // Extra G-code to run while executing tool-change command T0 + //#define EVENT_GCODE_TOOLCHANGE_T1 "G1 A10" // Extra G-code to run while executing tool-change command T1 + //#define EVENT_GCODE_TOOLCHANGE_ALWAYS_RUN // Always execute above G-code sequences. Use with caution! + + /** + * Tool Sensors detect when tools have been picked up or dropped. + * Requires the pins TOOL_SENSOR1_PIN, TOOL_SENSOR2_PIN, etc. + */ + //#define TOOL_SENSOR + + /** + * Retract and prime filament on tool-change to reduce + * ooze and stringing and to get cleaner transitions. + */ + //#define TOOLCHANGE_FILAMENT_SWAP + #if ENABLED(TOOLCHANGE_FILAMENT_SWAP) + // Load / Unload + #define TOOLCHANGE_FS_LENGTH 12 // (mm) Load / Unload length + #define TOOLCHANGE_FS_EXTRA_RESUME_LENGTH 0 // (mm) Extra length for better restart. Adjust with LCD or M217 B. + #define TOOLCHANGE_FS_RETRACT_SPEED (50*60) // (mm/min) (Unloading) + #define TOOLCHANGE_FS_UNRETRACT_SPEED (25*60) // (mm/min) (On SINGLENOZZLE or Bowden loading must be slowed down) + + // Longer prime to clean out a SINGLENOZZLE + #define TOOLCHANGE_FS_EXTRA_PRIME 0 // (mm) Extra priming length + #define TOOLCHANGE_FS_PRIME_SPEED (4.6*60) // (mm/min) Extra priming feedrate + #define TOOLCHANGE_FS_WIPE_RETRACT 0 // (mm) Retract before cooling for less stringing, better wipe, etc. + + // Cool after prime to reduce stringing + #define TOOLCHANGE_FS_FAN -1 // Fan index or -1 to skip + #define TOOLCHANGE_FS_FAN_SPEED 255 // 0-255 + #define TOOLCHANGE_FS_FAN_TIME 10 // (seconds) + + // Use TOOLCHANGE_FS_PRIME_SPEED feedrate the first time each extruder is primed + //#define TOOLCHANGE_FS_SLOW_FIRST_PRIME + + /** + * Prime T0 the first time T0 is sent to the printer: + * [ Power-On -> T0 { Activate & Prime T0 } -> T1 { Retract T0, Activate & Prime T1 } ] + * If disabled, no priming on T0 until switching back to T0 from another extruder: + * [ Power-On -> T0 { T0 Activated } -> T1 { Activate & Prime T1 } -> T0 { Retract T1, Activate & Prime T0 } ] + * Enable with M217 V1 before printing to avoid unwanted priming on host connect. + */ + //#define TOOLCHANGE_FS_PRIME_FIRST_USED + + /** + * Tool Change Migration + * This feature provides G-code and LCD options to switch tools mid-print. + * All applicable tool properties are migrated so the print can continue. + * Tools must be closely matching and other restrictions may apply. + * Useful to: + * - Change filament color without interruption + * - Switch spools automatically on filament runout + * - Switch to a different nozzle on an extruder jam + */ + #define TOOLCHANGE_MIGRATION_FEATURE + + #endif + + /** + * Position to park head during tool change. + * Doesn't apply to SWITCHING_TOOLHEAD, DUAL_X_CARRIAGE, or PARKING_EXTRUDER + */ + //#define TOOLCHANGE_PARK + #if ENABLED(TOOLCHANGE_PARK) + #define TOOLCHANGE_PARK_XY { X_MIN_POS + 10, Y_MIN_POS + 10 } + #define TOOLCHANGE_PARK_XY_FEEDRATE 6000 // (mm/min) + //#define TOOLCHANGE_PARK_X_ONLY // X axis only move + //#define TOOLCHANGE_PARK_Y_ONLY // Y axis only move + #endif +#endif // HAS_MULTI_EXTRUDER + +/** + * Advanced Pause for Filament Change + * - Adds the G-code M600 Filament Change to initiate a filament change. + * - This feature is required for the default FILAMENT_RUNOUT_SCRIPT. + * + * Requirements: + * - For Filament Change parking enable and configure NOZZLE_PARK_FEATURE. + * - For user interaction enable an LCD display, HOST_PROMPT_SUPPORT, or EMERGENCY_PARSER. + * + * Enable PARK_HEAD_ON_PAUSE to add the G-code M125 Pause and Park. + */ +//#define ADVANCED_PAUSE_FEATURE +#if ENABLED(ADVANCED_PAUSE_FEATURE) + #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. + #define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract. + // 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 100 // (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 0 // (mm) Load length of filament, from extruder gear to nozzle. + // For Bowden, the full length of the tube and nozzle. + // For direct drive, the full length of the nozzle. + //#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. + #define ADVANCED_PAUSE_PURGE_FEEDRATE 3 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. + #define ADVANCED_PAUSE_PURGE_LENGTH 50 // (mm) Length to extrude after loading. + // 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. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_PURGE_RETRACT 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_PURGE_DELAY 5000 // (ms) Delay for the filament to cool after retract. + #define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged. + #define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 // (mm/s) feedrate to purge before unload + + #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 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 + + //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) +#endif + +// @section tmc + +/** + * TMC26X Stepper Driver options + * + * The TMC26XStepper library is required for this stepper driver. + * https://github.com/trinamic/TMC26XStepper + */ +#if HAS_DRIVER(TMC26X) + + #if AXIS_DRIVER_TYPE_X(TMC26X) + #define X_MAX_CURRENT 1000 // (mA) + #define X_SENSE_RESISTOR 91 // (mOhms) + #define X_MICROSTEPS 16 // Number of microsteps + #endif + + #if AXIS_DRIVER_TYPE_X2(TMC26X) + #define X2_MAX_CURRENT 1000 + #define X2_SENSE_RESISTOR 91 + #define X2_MICROSTEPS X_MICROSTEPS + #endif + + #if AXIS_DRIVER_TYPE_Y(TMC26X) + #define Y_MAX_CURRENT 1000 + #define Y_SENSE_RESISTOR 91 + #define Y_MICROSTEPS 16 + #endif + + #if AXIS_DRIVER_TYPE_Y2(TMC26X) + #define Y2_MAX_CURRENT 1000 + #define Y2_SENSE_RESISTOR 91 + #define Y2_MICROSTEPS Y_MICROSTEPS + #endif + + #if AXIS_DRIVER_TYPE_Z(TMC26X) + #define Z_MAX_CURRENT 1000 + #define Z_SENSE_RESISTOR 91 + #define Z_MICROSTEPS 16 + #endif + + #if AXIS_DRIVER_TYPE_Z2(TMC26X) + #define Z2_MAX_CURRENT 1000 + #define Z2_SENSE_RESISTOR 91 + #define Z2_MICROSTEPS Z_MICROSTEPS + #endif + + #if AXIS_DRIVER_TYPE_Z3(TMC26X) + #define Z3_MAX_CURRENT 1000 + #define Z3_SENSE_RESISTOR 91 + #define Z3_MICROSTEPS Z_MICROSTEPS + #endif + + #if AXIS_DRIVER_TYPE_Z4(TMC26X) + #define Z4_MAX_CURRENT 1000 + #define Z4_SENSE_RESISTOR 91 + #define Z4_MICROSTEPS Z_MICROSTEPS + #endif + + #if AXIS_DRIVER_TYPE_I(TMC26X) + #define I_MAX_CURRENT 1000 + #define I_SENSE_RESISTOR 91 + #define I_MICROSTEPS 16 + #endif + + #if AXIS_DRIVER_TYPE_J(TMC26X) + #define J_MAX_CURRENT 1000 + #define J_SENSE_RESISTOR 91 + #define J_MICROSTEPS 16 + #endif + + #if AXIS_DRIVER_TYPE_K(TMC26X) + #define K_MAX_CURRENT 1000 + #define K_SENSE_RESISTOR 91 + #define K_MICROSTEPS 16 + #endif + + #if AXIS_DRIVER_TYPE_E0(TMC26X) + #define E0_MAX_CURRENT 1000 + #define E0_SENSE_RESISTOR 91 + #define E0_MICROSTEPS 16 + #endif + + #if AXIS_DRIVER_TYPE_E1(TMC26X) + #define E1_MAX_CURRENT 1000 + #define E1_SENSE_RESISTOR 91 + #define E1_MICROSTEPS E0_MICROSTEPS + #endif + + #if AXIS_DRIVER_TYPE_E2(TMC26X) + #define E2_MAX_CURRENT 1000 + #define E2_SENSE_RESISTOR 91 + #define E2_MICROSTEPS E0_MICROSTEPS + #endif + + #if AXIS_DRIVER_TYPE_E3(TMC26X) + #define E3_MAX_CURRENT 1000 + #define E3_SENSE_RESISTOR 91 + #define E3_MICROSTEPS E0_MICROSTEPS + #endif + + #if AXIS_DRIVER_TYPE_E4(TMC26X) + #define E4_MAX_CURRENT 1000 + #define E4_SENSE_RESISTOR 91 + #define E4_MICROSTEPS E0_MICROSTEPS + #endif + + #if AXIS_DRIVER_TYPE_E5(TMC26X) + #define E5_MAX_CURRENT 1000 + #define E5_SENSE_RESISTOR 91 + #define E5_MICROSTEPS E0_MICROSTEPS + #endif + + #if AXIS_DRIVER_TYPE_E6(TMC26X) + #define E6_MAX_CURRENT 1000 + #define E6_SENSE_RESISTOR 91 + #define E6_MICROSTEPS E0_MICROSTEPS + #endif + + #if AXIS_DRIVER_TYPE_E7(TMC26X) + #define E7_MAX_CURRENT 1000 + #define E7_SENSE_RESISTOR 91 + #define E7_MICROSTEPS E0_MICROSTEPS + #endif + +#endif // TMC26X + +// @section tmc_smart + +/** + * To use TMC2130, TMC2160, TMC2660, TMC5130, TMC5160 stepper drivers in SPI mode + * connect your SPI pins to the hardware SPI interface on your board and define + * the required CS pins in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 + * pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.). + * You may also use software SPI if you wish to use general purpose IO pins. + * + * To use TMC2208 stepper UART-configurable stepper drivers connect #_SERIAL_TX_PIN + * to the driver side PDN_UART pin with a 1K resistor. + * To use the reading capabilities, also connect #_SERIAL_RX_PIN to PDN_UART without + * a resistor. + * The drivers can also be used with hardware serial. + * + * TMCStepper library is required to use TMC stepper drivers. + * https://github.com/teemuatlut/TMCStepper + */ +#if HAS_TRINAMIC_CONFIG + + #define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current + + /** + * Interpolate microsteps to 256 + * Override for each driver with _INTERPOLATE settings below + */ + #define INTERPOLATE true + + #if AXIS_IS_TMC(X) + #define X_CURRENT 800 // (mA) RMS current. Multiply by 1.414 for peak current. + #define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing + #define X_MICROSTEPS 16 // 0..256 + #define X_RSENSE 0.11 + #define X_CHAIN_POS -1 // -1..0: Not chained. 1: MCU MOSI connected. 2: Next in chain, ... + //#define X_INTERPOLATE true // Enable to override 'INTERPOLATE' for the X axis + //#define X_HOLD_MULTIPLIER 0.5 // Enable to override 'HOLD_MULTIPLIER' for the X axis + #endif + + #if AXIS_IS_TMC(X2) + #define X2_CURRENT 800 + #define X2_CURRENT_HOME X2_CURRENT + #define X2_MICROSTEPS X_MICROSTEPS + #define X2_RSENSE 0.11 + #define X2_CHAIN_POS -1 + //#define X2_INTERPOLATE true + //#define X2_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(Y) + #define Y_CURRENT 800 + #define Y_CURRENT_HOME Y_CURRENT + #define Y_MICROSTEPS 16 + #define Y_RSENSE 0.11 + #define Y_CHAIN_POS -1 + //#define Y_INTERPOLATE true + //#define Y_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(Y2) + #define Y2_CURRENT 800 + #define Y2_CURRENT_HOME Y2_CURRENT + #define Y2_MICROSTEPS Y_MICROSTEPS + #define Y2_RSENSE 0.11 + #define Y2_CHAIN_POS -1 + //#define Y2_INTERPOLATE true + //#define Y2_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(Z) + #define Z_CURRENT 800 + #define Z_CURRENT_HOME Z_CURRENT + #define Z_MICROSTEPS 16 + #define Z_RSENSE 0.11 + #define Z_CHAIN_POS -1 + //#define Z_INTERPOLATE true + //#define Z_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(Z2) + #define Z2_CURRENT 800 + #define Z2_CURRENT_HOME Z2_CURRENT + #define Z2_MICROSTEPS Z_MICROSTEPS + #define Z2_RSENSE 0.11 + #define Z2_CHAIN_POS -1 + //#define Z2_INTERPOLATE true + //#define Z2_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(Z3) + #define Z3_CURRENT 800 + #define Z3_CURRENT_HOME Z3_CURRENT + #define Z3_MICROSTEPS Z_MICROSTEPS + #define Z3_RSENSE 0.11 + #define Z3_CHAIN_POS -1 + //#define Z3_INTERPOLATE true + //#define Z3_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(Z4) + #define Z4_CURRENT 800 + #define Z4_CURRENT_HOME Z4_CURRENT + #define Z4_MICROSTEPS Z_MICROSTEPS + #define Z4_RSENSE 0.11 + #define Z4_CHAIN_POS -1 + //#define Z4_INTERPOLATE true + //#define Z4_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(I) + #define I_CURRENT 800 + #define I_CURRENT_HOME I_CURRENT + #define I_MICROSTEPS 16 + #define I_RSENSE 0.11 + #define I_CHAIN_POS -1 + //#define I_INTERPOLATE true + //#define I_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(J) + #define J_CURRENT 800 + #define J_CURRENT_HOME J_CURRENT + #define J_MICROSTEPS 16 + #define J_RSENSE 0.11 + #define J_CHAIN_POS -1 + //#define J_INTERPOLATE true + //#define J_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(K) + #define K_CURRENT 800 + #define K_CURRENT_HOME K_CURRENT + #define K_MICROSTEPS 16 + #define K_RSENSE 0.11 + #define K_CHAIN_POS -1 + //#define K_INTERPOLATE true + //#define K_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(E0) + #define E0_CURRENT 800 + #define E0_MICROSTEPS 16 + #define E0_RSENSE 0.11 + #define E0_CHAIN_POS -1 + //#define E0_INTERPOLATE true + //#define E0_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(E1) + #define E1_CURRENT 800 + #define E1_MICROSTEPS E0_MICROSTEPS + #define E1_RSENSE 0.11 + #define E1_CHAIN_POS -1 + //#define E1_INTERPOLATE true + //#define E1_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(E2) + #define E2_CURRENT 800 + #define E2_MICROSTEPS E0_MICROSTEPS + #define E2_RSENSE 0.11 + #define E2_CHAIN_POS -1 + //#define E2_INTERPOLATE true + //#define E2_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(E3) + #define E3_CURRENT 800 + #define E3_MICROSTEPS E0_MICROSTEPS + #define E3_RSENSE 0.11 + #define E3_CHAIN_POS -1 + //#define E3_INTERPOLATE true + //#define E3_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(E4) + #define E4_CURRENT 800 + #define E4_MICROSTEPS E0_MICROSTEPS + #define E4_RSENSE 0.11 + #define E4_CHAIN_POS -1 + //#define E4_INTERPOLATE true + //#define E4_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(E5) + #define E5_CURRENT 800 + #define E5_MICROSTEPS E0_MICROSTEPS + #define E5_RSENSE 0.11 + #define E5_CHAIN_POS -1 + //#define E5_INTERPOLATE true + //#define E5_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(E6) + #define E6_CURRENT 800 + #define E6_MICROSTEPS E0_MICROSTEPS + #define E6_RSENSE 0.11 + #define E6_CHAIN_POS -1 + //#define E6_INTERPOLATE true + //#define E6_HOLD_MULTIPLIER 0.5 + #endif + + #if AXIS_IS_TMC(E7) + #define E7_CURRENT 800 + #define E7_MICROSTEPS E0_MICROSTEPS + #define E7_RSENSE 0.11 + #define E7_CHAIN_POS -1 + //#define E7_INTERPOLATE true + //#define E7_HOLD_MULTIPLIER 0.5 + #endif + + /** + * Override default SPI pins for TMC2130, TMC2160, TMC2660, TMC5130 and TMC5160 drivers here. + * The default pins can be found in your board's pins file. + */ + //#define X_CS_PIN -1 + //#define Y_CS_PIN -1 + //#define Z_CS_PIN -1 + //#define X2_CS_PIN -1 + //#define Y2_CS_PIN -1 + //#define Z2_CS_PIN -1 + //#define Z3_CS_PIN -1 + //#define Z4_CS_PIN -1 + //#define I_CS_PIN -1 + //#define J_CS_PIN -1 + //#define K_CS_PIN -1 + //#define E0_CS_PIN -1 + //#define E1_CS_PIN -1 + //#define E2_CS_PIN -1 + //#define E3_CS_PIN -1 + //#define E4_CS_PIN -1 + //#define E5_CS_PIN -1 + //#define E6_CS_PIN -1 + //#define E7_CS_PIN -1 + + /** + * Software option for SPI driven drivers (TMC2130, TMC2160, TMC2660, TMC5130 and TMC5160). + * The default SW SPI pins are defined the respective pins files, + * but you can override or define them here. + */ + //#define TMC_USE_SW_SPI + //#define TMC_SW_MOSI -1 + //#define TMC_SW_MISO -1 + //#define TMC_SW_SCK -1 + + /** + * Four TMC2209 drivers can use the same HW/SW serial port with hardware configured addresses. + * Set the address using jumpers on pins MS1 and MS2. + * Address | MS1 | MS2 + * 0 | LOW | LOW + * 1 | HIGH | LOW + * 2 | LOW | HIGH + * 3 | HIGH | HIGH + * + * 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 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 + + /** + * Software enable + * + * Use for drivers that do not use a dedicated enable pin, but rather handle the same + * function through a communication line such as SPI or UART. + */ + //#define SOFTWARE_DRIVER_ENABLE + + /** + * TMC2130, TMC2160, TMC2208, TMC2209, TMC5130 and TMC5160 only + * Use Trinamic's ultra quiet stepping mode. + * When disabled, Marlin will use spreadCycle stepping mode. + */ + #define STEALTHCHOP_XY + #define STEALTHCHOP_Z + #define STEALTHCHOP_I + #define STEALTHCHOP_J + #define STEALTHCHOP_K + #define STEALTHCHOP_E + + /** + * Optimize spreadCycle chopper parameters by using predefined parameter sets + * or with the help of an example included in the library. + * Provided parameter sets are + * CHOPPER_DEFAULT_12V + * CHOPPER_DEFAULT_19V + * CHOPPER_DEFAULT_24V + * CHOPPER_DEFAULT_36V + * CHOPPER_09STEP_24V // 0.9 degree steppers (24V) + * CHOPPER_PRUSAMK3_24V // Imported parameters from the official Průša firmware for MK3 (24V) + * CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9 + * + * Define your own with: + * { , , hysteresis_start[1..8] } + */ + #define CHOPPER_TIMING CHOPPER_DEFAULT_12V // All axes (override below) + //#define CHOPPER_TIMING_X CHOPPER_TIMING // For X Axes (override below) + //#define CHOPPER_TIMING_X2 CHOPPER_TIMING_X + //#define CHOPPER_TIMING_Y CHOPPER_TIMING // For Y Axes (override below) + //#define CHOPPER_TIMING_Y2 CHOPPER_TIMING_Y + //#define CHOPPER_TIMING_Z CHOPPER_TIMING // For Z Axes (override below) + //#define CHOPPER_TIMING_Z2 CHOPPER_TIMING_Z + //#define CHOPPER_TIMING_Z3 CHOPPER_TIMING_Z + //#define CHOPPER_TIMING_Z4 CHOPPER_TIMING_Z + //#define CHOPPER_TIMING_I CHOPPER_TIMING + //#define CHOPPER_TIMING_J CHOPPER_TIMING + //#define CHOPPER_TIMING_K CHOPPER_TIMING + //#define CHOPPER_TIMING_E CHOPPER_TIMING // For Extruders (override below) + //#define CHOPPER_TIMING_E1 CHOPPER_TIMING_E + //#define CHOPPER_TIMING_E2 CHOPPER_TIMING_E + //#define CHOPPER_TIMING_E3 CHOPPER_TIMING_E + //#define CHOPPER_TIMING_E4 CHOPPER_TIMING_E + //#define CHOPPER_TIMING_E5 CHOPPER_TIMING_E + //#define CHOPPER_TIMING_E6 CHOPPER_TIMING_E + //#define CHOPPER_TIMING_E7 CHOPPER_TIMING_E + + /** + * Monitor Trinamic drivers + * for error conditions like overtemperature and short to ground. + * To manage over-temp Marlin can decrease the driver current until the error condition clears. + * Other detected conditions can be used to stop the current print. + * Relevant G-codes: + * M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given. + * M911 - Report stepper driver overtemperature pre-warn condition. + * M912 - Clear stepper driver overtemperature pre-warn condition flag. + * M122 - Report driver parameters (Requires TMC_DEBUG) + */ + //#define MONITOR_DRIVER_STATUS + + #if ENABLED(MONITOR_DRIVER_STATUS) + #define CURRENT_STEP_DOWN 50 // [mA] + #define REPORT_CURRENT_CHANGE + #define STOP_ON_ERROR + #endif + + /** + * TMC2130, TMC2160, TMC2208, TMC2209, TMC5130 and TMC5160 only + * The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD. + * This mode allows for faster movements at the expense of higher noise levels. + * STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD. + * M913 X/Y/Z/E to live tune the setting + */ + //#define HYBRID_THRESHOLD + + #define X_HYBRID_THRESHOLD 100 // [mm/s] + #define X2_HYBRID_THRESHOLD 100 + #define Y_HYBRID_THRESHOLD 100 + #define Y2_HYBRID_THRESHOLD 100 + #define Z_HYBRID_THRESHOLD 3 + #define Z2_HYBRID_THRESHOLD 3 + #define Z3_HYBRID_THRESHOLD 3 + #define Z4_HYBRID_THRESHOLD 3 + #define I_HYBRID_THRESHOLD 3 + #define J_HYBRID_THRESHOLD 3 + #define K_HYBRID_THRESHOLD 3 + #define E0_HYBRID_THRESHOLD 30 + #define E1_HYBRID_THRESHOLD 30 + #define E2_HYBRID_THRESHOLD 30 + #define E3_HYBRID_THRESHOLD 30 + #define E4_HYBRID_THRESHOLD 30 + #define E5_HYBRID_THRESHOLD 30 + #define E6_HYBRID_THRESHOLD 30 + #define E7_HYBRID_THRESHOLD 30 + + /** + * Use StallGuard to home / probe X, Y, Z. + * + * TMC2130, TMC2160, TMC2209, TMC2660, TMC5130, and TMC5160 only + * Connect the stepper driver's DIAG1 pin to the X/Y endstop pin. + * X, Y, and Z homing will always be done in spreadCycle mode. + * + * X/Y/Z_STALL_SENSITIVITY is the default stall threshold. + * Use M914 X Y Z to set the stall threshold at runtime: + * + * Sensitivity TMC2209 Others + * HIGHEST 255 -64 (Too sensitive => False positive) + * LOWEST 0 63 (Too insensitive => No trigger) + * + * It is recommended to set HOMING_BUMP_MM to { 0, 0, 0 }. + * + * SPI_ENDSTOPS *** Beta feature! *** TMC2130/TMC5160 Only *** + * Poll the driver through SPI to determine load when homing. + * Removes the need for a wire from DIAG1 to an endstop pin. + * + * IMPROVE_HOMING_RELIABILITY tunes acceleration and jerk when + * homing and adds a guard period for endstop triggering. + * + * Comment *_STALL_SENSITIVITY to disable sensorless homing for that axis. + */ + //#define SENSORLESS_HOMING // StallGuard capable drivers only + + #if EITHER(SENSORLESS_HOMING, SENSORLESS_PROBING) + // TMC2209: 0...255. TMC2130: -64...63 + #define X_STALL_SENSITIVITY 8 + #define X2_STALL_SENSITIVITY X_STALL_SENSITIVITY + #define Y_STALL_SENSITIVITY 8 + #define Y2_STALL_SENSITIVITY Y_STALL_SENSITIVITY + //#define Z_STALL_SENSITIVITY 8 + //#define Z2_STALL_SENSITIVITY Z_STALL_SENSITIVITY + //#define Z3_STALL_SENSITIVITY Z_STALL_SENSITIVITY + //#define Z4_STALL_SENSITIVITY Z_STALL_SENSITIVITY + //#define I_STALL_SENSITIVITY 8 + //#define J_STALL_SENSITIVITY 8 + //#define K_STALL_SENSITIVITY 8 + //#define SPI_ENDSTOPS // TMC2130 only + //#define IMPROVE_HOMING_RELIABILITY + #endif + + /** + * TMC Homing stepper phase. + * + * Improve homing repeatability by homing to stepper coil's nearest absolute + * phase position. Trinamic drivers use a stepper phase table with 1024 values + * spanning 4 full steps with 256 positions each (ergo, 1024 positions). + * Full step positions (128, 384, 640, 896) have the highest holding torque. + * + * Values from 0..1023, -1 to disable homing phase for that axis. + */ + //#define TMC_HOME_PHASE { 896, 896, 896 } + + /** + * Beta feature! + * Create a 50/50 square wave step pulse optimal for stepper drivers. + */ + #define SQUARE_WAVE_STEPPING + + /** + * Enable M122 debugging command for TMC stepper drivers. + * M122 S0/1 will enable continuous reporting. + */ + //#define TMC_DEBUG + + /** + * You can set your own advanced settings by filling in predefined functions. + * A list of available functions can be found on the library github page + * https://github.com/teemuatlut/TMCStepper + * + * Example: + * #define TMC_ADV() { \ + * stepperX.diag0_otpw(1); \ + * stepperY.intpol(0); \ + * } + */ + #define TMC_ADV() { } + +#endif // HAS_TRINAMIC_CONFIG + +// @section L64XX + +/** + * L64XX Stepper Driver options + * + * Arduino-L6470 library (0.8.0 or higher) is required. + * https://github.com/ameyer/Arduino-L6470 + * + * Requires the following to be defined in your pins_YOUR_BOARD file + * L6470_CHAIN_SCK_PIN + * L6470_CHAIN_MISO_PIN + * L6470_CHAIN_MOSI_PIN + * L6470_CHAIN_SS_PIN + * ENABLE_RESET_L64XX_CHIPS(Q) where Q is 1 to enable and 0 to reset + */ + +#if HAS_L64XX + + //#define L6470_CHITCHAT // Display additional status info + + #if AXIS_IS_L64XX(X) + #define X_MICROSTEPS 128 // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128) - L6474 max is 16 + #define X_OVERCURRENT 2000 // (mA) Current where the driver detects an over current + // L6470 & L6474 - VALID: 375 x (1 - 16) - 6A max - rounds down + // POWERSTEP01: VALID: 1000 x (1 - 32) - 32A max - rounds down + #define X_STALLCURRENT 1500 // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) - 4A max - rounds down) + // L6470 & L6474 - VALID: 31.25 * (1-128) - 4A max - rounds down + // POWERSTEP01: VALID: 200 x (1 - 32) - 6.4A max - rounds down + // L6474 - STALLCURRENT setting is used to set the nominal (TVAL) current + #define X_MAX_VOLTAGE 127 // 0-255, Maximum effective voltage seen by stepper - not used by L6474 + #define X_CHAIN_POS -1 // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI + #define X_SLEW_RATE 1 // 0-3, Slew 0 is slowest, 3 is fastest + #endif + + #if AXIS_IS_L64XX(X2) + #define X2_MICROSTEPS X_MICROSTEPS + #define X2_OVERCURRENT 2000 + #define X2_STALLCURRENT 1500 + #define X2_MAX_VOLTAGE 127 + #define X2_CHAIN_POS -1 + #define X2_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(Y) + #define Y_MICROSTEPS 128 + #define Y_OVERCURRENT 2000 + #define Y_STALLCURRENT 1500 + #define Y_MAX_VOLTAGE 127 + #define Y_CHAIN_POS -1 + #define Y_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(Y2) + #define Y2_MICROSTEPS Y_MICROSTEPS + #define Y2_OVERCURRENT 2000 + #define Y2_STALLCURRENT 1500 + #define Y2_MAX_VOLTAGE 127 + #define Y2_CHAIN_POS -1 + #define Y2_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(Z) + #define Z_MICROSTEPS 128 + #define Z_OVERCURRENT 2000 + #define Z_STALLCURRENT 1500 + #define Z_MAX_VOLTAGE 127 + #define Z_CHAIN_POS -1 + #define Z_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(Z2) + #define Z2_MICROSTEPS Z_MICROSTEPS + #define Z2_OVERCURRENT 2000 + #define Z2_STALLCURRENT 1500 + #define Z2_MAX_VOLTAGE 127 + #define Z2_CHAIN_POS -1 + #define Z2_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(Z3) + #define Z3_MICROSTEPS Z_MICROSTEPS + #define Z3_OVERCURRENT 2000 + #define Z3_STALLCURRENT 1500 + #define Z3_MAX_VOLTAGE 127 + #define Z3_CHAIN_POS -1 + #define Z3_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(Z4) + #define Z4_MICROSTEPS Z_MICROSTEPS + #define Z4_OVERCURRENT 2000 + #define Z4_STALLCURRENT 1500 + #define Z4_MAX_VOLTAGE 127 + #define Z4_CHAIN_POS -1 + #define Z4_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(I) + #define I_MICROSTEPS 128 + #define I_OVERCURRENT 2000 + #define I_STALLCURRENT 1500 + #define I_MAX_VOLTAGE 127 + #define I_CHAIN_POS -1 + #define I_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(J) + #define J_MICROSTEPS 128 + #define J_OVERCURRENT 2000 + #define J_STALLCURRENT 1500 + #define J_MAX_VOLTAGE 127 + #define J_CHAIN_POS -1 + #define J_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(K) + #define K_MICROSTEPS 128 + #define K_OVERCURRENT 2000 + #define K_STALLCURRENT 1500 + #define K_MAX_VOLTAGE 127 + #define K_CHAIN_POS -1 + #define K_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(E0) + #define E0_MICROSTEPS 128 + #define E0_OVERCURRENT 2000 + #define E0_STALLCURRENT 1500 + #define E0_MAX_VOLTAGE 127 + #define E0_CHAIN_POS -1 + #define E0_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(E1) + #define E1_MICROSTEPS E0_MICROSTEPS + #define E1_OVERCURRENT 2000 + #define E1_STALLCURRENT 1500 + #define E1_MAX_VOLTAGE 127 + #define E1_CHAIN_POS -1 + #define E1_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(E2) + #define E2_MICROSTEPS E0_MICROSTEPS + #define E2_OVERCURRENT 2000 + #define E2_STALLCURRENT 1500 + #define E2_MAX_VOLTAGE 127 + #define E2_CHAIN_POS -1 + #define E2_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(E3) + #define E3_MICROSTEPS E0_MICROSTEPS + #define E3_OVERCURRENT 2000 + #define E3_STALLCURRENT 1500 + #define E3_MAX_VOLTAGE 127 + #define E3_CHAIN_POS -1 + #define E3_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(E4) + #define E4_MICROSTEPS E0_MICROSTEPS + #define E4_OVERCURRENT 2000 + #define E4_STALLCURRENT 1500 + #define E4_MAX_VOLTAGE 127 + #define E4_CHAIN_POS -1 + #define E4_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(E5) + #define E5_MICROSTEPS E0_MICROSTEPS + #define E5_OVERCURRENT 2000 + #define E5_STALLCURRENT 1500 + #define E5_MAX_VOLTAGE 127 + #define E5_CHAIN_POS -1 + #define E5_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(E6) + #define E6_MICROSTEPS E0_MICROSTEPS + #define E6_OVERCURRENT 2000 + #define E6_STALLCURRENT 1500 + #define E6_MAX_VOLTAGE 127 + #define E6_CHAIN_POS -1 + #define E6_SLEW_RATE 1 + #endif + + #if AXIS_IS_L64XX(E7) + #define E7_MICROSTEPS E0_MICROSTEPS + #define E7_OVERCURRENT 2000 + #define E7_STALLCURRENT 1500 + #define E7_MAX_VOLTAGE 127 + #define E7_CHAIN_POS -1 + #define E7_SLEW_RATE 1 + #endif + + /** + * Monitor L6470 drivers for error conditions like over temperature and over current. + * In the case of over temperature Marlin can decrease the drive until the error condition clears. + * Other detected conditions can be used to stop the current print. + * Relevant G-codes: + * M906 - I1/2/3/4/5 Set or get motor drive level using axis codes X, Y, Z, E. Report values if no axis codes given. + * I not present or I0 or I1 - X, Y, Z or E0 + * I2 - X2, Y2, Z2 or E1 + * I3 - Z3 or E3 + * I4 - Z4 or E4 + * I5 - E5 + * M916 - Increase drive level until get thermal warning + * M917 - Find minimum current thresholds + * M918 - Increase speed until max or error + * M122 S0/1 - Report driver parameters + */ + //#define MONITOR_L6470_DRIVER_STATUS + + #if ENABLED(MONITOR_L6470_DRIVER_STATUS) + #define KVAL_HOLD_STEP_DOWN 1 + //#define L6470_STOP_ON_ERROR + #endif + +#endif // HAS_L64XX + +// @section i2cbus + +// +// I2C Master ID for LPC176x LCD and Digital Current control +// Does not apply to other peripherals based on the Wire library. +// +//#define I2C_MASTER_ID 1 // Set a value from 0 to 2 + +/** + * TWI/I2C BUS + * + * This feature is an EXPERIMENTAL feature so it shall not be used on production + * machines. Enabling this will allow you to send and receive I2C data from slave + * devices on the bus. + * + * ; Example #1 + * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer + * + * ; Example #2 + * ; Request 6 bytes from slave device with address 0x63 (99) + * M261 A99 B5 + * + * ; Example #3 + * ; Example serial output of a M261 request + * echo:i2c-reply: from:99 bytes:5 data:hello + */ + +//#define EXPERIMENTAL_I2CBUS +#if ENABLED(EXPERIMENTAL_I2CBUS) + #define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave +#endif + +// @section extras + +/** + * Photo G-code + * Add the M240 G-code to take a photo. + * The photo can be triggered by a digital pin or a physical movement. + */ +//#define PHOTO_GCODE +#if ENABLED(PHOTO_GCODE) + // A position to move to (and raise Z) before taking the photo + //#define PHOTO_POSITION { X_MAX_POS - 5, Y_MAX_POS, 0 } // { xpos, ypos, zraise } (M240 X Y Z) + //#define PHOTO_DELAY_MS 100 // (ms) Duration to pause before moving back (M240 P) + //#define PHOTO_RETRACT_MM 6.5 // (mm) E retract/recover for the photo move (M240 R S) + + // Canon RC-1 or homebrew digital camera trigger + // Data from: https://www.doc-diy.net/photo/rc-1_hacked/ + //#define PHOTOGRAPH_PIN 23 + + // Canon Hack Development Kit + // https://captain-slow.dk/2014/03/09/3d-printing-timelapses/ + //#define CHDK_PIN 4 + + // Optional second move with delay to trigger the camera shutter + //#define PHOTO_SWITCH_POSITION { X_MAX_POS, Y_MAX_POS } // { xpos, ypos } (M240 I J) + + // Duration to hold the switch or keep CHDK_PIN high + //#define PHOTO_SWITCH_MS 50 // (ms) (M240 D) + + /** + * PHOTO_PULSES_US may need adjustment depending on board and camera model. + * Pin must be running at 48.4kHz. + * Be sure to use a PHOTOGRAPH_PIN which can rise and fall quick enough. + * (e.g., MKS SBase temp sensor pin was too slow, so used P1.23 on J8.) + * + * Example pulse data for Nikon: https://bit.ly/2FKD0Aq + * IR Wiring: https://git.io/JvJf7 + */ + //#define PHOTO_PULSES_US { 2000, 27850, 400, 1580, 400, 3580, 400 } // (µs) Durations for each 48.4kHz oscillation + #ifdef PHOTO_PULSES_US + #define PHOTO_PULSE_DELAY_US 13 // (µs) Approximate duration of each HIGH and LOW pulse in the oscillation + #endif +#endif + +/** + * Spindle & Laser control + * + * Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and + * to set spindle speed, spindle direction, and laser power. + * + * SuperPid is a router/spindle speed controller used in the CNC milling community. + * Marlin can be used to turn the spindle on and off. It can also be used to set + * the spindle speed from 5,000 to 30,000 RPM. + * + * You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V + * hardware PWM pin for the speed control and a pin for the rotation direction. + * + * See https://marlinfw.org/docs/configuration/2.0.9/laser_spindle.html for more config details. + */ +//#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 + + #define SPINDLE_LASER_USE_PWM // Enable if your controller supports setting the speed/power + #if ENABLED(SPINDLE_LASER_USE_PWM) + #define SPINDLE_LASER_PWM_INVERT false // Set to "true" if the speed/power goes up when you want it to go slower + #define SPINDLE_LASER_FREQUENCY 2500 // (Hz) Spindle/laser frequency (only on supported HALs: AVR, ESP32, and LPC) + // ESP32: If SPINDLE_LASER_PWM_PIN is onboard then <=78125Hz. For I2S expander + // the frequency determines the PWM resolution. 2500Hz = 0-100, 977Hz = 0-255, ... + // (250000 / SPINDLE_LASER_FREQUENCY) = max value. + #endif + + //#define AIR_EVACUATION // Cutter Vacuum / Laser Blower motor control with G-codes M10-M11 + #if ENABLED(AIR_EVACUATION) + #define AIR_EVACUATION_ACTIVE LOW // Set to "HIGH" if the on/off function is active HIGH + //#define AIR_EVACUATION_PIN 42 // Override the default Cutter Vacuum or Laser Blower pin + #endif + + //#define AIR_ASSIST // Air Assist control with G-codes M8-M9 + #if ENABLED(AIR_ASSIST) + #define AIR_ASSIST_ACTIVE LOW // Active state on air assist pin + //#define AIR_ASSIST_PIN 44 // Override the default Air Assist pin + #endif + + //#define SPINDLE_SERVO // A servo converting an angle to spindle power + #ifdef SPINDLE_SERVO + #define SPINDLE_SERVO_NR 0 // Index of servo used for spindle control + #define SPINDLE_SERVO_MIN 10 // Minimum angle for servo spindle + #endif + + /** + * Speed / Power can be set ('M3 S') and displayed in terms of: + * - PWM255 (S0 - S255) + * - PERCENT (S0 - S100) + * - RPM (S0 - S50000) Best for use with a spindle + * - SERVO (S0 - S180) + */ + #define CUTTER_POWER_UNIT PWM255 + + /** + * Relative Cutter Power + * Normally, 'M3 O' sets + * OCR power is relative to the range SPEED_POWER_MIN...SPEED_POWER_MAX. + * so input powers of 0...255 correspond to SPEED_POWER_MIN...SPEED_POWER_MAX + * instead of normal range (0 to SPEED_POWER_MAX). + * Best used with (e.g.) SuperPID router controller: S0 = 5,000 RPM and S255 = 30,000 RPM + */ + //#define CUTTER_POWER_RELATIVE // Set speed proportional to [SPEED_POWER_MIN...SPEED_POWER_MAX] + + #if ENABLED(SPINDLE_FEATURE) + //#define SPINDLE_CHANGE_DIR // Enable if your spindle controller can change spindle direction + #define SPINDLE_CHANGE_DIR_STOP // Enable if the spindle should stop before changing spin direction + #define SPINDLE_INVERT_DIR false // Set to "true" if the spin direction is reversed + + #define SPINDLE_LASER_POWERUP_DELAY 5000 // (ms) Delay to allow the spindle/laser to come up to speed/power + #define SPINDLE_LASER_POWERDOWN_DELAY 5000 // (ms) Delay to allow the spindle to stop + + /** + * M3/M4 Power Equation + * + * Each tool uses different value ranges for speed / power control. + * These parameters are used to convert between tool power units and PWM. + * + * Speed/Power = (PWMDC / 255 * 100 - SPEED_POWER_INTERCEPT) / SPEED_POWER_SLOPE + * PWMDC = (spdpwr - SPEED_POWER_MIN) / (SPEED_POWER_MAX - SPEED_POWER_MIN) / SPEED_POWER_SLOPE + */ + #if ENABLED(SPINDLE_LASER_USE_PWM) + #define SPEED_POWER_INTERCEPT 0 // (%) 0-100 i.e., Minimum power percentage + #define SPEED_POWER_MIN 5000 // (RPM) + #define SPEED_POWER_MAX 30000 // (RPM) SuperPID router controller 0 - 30,000 RPM + #define SPEED_POWER_STARTUP 25000 // (RPM) M3/M4 speed/power default (with no arguments) + #endif + + #else + + #if ENABLED(SPINDLE_LASER_USE_PWM) + #define SPEED_POWER_INTERCEPT 0 // (%) 0-100 i.e., Minimum power percentage + #define SPEED_POWER_MIN 0 // (%) 0-100 + #define SPEED_POWER_MAX 100 // (%) 0-100 + #define SPEED_POWER_STARTUP 80 // (%) M3/M4 speed/power default (with no arguments) + #endif + + // Define the minimum and maximum test pulse time values for a laser test fire function + #define LASER_TEST_PULSE_MIN 1 // (ms) Used with Laser Control Menu + #define LASER_TEST_PULSE_MAX 999 // (ms) Caution: Menu may not show more than 3 characters + + #define SPINDLE_LASER_POWERUP_DELAY 50 // (ms) Delay to allow the spindle/laser to come up to speed/power + #define SPINDLE_LASER_POWERDOWN_DELAY 50 // (ms) Delay to allow the spindle to stop + + /** + * Laser Safety Timeout + * + * The laser should be turned off when there is no movement for a period of time. + * Consider material flammability, cut rate, and G-code order when setting this + * value. Too low and it could turn off during a very slow move; too high and + * the material could ignite. + */ + #define LASER_SAFETY_TIMEOUT_MS 1000 // (ms) + + /** + * Any M3 or G1/2/3/5 command with the 'I' parameter enables continuous inline power mode. + * + * e.g., 'M3 I' enables continuous inline power which is processed by the planner. + * Power is stored in move blocks and applied when blocks are processed by the Stepper ISR. + * + * 'M4 I' sets dynamic mode which uses the current feedrate to calculate a laser power OCR value. + * + * Any move in dynamic mode will use the current feedrate to calculate the laser power. + * Feed rates are set by the F parameter of a move command e.g. G1 X0 Y10 F6000 + * Laser power would be calculated by bit shifting off 8 LSB's. In binary this is div 256. + * The calculation gives us ocr values from 0 to 255, values over F65535 will be set as 255 . + * More refined power control such as compesation for accell/decell will be addressed in future releases. + * + * M5 I clears inline mode and set power to 0, M5 sets the power output to 0 but leaves inline mode on. + */ + + /** + * Enable M3 commands for laser mode inline power planner syncing. + * This feature enables any M3 S-value to be injected into the block buffers while in + * CUTTER_MODE_CONTINUOUS. The option allows M3 laser power to be commited without waiting + * for a planner syncronization + */ + //#define LASER_POWER_SYNC + + /** + * Scale the laser's power in proportion to the movement rate. + * + * - Sets the entry power proportional to the entry speed over the nominal speed. + * - Ramps the power up every N steps to approximate the speed trapezoid. + * - Due to the limited power resolution this is only approximate. + */ + //#define LASER_POWER_TRAP + + // + // Laser I2C Ammeter (High precision INA226 low/high side module) + // + //#define I2C_AMMETER + #if ENABLED(I2C_AMMETER) + #define I2C_AMMETER_IMAX 0.1 // (Amps) Calibration value for the expected current range + #define I2C_AMMETER_SHUNT_RESISTOR 0.1 // (Ohms) Calibration shunt resistor value + #endif + + // + // Laser Coolant Flow Meter + // + //#define LASER_COOLANT_FLOW_METER + #if ENABLED(LASER_COOLANT_FLOW_METER) + #define FLOWMETER_PIN 20 // Requires an external interrupt-enabled pin (e.g., RAMPS 2,3,18,19,20,21) + #define FLOWMETER_PPL 5880 // (pulses/liter) Flow meter pulses-per-liter on the input pin + #define FLOWMETER_INTERVAL 1000 // (ms) Flow rate calculation interval in milliseconds + #define FLOWMETER_SAFETY // Prevent running the laser without the minimum flow rate set below + #if ENABLED(FLOWMETER_SAFETY) + #define FLOWMETER_MIN_LITERS_PER_MINUTE 1.5 // (liters/min) Minimum flow required when enabled + #endif + #endif + + #endif +#endif // SPINDLE_FEATURE || LASER_FEATURE + +/** + * Synchronous Laser Control with M106/M107 + * + * Marlin normally applies M106/M107 fan speeds at a time "soon after" processing + * a planner block. This is too inaccurate for a PWM/TTL laser attached to the fan + * header (as with some add-on laser kits). Enable this option to set fan/laser + * speeds with much more exact timing for improved print fidelity. + * + * NOTE: This option sacrifices some cooling fan speed options. + */ +//#define LASER_SYNCHRONOUS_M106_M107 + +/** + * Coolant Control + * + * Add the M7, M8, and M9 commands to turn mist or flood coolant on and off. + * + * Note: COOLANT_MIST_PIN and/or COOLANT_FLOOD_PIN must also be defined. + */ +//#define COOLANT_CONTROL +#if ENABLED(COOLANT_CONTROL) + #define COOLANT_MIST // Enable if mist coolant is present + #define COOLANT_FLOOD // Enable if flood coolant is present + #define COOLANT_MIST_INVERT false // Set "true" if the on/off function is reversed + #define COOLANT_FLOOD_INVERT false // Set "true" if the on/off function is reversed +#endif + +/** + * Filament Width Sensor + * + * Measures the filament width in real-time and adjusts + * flow rate to compensate for any irregularities. + * + * Also allows the measured filament diameter to set the + * extrusion rate, so the slicer only has to specify the + * volume. + * + * Only a single extruder is supported at this time. + * + * 34 RAMPS_14 : Analog input 5 on the AUX2 connector + * 81 PRINTRBOARD : Analog input 2 on the Exp1 connector (version B,C,D,E) + * 301 RAMBO : Analog input 3 + * + * Note: May require analog pins to be defined for other boards. + */ +//#define FILAMENT_WIDTH_SENSOR + +#if ENABLED(FILAMENT_WIDTH_SENSOR) + #define FILAMENT_SENSOR_EXTRUDER_NUM 0 // Index of the extruder that has the filament sensor. :[0,1,2,3,4] + #define MEASUREMENT_DELAY_CM 14 // (cm) The distance from the filament sensor to the melting chamber + + #define FILWIDTH_ERROR_MARGIN 1.0 // (mm) If a measurement differs too much from nominal width ignore it + #define MAX_MEASUREMENT_DELAY 20 // (bytes) Buffer size for stored measurements (1 byte per cm). Must be larger than MEASUREMENT_DELAY_CM. + + #define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA // Set measured to nominal initially + + // Display filament width on the LCD status line. Status messages will expire after 5 seconds. + //#define FILAMENT_LCD_DISPLAY +#endif + +/** + * Power Monitor + * Monitor voltage (V) and/or current (A), and -when possible- power (W) + * + * Read and configure with M430 + * + * The current sensor feeds DC voltage (relative to the measured current) to an analog pin + * The voltage sensor feeds DC voltage (relative to the measured voltage) to an analog pin + */ +//#define POWER_MONITOR_CURRENT // Monitor the system current +//#define POWER_MONITOR_VOLTAGE // Monitor the system voltage + +#if ENABLED(POWER_MONITOR_CURRENT) + #define POWER_MONITOR_VOLTS_PER_AMP 0.05000 // Input voltage to the MCU analog pin per amp - DO NOT apply more than ADC_VREF! + #define POWER_MONITOR_CURRENT_OFFSET 0 // Offset (in amps) applied to the calculated current + #define POWER_MONITOR_FIXED_VOLTAGE 13.6 // Voltage for a current sensor with no voltage sensor (for power display) +#endif + +#if ENABLED(POWER_MONITOR_VOLTAGE) + #define POWER_MONITOR_VOLTS_PER_VOLT 0.077933 // Input voltage to the MCU analog pin per volt - DO NOT apply more than ADC_VREF! + #define POWER_MONITOR_VOLTAGE_OFFSET 0 // Offset (in volts) applied to the calculated voltage +#endif + +/** + * Stepper Driver Anti-SNAFU Protection + * + * If the SAFE_POWER_PIN is defined for your board, Marlin will check + * that stepper drivers are properly plugged in before applying power. + * Disable protection if your stepper drivers don't support the feature. + */ +//#define DISABLE_DRIVER_SAFE_POWER_PROTECT + +/** + * CNC Coordinate Systems + * + * Enables G53 and G54-G59.3 commands to select coordinate systems + * and G92.1 to reset the workspace to native machine space. + */ +//#define CNC_COORDINATE_SYSTEMS + +/** + * Auto-report fan speed with M123 S + * Requires fans with tachometer pins + */ +//#define AUTO_REPORT_FANS + +/** + * Auto-report temperatures with M155 S + */ +#define AUTO_REPORT_TEMPERATURES +#if ENABLED(AUTO_REPORT_TEMPERATURES) && TEMP_SENSOR_REDUNDANT + //#define AUTO_REPORT_REDUNDANT // Include the "R" sensor in the auto-report +#endif + +/** + * Auto-report position with M154 S + */ +//#define AUTO_REPORT_POSITION + +/** + * Include capabilities in M115 output + */ +#define EXTENDED_CAPABILITIES_REPORT +#if ENABLED(EXTENDED_CAPABILITIES_REPORT) + //#define M115_GEOMETRY_REPORT +#endif + +/** + * Expected Printer Check + * Add the M16 G-code to compare a string to the MACHINE_NAME. + * M16 with a non-matching string causes the printer to halt. + */ +//#define EXPECTED_PRINTER_CHECK + +/** + * Disable all Volumetric extrusion options + */ +//#define NO_VOLUMETRICS + +#if DISABLED(NO_VOLUMETRICS) + /** + * Volumetric extrusion default state + * Activate to make volumetric extrusion the default method, + * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. + * + * M200 D0 to disable, M200 Dn to set a new diameter (and enable volumetric). + * M200 S0/S1 to disable/enable volumetric extrusion. + */ + //#define VOLUMETRIC_DEFAULT_ON + + //#define VOLUMETRIC_EXTRUDER_LIMIT + #if ENABLED(VOLUMETRIC_EXTRUDER_LIMIT) + /** + * Default volumetric extrusion limit in cubic mm per second (mm^3/sec). + * This factory setting applies to all extruders. + * Use 'M200 [T] L' to override and 'M502' to reset. + * A non-zero value activates Volume-based Extrusion Limiting. + */ + #define DEFAULT_VOLUMETRIC_EXTRUDER_LIMIT 0.00 // (mm^3/sec) + #endif +#endif + +/** + * Enable this option for a leaner build of Marlin that removes all + * workspace offsets, simplifying coordinate transformations, leveling, etc. + * + * - M206 and M428 are disabled. + * - G92 will revert to its behavior from Marlin 1.0. + */ +//#define NO_WORKSPACE_OFFSETS + +// Extra options for the M114 "Current Position" report +//#define M114_DETAIL // Use 'M114` for details to check planner calculations +//#define M114_REALTIME // Real current position based on forward kinematics +//#define M114_LEGACY // M114 used to synchronize on every call. Enable if needed. + +//#define REPORT_FAN_CHANGE // Report the new fan speed when changed by M106 (and others) + +/** + * Spend 28 bytes of SRAM to optimize the G-code parser + */ +#define FASTER_GCODE_PARSER + +#if ENABLED(FASTER_GCODE_PARSER) + //#define GCODE_QUOTED_STRINGS // Support for quoted string parameters +#endif + +// 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 GCODE_CASE_INSENSITIVE // Accept G-code sent to the firmware in lowercase + +//#define REPETIER_GCODE_M360 // Add commands originally from Repetier FW + +/** + * CNC G-code options + * Support CNC-style G-code dialects used by laser cutters, drawing machine cams, etc. + * Note that G0 feedrates should be used with care for 3D printing (if used at all). + * High feedrates may cause ringing and harm print quality. + */ +//#define PAREN_COMMENTS // Support for parentheses-delimited comments +//#define GCODE_MOTION_MODES // Remember the motion mode (G0 G1 G2 G3 G5 G38.X) and apply for X Y Z E F, etc. + +// Enable and set a (default) feedrate for all G0 moves +//#define G0_FEEDRATE 3000 // (mm/min) +#ifdef G0_FEEDRATE + //#define VARIABLE_G0_FEEDRATE // The G0 feedrate is set by F in G0 motion mode +#endif + +/** + * Startup commands + * + * Execute certain G-code commands immediately after power-on. + */ +//#define STARTUP_COMMANDS "M17 Z" + +/** + * G-code Macros + * + * Add G-codes M810-M819 to define and run G-code macros. + * Macros are not saved to EEPROM. + */ +//#define GCODE_MACROS +#if ENABLED(GCODE_MACROS) + #define GCODE_MACROS_SLOTS 5 // Up to 10 may be used + #define GCODE_MACROS_SLOT_SIZE 50 // Maximum length of a single macro +#endif + +/** + * User-defined menu items to run custom G-code. + * Up to 25 may be defined, but the actual number is LCD-dependent. + */ + +// Custom Menu: Main Menu +//#define CUSTOM_MENU_MAIN +#if ENABLED(CUSTOM_MENU_MAIN) + //#define CUSTOM_MENU_MAIN_TITLE "Custom Commands" + #define CUSTOM_MENU_MAIN_SCRIPT_DONE "M117 User Script Done" + #define CUSTOM_MENU_MAIN_SCRIPT_AUDIBLE_FEEDBACK + //#define CUSTOM_MENU_MAIN_SCRIPT_RETURN // Return to status screen after a script + #define CUSTOM_MENU_MAIN_ONLY_IDLE // Only show custom menu when the machine is idle + + #define MAIN_MENU_ITEM_1_DESC "Home & UBL Info" + #define MAIN_MENU_ITEM_1_GCODE "G28\nG29 W" + //#define MAIN_MENU_ITEM_1_CONFIRM // Show a confirmation dialog before this action + + #define MAIN_MENU_ITEM_2_DESC "Preheat for " PREHEAT_1_LABEL + #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_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 +#endif + +// Custom Menu: Configuration Menu +//#define CUSTOM_MENU_CONFIG +#if ENABLED(CUSTOM_MENU_CONFIG) + //#define CUSTOM_MENU_CONFIG_TITLE "Custom Commands" + #define CUSTOM_MENU_CONFIG_SCRIPT_DONE "M117 Wireless Script Done" + #define CUSTOM_MENU_CONFIG_SCRIPT_AUDIBLE_FEEDBACK + //#define CUSTOM_MENU_CONFIG_SCRIPT_RETURN // Return to status screen after a script + #define CUSTOM_MENU_CONFIG_ONLY_IDLE // Only show custom menu when the machine is idle + + #define CONFIG_MENU_ITEM_1_DESC "Wifi ON" + #define CONFIG_MENU_ITEM_1_GCODE "M118 [ESP110] WIFI-STA pwd=12345678" + //#define CONFIG_MENU_ITEM_1_CONFIRM // Show a confirmation dialog before this action + + #define CONFIG_MENU_ITEM_2_DESC "Bluetooth ON" + #define CONFIG_MENU_ITEM_2_GCODE "M118 [ESP110] BT pwd=12345678" + //#define CONFIG_MENU_ITEM_2_CONFIRM + + //#define CONFIG_MENU_ITEM_3_DESC "Radio OFF" + //#define CONFIG_MENU_ITEM_3_GCODE "M118 [ESP110] OFF pwd=12345678" + //#define CONFIG_MENU_ITEM_3_CONFIRM + + //#define CONFIG_MENU_ITEM_4_DESC "Wifi ????" + //#define CONFIG_MENU_ITEM_4_GCODE "M118 ????" + //#define CONFIG_MENU_ITEM_4_CONFIRM + + //#define CONFIG_MENU_ITEM_5_DESC "Wifi ????" + //#define CONFIG_MENU_ITEM_5_GCODE "M118 ????" + //#define CONFIG_MENU_ITEM_5_CONFIRM +#endif + +/** + * User-defined buttons to run custom G-code. + * Up to 25 may be defined. + */ +//#define CUSTOM_USER_BUTTONS +#if ENABLED(CUSTOM_USER_BUTTONS) + //#define BUTTON1_PIN -1 + #if PIN_EXISTS(BUTTON1) + #define BUTTON1_HIT_STATE LOW // State of the triggered button. NC=LOW. NO=HIGH. + #define BUTTON1_WHEN_PRINTING false // Button allowed to trigger during printing? + #define BUTTON1_GCODE "G28" + #define BUTTON1_DESC "Homing" // Optional string to set the LCD status + #endif + + //#define BUTTON2_PIN -1 + #if PIN_EXISTS(BUTTON2) + #define BUTTON2_HIT_STATE LOW + #define BUTTON2_WHEN_PRINTING false + #define BUTTON2_GCODE "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND) + #define BUTTON2_DESC "Preheat for " PREHEAT_1_LABEL + #endif + + //#define BUTTON3_PIN -1 + #if PIN_EXISTS(BUTTON3) + #define BUTTON3_HIT_STATE LOW + #define BUTTON3_WHEN_PRINTING false + #define BUTTON3_GCODE "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND) + #define BUTTON3_DESC "Preheat for " PREHEAT_2_LABEL + #endif +#endif + +/** + * Host Action Commands + * + * Define host streamer action commands in compliance with the standard. + * + * See https://reprap.org/wiki/G-code#Action_commands + * Common commands ........ poweroff, pause, paused, resume, resumed, cancel + * G29_RETRY_AND_RECOVER .. probe_rewipe, probe_failed + * + * Some features add reason codes to extend these commands. + * + * Host Prompt Support enables Marlin to use the host for user prompts so + * filament runout and other processes can be managed from the host side. + */ +#define HOST_ACTION_COMMANDS +#if ENABLED(HOST_ACTION_COMMANDS) + //#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 + #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 +#endif + +/** + * Cancel Objects + * + * Implement M486 to allow Marlin to skip objects + */ +//#define CANCEL_OBJECTS +#if ENABLED(CANCEL_OBJECTS) + #define CANCEL_OBJECTS_REPORTING // Emit the current object as a status message +#endif + +/** + * I2C position encoders for closed loop control. + * Developed by Chris Barr at Aus3D. + * + * Wiki: https://wiki.aus3d.com.au/Magnetic_Encoder + * Github: https://github.com/Aus3D/MagneticEncoder + * + * Supplier: https://aus3d.com.au/magnetic-encoder-module + * Alternative Supplier: https://reliabuild3d.com/ + * + * Reliabuild encoders have been modified to improve reliability. + */ + +//#define I2C_POSITION_ENCODERS +#if ENABLED(I2C_POSITION_ENCODERS) + + #define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5 + // encoders supported currently. + + #define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200. + #define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. _AXIS. + #define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or- + // I2CPE_ENC_TYPE_ROTARY. + #define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for + // 1mm poles. For linear encoders this is ticks / mm, + // for rotary encoders this is ticks / revolution. + //#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper + // steps per full revolution (motor steps/rev * microstepping) + //#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel. + #define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_MICROSTEP // Type of error error correction. + #define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the + // printer will attempt to correct the error; errors + // smaller than this are ignored to minimize effects of + // measurement noise / latency (filter). + + #define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2. + #define I2CPE_ENC_2_AXIS Y_AXIS + #define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR + #define I2CPE_ENC_2_TICKS_UNIT 2048 + //#define I2CPE_ENC_2_TICKS_REV (16 * 200) + //#define I2CPE_ENC_2_INVERT + #define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_MICROSTEP + #define I2CPE_ENC_2_EC_THRESH 0.10 + + #define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options + #define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below. + + #define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4. + #define I2CPE_ENC_4_AXIS E_AXIS + + #define I2CPE_ENC_5_ADDR 34 // Encoder 5. + #define I2CPE_ENC_5_AXIS E_AXIS + + // Default settings for encoders which are enabled, but without settings configured above. + #define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR + #define I2CPE_DEF_ENC_TICKS_UNIT 2048 + #define I2CPE_DEF_TICKS_REV (16 * 200) + #define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE + #define I2CPE_DEF_EC_THRESH 0.1 + + //#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given + // axis after which the printer will abort. Comment out to + // disable abort behavior. + + #define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault + // for this amount of time (in ms) before the encoder + // is trusted again. + + /** + * Position is checked every time a new command is executed from the buffer but during long moves, + * this setting determines the minimum update time between checks. A value of 100 works well with + * error rolling average when attempting to correct only for skips and not for vibration. + */ + #define I2CPE_MIN_UPD_TIME_MS 4 // (ms) Minimum time between encoder checks. + + // Use a rolling average to identify persistent errors that indicate skips, as opposed to vibration and noise. + #define I2CPE_ERR_ROLLING_AVERAGE + +#endif // I2C_POSITION_ENCODERS + +/** + * Analog Joystick(s) + */ +//#define JOYSTICK +#if ENABLED(JOYSTICK) + #define JOY_X_PIN 5 // RAMPS: Suggested pin A5 on AUX2 + #define JOY_Y_PIN 10 // RAMPS: Suggested pin A10 on AUX2 + #define JOY_Z_PIN 12 // RAMPS: Suggested pin A12 on AUX2 + #define JOY_EN_PIN 44 // RAMPS: Suggested pin D44 on AUX2 + + //#define INVERT_JOY_X // Enable if X direction is reversed + //#define INVERT_JOY_Y // Enable if Y direction is reversed + //#define INVERT_JOY_Z // Enable if Z direction is reversed + + // Use M119 with JOYSTICK_DEBUG to find reasonable values after connecting: + #define JOY_X_LIMITS { 5600, 8190-100, 8190+100, 10800 } // min, deadzone start, deadzone end, max + #define JOY_Y_LIMITS { 5600, 8250-100, 8250+100, 11000 } + #define JOY_Z_LIMITS { 4800, 8080-100, 8080+100, 11550 } + //#define JOYSTICK_DEBUG +#endif + +/** + * Mechanical Gantry Calibration + * Modern replacement for the Prusa TMC_Z_CALIBRATION. + * Adds capability to work with any adjustable current drivers. + * Implemented as G34 because M915 is deprecated. + */ +//#define MECHANICAL_GANTRY_CALIBRATION +#if ENABLED(MECHANICAL_GANTRY_CALIBRATION) + #define GANTRY_CALIBRATION_CURRENT 600 // Default calibration current in ma + #define GANTRY_CALIBRATION_EXTRA_HEIGHT 15 // Extra distance in mm past Z_###_POS to move + #define GANTRY_CALIBRATION_FEEDRATE 500 // Feedrate for correction move + //#define GANTRY_CALIBRATION_TO_MIN // Enable to calibrate Z in the MIN direction + + //#define GANTRY_CALIBRATION_SAFE_POSITION XY_CENTER // Safe position for nozzle + //#define GANTRY_CALIBRATION_XY_PARK_FEEDRATE 3000 // XY Park Feedrate - MMM + //#define GANTRY_CALIBRATION_COMMANDS_PRE "" + #define GANTRY_CALIBRATION_COMMANDS_POST "G28" // G28 highly recommended to ensure an accurate position +#endif + +/** + * Instant freeze / unfreeze functionality + * Potentially useful for emergency stop that allows being resumed. + */ +//#define FREEZE_FEATURE +#if ENABLED(FREEZE_FEATURE) + //#define FREEZE_PIN 41 // Override the default (KILL) pin here + #define FREEZE_STATE LOW // State of pin indicating freeze +#endif + +/** + * MAX7219 Debug Matrix + * + * Add support for a low-cost 8x8 LED Matrix based on the Max7219 chip as a realtime status display. + * Requires 3 signal wires. Some useful debug options are included to demonstrate its usage. + */ +//#define MAX7219_DEBUG +#if ENABLED(MAX7219_DEBUG) + #define MAX7219_CLK_PIN 64 + #define MAX7219_DIN_PIN 57 + #define MAX7219_LOAD_PIN 44 + + //#define MAX7219_GCODE // Add the M7219 G-code to control the LED matrix + #define MAX7219_INIT_TEST 2 // Test pattern at startup: 0=none, 1=sweep, 2=spiral + #define MAX7219_NUMBER_UNITS 1 // Number of Max7219 units in chain. + #define MAX7219_ROTATE 0 // Rotate the display clockwise (in multiples of +/- 90°) + // connector at: right=0 bottom=-90 top=90 left=180 + //#define MAX7219_REVERSE_ORDER // The individual LED matrix units may be in reversed order + //#define MAX7219_SIDE_BY_SIDE // Big chip+matrix boards can be chained side-by-side + + /** + * Sample debug features + * If you add more debug displays, be careful to avoid conflicts! + */ + #define MAX7219_DEBUG_PRINTER_ALIVE // Blink corner LED of 8x8 matrix to show that the firmware is functioning + #define MAX7219_DEBUG_PLANNER_HEAD 3 // Show the planner queue head position on this and the next LED matrix row + #define MAX7219_DEBUG_PLANNER_TAIL 5 // Show the planner queue tail position on this and the next LED matrix row + + #define MAX7219_DEBUG_PLANNER_QUEUE 0 // Show the current planner queue depth on this and the next LED matrix row + // If you experience stuttering, reboots, etc. this option can reveal how + // tweaks made to the configuration are affecting the printer in real-time. +#endif + +/** + * NanoDLP Sync support + * + * Support for Synchronized Z moves when used with NanoDLP. G0/G1 axis moves will + * output a "Z_move_comp" string to enable synchronization with DLP projector exposure. + * This feature allows you to use [[WaitForDoneMessage]] instead of M400 commands. + */ +//#define NANODLP_Z_SYNC +#if ENABLED(NANODLP_Z_SYNC) + //#define NANODLP_ALL_AXIS // Send a "Z_move_comp" report for any axis move (not just Z). +#endif + +/** + * Ethernet. Use M552 to enable and set the IP address. + */ +#if HAS_ETHERNET + #define MAC_ADDRESS { 0xDE, 0xAD, 0xBE, 0xEF, 0xF0, 0x0D } // A MAC address unique to your network +#endif + +/** + * WiFi Support (Espressif ESP32 WiFi) + */ +//#define WIFISUPPORT // Marlin embedded WiFi managenent +//#define ESP3D_WIFISUPPORT // ESP3D Library WiFi management (https://github.com/luc-github/ESP3DLib) + +#if EITHER(WIFISUPPORT, ESP3D_WIFISUPPORT) + //#define WEBSUPPORT // Start a webserver (which may include auto-discovery) + //#define OTASUPPORT // Support over-the-air firmware updates + //#define WIFI_CUSTOM_COMMAND // Accept feature config commands (e.g., WiFi ESP3D) from the host + + /** + * To set a default WiFi SSID / Password, create a file called Configuration_Secure.h with + * the following defines, customized for your network. This specific file is excluded via + * .gitignore to prevent it from accidentally leaking to the public. + * + * #define WIFI_SSID "WiFi SSID" + * #define WIFI_PWD "WiFi Password" + */ + //#include "Configuration_Secure.h" // External file with WiFi SSID / Password +#endif + +/** + * Průša Multi-Material Unit (MMU) + * Enable in Configuration.h + * + * These devices allow a single stepper driver on the board to drive + * multi-material feeders with any number of stepper motors. + */ +#if HAS_PRUSA_MMU1 + /** + * This option only allows the multiplexer to switch on tool-change. + * Additional options to configure custom E moves are pending. + * + * Override the default DIO selector pins here, if needed. + * Some pins files may provide defaults for these pins. + */ + //#define E_MUX0_PIN 40 // Always Required + //#define E_MUX1_PIN 42 // Needed for 3 to 8 inputs + //#define E_MUX2_PIN 44 // Needed for 5 to 8 inputs +#elif HAS_PRUSA_MMU2 + // Serial port used for communication with MMU2. + #define MMU2_SERIAL_PORT 2 + + // Use hardware reset for MMU if a pin is defined for it + //#define MMU2_RST_PIN 23 + + // Enable if the MMU2 has 12V stepper motors (MMU2 Firmware 1.0.2 and up) + //#define MMU2_MODE_12V + + // G-code to execute when MMU2 F.I.N.D.A. probe detects filament runout + #define MMU2_FILAMENT_RUNOUT_SCRIPT "M600" + + // Add an LCD menu for MMU2 + //#define MMU2_MENUS + #if EITHER(MMU2_MENUS, HAS_PRUSA_MMU2S) + // Settings for filament load / unload from the LCD menu. + // This is for Průša MK3-style extruders. Customize for your hardware. + #define MMU2_FILAMENTCHANGE_EJECT_FEED 80.0 + #define MMU2_LOAD_TO_NOZZLE_SEQUENCE \ + { 7.2, 1145 }, \ + { 14.4, 871 }, \ + { 36.0, 1393 }, \ + { 14.4, 871 }, \ + { 50.0, 198 } + + #define MMU2_RAMMING_SEQUENCE \ + { 1.0, 1000 }, \ + { 1.0, 1500 }, \ + { 2.0, 2000 }, \ + { 1.5, 3000 }, \ + { 2.5, 4000 }, \ + { -15.0, 5000 }, \ + { -14.0, 1200 }, \ + { -6.0, 600 }, \ + { 10.0, 700 }, \ + { -10.0, 400 }, \ + { -50.0, 2000 } + #endif + + /** + * Using a sensor like the MMU2S + * This mode requires a MK3S extruder with a sensor at the extruder idler, like the MMU2S. + * See https://help.prusa3d.com/en/guide/3b-mk3s-mk2-5s-extruder-upgrade_41560, step 11 + */ + #if HAS_PRUSA_MMU2S + #define MMU2_C0_RETRY 5 // Number of retries (total time = timeout*retries) + + #define MMU2_CAN_LOAD_FEEDRATE 800 // (mm/min) + #define MMU2_CAN_LOAD_SEQUENCE \ + { 0.1, MMU2_CAN_LOAD_FEEDRATE }, \ + { 60.0, MMU2_CAN_LOAD_FEEDRATE }, \ + { -52.0, MMU2_CAN_LOAD_FEEDRATE } + + #define MMU2_CAN_LOAD_RETRACT 6.0 // (mm) Keep under the distance between Load Sequence values + #define MMU2_CAN_LOAD_DEVIATION 0.8 // (mm) Acceptable deviation + + #define MMU2_CAN_LOAD_INCREMENT 0.2 // (mm) To reuse within MMU2 module + #define MMU2_CAN_LOAD_INCREMENT_SEQUENCE \ + { -MMU2_CAN_LOAD_INCREMENT, MMU2_CAN_LOAD_FEEDRATE } + + #else + + /** + * MMU1 Extruder Sensor + * + * Support for a Průša (or other) IR Sensor to detect filament near the extruder + * and make loading more reliable. Suitable for an extruder equipped with a filament + * sensor less than 38mm from the gears. + * + * During loading the extruder will stop when the sensor is triggered, then do a last + * move up to the gears. If no filament is detected, the MMU2 can make some more attempts. + * If all attempts fail, a filament runout will be triggered. + */ + //#define MMU_EXTRUDER_SENSOR + #if ENABLED(MMU_EXTRUDER_SENSOR) + #define MMU_LOADING_ATTEMPTS_NR 5 // max. number of attempts to load filament if first load fail + #endif + + #endif + + //#define MMU2_DEBUG // Write debug info to serial output + +#endif // HAS_PRUSA_MMU2 + +/** + * Advanced Print Counter settings + */ +#if ENABLED(PRINTCOUNTER) + #define SERVICE_WARNING_BUZZES 3 + // Activate up to 3 service interval watchdogs + //#define SERVICE_NAME_1 "Service S" + //#define SERVICE_INTERVAL_1 100 // print hours + //#define SERVICE_NAME_2 "Service L" + //#define SERVICE_INTERVAL_2 200 // print hours + //#define SERVICE_NAME_3 "Service 3" + //#define SERVICE_INTERVAL_3 1 // print hours +#endif + +// @section develop + +// +// M100 Free Memory Watcher to debug memory usage +// +//#define M100_FREE_MEMORY_WATCHER + +// +// M42 - Set pin states +// +//#define DIRECT_PIN_CONTROL + +// +// M43 - display pin status, toggle pins, watch pins, watch endstops & toggle LED, test servo probe +// +//#define PINS_DEBUGGING + +// Enable Marlin dev mode which adds some special commands +//#define MARLIN_DEV_MODE + +#if ENABLED(MARLIN_DEV_MODE) + /** + * D576 - Buffer Monitoring + * To help diagnose print quality issues stemming from empty command buffers. + */ + //#define BUFFER_MONITORING +#endif + +/** + * Postmortem Debugging captures misbehavior and outputs the CPU status and backtrace to serial. + * When running in the debugger it will break for debugging. This is useful to help understand + * a crash from a remote location. Requires ~400 bytes of SRAM and 5Kb of flash. + */ +//#define POSTMORTEM_DEBUGGING + +/** + * Software Reset options + */ +//#define SOFT_RESET_VIA_SERIAL // 'KILL' and '^X' commands will soft-reset the controller +//#define SOFT_RESET_ON_KILL // Use a digital button to soft-reset the controller after KILL + +// Report uncleaned reset reason from register r2 instead of MCUSR. Supported by Optiboot on AVR. +//#define OPTIBOOT_RESET_REASON diff --git a/Creality-Ender3-V2/DWIN_SET/0T5UIC1.HZK b/Creality-Ender3-V2/DWIN_SET/0T5UIC1.HZK new file mode 100755 index 0000000000000000000000000000000000000000..61e6ec26dbec02553b08606021cbc48f1d27d79d GIT binary patch literal 125440 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 literal 0 HcmV?d00001 diff --git a/Creality-Ender3-V2/DWIN_SET/0_start.jpg b/Creality-Ender3-V2/DWIN_SET/0_start.jpg new file mode 100755 index 0000000000000000000000000000000000000000..bc5e50be0aa4d5c5992440fc3141f28e824cc427 GIT binary patch literal 14172 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 P(mj=tiDqdU!p!_X|2Xq; literal 0 HcmV?d00001 diff --git a/Creality-Ender3-V2/DWIN_SET/1_English.jpg b/Creality-Ender3-V2/DWIN_SET/1_English.jpg new file mode 100755 index 0000000000000000000000000000000000000000..09e50802955829ba8c62b07b6eccf2c9cc75cce0 GIT binary patch literal 32581 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%0DRneM& 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 gGE4ks=9w6U;Lp(u{^p9a(xU z{tw26t=dyFl5q+bQ>*O7n<#nd!r=OXN&76!Kou4M{ zcP+QvV=YA}v>-Fjq~x-yA(~ApDh=?cq7VC(`iJ+5eZs|KRB%=|)KhSQy<2J&- zIaRN&w{UiMx?)#rYGObWw>W`YBhj=e{y;5T%tRqICXhKcR5s}nsiw*FvGSvJdw#LHO4UhGmP|)<9)3wvACWWk2OyjYdkB6PJCX$7 z2>T5%>Go=HXcZFj(f5C5+)e=atFr&ky8eHa?GYfLVIkkAVn4jc+l>DhzJ0ILfB4sY z?%#)RF_<*af$!CS)x@Nfx%nlm_Z#rve=3M`}qCe%Dia*2k}z-a1F$A~~BsHQDDP>`TE zzkRR{IgD%vv*PO?>sC@@+J^Pu&DDciNaT^w>_orK(YWc^QygAp1CGJtU8o_Fz@(Za z`i~U3I*KFCM8IMDI~#Rt(}jR75Q{~cXNQKV&PN_kUnfBrtIi?f8@jZ253Q-ht?VtLTEUCr5-_%erSPxe(s*5RnLv*jD8fK7_Dkis}%3+ zyI!oA8&!GRb{^g?TdS*m+UF9vtdh>Hkq#laU)R_Ct*%@0UZ`&G)SLe|GMbUFq^paE zCrh}=%O~zegtoBFXr4g~aq-`rPdZGEf`YAY2HLXJ)F{f;?TNfi@I}pN$K|)e_ycgL z_GYCNX%m^38+IO8&~}WNsurKW^N1T$aZvv$X?8bBtW+lHr|S!CI!A7R4n2GM8K1mi z4x%-oROO(Y|H7AH*?NrhZ2Ax=A5ZUUHSm3me}W7ng?=!jal=+B$+@-ZCGH4Dp`?oo z_Cw5IY*88hmnv?clnPK0n4k!ZQ#hiDFJ!hX1e>B!rH5q#`W1p9sE75TFnWlIAt7;N zB#C2%pwZyT4B?N70~X==XO#0*l0eiTY8nVBB}r-}$#oP7MQG>m+@UAH#OdE^9VQNy z#)zzQZD(x-43iGs%>6y;NXD8}h#;Q?|9Bl3s4_Skd{nh+TyVXF6y1i262A)0>{$Yt zHgQ+W94T+eZr94nmzIDQKF=Vid$l0Qpxm+#(((Bp+pf%-_AtwCW%|WSR?p*fLb%C# zlDDESrPbnv5QRgOGMo`*qBs+|XQy}2@<>)_ZR@ng!lTx^W@=Z8OizCYbJ(?T=WGOR zGK_*b6i+hPT*&(pGlN-1#Kf-m;EQSVU>GtRATr_d#LA^$cVl=`8#blFv?8iUG_6Q# z`?hHsH>9N(Xjo{}u^ZQKwf@}F$hrp1wD?IYq;mIV4$YP^{>07lmNj>|^$(9?Jeb66A zmfD|Mho>xGbBwV$X0y0hNKLtlP&N45(?Zj5AVTAtxH{6ZJ>S6Ytca~6A$RbX0L&C2 z%n|Z*Fg!E!FlI(9mXrVKc+{`tD(z$^vMr5aoJT%Po3M?&uWRF*b;Au~TKTiai4T3CqfXRM^C77)89M+@@bqpn@c@3 z?+(*-`mY-YjKS2Qn{r3(y0^q&>4GV_|`42bv-#u_h*#D|c z{i}e53P5--JEzY188Q1Jge z@1I?8I8*@qUoH?xnt(~hB&4h|GYb+{{J;6WN5W6!Mq=*V!lyIEjmb?P1ZOhzqa57} zk>_X#ZjQ#R{9XlJLc~n9k-e7tOcWh!0mG!A-7$_bv6-PSZMCu7Lrzp*g2ZNvo4(^% zTRy!yRD3j?{pOeSK^BV=Rs^j(DhI!LS0MZ&7Ts;i5K?NqU&6^692uGd-yIV=pEDtw z5ZsxbbX6tAX~k)VCgSlPCQD4$Q}Fj=P<%vBB8LGEzXP+Z}@wTcsW2w+BS#SUip|~gL>|^N|40`hDD42y= zqV4@sC`MHc+f@xagXo7nG>~QDr~fbN-m?}*0QM%3E7B!cLYV6!* z)&S7ljFoClnNBgv%eAHko+;p?{Xt&rb!@*9$L*ol6xuGn=~j527hqSZA|fzER-0{f zED`CT=oM@6Uqf;B0p`WS%+wl#G^!IJRw2XCP!TERz+y?wLX~Un5`Q5j4nCubbD(W_ zVLdMH2^xz3I_m!mX63yVrhVA!y78)rf9Sus^zP}Mp~NDg=&Wh@DrCczbYS@S7$FV2 zb``xH{aufv1~sw@O+ENir5igV(I`Q4iIv-nBaGg8y^3dHQ@<4+e`SZTzgap#+dTo) z8{i1eL2Hn@25q0*6*!P-X?HR>$2droQ39PfXa}2yMkIK$^4i|S1~ysD43n|jC`5Pw zU5B<-wvGml^l?D(!>_->2W#2<@YL(7)2Zo-b<4ezSfy1&bNE@*(QPS4&(;HfXEt;d z>$_qyX)|KdptND=!5cKfIcDAJTXVHsUO_{rUwu?{NjeUNp_PSu1%R;5IK0P91k1F}`jN^a7X#8jFBz{R}=?-dk zBjjJwT~qr7#<>`vbRIuX{~^>pv#o7jf18}F$`@+Aug4E%QI*8Z0d zs$Gz&dw<>}m^Lzp3FAuSc~w>afMimn^MyJ&R{|af31w|PZHMUEN1-awpiTnU$?Mi9 zAP*w}=gyGYBhPqtc8invXZ!1y+-0Hm#S?EHsp`e4MXy(h5S+$&ti~l~Bfl9XX-4j+ z2KG;jryt-h$w(anSfXZUym5v+5#tp@glW||#1VRxO4T=C&CZ~FGBs1(r?qWjJx0{A z5gC8@jj|-;f#>t-S{_u(n=j|bOxd)ENPxs=WY zXC=vm2Yrl-4okbVLvzz6OeZ8;Y~fWy@Lw~lIZQqiyO3F-5&FHn)u722m({W`mpoPIUtXy_Z z;WM3=j8_`CP(Q8UW-6>D+rO|#=LI+_4+Haf8e6;QqiOUJcU|B;mLEtd5*btczn|o~0zxKKS7uZvfpdm@vDSM(k0y|fz1K@1McpSz3?AnAR1zsGVH@DY ze4;1NB9Ho}_6hPgIeoMe$LB0;I=BQ2nO8=To3Ul-ybjlI*6gjEn1)Mz?P=K|&!iL_ zw=5GnPvdvC`IpSQW<@Go&Y0f%@Gt#7JFZjT@^dwoF}&vi_vXU2lJfGk*Ue4ee)^5C z5-(kyq@mTYl~tK)HmEbb!t^<#jPx^CmTHd89e(wl8{0g_z*oOEbm)n>*W+sgGoI6@?_Nj?2mIUKlr z$Fl;s(CGd;E*0*u2h=^iXvQXm=vu7s&da3ID*+$;N(hyyfFUMME5~O6g(fX1WlDNX z*zc6bMk|jOTOYg6`#RT%&Oxq9F3thPfdRS}1_wX(O#J6Do}=ynFpOxdWUOo61-ddpS6){~6Vbi>;ah3r?4k@h|cr9w>5qJxX!QlSk zh<)vaEIbWA3f7b${wiGc^8)`Z=1aRU*zdNf8((S;XO3W?o=L2);N%1_AfjNvQE?M7 z2miEpF>{y<9EeEsD^+cAeXLpdOI$D zs;xaH;7?73L_A$K#IG+9iz{_%b$`LRcH@q*-@YTEj-RI3Jn;rKpH(qEDVJz1A+5 zdvE3BK4fdn0z*rdyqzcBb)Ombay}~;`FIE~eE)(KT5}h4EVg_YN1v@{+ky?7j^P*q zwxJ*yQpdE&2a)2w`!E5us^*wj+x?g_LS1#^5oxOI`SFgM->1~eQU(tyf%Qt8u9+;h z*oyC^EpU7&dLifCHud^3-s!&*H6GCh7Z^(qg{23Un)P<0ymhT`p-HBx8T|H4%w#O< z*|N~1@G^5Ey8j4V>7F|Dc6%DMA5Zlk7eB-pZ`nUByw;@rBr~_+#HdcGD_A^Mm&rj2 zLdCkL4U{)|&ua9x)8d_{-kE(t14l%EOnVOhy&<-_4SUFi17o)ZCxumuOhn z>-ueaWUuN_=aXf9_ox0SJASWnEYo#L8cAfFr;+9;+_4i`9O=C3fmxwVS=BHC|sQ@Y2 zl>T5U{v!Yxbj#yi{8>$AsAgYg|G&2K@t2Xp-baVs74#_m4qe zA|%%$au}@FD`rH0!APuSo|kW~f5yMtN2`1P0kpVp8FPDg{F%0Lf+vFBty>9WN>v zi{m&Bc&tI@l&zc9_d4389H>&Pz?%cwhu9Xcj!^FOpY#Xpl z8^hK+nm8p7S|doO;}kif=C@P%LJ+j z!f4yd`~-?j@R>nn4zyEKyN$;<5^S&Ul^n{*UoF0(jG^&QmD{EUrZj;QUI2kC;b0{F``Hb*6r+PmhR}HB1i-L&@U_nAM@j$Op{gUZ!nsalF9kOV^V(;opD6U8dZgNomCENX(0+HGJ zef{yQH$%JS?crT){I39<;-$9UJQC$+Ll=jd(LcIAVsg}c;Q6(+fHofa?YjkL-)knK zdPY}_*vKlowW*1GIW7HZ-z1pck3ucE@E3r_w;zQrDDmGO z4dQ}d6-|hn$eb`FCH7s3@?tP{D0teihS$!;HZ*MKbj383nv`~mF`=?Y`F2P4i!uk{ zcz-k<*L8IAm&738QD{bMi_JJ|(UtR_6Tt}S91pRQ+qCnSN0Fq*Pp!+HF6`t|nMp#V zAb6RS8|Bgf$!@e#`w#e5+76f4al-m7#U`dGmJ*wAYDh%^-q}0h?GIK?FssH%<)@pn zG;ECO5%GlT(j{H!@YXu>6XTOX#h4i^cm;)EAR6^K(*E&~KKTeoLSA2Hyk+D=efwo* zHvw?+QadE6AiNZyXv~J(ut%mSCv)}s7SocM{qt&vEDoIyHJG+Yf26L8Z~|C~kTkMqP6PC0bdIBX@tV1q|C@OOoR_jm0pE$*3bdMyy6Og8TXLD?i`S1Kq#{Q= zMEoh6?DVb{Q};K_6t_D$))*hE3{GFZr+L~7W`x#nLTLLo&9jPdF} z*C*!lH&2e3Ot1p$N|iXuFw_SRcby*?Lt(F?V9Ku!;mv-vF{x=^rMOH*Q1rFtx|dXR zHhDhwG@&foLAr&Bm6~0^z?T*$?ZRk{XJZiS5XE8EYvvLmLpzN}ibu0cXtA4&kSn&= z=p!z(rJo;iJTs6lc07xPiSQ5g%nygH*rw8;Lo7`!p{^v5B1C=#o&ECx&q@4N*jgVq zX>bzT9z7tnk1v(|^^pdgFTGrhqI`Vx>+PZ`-_zcO`B$3ZfDtuq` z1~8b*3|HPbOxQ&$;^6L)>tb_1 z0gFzptgPY9UPtntf<1txC7Cog0C!k>GIK&Vp`$H)z=*yaLMnz%x%#rye&bIoi;m0P zI6?iaVi&VSIC|3n1N87(Hs;N>>t`0eFK0On>|3V%SQJ;WaQL=-Tw%cX0lnqB=ep-Y z@+qA0$cVh*8WUs|LlI#Hc&c{a_a{P82}}jaUWIiwpW*uOwYm{1aSjE>K*GV6#?UCh zsYvVj6`hW5MQ@9lc{Ck7X%d~=H#M=xt)y%J2$I}Ji=|iU_G+6!_1wL$?CYP~(T>w7 zt|V56q^xw4;_0!w!)k9Q!+u}*Vmqu#-uyBAR)Dvb1i`g&6{DXr4!>Miy_Q85E3uS~ z{Y~HsML5nBmsDb}wrBORZZ{KVu7LM{C>30=&#ifTH~n(LW+^Wuc`>0BoMKsEU=KJ{eI$QD@|uS?E8B`gNmdNoh^kLpwyu zRXL6d9TAO|XK=bm!?xtQ)abjofHCDOY#lWT!Zh2(xSH$?FoiigqdF4(C5A4t0l`N1 zo8`&}zVBm=))5arH{trLbucEQzvS*Jl4981>iK)1r(e^NUbc0~$1}6%3$){iqDbn~ zKA~otZM(Uv>v}m-O5e#KYKB7NlFS2am?GMneWgDalK+Hp4YOyWVO$;0M`(2_AWUZc@HEjzpL@XNrdzRcd#ldy1L zAW>$DX?Z5^o=||A*Bti%*oE?qAe#3zL+Y4m4a%9v${BAaW7Tu!Lp=z-AD%Oh{(eHX zwhGu+2P^mdv~FDQLpSY*=NA~EfQE0 zQe{9jg34|wlAN!9lk0A$NVWBTC4%QY)xfFfYPJ|bLF|Hp{TusT&k4ze?I}^s2U>4Z zCi33-pzifHL7dr=s4(G*SMk}vaBW&1+K@`q`91Ffy4Pn%FTkQsS19C9-rW8k&9Zx1 zQt1{tNld_yiF$QlHs^bqJ9M5^rxWj2D#x9aTQy zTyuk%x`u`#3Mp|`23Tni=x+3D2nVP4EO{q`k-l|ZtgGu!$Y*MNg9 zhe5O7`)gWOW6jnt&Dsz_(@R}hZTF0(#Mi!Zp2$UT)tsVkl`Oi4y&4AF#;^A6_SGr}{L+EmL)nT$9n`8;HqS4H2Kd}NV%VZI)c*dr&vC$rWW4Z@w0^b%MeAVgaA7f$D5j|2WOPVB z??KzUiZg*lYi1WicDi#D69-MawYV%p^d+y&Y9Hb`>(@Oz@`fnL5G`kPxtw0{r}%8g zwHC}=KG14k;={l4=!gQhzxS^w?VP2aEAvBgk(oVoLS?ha;7Jag7V#Jcbk5~sOdqhN z+jXo2;F)jguX=+JwY*pzP2v zJu`U#tp2fCmqNTmF^UMOLGlM$d-eNsD{W_d>>X&gjcZbky#8q&t^*m@3HKXacsu3a zZu@h0)JOZ@Zo635vMsIzYHiADuRT0DqMek?W(kkX5Q@_q3`v|8_649T$n*ZW;7iJ+ zjf$Q={<-%YXUb7=BqkSbk+sAD7iDh=k7%PW?YX?6*3`5n?ItsU$?7CZ$sy{ojg4?J zSLDqQa||Gw)8*|7_tj|Vo2T)C#Pl0m1u81M*`@FW-`RHb9`al zfwwrpvuDyJ0M=W_R`M$36gOa1t!P>=*5FQ56_HD`(*5Ara=$>5`F5Z|!A46X!4+Sv z{rg-*;%wZ7qV;@H@|*n2E4K^Vf}L6{gGzf47CctfY!n^vq;9C;M1YZvx1+)v>}F@5 zNq1~**h>Y+W@&bXXGwaz%gzYHcnTu(MrChz$)=`}T>2a+Da0(dk$Ja9>hD@XDce@X zP06YcJ|D+}^>c6K?77mMWjieGBFz=DcC9T7q1ghi)3!XeRH0bg=y-GmH?)K|rPdF) z@|smw*t{VnuK#OS@qA#%0rX}|eTwTKPEHNZ*lmX0h6ROAM`_Xl9}ciz&o7LF<+n&tPu_)A z%sTdY=7|1~N@tW34mwWa_(*cZdaeKBAXPsy{o>wtbLhNL`S<~F>H+ax*;-7S``mT? zy2rm@5-D_54{SQl*-lf=+=5cfM1a*n$;>zxlr|HAgqlb-3AB4g0I;wg>(=g-bnK-p z1{*i0#ALI2xxV#6(SZYM&7ri)Iud!Rf(XJnPSO);a@Ly3(qu9+ik=tZR$iy0706BR z^YJRgJj<}O!Xvk;lckII$QBWETCYw`@4C#g$ObnBgcags+ZnLZW5x^z8KnzYV;xivFlB4JZ!4t6rJPR1Ch`0I%IMj&fold_AX2L=ik1;*+xS^kxD`J2K#ZmGFgAWY~{P#m^xN6h?}*uFJP2O zWIEai2H*p)e4Te1by9I(Hrfx4M>2!B$qnR4#AW?jHbm{XJy~iuVpe=+iYzFaqSVn_ zA_QNyQi2u3T<`Z?Ci!*>Neij5xu-ZlWv3o1r&6Na_F%nPyQ>!7c93QLi$ z2ZA6zi;kxtjNrFW)5Zs9pJtsPl2G;7DgY-C?nS3KUP>e>_nu?)W4(lHu1@@W8;yjm zEdyWwh>nM1_-5}UWKzOo18IiKXsL8+d~KI@mi0qZm+8{L=)IIL(K&p4K6Ph-k#mdm zherc|*>VGPdK4?&m4>h;k|aF07f>}aQe!FAa`7O?)6;b2_3q{RWq5~n?;*RTKY+F! zx4glz#`)3YN3a~tnX!m)^5#T$%dzPCcDIAT>cnE)AYJAiLf5*Jq`2D0OgscWhN?Ii zK?FyJzn~zTD&}4K>zeu%@7_EI-$u_br&>uU{u9&z9#0Yu$@aT?!e`=%_L%P5lCy!qS}xWM2*G+gvg_=l|x{w@K3zt#^ps!X$v4iW0b5m1UG6LOQs6%gbbu!?ve5ni40bjFY#q z#MRGynv?ui$eN}kRMXDIX&9bRv_aNXib<`91DI5x2fVUjt8wAS7Ni^WT2Boq__*%( z>dD3epiQ{y9rgC6!x{^Zk?u#ui8`s!=})}qlqM^!lyti z-AR(Islq4%Y=Egq#NZNIud)q8Qso=H&lzY!0{h#-@h=~SEW_o_6-F2M$8QSOA8!7&ov*lp(}1p;S5qwAc0c;E zZN1OC!v~qN=}v|$6=37)h4Y_BuO=%~CGDN%ISHZ8tuUkogBm4&p}Yu!WxpV&1ekH1>|<8Y9rT;FhH3wiIw>%dYdG( z&Ve)!DOGXGS{2jWqQeDj5(x9P`Ee9oDEn+t!-bxzG3w~surpvH7jQ&02}{p*9sA5V z8~w90*iNj;r9fuAsErCr0#G4@U*)P-s9c^G^~!V;&r$n8qt|~s$;p@^-OhvB#yGv) zk(rGq$+Ry$`X2Bg`U6t4$K)^AaD3LHwLFoBtiWE}-Gav49pX348&zzH{U$}1!b%8E zNv~oIWnb0)IoxcYl_7~mH>Ge6!G>Cxp(~flh)N@Makq@P=tym9*KFLxpw9gR#ni7u zD3`dQ40?~YXwz~@cd&&0*X_$jhq>$syS|-KIQ0jdT#l859bc3@a+pcV6zaiObu`FfCni7`yvYRwJ{9$%$vy2|>*m}SLmv$VC`*))Uz3b5)reWDP)9WI(YvTff& zFXnu0U_QnPH-eZQmh{Z$mxyva-Y_-oy25jS|0L}5SVM`C&)Ke0>WZPZ8<-{)XHTod ze;=JZUv(Md&FrNxDKf5pYsWY>s4dM9zG6ZdkbT78n=@@3u4;%-S^?tfbw^b`! zg}Bi4G#T78Rg?@|xEcTy%flpWZ_xP&T6{Gk4hQW_1oo>AoFa%OZh?5wJsFk!pmchC zVfx|wY{91ym;oDYu$8lvWm{+GI?-K9R-77*$gsRg$=sEcq~f976qo z0S!BjJ!`ppRjnT;o~~3J%rlBKFiwsR86-rEY$q%6ntR|*HZm}p-G%Qtl&z|o)kKSCk#ow z4uRG@+4I6nstOK4-RSw0(lhD)(#o1N*A@q3ylA*4+cZ$#m#s2$73*&CB*>VUqaFXm zqUolqsC|i}$nrr8`M|D<(fRm*llNgIGr_5%e@Jlrq5?^4pc3onZwp_7wbB@Evv@kx zOzG$)#(qx+j+*;py-nw-NyY@}Fdo)UY*O2Gg=##C=o9sU9_3fs`Q2(2R*?g#$+Zj< zvx|6-F#>FcHS5fet~0OEC~EixC0F+q)e4G!=kx36uX-F`41I_r52VQptvvA3HIH$J zxHT0X-4HYFl81#<<#DH6!}NYD6imV^M}RP7fOPTcatm0{w+kghr*$6zws+ zSBjMnAPz7DnVoCTRGZ}Mx2@t`Xx1LpJ=3CmGM<3Y{0_CflV#hh;OYSRxX{H<-~hj$ zFke0uW}&{$WvokSm7@myJO3lGYxQk7By+pE0Wj8f=ENE^FS(L& zlJ$|?d9zTpUN|?UK9I7P~gR7wOto`PY>J35uitS{gkgC`?ULYTHz=fl zoYf}5a&geK%w8Bp@JfKWiwWXz>iR|QRhl4#$=>>BO z;ZwSpm%-UxVfN~FJW{C?9s;Ve8^$jS47NiWG7Q@86A)twe0A<^$;(Zjg~o>#MWitk^B0UaurV!` zi1{rwx;%5C4ck&ajKLtRkd0jYcqt3{hzHsU27j2TmX2C`8CQX{AV%tC?|?LZfN=Z? zCyXy>9~atcOF}8yhbFC0g~+qvV~9pimWL0oK(quu~V=FyJQ3wl-8Eo zOCz?gwR4_x(8NOA1B&A;pYtDAKOT(geydN;rdWU=qfO_Jp477W6U!{A?(2|YKQ%eArIIeb0wNhrJGX`! zgE__%pA|KuunWtD8fW#^;Zvuoa1t7w{}eK9!_~vikC)}&7EX@mf%*M}dTZ58YPbXs zqdUHq&d8inm0P_I2CcjNS0}mhTc4i9G2A)Dpg}{j6DTHr7lcfGT&MM4O*8Y?e#zfp zCD~|LZpr3AT}!-^C8^f|KBZEGMk4M~%q5A(Y3KhCE}*|}ftP_Ep|ZZ$wt3B4^1O3g zqHyAk;XBE`p=g%!j|Tpl*eC+-%6DLaBu2D^69DY@jh|!!rAh~id9FE zSy>&R9BbSa6&#qbobE33$xj)gRUt()SrPlrFu5#K5%q zR=;I~Khr9V`dxq`YPA^&xz~}F#m@P3A`e|N(>_%(4(M=9G`kl?*mYa$Shg zaJt1q)DJLhL}h+|m~vWUyvqLzh70W=!hk0WRX2KT5s!PUEek+49-%b*IvRw+0f$}= z9L#Pkm8P8`H1!$RYuym`KK_g+dk>I8aBwuuF4fJuYq)Mj&JC|N8U^nJvbP*+)j-S* zzcs)RX(Vsg7PRqA#m*7Z3o=E?RqYekj79~L66u}I;P+Imue~Hc4MMIGxSZU`DxP7p z=0=f*Xo$O}8ao|Huf8AML%{lc=W4we#U8$=hz|aC$)Ng_A|?+-;2CZ1-Ncmc0vU88 z<_46w*(cU|0S)drho5=)BtKoV53Il-_$9(^isCP0`cW?`i zI%trw(`>wFl(i_4=jwXvhJdP~p4Rw_tj+_j5`V>%gz_Q$ZgxZ>USzm znzU}e>$i8-Ts?^xYEoWCxTWlEh}mxLD}*AfHazG0uhoX$6qg^obcYg8y-U)L2@+pc zU3m@(VjR1`)t!2^!u@uOQ#med>Ej@J)9a*xpuh(OeI3H~Gjp|To+Lyy_B|^11L$k{ z<^dfk5F=5bJpw6)PTcSS(s1(r8(jWRsafi$k5W+bj$C%vM>e^kdH3mb&>d)x*!d0k zF4SPAM_o;yY=m=qJN<`wkKAUNfjHmJQ#JtZ0_5ciJx;Qi4k(O1d^2^%4DPz}u}&|b zbeZFXN*H-clFCQ6d2t~@Z?RbDWZ3a_ZJ@)&k#yxCX$^6PR;B#Kk5%o_iNGak9H=OC zD}xw`ZhdXKs8fC*DR0R!cy=Faa*Wk((g8imGwibxSrTi}UJ}Jg&?78CCyw;PLDD8s zQMxFz#%8`1?uyuW==j82Jj-hy&NCu4S(o1-WP&f=Vj0v=R~|ak`(wf*_Ju9~61JWb zdvl%dGb~$|V*ygTd_kUsI&p(xNm zAyORJJzHgZ1EtD(9X3@$J1n%Q0Htvc# z1NP<;gl;#7`zCSxnqnU`EVU*OXD1TqwDiU2*u&q6_(S=7K&i8r(g);A$X2H{RWf*GNVr7nwGZV*^YHP)-P1|U3d|>g-x_6H;t&4? zvtFuIG38qMWYLU*vQN?0R>V)!CAD)=h{vstwj3jl=HWMSK^J!e@Ewv{7oIMDeNAXS z=#XaE0~M#}tgu;itMAgfbP2A2yp;KmBi|{LKY6OL(B8cE+Q+Mi5>(x7d|oL*RQ_5K zQp1Z=>0F9=7nyTw&2uZh@Y&+}N`0td5I1_lKahh;YQtgYkgpa=a-GmTmD%Lmg z>a7Aku90ghW?BAhq2yCn$b;vx7D9#e*suabwu?EQn;Q`udWtYrZr=7&d6^i|g8?LOXbaEzcMTyn6L4q?klWpkP*DA>wZHun z#h>TAGbXWi46iB$u&u@Ge{eEGH1xF~SgnbdkS3=`GS9SN%hl}3p)ZYa1s|_9rL3Rg zG^wyZ4r5dzELY<`+xk|DhE-7oWFS1MEHT~eQZD3ke5Lp$NKtHUuIWsq%>Dbk4LrmH z%m13x`DKv-`Obsr1JsthV^^#BP8ybPK~~gQA&+%1>O{{##{gPWnhn${m{*^p0q}Cm zY10$R?McYG{5L#QC~F*Yrx)+fQdKFG1TN+ zy+03sagBk3CqzMY^7fzch9vg)KF^1*UeVOC)o->>osu7#Lhgg0NAQhCy6)!t{^8Rs zzVutPvfpIFR9YbbvTcr+|9 zbZl}=3Ovex6pipd`JVqLMT3Qg0|QxX|5}?E|J!K;{rKMvz@Xm=3i$kQrwtB^oQ)kD zheA}0!{mQ*G?3KxVOjM*q_(LoI|nkB#6ev}PAC~0!-NCN(s(y5E4U55i{()TVpNdS zM$`%rk85hT<3?nu(~ai!{?ct?LK!BG+7voNERVv6xeOE`mS%;_kIb{6_zh}5{|8I& z1ppR#_<@swM9Jjt>4To%=rm*+7T1Y-Gyb>KW`z4NU!r>2km2{S%HL?v-zN`m(12HU z(z^Kn@j6m66}ySsKCozMIqvas+cKj*BaZKK)N+^@X2p4mBzg}bEQ?~jrzOR z>^9Z$0-@46X>_6P)ucGAMpzcr!jv#$^wS_&{SiE4(%jaBGcWbRYr@l}dt6rh?>0G|*xoPU{=^0QH>F7{F@pgD&plDA*p`in3mCuSOS_UtqOItR1;y?u9;p;)Rzq5T15p=F@SMgNUPw?P86CQx#4F8%?kv8=_U{~* zm@?YQf(fD{`|=ieKL!%K1K*$Ed3iBlbNVvOr$74@;skn1t$^BGdNWst}2O*<$r;vu`WFlRDcimROX{ z5^>&6f!5x0c32y|W}`)jsT@FJZniVFF72`k8aRClxpb9@(s8f}FT0%9)=^p;v>q3B zqXPDY0E5uSty66W&rTG5UgnZf7*~vN%-~dE#Ea+$f3B)qb#T-zN#W~{EyWa zX!q#3qG-_K=nIvQW(7oBCXANKly&$UeI~lp%(!#7O&mL}j@bdZf*rd$j6xYT(A(6j}2maw1W#3DB5ZMxWk ziH*Y{{7Q29l@^>3Le={^@kkMT>VCWI+;+0c{SCV1QmYlqYIosqKouts!3WRzoT`qF z7KcJV_*o0+l6oZC;KjXLXqB{vQ&xT8hJ&dygVL$7Q7UzyUo?_2W{DSFzPcbQCHu46 zMk0w!Y@9EO>MPvb&Damo5yA2t4icK5>wU8TSj#qDm<;0}G@F-XY2D@73=6<^Zlix$t4cTszrYd7 z_zp^oVbZGbL3~D)M0?AZb7%;)^!SWEsg1wz4{+(tA0szSY}J(=`dD7=5s}s(v7oBR zljsC1%#f_}1$xqo~!#Z3w*J{au*@MY}+?%KHGO8z#DDDy^3NtE8_>BZLL4 zEGf9~(5#Ej>8M}I&28H~j)i?hTe}k{Q42TNaKYBYmcRZ6G$@%%afLbehroBzL%3OOcwTh-7OgxB|#~s19D#<%k+#j^4gT6+1I>>)U7sikuIqbRhC5 zw7bY1K5k}WoIk;ktQFzwrFp1EfG3${;xwOwiKKk>I?_wfIKvyspc}iQ;u~M|;J;Qn z5l-8b(~oOv0oGBaVQ>SjM%m#p60kD9DGb)mpxuuo`)T7FO7ZE*(;e0eDdD$oxTbg~ z#WxMncfSrZ*VuO84LE(%BNclop%UtPk+R&2_fE=CUBxuuI2ku}J&j!LsJO2gB3}*! zEzp#>->r8xs4kwcrl0|=ObPuH5Q3-s==W6USRl2HCVj?#T)3Tc;RhqovtWh`lOV>K~m zJ}tz3=d-c{NNrt8&M`0}F$+QkkHJZ=Uf zO4GpgW)=fhCV+~bOEyeNYf=^;TF$=S1Le}Phfyu&bai^h61P*)@s3DB^}a%KYV~;C zYW-oHwZj&tOS+6Q=f2}7O?qS6t^tzi!>eHJ?_B#`$unJD{n#eNdc#)yMpIi}<7l>K z9BALmW7DhxrArYiGoS+fuWB1mUt;=fTX18iN@F9@UuzXT6;-!Uhy2 ziR)E7wZQT7Y01!C0HsR+wLOy$hc3}2@1c^5ql4mFu8rK36E55`k++hXf`_QHx=D*b zKx_iopyiM}rKPPHB;_8Vx~xuK$xjOA{gtge zEa?a^7&p;%BY^?rvM>PfN^QNZy$vLAj3O83+}k+e6*A+-=X}wef?IZyI8-Gui+&{{ z4&U8qdEgc<%oY+}eRyTp>{cw|e_OK*H#vlku{ZlV=h7Y`N=YuNq)J$CX9)c(W6>S&J4MN+%xIpjNE%=*0{QpK`F10S+MSc{Fe&MvdK7j7DNTACv=ZON7)G-KI@_ToXig_NvhBbxCP^)K(qEzv6qTq#)(%BTC4 zEgjVr>$#(}9`??UKP~X|{V5GJo11R`u&Kl{cUJq@$~WqZ?BXo(P@-nkG<>_7O{;k* zgSzhuXP?T@wTgimZI))ilSOqUc-_oN{!y$ub0Jvl!)AZ*>wlST^$V7K-AMa&+1On( zF}xedv1uhUcjArDLf1h_|Fydaj64$!e3tS(7b(O(tuK8)B}o?%X`k&gH6$T(sY!{6 z)zFjpjPINt`<6u*B}3@n*RA&dG22SlQjI(pnj#n><2o=GkP;GBCx>SSFnt9hV(7fc z@y}Lt9Sh1(ae^l|mhT>1F)ctI`GAD{KaX5=)RF|`kyBIU`aThkPGU+7Sh_CUf;@6i zD+k#>kNg}jR08CYhcz=7b^h00%bm1|&OU@hh$@S8Vypk?ek?X?)_P30p!qvj-6oNH z#9@wcj2C6Udh}}xAkbG=9pJ`HA)R@ML<^-0KwayeaV((eUshz)Q z6QFYHvEspO3|)*TB=*+%-KNR|vY2gfpQknz9m*fz-go#!yX0Bg<~Pq~D0`-){7O*y zZGk$R#gTsR(x-w~r#tO73nGKRoJY8$ufs93rE}OE%^@Y?s4pzz{Wl1zw1E-yd72R*WWv`eIWlx~>WM^5vAw1B84Z`5 zXjsCE+33Mvh(ub%%I?EZzo6DUO~Tb0a81r3b|mYOjN5|PL7g|!!nw^`X`6zNm4^)% zcP->Kl8Z3k71RhRQ3%~--IHS+wUbHwYSXc-DakYe=c>lZuT-0bkIGCB%pUDYslE>CG z1=U8|-%Jnekuc!seqBt-rASlr7_@G14WD<&T7MI9}Cl>q&AZtzS%sp&%PGc8} zlikxb9Mp~*LIR^M)iSG6;v&eK=n0P!nc)hFW^tmA#V*R3mrqBn`DyU2cE>QjKgQ+i zN!bzqXsZgRs(a@GNaOO_ROi0D0FNk@&C%jD3JTYq)7R-I$Z$sL4XW!7k~%ITbK6FoQDeT+jDYY44zDGC04uctl=h~ z=$ujEYkK^BHRl-Q{`|RsOU`1paPY{fFnRDZMXuNlmI}wu1VHje+GogO*lz|n?q4yl znO2Lm28Or&AQgi$l7GZF$)B}VxVCSfNk4MrcX{NItZxae6Ge06-eCtdR4K>jg>e-Y zl$4?pCh+cD(l6Qmo@ zK%+sUv9h&TXAj@T2y!ommu3A>rv^8J)7Ne!>hT6F$T!Q4I8q!}9I{K9Q5M66J0uaU z7eA3V1V}h3MXq84UDIUN+?&HUe^678PX9mDy>(Dr-QFgOdmw0VcXxLhcXzkoPH+;O z;O_434k188;{OKQxZNAlOKVlgADh z)`Q~Uq84(dAmfP1a8KU|jn1_4rH`<77_eio`-O2TC=$Rhh~W5$$nYIpjBa$*Au-!L z{wo5W1dZK?)0c^t{QmN#VgiRE#ycIm0ygJg3t#kYlKoai+vVcN6h9{7O5r~rzVE0M z>1sOTThS1Ap7AV1mz;+6cc$V&!&_A{XU1o#L!%#rj<}#>j{Euie(&FJ;zPzGTCE~r zc3HHm%oS}}6ULPGRQiq(!+V<2EqA)w77N9ZXQhM<%)r>Q7TPFR+S^!l%Rjr=Xd^mz zy)$<~vT&s`a;P^8R(s7Of=0m<9}tz=8sFQD3x^>4?|iqPH~(MwZfQ#Y6TTa0%4X6Y zMpR4`AsR8D&>z$1|4yh5|Bv+a-Q5HWKae^s zFjPlIfkRFShT^~`MBqFAdD9=#8ypy@1A7{Q*>QgmzrRh0{y1s>2jT5MkU9)_Oz?vt z$7VyI5M%!@Y_~tsQ?~iS?UL&$fpjNG`_&L7lr4)EKrlnXs{v6C|sS^?<9aJjd!PR5PZ*( z`)0x@4q3SkMcY#xEmk&Lz0^pQAvUFLOXN0q6KP?Wrzt>&8&Of|ibV^0vpe^a zY};|#S+zxT$qx!yg%RhRCC)7W1)=d1^wZ<>Ul3Bzo7I1IHkU_=>T>2}Smn zUwQ+U*Uf`-S4&o933sHY3p7ArCL1YeXkHkLWuIGZk_?aP^^Vsaw6K z-t5|^sy4Cn<&zq_9j%*ryE93h5GW&pHZOiD@LG03*VB!dcU)4?xYTv=)<4SlTGBvN zWECkuq2&N(4lqizoCME?WDNme7vTv1TZDR}+D3!}7NO!}dHzoRINYzBslD@pi&rY? z@j-+j(VYAR;md^{<%kZB2B8JUC%k{vpqktGL?Q`n_Uep?{O0rC<=5Z`fbr83%X zsn-gRMp;$BL2~x0Ca&%^3fnpelKxyG6g%(ZQa>fQ0$Kk8Tm9fE>S8(klBkw2Xhr_u zWHR<^U^*h}Q!YJ5dIn4_x#9vIXtT0YGS-^JAIgj`m*V%(L95xVgE6>bP{F+{Tjw8vn!5Juy%x+T&HIKX^7C5DN`$~ZiKq0zEvF_(cJdX zHxVIy4ED#Ch52)bA<6D**spknsfaS?;hPNDNJ<3-*&m?B#lntRE_g-851xa5VX~Gd zE%j@Wp*kI|Kb_U(+f2nFdI0ICs`M#zwnWIHJ!uWZI@dYIdk^yS`}b(Zu6s-C1lSbZ zwA)wiM58+#CwGl|3*oz!Yqy956jl?J?fXh)E-3N%eaH5@jTj>KVAzYDgAPJxB?x`Ny@D zmXU}pPIZm51~U}t`xindjz_T#%T1G$&uaYSn+&yg-IyAku3=nya|7+4t)>$m^%Dzr zU%uf7h_$m@;#iq34P<{~0`hzOuy#1@GE(YG!f!F~6e0X}?%bJ@Z6j0Rm)s|8X4FUQ z?WSCJvOuBn%2K-h>c6AtllYA*&+e1HKwkTZj(npoQdOHnDoOv4rVN4&=_DLnjb_68 z^#HZHoPAapgU5!%9Zb=w&KYdOcitY^Ms7o`0HpPTv-6K(&fJ|$iF17g*)v($HF`Sv zsk_rCW{3yG&>#6^D%1>^g*}2>{6SDQ>v0~WhIy{8^k>-2}J&QmX+IU2*BWmr+lzp{*d;-O71!*jEu%^Hh z2Pemt|C6tz-h{!$#){SYRF>;q84H={sk?5IWV3#%WzumXndP7;IBwXlO;#CpD}r2=vo}p06!D z@bf+BUmJMU*|EF3eH2*bhd@Go_|a%0l?N?Vj5VpCo{#Y4I3XXBtEC^{qEv*7g7AWl z*qIHmkhPk2O{Yq{Y2>d_g?R3w&lo}mBfIcHOn5#tB7my)S&!;th(~)P|2*!zY4S0IA-TWd4;Q<;Krv zeJ&Q%I1oHe9Jo_BO=939AOSUkRa_A~-grejKKW7C&l?6Fn!a|;)1g_JYVB6b~L-XdN?osBAmOPz^b0 zL&!$QsBmA};vg2ds{Lw3{ zS8W_1?04smD|G*n(`hSTq~(gv9bruon;;W%w&&^#L7(ryI@*VxASXU-;-p&zD`RLP zX>rAj%jdZS6hK7{8w>A>?1UK9lNDcGKsosVXNi*}2>Kww%leit9|;|#i#seF({APG z-(u$JCy$@Sdtyhkm`FwcCcN{>WnriKzRm$d*4`t@*wnU|5ZPoTygZw+yS9D1ro{m& zxZWN=_N;^(JupIR_fUWGz<1OxMX)-Gp9`#J-Y zv)8Z=(5QbGDe!j8XHxWP+|DXsq=aT})I8&aG4z!Akf zPLC~Dte-`|sF9o+z)-CTQxbiLXF3ixD!f^o%?+@;?>-~aR2G(Opl(q_^Rla_;?s|0 zaALEETg7K*7L--fI946Wp`5^r6P74xn2)nSv<2l6F1hSHC}{HSke_Oz?DLvY%eLM{ zf89+k0R|qGPz}TQr>X5c=jHzJD$(TI#I(;4JqxO6+;4t80?SXYawYmXpv}fc1JVpl zI^bFZRqkPwm!lP}+=lK8-AfBg9gZpP>&#AF944RQvXv+qa3H_xWLJ+1WNZ_#1y(+j$_Ix5pxaJ2D7yh@I+*xwHFO^m9fK}G%UiPL<`(%gY?3zt z7)U;>?Xt#253jF3`rN2Ex>lw(DWpb?9e+X>+!UXXcUxi3I;_3ANhnI2#%RJWsJ%T! zy{{e^u+U2bX{%Us>@Ax4=XNlkV%jWC>l<$Ag+i?FQ!(2tA#+39eYWOGCFa<*kf7vvJY-4?4g@( zpMbwEF<79z-mPLO!J`5li zXpEyyWG^_tR!crCB=AyepG&I&rRPF3n}kav0mC;GD5$=)3ofwucAZ`iD%Yr7?dxU8 z>ZFu~hQ1pmb#$U-_c%M(P$UUDKYuG1qiefI!zTBz+tIAfb3Yzi(Ig$YIgeNIP})sI z_SRwRTodM3=sqWz2`sB|711rY9--}gUzT_OWPD4-EUxDJdss_Zu*7dIM=5CryEc#{ zVTnc4AVE@IKnZYdU#%9{*5E3bjCCJ7&G81JbGibdbhi4XrIk4>qi7sB>nV{?UO@`x zihy{jOwi+Tji2{eZ~%;p?;R=WaZ3tP?w?~OoDO>Fmr5Ykj`eiMSV>1m zZQ-OrrwV@>Z6F%i_9(c~%GEPki$;VlAaj7vzoy4k)4}IoAJCb>jTQq{g7;6OWnW3K11JbR2q}XbEnbc`I|jJXPBx?i{xn*BwPS&RKaFHgo7x!R?_mVTX@$!@WH zCv|actVTH}A7Ic~Z5GfrhmOy%(kF!Ohm7xtx8j)~fEj zlond?F|XiiG2_cBi)YpHirN5Wk}F6}dmx=Q>B?#fdwq(LPa6vm-jX z8F~Qbi}+%V{i+mq<<|*>=By_gWgBeu+TV7?Q$fEs*|6t1Fvs+$*nTOQoJ(Es=49vhmjdASr#mPex-P#jucaB+y5N?xlnC_dBz2)W31wFAH65XSQ2cp zx*g7uUWQy__qYrf-l=b}D~Tx;|EpZru%y6%iYa@d6JpEk8h|1B`(tsy1HAR>rCteK zFO`eRg{-21PdcpYvaX$pEJUc<~aKc)of?5QnONk8OV?`t+}i(u=$>$|jQuq{u7GN$dg+XG-U zyOKtYl^Ncx7vVaSlcz=uJIqlB+I;7n(0jRiEvq}9Q_py^;E zfJB)O;S5Zo=hkD#m~12hkoWyp;O+KrMd{n~KNO`8zsTh*Ix?JXI!jrk7g$$naVf!c zhENlZh_Ge%1n%|4ySG5{KZ?@l%a4m#FbJa2h=Jq*n6Lj-loCv4_b5)=n~RHX0d>Qq z*sEuHX%>~mdoasw9@mnV@{C#gP5>FS{4hz;7Jya)fwaYQ$y1?&=_d5KzXhewe+x<< zPW~wz>*(YZP^+wo&CW&vwGw z*uQK0`%?xGn`Vu*-$h4eE|Wx^l2q*qp+(aBocvtxL~YoMR3Ak|Z+H!>0_3>Dv4}t> zkJ^?6mIZ`+xj4i(4&RfUnuE>_5P;);k`~~trvPA7J@{J5)T1GBbDQpbWxs1TWGnQ# z!nOgnei2SZ)(4Xa%fA%s$NmUHUN)caiOQ@|ZlJ_vZDQfts6jjIs-2!=4yJjuf8HMZ zw9*A->|+z8cH^oDy}{#Rv^SK6Z;=qjrVG|GH>(~qM$B^Vz!wJF^FdQCaEB!dNTpBl!Ax8Qiavl+p#;T-BZwfC5wF`<4{bAy8ulh!q%J*Q|Uj zCK8At^tZxv%4h9M$Jl&ygo=K93hU4iU1r+u^C7O4xZMXxf*@6c1(?iSo4i*i`pfZmSE*4V0dhV7|mRjkrlx9_beykrjZnyRFfo8Qw`UyB; zia5FGaws0twwHPT@uK8rLJoxl0Wgt&!o18n_%DFl|DoyE;7IO&^Lirzdw;|JQHTDg zHWZAh!6QKkppLCLn0ud zA^iC*eTyaXyi=HP3Nz^Jr?hdnBi{;NnrRbMlI5XnQ8L&de{Un!36b z6qhtna=3i^cXr+6j~qgdM^0zw&%d_{XU;!}+RHLCf&A3Q5XIL|QN3Nn>>TK%DH@TI zk>be63{yPye7X0+=L?|yvR}A`w3X6pQpr>os7`UXNL#*0n~Y>*B3CmiK_+6BQFja8 zAm^NpaA;`>5Je6GV0(g197fY4I}Jl{M<>dp$*ks|RG&`u81RqF>d#s*&GLJ)7H#XY zmi&{QCXR}(25aBWCj!l-PhOStTCOH8`hV!ZCxXGa89(AKO}~wS)1m+;X%J4=Ll@Uu z3`yN(z#@pJ7wO6ASswh>$X@!KY2NsvHO4&kkPzx!Y@9CMa|ZPGy%-a2yfW&; z(e$0PXiuC9kMiu_`nlNk`ZgIaO+Wty0e|M_=6hL}3U*Lw4ZO|6pnt(_bpfVV(JKq3 z6qrygqzWB+kd{*!c*Pj&ynT`& z2Y^#ko5*szHH|*I);aH?PQK|o7b7;4;n42VB^gGJ&(Iz6G-$14?wJy;YyC1)w`vMW zvP87^yzG)UkQT(}<^9LQ`90k?fW5bajS`r$99#T=;`So#a{-^+ob-aV{Y{*AOJ0J; zZSCl|`9->MNb9F^!|cf++p+Mhb*o8GJC?G{3EWMj-aa|*AXqey`c8E7dbK1lwZewa zP2Rs_x@77C(;tE3I}vsRlVZ+fYQb(zKKeL%O5h0`KGx`LL+xKrKOA!aPKnJOPoS3;BuB|fBHx-$=j8CC|9mca}g`GhtbuZR; z>5CI4aUXh$sad3&rK_4Vd zVLnQyOJ2eMjJs@>5`R_J>2j*}0sRF*wYjr%*+QfO{Mr%|00;vVZPulTWdU?2ZXdpOp1IGMsMkv((lk(rxq}9!!t)ut8I5Q zmm2F7z?$cM&T^R)9{kw;nq_lVN}&k5MN3+ z7GD-8qSm(d)|=le_*~=Odqf`MFl2-BRNu&DnQ`-EXHcz zd$esUR(_rbu+VHu;CHI``8hCNR@Wfh(sGFcKI zj`onY$!aULv|7phk|X|W+HAsZqEVaFAXxED1^5)4I)*HeVRjaVwGz?7Sbu`Tuo$snM&WeKw|xMfIl(VyUr{jl ze?bzi=dizKx&P}#sX(!PH4<4OLWfQdClo4$N){YA^HGd6mg@~NaaaN2>(BhJLl!bJ z*5&cZ?qJ(yuzT|f<_V#ny|!dCe@$`apdAvYPVFU5$;jtnHbq_Fx9WZi898bsYBTdP zEG5~PiGk9rN|QF5932db#FD2v2O|_=KMnH~VhUNonv(e0;_?zT>Pe#;q}*jbV^X=H7@P`maB^EX*KAR&U09oKh!|T$@HCbl z=LT0B=evGGEgww$-__<0uD1674b`^v|E#tX;hZ`#cYmI~#d@f|JL8f`3M0G=CP@GV zDYv1=V3>~BrL<3Rg_sht*eNAxBIX(GWxV=`o}PZ{B!4ZrlepDjS}VP}!860k2YU;) z8%)?eMjT0U5~fh7_V}Pwn2W8Q#Pfr&SN!SSaO|+bX~z8lXMXIXLGpFIaBbX1XoJnx z7aO^i$7}lPtk3;@l=M2PVWxHR-gwM_#G4DO;ouLy5g@*nmdJ<^LSQbl699AOUTQKKTdf`ONq)b#D=L$Lg^^AZN`N5ySOS1im@Mq(d30TDj`4-I zOy^&!W~Ohn)>;Vl7c&*<3^Qlg|H3{o#z@yHJfq;d(cj}fu}{teR}{+}2zDQp_htre zXFaqotSdS!uYU;VL-Bc=9L#7Rr>#ziT7ebKiC3HKYgABs8>=>uQGD}o^E?B#`Seb^ z;p=lCW$7*2n^svhoGsD5?1bF_*|7^+6Njs(;+Gs^@8$%*sa}no-7P+sZ88SLu6M;A}y8PsV3-gK+`^DK;*)lrozbP~4Vdmgwsxf~s%QxCS6 zx-R5yr>fpqD%I2n?KBv*Z;ia`Zj>@tguV^!nL6mVG~uNxr%ik9 zA67$^BV$36xS`f95f{ik`JqLk z;mlNdybPGdJZk7SI-+v<8c5>_J8yWCOdo%}XB9_K+PCUqp~I*XnqA%3U=-*VKMxAl zB>yR31*bsD6|X6op`ZGs>|uL#wVnUUejPQwz+51>uu1$%9fVS&_RvG2qp^0rX%%zn zz<^zkZET2*Zu1G#Tqt=UG~0j8WOqxC>%@1YW7p;|ybR?g@Ma@bl~H97n^%jOXQzDl z#;s~36& zT3avQv_M)W)#<#r|LqCUF1rJ7P>QyG&WcJ$ z{CYO|tghy`88>m_pgQ_?rexYjaO2Fr;>eNkG#3^htN zeONbxP=m24rlH>huA`PQ-?xF{NyPl8j5LbsOa*GCvVQH?M@Px%83;(gi0?QUuE>!Y z=@6*|c;swCMbuVq=tM)33)V84$w2Meuw{>-5_)xJUHmPxSsW;MtDm!VTKOG&7z;6a zEmZ>u1=us?*xzaXr=5ZG|E)3LFchv3Y0YSwwS?j`YI`B8?KWHBmR4_zE|{`YQenbk zva!v6r=S8^nI&2M2!g zc2Fm0{`yn5+Ks}PPRCzH!Tgs2+gzcPK(e7;`DrRWU(EJNzf@C)o#*jdx&6Y%jwb>0 zH=Mm&zpeNQx%{cFSYO%6C17!z-MsBH`AsI4xM|UZzW~^l4B^|lPGa6th<<;;W zJ&Y?Fe5~}h`OSen^vof(QEg~F$5KKD3jmwjg6Pjq1>i7l`~%>YHumr~eTU<G_p zbDf)shVgl!5&s-;$Uo1{USr{l^L($qk5Dgpm!0}#kIRKV8n*{Cg>JvOeb{TLye3jU zn;mH4l9w`YsP)((d{DP8?e?DE`!e`#`?m72w(a=iUl2QOm55G{hIK<=GxhrR`Te&0 zuCK3A-=C3qjq5~^4Zw@-CGEb+>o6f-W0rjXg&v1hei`r!qNK&GW@zw&uX8rmJ<-~e z(lH!3zjUTN(U6LiLRQI<3cNtqmQY2Hk{-_4Hh?YJ&A}K%w*RfupTVKh$G^c(9S}%r za<&+!7V@Iv5n3WHi2tD7&B#JvLri^}Z38P9b!h6{pjIeqr!m}|5WDz=8o@oq_jtCZ z&I<3BhBu4X=887^m)t2Q!R~j(s`py%I{eMIIAED25x{f`CQ-$68HUbBFh0 z!*e^W_$>PkY;R{qnmQ{{_@dGm4*YPB6FPyC@rGBkyGyS#E4G)J2cS8D0 zNt_M~o#)8M2|ve?C{Pi6ynSdK3x&FY{Rs+jJ360K@YA zy``+aLyKGcVuDVBPZ>46{InuBi6L<>N=agWAuvfgMzTEtuZn?zXVdR9e<5d&SuVR@ zd%FaW>%9+9!l~UPXYQrgud?c6c_Q&N?D9ILRx2xOzoece*`l zWUp!PuLW2W0SFhCoyek#+;dCwns@ON zT&z)LaCP^NWv|=;(HmfWhW|KN5^+<%SzGRc0t%q2dq;d(h*mPEV_cz5peHupv382K-VZXIG4xw`Ks z0R?F90zUcRy>IBstLf$oa*UB(pj|uKaC=>TQRwr{Wea$n8)*ffWBFp5Y1S3>)p*IQ zqZK_+J88RvNIlZFKl46QU%kqn;?u_+1_N)#))F?dvLYF$Hez)&X^(}pqcYb8;dQ&Y zT#uSL*HbN@gMx}tTCViF$jAiR$U{|f)j2szD>GGYLnqkwljRz9>%sX6yDl8|a{{i& zP7DuM+_fOomd@I5q$W{n{kUc^j;fw5jQXM|0eL;>cksUR#&QBgbJU8#Yv82 zCZn#o$R?^)B%sU&RJmByBu`r{17_7^BEDB8O0uhS4DogYuGL5L>;{Qdb!ZNNg_TNLTH+VD4|GlhOJ@lAxxA1c7^OyoGk>-_axF-Wz3q zzdE})k6K1!@fcv($?E@o6oonHgZUFR!gwp;MS+EW6vk0ItwwS4csF+!R}?J99^Dh? zbe>>qbQqdp&G-B=mMz4kDm!xGC`AC&{va(`ZvIREA!-RatO`?v7}f~=*nD4V{T3Olu7fL2>rgg>Bw?>x6&w()2|CRNA>Z#Q6+<$Ld4FieQwLj85L*Wr)IApw3~)PLxf|D(os-PU|K~KF+cRa{8GG<1 z7WfbaJ$R&fW#}|V28LUmG%z+VyNsg+{(>-dshV&)`vUp&3Huhyxz{KFr=8Q;WyLsA zBwv8J$EUaibdA(;vgA<-7#k2n4xtidjb;tj4JiTeh?6UDS ztOG>3Gh({@DOFFMM=?^yXVQ7;2-!OgO*M|DV!}toWwywv#kD+wjI94!gWOY?Nm1L_;L|8hZ%l)L84Vv>L0_z)?GDIrbz|7J(#%I& z)5_O?+I%$pauFnjml9BKI)GZv^546aK2EKFVL-!NTvYK za3v0+QB;*165tnh?4l#2=#9-RC2Jv{cPG+$ZCG`AS3JgAC&sPDpIKV69^3N~rYoby zl}UUK>B6}Dbw^;m_S2C*t!RY~+F!N&@M#M!I z`oa8%A%DJT9sQka14GTVd*Vm?c0$LKn&lzh)RkrYu?DH%?jmGw^~XH%{?tAw!y}#w z-t$XySfgt$^x28~LuXrYIXa35xKZwIKAyH4B({r8@(e@j*ax{hpXVFrcS9&M>wV^N zAan2cZGVkY!kzOseY)Y^h{>IL4qUf?uzZk9So0NG^@|N)OPsHf97_%rlEUEeiUST*)TW8gUs|hzM_#>R=DaruDin0r~K_~&lF(17` z9)Ha9g3S-uVYcre*;hd?a1kP`8P6k&Y<>e5=_jQR#;5DbkM?hP-2lP+m-K_bAP!7> z4OO=BVqfKrUojtQ?F#YXR|1f)wEU@FEqDe+uDJ)jhcK1?#9ykZy^m)|_8hKFSclINYE)I|e50irIgAguB<6P!pIxun0 z03g{Yw8+S(ZNHh@T&^$G@u?kk@#7y;!FeMRY;0_ts^H5J8`}vcane9o_bbyC)qwM9 zk@NMMHFQ61wW}Y9<448dmAz+4F!kgOX?OOZgQ5l;B++igY;hA&ataku8>HT^uO(=b zdaW#ab#jGDgH?{2KEoPc*rr_i=j!A3DA>Qn?VboXq4!Jm*SX6FZ;=i-s zTXUs!4=W0KvJmK|UKloxoGfL|Cl586QFck00KS{i9GUMf9YzrxvXo@gSQoZv3b-)h z-*tI6KHqC#r#Lc=LN6cy(liVLk}$)}OqWI^R5BA3Wd^(MrfZqb))E44iKKpH)M^Yy zGhVO@RWaGP2-$Did+-M3sVSPCRT&q1!cMzloAeL&cUiBgoEPzG zM!_y3PB&C1R>PJ_M2G5*bp++*j*AfmYe|rg(l@VQ(FQfV>}{Uhdf3g4-upV$&hwb_ z+c)(N(i?_sVRz&nWYAVmxv`$0)iO-ylJdpxpc$bMJor((N_hT=?fH zKhE0AP^@VycG9(fM2;on)4qHgL+1Wn=0Q9@0jzB~pDa28!8sUo!dZ@w5R!Pgw40q>Tb>>< znRSsw0{AZ9)*LklZs=P$rJJ_78>%}W{p07poz=)&S83T;oMz4&c*+g?XR(Z&F+gSe zk#5q^9JSetv^vhHq&?_ceO7Q-Dz6Mf=|1?(&~>C_5la?wU$W`oWe|BGye;tL#jtRg z#0E4=#y-Ax>jFG%l3do|=5{cu`MTQbyjG>RJYa#1<~G6oKKi?Pg?efq;h+Vxe(oM9 z3N5M!bT4wj$7_@{j*=}P)8h&3=ju6MO#KRkWcO8#UMtqrwZpicZe)(6gVL?eDF-rF zvfwj-K|COdO9XCAJSCLDS9qEYzjwCZeq~>kq5pz_$a9_z){cBQuPYnprVd;uo?JQ+ z`3u5|0-Q~_O?uFP;yNaT$%dgk5CI$qB=}wdI#HCTgbF2RgnXr}_anCn{)dx*z`sob z42`vMHrOr}(0xL!YswGH?ob%pe3yby;)(t##mTv7NJzdoz0#ILO+;Q+qL1bKMBWA;4J_>!vJjvOM%N=~}8mld-OkoU}y7q>#KL#^_T$K*l9u>Gr z+TJBfb(X68^Nl6ECO}06n;}=5^l0F;QH7F5d#%~%eJVL@`Q?dpPzg8+l7$`8z$1kT z@t`%Fj)s*lFc8~+%*=!ZMz-b~CiZp8whwZm`i$U4!YZpFf*cidL^?(c{iFPqP4&6Y zr0|4&Fyrxp4p*&uqssV?xHR5ie}ZyEicEG(#&ivg%);m}VFkqzhyBn3AlcAD8i5O) zz9X5~XFVLK#AZ6ml0VtpDqzeMCb--rBqTz{LdFUZQfLxV=mQRAl?4N)k&&?t!bu=G zwcRDPYHiz%@M^*|%E9lp>8y6P>6oO0_0$L`R)8>*Fe_@BxPa~)A#;ZZ@vghKeAmgm zl-?&zQ~^u%wvUvKW}f?P@ZDX?>H7P`lbhfZ3PVEgF_eIkwh#m^7ss0YTEPMZh%1 zcZPbuU$Hu-uHJfSo?~*e2lj0ZI}L+poX)~sQmwpeewI+RYFD-P%blkl_}eRU+i$*a zgLlZ6>26>#vm$6!vHmEMfF9r{xg1+F?*tMR5UY#a6Zd*%4KDVQ92JO7%7A zW?;ky`k5qcF9&hYx&yx2hHzl6^$nCQIZpJ&V2pvySMjku#zpsj22OxTZA0(N_$>`F zo>+-Bm7a^1|4n`r@8t83<+GIQr^+jkg;!Inv6tI>-h)2WModlD7vib=O^R+buXdA=UGDJj*a>E+c4*Jy_3L3zho--Wqw=Kh zYW`j;9`jZ4)L|Z!BlTvxh)%u>DOGIsN~hzgvbU&ni-zy-_c+y`1Lvf6CKt|4Segnf zPu%XEZHktSp$f+tI~5FVzL5vlpo}WqAW1~M3C40sJwcO;pLn#dYYwIg9CJ zV7NXbGByc>SM?IDMXw`S`GYz~Z{C`I(2na#+@`^(UqL6WU~Ip}yUqR*{=N)q#MRe#P2a(IRLPcAu1eNX(HbW_xkDmGroFO6e^RV8 zfjcJ(=U6wCcvLa_-a=2I)>{DU%z{}LG{fk?fCJVOUN@Zu43%PKYZ0(#?#`E5i2-cG z#PeZ827*lQgQbD?=^sS&`pyZ&+YGbN!;4}j97g+xdIXqOWbh9%1F&4ZJyg2lv1781 z>-Z5GTbw5u5z$u)sK?gxoLE6f#_!9dCaMBy>@wrVr(V=6=_mksO@Cy z-ePTsxvmh5`FpYY4MMa}g0c*5WJWHwn|HTWS9DwYxV|Aj)*_=@hH#SzE1ejT;*`rc z6P*Dje*ZW0j9glMWMszsv7`-&!mzFL%mXlWwz22P)2>{YX2p@g_OvWlHem32D%EjR zp!$KiaM=H5gkus&RDLC zkqI3>$~Qj2gO8ZkPhj6$iz>E~5S=|e0= zE!@1jVtNzW`ykSE>_Hb=4X{-5kg#M(5Na4LC87+FxciHBA;JWwRpxq98a8xK8nYG9 z-KLYg$YLUgI6=M)%HMv6RL~0Gbj2;Z9Ed-8#lY%jYVVY1;#Jc-OX0@b*4i+LNUST{Mw>E_w_yrv+d9<#ZNbyYcRVVRd^$% zW*nH3J|%o=+Z|C1D>@N4MFTa&NNMP{g5ATgE(;pXG`TB;#oa&m-d;5ym?FP+qf@uS zC}@vrM;q@V;<0qBK?Mnk;lEjfjD|J-41F-b&bAYeT|

nLHM{1)V&F0FZrz_iluwN5HD1GH!Y`2(N z<2717CI>0~xU1q{O*87;i?O&xk9$r~9w%ozmJ}j2qqg#ro7lg~JZIl9XLE2rR5xgt zw0ItW{aFIz!6O7>Z7y+EutS28vhpghXJl+zC7!+@o0f16%LK3UOMGWe7ghX}o7c4F zmkIAX{{Iy2%0CO2{quhmE-*ht3PIQ5AB77iO`75Nc^qKcezhvE(40H^F>ha1_>N9G zv4l2-4v;7-c)VqPb$jJLEgl5bqSpse0^zdn4Ks;5s2HWcG*=x) z<$JH+?^#Iq@Bu9Fqx#UhTBF)0zX*$%r^DQ1lc?CpRq4OTexscU54phUoZPDV)nQD! zs#g*eVo-WsH-3a?hHLqqhk<6?W;T(|$qdkU%rx4Ob03TwItLWHS3UxHo=g%Oanp5#dG(;NsqmOk!x=+&xWtEnb*|xq z-7|)bG^@^}?K+$GnySX!X`0>~KI<_aOQHqeG*t`Xr`;ESD}S^lu-l%jDF8S=E>mtr z{Fsqk{A9NyJrpCvpC@yDcHqD?TYSWRp8qxX){ko0FE|M4w~9D9C1Y!!pd;r`Xo>_t zr=X`9`FcyQ zL(sJ z8KaZT7)ji6H@wUC9Z!&qqu;$DDeM_gA85^&w3~eC$Q7O86F84Fxdq@y{nA18W2?10CG^60pX{$(rn+-o|(W zEmqiDZ*<4AOcz~wls-(7q3itw0I-s&%n<8zku`meAmp%GAVS>i7W+T_{Rjg8@8tgd zBj@$s)wYO8$nbD5e_|n+|M32x{@CLEGo*xwvK zs6Wnk|3V~$g@c9x$HGD({TWXb%<+SShJuEJhJ}TPh6U3N|G^_fhk(N%V*^Wg#Y|nW zRKJl^u!|?CnH4njA!2j5CiY+9P)cyB2TgDNJF71zP%TE{)`#=+?dL_WUxX&RBy?ww zg;yu4>z+Lcyf#*GT9NwG_0@tUR7H%fl(sZo$hdrT&I39?Flf|0n} zo=C#hQ%fEqiW;$WRF1gQ+0UpFYq!L^F)G4A_noe>$Bg!Eqz_h&(}g(6-G;XHFk$PR zAR63B4Z`md++}hWEmg$0KIA)Q=*0|Z-e6BI`(>daw)lvtW9R(mr@Xlj#vnWJY1#=% z{)@w1AM!KXENRt?4sQf$bm7r(uJlxP-aTSfmChW@7omo~AR^S}?79ZtUk;kWlb$Ep zHh%~*3oqDX_8Pf`ZFzAUYA9BQ{71@^-PVJ+0Y;1ZAJ$BjD$EZCqZj3)t&<~0 zj?r-6Mc=<3Z^#=|P4Z#CA2zlmW>5oeTiSw0psP8uAfwlxFo-g_uLY+NOS@< zb|fqjNh>GfHL>+uAV$|D9EY{3N+2aV9+RaAht#9y5-9Ovg3$ztGoE6LjyZqG6h~YR zM~Bb33WExW^Al>3Pc|wJZ$D2TP8UrVNf${~xD{`Tj%m~G*a=4LO&xeFd`%p{xLtR| zj|f}p@?p}E=$FUW`xQj{{H%^7H<0MS*Q`hJLp(nL7S}?kxC<$B8jlVK4@ADMsXR6x zo_;8#%*0-t&;E_FLuZP$2M;v$pz->g#|WLHUz#(MnHASe>tI~Mb!V)nVuC;5(o$J$ z&Q?G*UV!LzV<3fP(A?1>ZkU*rN_iA1?)N=`w@|B1qhLKJN&v@vE-49|_M5|bMjs)#ua^dpNr9<{N*gIw~k74dTM>4#>!THlg-c*dh(cx!yP^n zUrk1~8xp(pdHl>#Ij)_`@~|9bWgJQIjqk-*e77pfrAZ|Z>yXpOslL-!`YR8OIQ*%r zgDTCjQ!2O~-FplUNsgM&Zg4bXc>Rd5fRKB(Yj*jV3I?sgm9DriksW|0nLaiI`%~2BQB)?+_9#~a{Fwje}Ql9#`=-fzq zy6opZpLF?(Y!aYWe16ECT_dpa#!Do*$TBoU;gWRKnVwg~nAOUMc-y0#l^)*eAQULA zF0MAB*GspBIN6e^)qWjC!yu7@I9YReW2$I-!!Xu$tnt-cPUahWrL^Nd{8sW+y+Uqg zq;GH6Kcd6rxal9_%o0UwUjb;xG&**{h?UjUl4KWN0pP2Ln{yF=o z7_({3*a1mpGapvnC>g~gJ3xpuGxlp%VQ(ov+&lajJhUwRA&PDyVY7J_-TuhQ%h<^r zYR5@M;ay-!rw~4;52tOK5A1DL%pP_XVb`vZ4Ld))q4KVfgJP;Fee~)o2381TlO@m_ zNg=nVC^3YG9Dn-pMX`u3h^l{ww1#zWNoy`06cUa)z!+$$JoXTGNxY*_P6tyq7;nWT zVnG}`urE08_imlWiZH)Q=Je7EzWmA| z#NS5%arNV*BBXlX6V_mvb}vK}s${fM+b7GO6?x&@WJ=MN0-FA=7;fY+08dF9I{nIk z@Jr;uYv&Pf`kB;Tmo0*xkR{NM5$5^}c@L*tsv_&(p zex;xi@6mRwNuSoXSQkpOJL0$G5z`mDxfo8DF;@ zY_D1J|& z(jAKM`xc5rY=Y#l_^nysVPNmTQSuBABWR1wc={>tfN zS+?v4bT+-ERlkM|n`rhOmNq!OO>alm29Sg-*|ApO8Tsn$WK`g3<&AwQW8YrWc_zW` z@i&bkDj|m~C#lmZ;D4j;t={75zGdMK5}e@fG{N09!D*bvHNl~w3GR~M?(WdIyIXK~ zw*(KG0Kw(``u**F_Br4A56<)S#kyJ-bM>q_W{s*ERiPDJ6@)?UW>HTZ!|8}WH_a02 zN0n4BF^_T;C%6%*d>I*2QH+7x+J8e&n&(wr{Vt%8B|-yOdLXP_V@Rnv5K^z@(`L^i z1;2}mTU(q8tzg7sGnB`KfJ>y6M^nSo2P{UNq#xH}!nTR)O#TqmHk()HmsNMjfuRw- z?8(VX&8HD0(rO@`n`Ohzexaf=h@EWzfu;(kRiS78M`{H-w$>dtbw$oE|~oJ~-OK zvy?6uoJBd6VS+BKA*{q;w4+M+kd^FE?h$sus+ipTG*ZuG1Fri`27>hy)STx9P?zY$=KeVMe3ZA>meiMg5FQQw|73r3vIg zrB6U|6-Qm9zxjJCOg=PW<>fLGId1Ox51_s@k!qx5kUMx7LK(#)9Yru&K&FaMT3d@$ zZ4-lqHt1$BcZ9$)5S3jqh`tMk{hBML zQx^V8d^myn6uU)>s`Ig1>qM68z~Johu4EJ?JJUk0B5so9f#MimBUrT*2%5;Wk5JTS z5NVdD%vj5b)sFx^=Ix7py`pGljv?aH(g;xpJbFFlmL9s{zaHn-UI(d+xsLA@SKrsY zjRRa58nGUg7aka;1_tY*x(GKi*YWuymI`e3fbhON))4vzE2iWjU~yD7){ z=dGTzz^ktLp|zKe8k)I2<{}%2hvD!8mT(ROtbthL&n{V3GUPXVO9=_~MK_l@q}Uk% zSnkNR4!5-Z_TU(Q_49gs*bylb9QRQoN!m^DfOLLCJIP>ohH}NA^+HEZqd>TRe?N|P zJT(*DNboHSmrvNvK~%fqP_o#hr2vnzUQhuWe)B_}`={=_FEgvD!;!iDa{`as2rXMJ zYtPKGnW$#6Z4MyYee9&}&Rv?=4W!F%zB}d}@9+v+X2`LnY%5#;sg8mDGlL-Fv~V0j z(k%@p_t$6OsN^mxD!6KVKr_=%prDqe`H>x=(hvrQXaM@OZ5Qu_#;0@|kxBZIV}ff} z3S`mgi0H(uHYi9|XNNK6a6D7`|0c?_P=oKzuQu#CniOU2iUeE6E7q^3~w zKA!!Z|JmH}$pAWaQmML8n-YIUR;s3R;4a(H0meBAN1vf3`F2cb>qHc4z|wBnI=E(_ zVcvc38+9E&?0vS;F#|O&H$49B<70*k|sE~aQl0OFqx99 z^BDOax8qqM=^Lf2`_E>>t-?%Ltfi36XStNchcJ3v*gJj?ouhlFY)=POX!xp-9w%crTWs{B12<8>~R))`0s{3E-+# zMmsh%7OL!6xq^!j0)=tBPkG)s z*D4zOE&NW`lx-3D_#jD@);u4KboiVTsM3=%2pg+qM7JY&v~sXUd(Is_gYt$spNc8D4G)I zj3D(RS|y=1#YNQ><*CZr9rl-o5cAv&Pv(mI(P)1XD`jGt2f6P-bbmj!REB83$@S3} z>6ykCq+DQ35GXAMycdy@j?j6yUOaYkkPhEZ-VOuKXM=MijnofUo3qr|Nh7sf4}`4q z2u|$99B_WGY#pYG*mgqK{$e1N^KspNb0`XCbBW9#A~Rl0kOSxsNe{{USfcDAEw&PC zdDigr3aks3u(4}%CIs5##BulYEUt;mqjD0dtqstOa+fu~tdy4dep~FsP_(~yFD*0V zsb;vJel;o`l@vEQ5ZTuDphA?MwS0gXiCW`D z!ap;&gDre?fTb_!=K79OzNVpM|Mgp|lXbk0N1Sf9sk@4Xduk<)Gnpo)%5dGTVy(Wk zrPoBvhyiP{tR77Lw>20kf7OlIWlShxcvnW(B>K(mL(mDf4kct)W6rIlLGLD=8*EN}^;}lZ-jD?Xk-79)xZn+G_uv z`rRyGiBEDO$p5-#g^#>@uU84#jV!58Lt&OzUeE@OzHG9O{#{TUPk|McRruQ>@hHWu zGZj_D>DV(JPsU~rO<0~8#{O7s?XImmjBNPiuH8T4(>{}4OIHFV8go8k1m>PUgJHl} zhTkzH15gG}Xj5?$gV3W|gMRgf`wXN`|2Q#n!Ln7upt>m`nt>myCs)KkPj@nWCxV!f zA$->i#Hh!kZ{lTTS#}hBRtLbZBY_2_ythSS zLD%uzPNik11xoI{V%aD!vD-2`dDft%yIFECGRB;WX3)`NlPmA;b$rY`6Fy!yK(Pni zJ{K5A#FD8=!BYb^?4nV)YDo?jGzj6~pwQ^ITO{h&ioQ%!pag`7g?_>iCS+tDe=sm_ z7UwldS@5Z8rlUA$P$g@m^^K~VvHMe&uW)*@zj=Ow)kzud9-UbpjgbKEwbyG`W?1{= zEU}E=G?g!^xHcrezKT2fn*rKlsB@VG=3Myq82us>0a6RZkOsm=r^LjB^aKeL zqiajcVigueRaN-h&xFJT;X8D`>nY|D5Z3~l+dMi`n2~STrqha%VHCJ=t<5wvlcfB3 zHxk{GE|!EQls}ThG(t+2K!ZjrmT69#K88@6P^t{@rpg3lrXRufpN?R5BIpn#HYPT< zGIUbX%ir)t@l;^B?eEVW_B;;`)0aHn;d2Ay^bPb0_W}0kWhn`j)7LmbZqiI#xLe#tdz{H!7jJET9j_Dp>uw ziUwtdlb-S8CnToH@#E3}x9FWz1%_Cg^r8fjF>>sRU*D5oP|4OsBgtP8Q;e);H{+|C zzM0-xl@-~$!|`n@UE2Q78-?4k{- z%533G>Yhjv}Q6I`<{3XYNCM&&-!xqxti0dmM+JosE${%P@_Ss_%c5Y;iYVB!xlN0SR=WS zOqq98Sv1#2TK}{75sNaw-cVvL@A)2U!VOx`agJrgX~*NB_kXAnyI+_*`xpcOWSYHL z+OPen0+hf;42H!9uEOYXol7K~tJwuizL1X7N+oEqk`8ws9*BZ_jI9BvArk{^7#&X- zA!D{qls6;9B_OggBhMba!}-J9LV^vtE9DOdA`wMy8y zYM2BoHDVC0uQB6Pv&!-gw(s?pcTJ9U>6ZE<9@AnEa8j?Uk-Yx$4H;iI&&cHTRnFb7 z63oVxkq6I7N zr7g`6Ni0hIcTM-xSZZfAj=ofu9ZLN?F>WnBvh=zOR?rnuLS5t2bunC?Weo9L6S`uR zG96QyiQ=)zDa8b8v`>K%$kA<}l0={<0&hyko^osUUTQL*pwhv3<_{>Ww#)b;1*8U& zmR8enY&WulSnR~2Lu~LM6&)23hG-NZ;QZ*Sww2fwVwdCa3_VaouBfq-MJ^nc0beU^ zd9VV&jw8S^OlQ=gq$|C4>F>l4XJnUyN@{Pp6&7lGIc0%WV+En$RF$iSJr*rF8ppZ& zd*V<1Q-T?vA#=j@3SmasooY*_ooQRdoiA!;hAcIm&Ma6DU9af1j+*i;YFM$6!CG0` zq0D>Mp^!|ssHq$`D66iJP zQ_nKS$B;|>1imKm5Xv{B&+BN^J)%tvz4{u3fj+JN_XEGd@8o#1%}F2E&a-c4%yuPi z$d9N#%ufbv6)yT8%3k9gy(q$7dIyXbw%$m=*WuJhQNE#&xcaxZ+@mIYYZ~P!>e|ht zQ>{Sq9!tNp*)A-?h2(5j8t>#fbhgz##_5`!e71VQo@^%qk0ynNq0`><}fB~mgi}NdS zd0px=vDS{PJ7LX~8;~_0sSvv_#QJ(~GbRZH9u;&4tJ*hD0zrRT9!aE?#G)t~6+D^C zj!!Bpn9HrwmzNhdj*BYF{ZV05(i~@AY)&=u`0e{J8f^O^bzaO~@4B1*18OZpS~oAL z@P#hJ@YL_g+u}BVQ#%|*q|}}_S~IY zl&v6hcXC-uSJbRHKP}CBUG^_MPsfbIgb(!lEo9q#O+@5jG{bh+b*C4ssc*#)-Ko@zfr&k1L`R8Iqm z_K56E)|xsIQ{ea?yT?*a{q)6&Tj;r=DAFsas=aBCdyRRFx-0yx49AZ z)(2Z0ReGo81#mXM3d6JXIb`K8{ao z@5aUatKR)xz$kwz8_7ueP?+!{m&VyV;UA#{zkTd&*8d`a?o{ouyR}f8h*CQ(@-Qac z_a)?>e3w~p5Lokg<_>OSfO>fdPhgr86BA6@(mclmooxq{A)Z#+8D;ZySznjPcTm4Z zd{EI_VT1EwZ^nCge%A=<=h`d8tW|J49*i+GUt8gv@}brLxqWYV`6)qrEbU{?yL--h zr^%!5#$C=EpD)(C!@65at_w982|WJ zMs32QD=u-n&1gV0%$-GR_KsxJ<>Zp(6zgM=F|U>jR{n~A0M_M-8!8uDvTiL)!_Fyu zg6N(nCjquxOFrb?XA?b4U*b8Uppz| z5(7}PXiNdGRoN$-eDCSQN$c>{mf>(~i*9JCs{=;&t)lfRyY?TmV`Fg(S7!B%ZG1L9 zZpGwyu22G;0kR^le7$8SP*-YVYHkYq=V~!-DH0vWOHUhudTLZhqrj02Vfc;9(p zG{^4b=+hj*FrOra3+%W&syi3l01vLW!|-oj>#rU9I6cZLvS83iAp4$9WP}Il4w9|dct#_LR9Jyf8sZA@>tY(bg2q__GtS$~3|KMvI6BQp61s zs~^BiOVrid(^$$`Wr-`NHJH+r2s<|ZuONFr&8AjWYqk?dYuz|suBbnJt1 zeqV~lF~Tu-U2?0)ow!dujgxIXLM=dk=f3oN>b&DF$2qxtbLBMWpn!eo&)kak1iv_0 zYqqQFIU$?T%vOKbjAr()*6);o~iXmqG&J-VkQ;wv@=@7}nilkFroTnC7{@AFp&a6LkJS4tO`o zboH1hk*V*R6sZ**um@Iq$c~l&2M}3)biMd^85Xe7);KCIKWf0?*!jM!V{ly_&7nN> z{hppdaNTmW7n)&=yn$Wu_zEy}-e2n*ld8eEQNMQ78jeDA7z{x?F5!`ak|RMRcu@!PY40U$ZIHTK0kd1NSL?gDMb!^7 znbzV4moZb-L49Qai`=hot`@g_vP3@pF)wZD-jzAR;S0Ep)U-BgSycI1dtvgk*WW>+ z5lx;4Ga$(N45RF_S0*BYSVAw~OV z^YO>HgCulX$|NOt&AofsU|vDNO|2e-;wgft+W_sLm_wLSrzVQfD8{hu!5K+!&4a~d zOg~{bP-qTCR$Y81<1stwcUe^fsf8DLWxd3}sLz|P;&0p3YQ0M<41bX>C5lF+b~%y9 z-x|r=V8w_h@ehp~1()!u+v_Ld1O}zDA24ud-u_XX-A{=6v{$hlP3M_95S`tujM~$Z zJ}Ra+0&g#cWxZLT?)ngZu>UqgT{}FhKYmx>gJs;l`Rnra1C<}z(k2C_>!edcgJcLR zJ_{}&_su|^t7|e`L>?H#r91m;80qtL+ZbZkMl{Yq6m*cixm;M6pkZNx;Exgz|2v%$ z=A5W38_(ePy;NqL$`PPL!Q5=PP!2ItJT`l3xCZ9H)Y35r3{7(4_B( z+dAqs=5uW#|Io5lqHn5K&c2l|jhTXA(}zap&|xDz{a&3A>mru9%eQi~+}y3aT?Nn$ zC1Se~$mepNkx?+BD&0xnarDYV8y%4`L(h+ximPf7$Zc1#>#mn>vr{^^&kp;b+@o`F z;vVko^fUnGatTBPzSqf}u;au|?%D>QDjGr*8yCp=FQ(e6n^vNbm$!VHmh%%646sMR~R%UuGYpbNuu|*~_IVOsPBC)~=$poV7 z<`Dv$&$SHnGC*0i=!&mSnfXo$6Er@y*goGx=A2wAmgu8zYQ)rA&-u=IA!{zFVIJa! z#w#*nO3AVxQCogez|O@ZFJ-v?zKImaW0P%KP>n9wX0~&~JXdqgJF6#M zmj825M5d}heEB4UQo*u{c||L9zS!KEQ?OHDvt@Cc^UlyMaX}`R!Fc@CQ0+@WiQ0N* zMTJ5^9AjdrqkgzHayVJEEN0^<+}bxmpUvh3XO91BBjqimR>u{+YfiNXt=H0dXUPr6 zVruTFX$d7_esy6@W-q3RSK7W#_>zQ|-a?c*YSK_kPXAzE{;kHv6n$`tM=4`#=jlch zr1Yt=6ED*`)ip73ZymF4LYXG!8_0aUsj*Otbd^Zbrz(;0i9+GJjwWMm***g#n!DLbWWjnOX^&=gRI#d^ovA$9e8?%xGz8_U{2^}r11Igo zWDH$xC0^cJ-t@(Tbbohh`oqeDYq3Xw8{c-itwWq#47}DW&P~ekJ?}D%tGe7vBh6Xe z^ovo#B{+|y17)nP2l5L^)5#L?Z0ZyH`4A-+Bgn#pnzZ+>>VFz%MWfSI@H}SHzPE@% zKguwP{J|rk93bVrSCawOO|Pd|vl(G9ol07`OIs+T~wjPVek(B zF$iZXwT7(d05tYTUOp?h95isRm=X$RK{SvM6-suqKiZlD>ahG&e&^D|qCl<3a+KN`(D>8&*I(Ce;>W1n z@4S~!X_cII$_!g=XfQhtor~GyYXn%scSo<|Y!yuMiWMttRO_bmERwX~8w~d0*xk!)SICXTw$`r$oPsmvJ@dMVQ`xjU7mj#S*StOAbl> z!NI0L;-z4a0brBpZDi%JQZLynC|ngVP>#ce^#el+ie;AcS6P^?!~vuqE>CA6jU95u zTY+UKpuXE1#!+nR2@U+Eq}rU?WT#~bu}eZ7ET?=R_*rGfoHT65ont!&tTX2HCUPPD zeL}6pd@*ozsr^OGHg3Xfh6S6g-Mb!oTo!C0)@Dsf;G+FN@zDB*N?+`6VoldLrsILR zSQM4=-oaCa?}+Bnw}kSd|B=waHOg?dqUJQ;OL!EUZ4=*jZ+oKy62+6aVU?njVu*V! z%~Q;tZ{K{CsO>#Rwh=i|7F|E2D8F;YaE5hNz&a8Z10-?Pp@OB~ic8)gQEJ8N(>XA0 z#XtPKk_dLCpAF=f6v5vj9yidttT*~L@7?K%L~r}K63ggVT-FUf`R`J0w1cVT(Qt@S zc>J|Xg{Opq$q}pkvF0oe8c0YJb6$18Xnx zcA3q%I!h_NC;`sBYgDx_4XxoTr_}f4?4Ctp@>jp(t^k6kBr`8Z%qs1zN(VseAK?Ks z>+QsP0esGJ4*1V&t_I=@&vH2OD~fxy^i?Q~FQ(_z8!TUAUmO1cwATwp4GjDP;G_tM zMhMU!?>!e%{N|80tuWGx`)cY+UiBeWSgjZJRe9aW=V^;{9HY#7@bb5Uoj94WN_D7x zOSv#suQST)pCGf>MK_U5X8mcdu6l0uhVX5kk}i{Ju2;L_4(`Bu{wSxfQy?KFzj?c5)6&#i=WK3Uky**sP1hQTZM4q#tCF(pKc|a*#CY{bu&v zN5Bfo&2O#$mZ<-~X%C%k1- z^ZD%;On_XTDT^7zv7KMVo`?{D!d6Y0B>+i{>tSK_pm zjohHd1?}%~Z7wpdEEmH2ADwK0aeO=}?|1Y@d@}!@J4NX$Ow4>b9&LGCY*TgZi`izZ zd{}9Sy{x(X(!g{`31C)?buH7?E`k(!j+Pr=tgeJ>rqQbuP5+Re*1(32v3QyPTv`iH z(PcVDs16LL zw_mOIb499_3Z>PFz!#gHUvGeHd-y{li!hbK+%dfZq`>gXgO0Afflya%dzmZ;Jb80h zHh+SxTA|It!>i+vUc5D?t(Y`D9yn&1Ft(zmu3JvYli%V)iJzuAbP9*K<wA_ZgCbTuP>QiYhc$S@Wu!?x zP$v1SZ1|*L@w?gOnP(vy%r&UJEF1(L4^Ckl&y`CwOWABc=~(t|*UL(0xnbFood&LF zkCaHr-WIE|mGP|#u1_$*f4@TGgRwy*S?f@?me6>%WFXM5&rPDVT*4wLR=_U=J_?pJ z(Uf@LR(ro0Y-b@%wvxz={(~v0FZP+4rNf+lCj8)uN7+=^f2_u+(LvIDYImG{K9EY%UayuSwdm6ClL-&IsAxKh6XHH4Ls6v?|dv(#gP&UIKm+yUDG%~ zWnX1WZaM+mehlLE{ST}1AgFq-4|wivEFqNAN3K3t!MDGrHX#_~GQ z4%3P3!Osy6t~%fJE*|t^#5t}ty(HTyA^AT(w*b{5^gQ*%0h>E;*{d!sm7ZeF{!5~+ z)`&c)rQVr^HDI-JfM&pM31`FxR``$-UO!z8VdqtJy@qf8lA%_qlD2)OD3b+^%2DPh zg_8V0La%0GSlw$4OPj%Tc2`6 z-qg;?-t{T5IXcA9*hmb+p^)_h5+w8cTmGSR!qFbZJNY;em6A5bq+LC(QJA*z2Oqr? zKQ-Q!AF#>X{q<@C7(M^tF+?|3MX~6*!JO+S(Ym16-#gO7Ri!#~1kaC{@e_XxV@C~e za5kVNVy+tp&^kPY*Uw+Quk^&7)TzU3tFfB}$U9WeK6mmjb7~oCeii+43%Mvo++cs+ zis>CF+t-60a8(m^k`K9{kE@f-4+FCzuFOA1gIuh$8^|=vf#mBZXWf{yInrkdNsVtk z=O`JbNu#ZlFA=QFro7#f8W|k&7wsp6oscq%O(Ix)Vg@6x)nQF%Y2XRmENNM+b6X-+ z`?5u|F0_+=*J{6~N1l7}v(%#GWkvE0iI z|DwQy>FN(vYH$r~8|!S-cmh^3W_984j)<_@lEW_9SSHN=v3^S$TEr9`&t#Q?lc*=0 z3zK@ecoc_`Sr{AIb{RLtGo^9st5FnX{};W0{`d*`f4r!>RB%E^b2m`0RO*y^~6e5TMV;m&zs zw{T;kp*S_*W^TD)krLeJK_p6&*M!+N6esU^M<=YOjgXn2L>v;U_m_8g`+8tV#Lm92tzx*DYQdseYY5I(!tiRv_f*DMM03`^S@wPZG&NZ zxJ0GsUk+9T*JQ`k_kHa1B)kZ5P?Ee9`1$ugXj*@W&870G?fC!PVHvNhenLi; zyfpi!LDMSjxBY|l#3YLQwZrC0^2R3OW#Mu|d}U!t%wq#taQ@<(uq?B0m(6dMl{SqM z!P3h^laSIs)0R`;(g66pY@@+oWbvTwncC|^U7~@QvX#Z-NyJ@f#@N0+%TWHWz15XxZe9J>` zl~PTF`H~1~p4E))1dXaxCJ7@`9145>2S-(_lABgPu(HAI*kFZZP*jRUZb7((1&T$Z z&!nL6^cB7x!MI`Vov=9~x8Hm}Z$Cs_`stFo5F>x@}c%h6RPA zGJ+*E3FTM6kd2E(3oOE(s0VFCTE(NlE?s6Jgz?|?izasjd;4)@>K?GR$hY-B;Itu0 z=L}U^tYXd4XI&jl4Q@W(LuYcnUbTqU|8du;>z2OBa;Oi#l3a^vueKkQhMVw=cBeJy z#SMBnf>TdSlNEHzQ|e-VX_+a=e|))}PmbZAU6ou6R+tga1*eM&ww1Y}#xN{yIter| zvSX}DaXbortqg(0epI-vh^(HJx1_n=C)kakR`rpu<(h@17Gn-`a3)fG8Uj{M z><+~QkG^KYHezO`o9*>r`YFh(xvAc@nt^ft1@-3bp!c^(Sr5VE={>@_l$6Zgl|<-N zx#Q#(f*`%+e2;lz>}6Cx>n^%cXg+q?(daiX)QU3H^5Lni^~Y;;^O@txh>f!Lb?R;} zuCAXiQ$}WVDvNd=$O~K25Qg@ zPRQbQZKx%P43WLF7>fN#&9r^mm^w0=%#mvd5CDu}_P%L5E4GmvUWan;F^&p+#Z&0z z@udaa?00V8r>dCda)^1g`s)7)!Ee8%aB7S7%L5r|^ZmMkG>1_A{6YxfV_N1n;79f} zDZ8QXu3=61HNs`T&f4BDwSAUj2$iJe=1&qFu`j~W3bC9_VoKSPA#?&(A;c%t(LguR zQ*f>Gku4h^)JYhB?bQS06q!$Z%e4XJKjZs4dhubIH?Zn4%5!0}-7`!OJmIV(YL`wIx=NqV_L)MGrR=%l2rE z-!6a1RcdFP?a8(%j`@gWW6?OwVp<4`T20+p%9kG#TxvyNe7vYCndMH zDHUFbY}Vt#isn}6=HO4!L_`&Spu(~x1M`X#qf#yXBwR%r6lstbF?0|=7JsK*?SGZP ztql41S&rW9$Sl-KtJf$bM77VZfBx%IG&toxcs#tvlJ)LA5;a?z3%hK%>A0!z7$RjH zH__GQuZaE8kTjf!3ZmB5dYVkP1r?B{f?3t_}4gkX;vlA+8 z-ixxr8%sh_YaMI8J!O!uDXb8y!Aib}sb~u9&(`cnZ{%CW@QLt8yPcXz0Xv>BE3rer z6S^-7?ug?!&Lf1oqbx;zP6H>z-n5X&DC7(3gQjY623uZ+CB@*U&J}}6T{~VELaSn< zGEU#|qLJb*Nl|rU4JOOZYs|V;X|~c!GAJ5FDC65KCH8_M4EThNxbnIaKhU9C25^sQ ziIF1xy79gTA};>j+pp&#jY30bmUzM{T!oA$TZ)+P5dxNQZb&LG-lCN*m z4#f}~shuac8LiG0N*$}uI)3P74gc_GY~2_CU>-8CD)6UgYOB|~EgRa2JJ6XR;ipnj zuN{z?yAJ)k@gCIu;_(6(gQdCpV<{#zP&<*&4^mHnlIC-inaA^;wEl!F8cirf%Q%mr z&bk~=YP*o2VXNN@6-CNm68{L}ZWdq5%?(Q#vaSA{{_He}y3^CmV@5x|Pi7Dao04KH z7MjJ_#7P6|YAoz$X{R{Id{+?bh_hp%{>1l4JvIK@`;Ro91h?`jcIhU?2YR?b<-B~1 zrC57>r`icnYR!E(a`nufhM*}eLca1KtkJLb>!kK$_0&X4g{6CTcM`Mndg{~|noDSH z_(1BRe*B!_JD~5BP}9R+%yQzjovqoifudURBkl=S_zfaK?1jrh$}qcx71)!iD-Bw$ z6lRs1AdCk^vtrTM<~@t`Ri8)}l;Nk_>yREQHM_ytX5Z04y(evc^t57cKR9X|n(ZAtnm5qPf^W%UGTv5(` zYQEJoFGoH8EWKVQUO`GIwo_>2f&9zaD+$_1L?F-e+r5UA0&+v!rjghzSLx5dGHQu$ z#HWs(H$tg7rlB0ld;>V=n{f>v6e;Hf8Nb}A1-RtA3^W+Gf1mlP*=WrJZ5gRNW18|a zP2j&%nG(ozWE{^R^DA16{MEu`8jL~*WZ*`3wpy{g*zOow<77P)gOv&gs8+gG&3yX8 zJ+0$WY!#WDzJ#O+(?tDhqd&qvY#C-Q^SO&EhW4gy9po#JERc!(i9@nlY~d;=d40{M zDbL!F30ZXf*+`BO7zne&0f=+D#H4K~H65wuR35iF$CXYlcsG({%~*#S93X8g$Gsi3 z_?QqZJ6f>V@atx?%Go-8o`aW98|<>4J!96Z}`Da6@nL@wtzdv zfrbuMx(#V+z%Vrx6|!&s?2+}uL(`EN`v<^!G%hzNU%O!7udG$Yu5|)q(5P4(AzZA<)38!DK0%BOoqd!WQCAgQq!m`n zprcP?NJCYuhMwo)JG_(4FV?vN#^&z<7K38p8!95@JZd4QM_c4Q7*%32&AB=xbSHPN zeJbQ5Y4zj5j*zSi9g&4@2S@|=XKj9>Rl6j!*X2N0sfp=e;&jeP2IReL*l!(2EFqL; zD>MzlTXx1WbZYP*KXLkcKP$$Kyv7G4`V;c-YBJ1dR(pY!2r@aF=^vWf4TMFB1S@)qdk{r+Q8 zbfs3bGn`DmI=jydI7M4ze9fr)@v{cEx~a1wU@}i7;74Y}OK0sa@$`qihk%n^_^<~4 z2-JJ=fWwhWwO7xP-oZ?$xwT*11La)reH!?6LUl-&<{v ziaa9mlL!d6&@;aGTM}l_>S(u#fy6V@K)z*Aj}ca-y_I@v&%@%(tkJLaRL`%Qzg%*# zKE>0nYBHAG9z9{TA6yGZ;0N(xM@X=X#g8>~?jo4j211*{ zu|TTKmo);no9{{NliIQ@5lGV}a)qlRurh*b_EA!pgbunkG3Nqh;-n>KXhjHUK7Fym z98%Bh4Ab!DG>oP7?W%m%p4 zC5FnL$B(pVXyDpIdjtWawx2h@# zvHWiJAI*MD${+3Q5!5-YbG=|7ZHbwaMP2dT)D=9@YRa?asZA>TM#wOarDkewHf-No~~cLFVVJrRNWT)eUgmJ7W9P*Wz4~3$4YzF&z*Y!u1+YF&in`PPHDdl+c5`v zYHb%g+g>{fT(sWA^bT=Dy-TJOiD1duZRX zB>~-LKyd?9d&-H6eK>O2pOo+xz-C~m$*P$uOr|+cWtekj{zHo9zHCmD*N5RGMUzz* zHgBqC#L|sdObriYFg0PiKK|XzqNRmk-}KwId@K$cB?V!a1vg-|r_;3lf7QKpP+Z;i zE!wz4aEIW*9fA|w-QC?uH16*17M$S0oxIL>&Z%?0-+fiLUfui0JDVzs zVz0d$y60YVj5Ws^lPn(eow4a%$rYx9j7X1+nqQU-H?T##6-v%d1G@Gs zsR+fZ%bbF)E$8KumrpXDCFX&txPf@5u)z#2_d}MX-NzaS};(obOM%Q~^fL zCl{<^TBuDv`>CZ!F%2iM6+NG06_8O4>5q&#n}3i|K}@tu42l*;Hb9u-*!z+g9xwb8 zBe#DFoTSgXm zE`AeNz0rDgg*nd&Eu&*N`wdVttjim%*j9Z?c_TXl-<0EXTAtw|JKQNO$t!p_Cwb`; zgI`ND{d2x?*ic2r@x@dQ54POyQ}g8%!qoNk6p{aroF-nrI?j(j!c=DxZyJZLAunz_ zPa`+lD{X(wt`7-xUpbUM&JORzTUQJ(v3522g}o*OIZzSUYFnwhQTBGbJ^i& zK=$$48vDz>U9YrN`oo#A=@fU`YOOGvrJ>mw+JZcMU|QX#bJaezJcIc|9{l&0q_V=aELIl;Ho_pSQP+n zC=B`U5&uvHz`+B+#(`klKyorx@G#;(+Je8e9R|R`!b8JAKq5eaPc!`K2n;qK{Nq0e z^{4dzkJ>)~7X44{pBx^Gl>#g&z%~{&asGR0f9p4(Pa+0|fS<#r=+|#RiQxQo3exUl z7X+}+)%7_%eqH&n$i9lg#y_0aCHH#~D2*0BH342L=2^@yYcTYX(i^8Qm524qc>hhl z>p{&eJBLL-KduS;C#dx#ySosx?e4OLxDnCO4E|h!I=7GJI)|-(CA^OH_ZF&F7RL@H z)yAilx+!`6>IuYqR{4ny;&s-s$?xl;sqlWqe=&e!kSB^xyPi^ihFa7$n!k3$v$`am zV1>|hrBpt>S`s7Rxgh4MOBauJ8x@5Pb?J*Rlb#8>Yk2IZmv^5?qFc-91C*1#Sg5E4L&Syi z#v>399}o9kRTN5r4Sf8Zt5%=*4~Fz(QVEHY%cYZRA{7_;U-tL2D7$g@t6rh#>eN(2 za~N%2m+#v4D-ClJ6(hs%&gOyfmF3u3igdRJ@wlq5s|nyX=sK+uL@;Vh6!q z62=8<{79F69Ps zYEmJG7=z(NZ>^|X5-b)*(y^uE3ldK6{ZJkn5=curqyp|%2mr1hN?p%>FY`C z$IR$=v%j>PfLliQ)CP-d^qVEFBWLp$_QE-tCOMT>QM2@uLG;I@xwJX&3`)|L6ryYVT7690K*rdD6*-am2k2K zh*K@cMXl>HY~mB9c=t2oxDMcH&#@;*I@MvYwL%c>*L7r(e_VDFiy zUpp1V()^adGene@QxN(!f)rN+zTqRvM+%sdND}j?km!2yQrTCYYr4g7Y@$AjkP1G! z4@V2@sbwP=O2M5%6wvg&l^>Jd=bEeeEqu|5&#~-X=z#vZrp|rDT%l26Ugs;YfsbG} zmeJ%d&~%}f(kachNTS=)?m9XYzXEAKx@3Uucf`h@oV+JpW%*K-egh{N97RIF>A{r@ zb1GE8-`OX#Uo(HJntZ~#uw<$3vp-cip`g-OD0h*e zMh#LqBUsYQ36?_94H_h*lX^?7sp7%|W~Fs*#n; zrP+Q&J2%eMLpVsQa(#gjj>;#VtQH-9D5RQY?_I&%dB%;TtA$rs3)cY3Li8G8S8*EN zSr1jHeS7kx(0fz4D)zzLC=UxAE{HVTPQqKl+Q4Q5rkm)gE>W+S*t5W7-+_c{E_*E8&n|TqDp4@#@l5AR-CV2j>Z4p-f!WWa#nDI2T=t%)hi;BFOk4 zf8`TRdPs&Y0er32vO>y>VvV<%io-U--As+M5$M5)U{<$yRj-SLf<_)>^i(xaOxI=F*#xzUxyMbNb_I z@aP2gR)q9qw{g!BVx|nlfJU4(l@z@rvYB)CQmYeffVNN2DOi#D2DdJO*0{jYuh4dQ zd_k2olq1Mp^lUOn=N)!V+R16RYo~Dz_m#u_dgUV@TI0uO1_-r7CI9~9Duaq2)eZ|z z2RUJ&EWkNd?cg?vSOU2u!TG@`5$k1kU9X9vR1qk)Hy{9lgH)av=5i1;zlx~?Co;l; zJDa7qx$K>TZi#Daaz2O@Jj~9;dtLJ>3Pkb9Cs%>k9Xy2dJ}V@e5QT0T1^V2yOu*@= z^LWU?&Qh0G7d^qY(;(paFCUjJu&j-+hL%F%u%0V3w!lS_=!l-PGSiD=iT?-%u5wn{TkkIG2j_L{l=s^SS)Ni+m0j66 zjztNspO;+hj|x0&WK#y>b&#V4sWb6nKwP#1d+GJxC^}L(T@;U|XgaBVKR$&Yoxhes zb6q9573~2e-666;#MHX7mvPQZ6%TZKrc9)Rp);F^1yeGldbynZ{_UM0dlV8HeOHgG z@7nUJ87;LS&!pdgbOg}!Hi2n)wYUiiWR+&|((d7#Cv14s(f+$n3iETAt7PHrvog9* z=y|v_ug;TMIIbQx>QQTHKISsU-V<%y$Dg!lh&K*A&7}hFUfLoqhdMnL{Epqr`D8*T zPBnd^FavlWgRMSmXzOPVF4*2xM&98tii1o^8u7itu5^}NY$+qXy=QqE64i_ZGHpH1 ze5>bpOq6prPgCVk1R11tc0()I5kE;4Mv_ul6*vY;bnB(QMZPPSs;ksLHk>!NWh0K5 zNlfv)@agg5ywXaI$~2%HE;Iva^pGG&l~7Qd)e>@%rw2Oh56N6<0EL$QU8mL^Od`xP zzt|ljUxGaA^h6UqBvDLe-@Zsc@k|4{1_EshKYu{{iLU&;tgs@#NSvoUhD*=X-{Eef z1sLDT=_A3*RUTF*tg!4!d`FDC6Tfn*pzOygO2qOKX?H&Q(@_SqFhfJ;{y_G*T8P)| zUP6jbcE6=B)vAy0tze-9p$O6%!JF$;uTg~I2uq4IR-gCA!)mT;smo-e3g+QErGpL9DdRHp2KS`yvG1x^MLwYvE=QDkgz^828m9r*fZR-{`3ulax@Zr%t zC$oAgl^TPTXg~s)!CZ;DI+-wmb4AC6y9CgtCn94@##)BcL~n8XcA(BSsf)A@aW{?; zyh0>qcoTYDj0EOdc^ba~IaGDPCJ%mdoK94n-57??mG}^E-RUp2u3&3J^tXoc>Kofx zD?87Et`5ebjj2_waZ{WYqU*H{O&Fae$Ft!&!kGQ34*5>cGa(~BPCFz&hrL&v9}f~_ z$43S60v0-nL6WR{MWZT1Rg;UuPFW8)W;!#I@i?{d`=rMaJJ&od^=;AWDeUpJ?llQm zavF5g3B%L`H5I^J6EthEHz6t%yY*u|uXCN3uln&Bafc`>HF&8YUz@?qzARQ`ZA91e zVp+Ja!z8{>ln}!tiig**ea6PV`oEak{F8C~MLPh0s12Cez=25#<$q9{f1LbZsLlVL z*?_nDftk%8SM@&}>Cf?(su|2|FyP2A;jzdmSU+Javxyl0o!3nN;WepDu*Y3S-kf$` z+2}j3BpYOSMhz{|A8ylZRN^YV#a$~}ub<*;y37x#5t)U|!K2#3o5>5?2Qw%M{PoA%A3T>O?KM?LFKV#niM$%E9GzWr< zMg#VqRJX8ArKQoN5V~c(H+qOknR=VzvHK9;oZBv!A8OT6@|}+L_fjuAd8^vO?EqWo z(XsgW7v%=0rc*nAsYeucaXfc$56C4An!hj`$J^7dqpxid<7_84jj)qWLj+49x?@j` zL`unw%Y{llSCY8q+FatASEd5Q8~=JX{WS;jFmM#(1@2m-=?|b+v7U zzn!2lm{vvmVx0ZJn_cXW zE7k{U$L6Num&PNEu>#f%;x5{{+K?l7IML0X^GD+QySBK5^{8QEId|%np*7B7_V{O{ zhemX02~)JOA`;>)vyEmsWEwAv=dx@uP;L(_6Fe^>hh!I7SFGhL4BihzNoq_u`GKc& zQ*zq(ak}Vo5GqMrGMB6I{8o3oXF+{hCqNwm`Je#W7(Pi)OLvxib(d0k>PfZy*zhWs z^38i5^-05=r!G2MoU=8z_=OA{Gt)6?6KiTWp|f-e3!2{m=|hd=V0!$BFrz`!64USE z$FbAJ2ANX%(b%TdL{{ZLy%6DYPo|gju1U3@hTkWiYe0*!ud?H7QGbm7B#AlcQmz$V z!U8a3%`Uyg3%(N28RQumhRz01{!#>BcqnPdRR8=ynX?6uzTsR*Q*t>iL!t}l|G;pH zjvFt0dOjL1lx%?rL5X5|9p$#LHK>JIEg0MI^fH$Wn-B77v5cv0g)BLw_GPN9OIH7& zQN1!T*p*^vkb_4D}INz8pp>X=+1-_m72@l=>lcQHI18 zf?eIuY4CSLYIF3E7cu4IZcGoDyX}sR^!x8i-gchnR2pSEvWutF`GfrlO`Go&1e^KG zoJ)juWHtZ5KQN7`1NYJqjGWin<;=?3Umw@i@;=rlC2~%JSr_Bb#v5ai&iiqUL{!pc zd?fLhy4p*#V|WZv{3t5Y9_q+o7}BVwq6%tZ10}0dilYB z803>v>&%zT6~;y;G<0|@`BQabUTUBpVT2YY_R_GVAf8V5tJX{SmWrOar#H$Gl49%x zr{%F%=~%Ki5`hwVr)&LrYvaO-t{`9-ooOU9>KwJ%Tks0Efn+Zmkn z(RXfx8oDkbo$Ec6<>~!KH#-JSojMxOg`6@Kx4N@d4 z0Ov*Yoz^?}MJjL~qh{7hZ8qwPoxpVrPO)YaXYDfvAy9e627!4*7y-*@5G%Ap*n+>2 zk96zt1-;9;V+fE)vX|I+Y_Om*!kjnp@;ohlyrSgcG{FQL8eDcq<5S~O_&9ytkk~7V zz90V!Y#7jasp+<;N^gj1i5xlOef zMz5|HxTI#LN|%z9rY)KR7XI25TXE zhF}W6^2>R`fobTGNM29Gu-eE>D#)ANw=}AJ6i~0DN>n&ntF<2$5ML+RjaWAfbn-#j zM!Da9*;J5iOMyyS^DN8bdpHiHOvboXnTQ$Iz+BW43$5m~o*vGVV!&azFo2nzIq7RT zI9g&EtCIox{0$XqMFrg3@Vr6Vor)1X^sdNZ`H)$Ltlvgq;vUp6}~X9nVJRUTtm$D z<*afzXk7@Fe6zvTlncVQrxSYlF#qAk|MB7RHz1piD&Gx3j$IXm+ic{fXkV5OaNwRfMtlWl{oW1wv5cuK37xD8<^X@`F4hr^5WMK;GX*iU%Kl8@BY zQ1F7nv5#McyAJ%nQC^9QwZgLH=D@`3b-FD*JxB59Nm^&&NWtLp_M%MGb_L|9`5f9k zEV($~=X;jPh7JS}_(Y4)e1Q*X`TOuIHTIBK*lP%A8LI@IMYP6XwIOTCdnQn%6_+- z#=7SsafOvTMoN7G-azOzh*IDNk9)g2?U&AXvK8~RR{72rCd8o~7EQvbCUyJYNUlIhvh>ZjBJkQ2{giLDkrSL<(pUItb3Z$OjaO{N>}aGts_Y-n z<<5iCW^680+=n1KD-d0?;L~W$SE``5kGgDf5P&c6hw}06V*i7Iq3(UWzuJt4 z4H3MATh+so6K|t&H@V+j>^*PixmOuiMS55Ifm*GOov!866~AOjzP&@)IYmR1it+Hf z#G_3UP7wG_aW2ZVE;oJvz01fG$I8Yv6$V#*oEHQ zhp`%5xYQu3?C(jXcnizR&{Vpywf5m7m>2`<>5YaY2`hZ0+%@`MSUZIY1N=@yGB*LF z3~JMJuIA*|zg66Q{z}Z-w{qTp79yUxUGk_u(Q6w=P)NZ>-OgzdAI=laywY40;wzr0 zcyL(kxw6`TI;BG1u@oghn)-ZAR)0n9uJKVe$U?q9A5nK|dT-QETBcVuNYmVMjP?|S zL1Eoi(I&g2)xF-3G_fx8($bglSngTn&aIi&dZ@bv|wHJu0#Hga7sHlB^!b`vSPy9@P>Tl2; z=dbQk8!2vwli_F2;}$5P+b9b?RFqyK)p!di$@_>#BnXudICs;#5vVM3p+EA%dY=wq zqjxCPnHs15@*3Sa?)C~^!U!-)U@+;H55#EZ`FQnQu!AT8>x}t5c!zAdSvcZthDD+o)=96g9g04s=Fp}1z zY%GCw{=3a|+w7yiLPFlDB`++_431=XbiA%Q>l`cA?91_56v^b(k<6VJ-^K% zlPh)9ZXRIaSP^!7>*o#2`k)nK_+DF?#rG|tX?WRiX)(;a3ELSycJ}qzKhj>un(9iw zA2+%{sjpa?*>^D}m&T-g(j6kRGu9bK+O&6ygJ#K-dca5k`RRDwF3GpmJRQ|>8ca72 zYeEFa)V84z%J5cml721{S#iO^&j3lrE0u@Vagvhv#GN(nj?fkqZeN8ERsB3phI8C^ zJbMXdr?NY#q_3sbXRp{_FUcUz6He2biS0qJz~CGgD@FgLX?weElEU`E%pw;QUs0A$u8zeFH@!it|?(Zz$73A=jUI_!i+H8LwOotN)yU#&?kbdZ?#^Hj4fXEeoUO2={h zK;{V2Aqk(*IgNdMlcw|uFs76afb8pOxwK{dE5MF~LJgZ!41@$KpCrv)#EvAV9?)+6 zk>ciIb^?DIJU-i3ul*v(7>8SztuYKPdZnmrF{to)&3ZQZ4M2%m$i@{6w#zwd@pqWA zP1lPCO%wciwu=dD3*N~5cJw`7?wXE>lSVKLNrkqA7G9Vnm2kt+a=j1F8oM03Z5&xh zotb+42r_P>8~43xukYN?B3`(JG(7a4@ay~=_g~uts;pgjmxTX0XH+YEUaK*_HLT

lZbKh-NrU^E!+zy1Q8HbmC1tGX=Z6 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

W?@s}Hq&>|Ocx7dz%HqFad`OSc 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 literal 0 HcmV?d00001 diff --git a/Creality-Ender3-V2/DWIN_SET/7.ICO b/Creality-Ender3-V2/DWIN_SET/7.ICO new file mode 100755 index 0000000000000000000000000000000000000000..6c6c2cdb46f4dfde54aa709344ec6e694bb59b63 GIT binary patch literal 217989 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 z

R?W>o`?Pao^j2n>r|^^_%v6`MrnFpByMy~BISxdg*GxMtI=-OtOR&C^@f8bq#E zHNE|FyQrKl*VoV0Pob{Kq$I<@O5RjAy-b|7n6DAY-RIA9HL!2thgbKcf>eU>bMF>r z=L%NmIF{=tsN{~(RvPto6@kEX@o&bn8nJ|KQ`&0KbfDwdQ`Zr@X=l)Tfok^9S zPmAZIimq4wWFY2YXWAdG2ej*D4QC@`mSA`iT^#M|!R*16g07E&tQLADpz=2B_)Um0 zod1W%j&1pg`MCcHOA~Tjyk=h~gD%SgOQH~hVm3c!eY340M0!^a=8v~;VYe73}vq=9YKImlWSyjH4B!!R6zQSmA0FM|5a zMd650=#_Cn^FNtO@FM4sz((YmMB;>aLHjx5KZsA5;I}o0<0;{v4KJ5l|1#+%l;g4> zlkGgH+oDeur)Q&bWz7Z6VBG2q8qVn!1p}jye`d%4+0SeufIR3(M&?2upFjkQsBIH~ zR`iTl@?(fc;yH@pI*t8ny2O3XPR$DCzW=VVr#Q_OTGT08)tP3kx`9TqvAs*r*Uvtr zsKHrY)i6ZCIRCDfv1_-okE;eVDp$ZIrDDXNRQ%tM`+NRd`;|cN%Jacztb_e-m7jtU z{vzx7P~L3<<&+hXxln$#bg2muqN1t z=(tREud6KfQZtS&vOMEKn=M`7S|pq7g9Dlx;6Q_GS`^=Fx!HUN_MNpj`7obz~+D-7!6U25^( z@TYgNjP-Y)isgHtX1udv@I}B#H>*;0n5%EIchJvryKk%lT&bdCLaDON5+c{P2Gs&~ z*J;;izI6|?7d^CmJF4X}B&2WHrfI}%_%w?thxH=&ha&BgEAa)GUB;Eek&x*YQ{>p&Q{Rm4=tBjmn~54G5JqVhp350Nd5 z;5djAoJRixxW*OCya2|`bFC(*YvRs{(#+IY(F7r^MK!PKa;&HOG}hj%w?eGj-QOU? z$e@Q1>VXAAU5CP_vZA2oQ;X>{^G&t+2`eDm4N?kmQ?EQRpes+0%hX( z*Y(T;IgzRP<#&;Fe~c3@yCJ+zX8`pJ40QJ&qWB+(HzuA#Ib509&sVoqU#c?>%>l|S zr7^ZpK%-S}^my%iPdBbBFh$u=)=C_PMp9ljLpw%3x*)X1P@rX7a88o-`}~Z2 zf^ueRdU^~s6KUfO8V+=3eo|>PfKzhwd4!pm2KOe2fjyx4#c(bN6u%<6CyQ^z8rKQB zmHTABvB*%>Q`;tlp`Ws8yRGcS0yH^C#VV`0roX+UkFmus*vZPQv$d4SjxX=Qu`#x> z##XIzuC{yNPsb=s#V-fM{X>N}o{KnxM)c$@1n7!Ei?y8RN1kfsk173mO%5j{9i78@ zXY+BSqpwRDo^MF`h!NGYCk)W6BllTTgfh7|^HudnH|$F{fmBZX zC8{>)a4>6FT|>n(_PaT@$yEcHSxpVgCnqaB!#-J3SFBx1Ks~1dtY{V46FeBUVsNaB zk98CX7Yzg;4r_yHW^Zj|ZC!h%k?C;t?wbdWU6PPExditaX73dv2Pyi^droP*RDq4p*pa8GOhei&Id!!He9!O)}qCvDzax##Xd){b>zF9!G+OY*#bGGP{j67C#@-3 zJ1+ul)jtnY^9(vTj5y>5Hd*FhcyeljVq6udi53YQFn<4P4JBj{itNA{i!+oPiwhA% zhg|IM@sxz6fU69SOzrI+jvWHED*O<7+PvIUILEH!G9pRJgF(hs!(LluV4;_2|c@kV@~8fR1ez^mpqu6!4CpVW5zwjZSJtTV7HwB`hRV zUr$a;Mp7&~AvZQKGAT(;SY1k6Urk3PIzA^%L`+0CJ})jPCo)V~P*he^OG_y&I6f*k zKQ1Q*8XXdCWNct;f#2N7?1aCdcca%u_C|A+aA_!8^R2IbOvB zXd4DVG=OkAPT(3PSNuNwWLhSkAP{d3<_RQz!SJq#Qkv$V;d)#MCm)>&9&zCRIq^RI z8}FKl{>%IN>)%OEy;QWim$-m`y0J)IVbn@WzHdudpi^S1rduqVFT)&JU`!sWzskBY zUfH;%OpwAM3?!}AIt;v2ypEub`KYV|X6zKrfc_fpm~Z%snRw3h3UUVJwCsZjWPa}G zX@e!9;JWGcz~rAJdxw>Q0CyGEyV74IHE3d|*IZr)AgTUL! zc--=$Rl6^|KHqsd-G3*tojKdJgUExikV;Xkz{5j?tb@~s*5^zy*~;|CX_*4EUNWk9RrSmYwMC2I&cyO(EW~%Pi_&ErdAUZ ziUi$>2RgvY#$13_CjVTfC;lv(?I2WHg5^X=FrP6@?Sc}TUd05XME7N&bbal68 zUZ@@;d{1)PJ-x<8%jnCPzG%M9;rFUV5QIwG1UT0PKMf79Zc(djQVBH{n|$K$2c19? z8Gio{(d)W^RF03Y$L%tI=ox$J8{7Uf0NMz5LUjd}4sMMa!}OiLoRjBamI#Fqd5{$? z1<4&e1zuLTCBR%&vo;tp<0w^SwlJ}_fQlii+c`9()64a^%R;ulILOUzxqHivp@Wy$ z*wN6`*2TT6zQ3-uudAVto|ca2;>zHjhKY!^gNDfb_NMaS-tLe5oPoZanLC4gM}Kwk z0VzRscmQiI8h;II6+J@}6L@T^Ex10KkDQmastcle#9~2CE)q*S8&_OqHAHAN61>^!?ZZh6V_DE4tH@t2>gBO~wT)pFMK~z#@4=3KFkC;_ zpxMRgj?p1!+Yt%X$}!0ZXR1czLi|i*X#ve%5_}j33A=T}Ckj=w`w`0*U8Rfgtx&Dj zG1!RBM6gLovUXSXZ<=zMh4_J(?s|`F@bk-$VRQqBjpS&4{cY}R{(a|~5`i0mR#J;6 zA>ckY=p#{OT)5gE~+uH&HU3&-_97u&0fYgE+RiM zx`(Yj40Y(Fv35~$JIaw${oNs@Aq^*0oEI$7NJ3rDKv^w{WoT_140KXoBpN8>W$hg! z0dcr4cb0i^Z|QY!m4bScg^Qe)vd6yR`T&+y?BJBDe!hU2sGa+f49%4e^^y~er7PH` znIOF9Y~|Q0?Z!@kp|)x2y(W^BsNcfr$XH^r{(-ncD63$mhK2$0Ec@*8Q8X+=)BW{cvXwxni1Za6WE35Eq(u3>RKu$fH{CX zSt0UG{y;cD>|KXDMl6&rw}Ua-P@n|BbF(k12^2u2xdqZ}_}XHxIM*GZ4Z=aC3KmJq z#B0nNM^7<4(=Y}EUcgVctX5UMEV5#O#6JJr7W6PI_wEscl^A{vS1Wyh>g<;yi+)|7 zd~id5lNA$Dw&~0cW)o-x+nIX<)}>6E)ge_9IM_I;V+CgIMELnnWaUs$yJ_SwbQ& zWtRNrl_8H90u~SJY;oXu24w~ofEsc9?dqQG?tuuygwVGQ6VSUd5i^H4N%%9I{UWgI z>WyDkjp{;sU;bJnj!A;cGPCTCk(18l>AE>SGukCXTG1pYvd-nN-?c>21h*Ns!9dwL zkSDmF?49g+!>)K|y3QLh9idb;7D>bFkTvu#zO4=v$FJS&l?OO;RT2>1dqg z?t*}l8kCk81Lu&*qt(08K*iWGvbJNwyV=FYR^7^1DH}IV=v?nw?o8!J?cNZ^1h@;#2LL{zX<(*nW5IbS8{$lZSTmSQ)ZQT{XLCp~?uWkPlNDv@aI zlWy^8o(O*Hasc82a)=n>?tXfu9Ac=sjg1A-q}Y@76Vtolqt^L{t%cYl=d(BxKqM+m z%tMJXL@Yl-;44PrDX}n}9Y_>7P2jjghtpVcB}7RqtRv|PKJz|OPEnC9Lt87oY!a&& zm>b+PXeoGSaqb(#i~|3R15dDfY*&zHXKS65nq!Ic%F^XuA(WDUm`PIM@5;!`;wPD% zw2m}q^i`G4W37(f3f$K(s6jQoNq(mS#J>;4?%8L)t0ufvB)droq{%!vYNoo%z|r~N zI|GblL3PNdT&dU3#`C5pak%-3VUy)hb$JR3{30cX{GN=2k&2!C=;ue_1TTjNEYcg- zGtz_r^P>NG2xOdR2?~mIXp%u@41VX82*Z&IQJZP9l%*n;Y9LB4FCjHLPb1e$zOraM z$yxR#DI*~&AsQ>*N`T2f%HY4lu->S*l~5fotE1SV)CbvM&!L(AVMC3HVd+c&&fp*9 zPims@3T9`Ge1!aq0;6YjX>)OEadvi!fR3Z{bAxho1fC^(1$Ffi|Ehr>dm8{OWNCH%+(YQL- zAyX`&8K&OB!p*JA)u0Rn;FH6U6XOySWd23r_xPOCfOFq~b-(h2YLS3yl6r`feUJHP ztaF3%7uOL1YT1oo9g~njbN*nMd5qyV7IhfH+&4;5P9cxgBtqHT(8Ri|VN#nqO(e5I zEju+lASpONMO;lSJ1jd@K_w$p-99?^J1!{=2?TZ2G)vGnutHF3Y~&x~3mFSw3d~;TKre0rO&)i-D3n z)LOpS$lG1oT%*3Hwkx76+{W6&EEw@O)^VnB(%-_`Uc3~xqPV3_ zWARX+GSS}G%2cTt_UQhZ9pZ5K?&JS*i9CRaoQG&Z$`FSz^y%jAW`j2g3=#$R3eso< z5+0Xjy&iscV~VFJ>j(D&3=toKarX-|HYuwhj6hU4FSbDUD19vx+S;S=0HK{AAA+5Rm2EtuXqz+r=j5Fh_gsgJlA9mO6|+|9k>pzL-^ZgM!zG~wWoq?N#3g&d<@9_L%kap@67Y>R6^I>-x4DjAk zpMA%7WqD%g9n1t76$_Gdk^mMcDyCh*Nnc4O!T)!&NUcFnT|mx1%S1jSE~Q1PGCV3( z!ZE=kHz78wjuv5Zh<)BOA}1$j*T=TvnO&4iT$5C1q->R0;o|$)zxM!kX1o-27=xSs zyk-QCb?}vKa&-vz{run(278nCV|^OJ=e%yAK&Ixf0sI96`hO1VTz`!R?00_?LfGt8 z-pQSY#<|Tu9JkfnsJ=E#>OZ~2G|bT&J8g5FC_t)i!oVibd9$m2y{f*;P*-0i&lASA zZ?vFmwnyb%bb2jJpcgpRi1`GQ>If$12r0GcxVD+ zyH;g~+ZUe!n$r&BfC@HRmT6#XOA@4`&X@8#l~GfVM_Q91!g$Wd(1G_WO{z-6$*#&b zS0wM_nKVl@$}GLaA~iKmNLM8xQX*R}EGnU>%qTCqm+m(bAckJFH1p_w?01!JduRRR zf%R(*8EGtS8U7k~1^kb6{)L(hXAWte?euYeOV^iTA8wxIB-hV|l5;2zBkYY6xr};1&Px zmg4~x48q>pxO;wor*oD{M~iJysnmP(R9HXAI<&K%BojAPGQmGe-Kg6;DAYg7#hKV9; z1jz`AE}KFcFgUDCh-9C>-+MXhg7 z$g~rSw%%ljquJ?~r-Jx0Ueu{KTT5P!TuetlIweQ8F}FQNE>}~|RA0$%CFm>k%S1d7 zJuo^h|KB)6PnXeFum(XqF5xsj@inM3^`7nUw!(IX%(xcp)1eB;3X-hQXx8SL_z?fn zh&Kl1JZSn?ZCxIKP#rdW??4e%2$V7s^kV4X@9bFX?_2EiV%y4eudoRvEy`<8K10W% zX;W<^Q)@fIEdfu$I0j$Ky=Aef0Lm{NCO^DQay4Vx_uV%SLfB2bpgmZQs{n+Pd6a%r3A2X-0f-+1|9~C}Mq~<}VR{$+7X$>?1{fWC z-->)2V*7Y$!9K2&&DPJB5e>F2y2I$*+4kM#0h<`%fAehMPxqPQA(kqeis4AU`LhMY-(oJ)s+#N*uYwuO(p(+Z?IqyxEl&_vpD+Gfw)q#U~*yxXP& zMbGV1?JbWb=U$9P=toq188BiMF=VX?VGMH|A5EFTX#8^Y0fGXMGzv_>k^$JKGekT< zJ47QtP1-B0Eh#`TCcj8A%`&ya%({!EkFR9J(d6H)*Qm`ZtxuVvZMUY1k%CNR=JqA+ zj!bxjnM|3v&*OlU2H~9Rc`m34m1z!%ldel)rDvlD0Byw$#bgIrM`cK2lN!(JXI_h( z2+(8{>r>rY?pJ{=C-O!;j7}lyGqXJLXghE~T~Xdbo!msR5Z^tDSD{5*(KbuLGWk1G zndn#U(^`+JCmze(NSq{8rxTqTt{2U1XTAn~%no6ybMt($Dtj^j9TA=a-JAsR(H{Ir zlwgLR5cP@y_A~^8iCmiT$7KuVwmHQ=>$JrJEtle(i56sO45yjDFX|m3A%3#IX_!_Yp*|HC+((6@|A(bZO MT1prgS|0{lk>(*0uK)l5 literal 0 HcmV?d00001 diff --git a/Creality-Ender3-V2/firmwares/firmware-20231205-015843.bin b/Creality-Ender3-V2/firmwares/firmware-20231205-015843.bin new file mode 100755 index 0000000000000000000000000000000000000000..aefae44e67dc3947bb50ca95e956b1e17fe281f2 GIT binary patch literal 170904 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%0AGb^z*h)vQX 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≫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 ST~n2%q~yOTt^esdWB&nlwljMG literal 0 HcmV?d00001 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f8ae2e1 --- /dev/null +++ b/Makefile @@ -0,0 +1,13 @@ +PLATFORMIO_DIR := $(PWD)/.. +PLATFORMIO = nix shell nixpkgs\#platformio --command platformio +MARLIN_CONFIGS_DIR := $(PWD)/../Marlin + +.PHONY: ender3v2 +ender3v2: + cp Creality-Ender3-V2/*.h $(MARLIN_CONFIGS_DIR) + cd $(PLATFORMIO_DIR) &&\ + $(PLATFORMIO) run --target upload --silent -e STM32F103RE_creality ; echo "done" >|"/run/user/1001/ipc" + +.PHONY: help +help: + bat Makefile