From aeb959d4e4e6af50b6beccb3d5ec8e1ada97e0f4 Mon Sep 17 00:00:00 2001 From: Scott Lahteine <github@thinkyhead.com> Date: Tue, 4 Sep 2018 19:27:24 -0500 Subject: [PATCH] AnyCubic LinearPlus delta configs Co-Authored-By: grbd <garlicbready@googlemail.com> --- .../delta/Anycubic/Kossel/Configuration.h | 2115 +++++++++++++++++ .../delta/Anycubic/Kossel/Configuration_adv.h | 1656 +++++++++++++ .../delta/Anycubic/Kossel/README.md | 50 + .../Anycubic/Kossel/images/Version1Probe.jpg | Bin 0 -> 94933 bytes .../Anycubic/Kossel/images/Version2Probe.jpg | Bin 0 -> 51853 bytes 5 files changed, 3821 insertions(+) create mode 100644 Marlin/example_configurations/delta/Anycubic/Kossel/Configuration.h create mode 100644 Marlin/example_configurations/delta/Anycubic/Kossel/Configuration_adv.h create mode 100644 Marlin/example_configurations/delta/Anycubic/Kossel/README.md create mode 100644 Marlin/example_configurations/delta/Anycubic/Kossel/images/Version1Probe.jpg create mode 100644 Marlin/example_configurations/delta/Anycubic/Kossel/images/Version2Probe.jpg diff --git a/Marlin/example_configurations/delta/Anycubic/Kossel/Configuration.h b/Marlin/example_configurations/delta/Anycubic/Kossel/Configuration.h new file mode 100644 index 0000000000..a2a26e5d77 --- /dev/null +++ b/Marlin/example_configurations/delta/Anycubic/Kossel/Configuration.h @@ -0,0 +1,2115 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +/** + * Choose your version: + */ +// normal size or plus? +//#define ANCYUBIC_KOSSEL_PLUS +// Anycubic Probe version 1 or 2 see README.md; 0 for no probe +#define ANYCUBIC_PROBE_VERSION 0 +// Heated Bed: +// 0 ... no heated bed +// 1 ... aluminium heated bed with "BuildTak-like" sticker +// 2 ... ultrabase heated bed +#define ANYCUBIC_KOSSEL_ENABLE_BED 0 + +/** + * 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 + * + */ +#ifndef CONFIGURATION_H +#define CONFIGURATION_H +#define CONFIGURATION_H_VERSION 010109 + +//=========================================================================== +//============================= Getting Started ============================= +//=========================================================================== + +/** + * Here are some standard links for getting your machine calibrated: + * + * http://reprap.org/wiki/Calibration + * http://youtu.be/wAL9d7FgInk + * http://calculator.josefprusa.cz + * http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide + * http://www.thingiverse.com/thing:5573 + * https://sites.google.com/site/repraplogphase/calibration-of-your-reprap + * http://www.thingiverse.com/thing:298812 + */ + +//=========================================================================== +//============================= DELTA Printer =============================== +//=========================================================================== +// For a Delta printer start with one of the configuration files in the +// example_configurations/delta directory and customize for your machine. +// + +//=========================================================================== +//============================= SCARA Printer =============================== +//=========================================================================== +// For a SCARA printer start with the configuration files in +// example_configurations/SCARA and customize for your machine. +// + +// @section info + +// User-specified version info of this build to display in [Pronterface, etc] terminal window during +// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this +// build by the user have been successfully uploaded into firmware. +#define STRING_CONFIG_H_AUTHOR "@brandstaetter, @grbd" // Who made the changes. +#define SHOW_BOOTSCREEN +#define STRING_SPLASH_LINE1 SHORT_BUILD_VERSION // will be shown during bootup in line 1 +#define STRING_SPLASH_LINE2 "Welcome to ANYCUBIC" // will be shown during bootup in line 2 + +/** + * *** VENDORS PLEASE READ *** + * + * Marlin allows you to add a custom boot image for Graphical LCDs. + * With this option Marlin will first show your custom screen followed + * by the standard Marlin logo with version number and web URL. + * + * We encourage you to take advantage of this new feature and we also + * respectfully request that you retain the unmodified Marlin boot screen. + */ + +// Enable to show the bitmap in Marlin/_Bootscreen.h on startup. +//#define SHOW_CUSTOM_BOOTSCREEN + +// Enable to show the bitmap in Marlin/_Statusscreen.h on the status screen. +//#define CUSTOM_STATUS_SCREEN_IMAGE + +// @section machine + +/** + * Select the serial port on the board to use for communication with the host. + * This allows the connection of wireless adapters (for instance) to non-default port pins. + * Serial port 0 is always used by the Arduino bootloader regardless of this setting. + * + * :[0, 1, 2, 3, 4, 5, 6, 7] + */ +#define SERIAL_PORT 0 + +/** + * This setting determines the communication speed of the printer. + * + * 250000 works in most cases, but you might try a lower speed if + * you commonly experience drop-outs during host printing. + * You may try up to 1000000 to speed up SD file transfer. + * + * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] + */ +#define BAUDRATE 115200 + +// Enable the Bluetooth serial interface on AT90USB devices +//#define BLUETOOTH + +// The following define selects which electronics board you have. +// Please choose the name from boards.h that matches your setup +#ifndef MOTHERBOARD + #define MOTHERBOARD BOARD_TRIGORILLA_14 +#endif + +// Optional custom name for your RepStrap or other custom machine +// Displayed in the LCD "Ready" message +#define CUSTOM_MACHINE_NAME "ANYCUBIC Kossel" + +// Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines) +// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4) +//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000" + +// @section extruder + +// This defines the number of extruders +// :[1, 2, 3, 4, 5] +#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 + +/** + * Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants. + * + * This device allows one stepper driver on a control board to drive + * two to eight stepper motors, one at a time, in a manner suitable + * for extruders. + * + * This option only allows the multiplexer to switch on tool-change. + * Additional options to configure custom E moves are pending. + */ +//#define MK2_MULTIPLEXER +#if ENABLED(MK2_MULTIPLEXER) + // 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 steppers + //#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers +#endif + +// 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 of the nozzles +//#define SWITCHING_NOZZLE +#if ENABLED(SWITCHING_NOZZLE) + #define SWITCHING_NOZZLE_SERVO_NR 0 + #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1 + //#define HOTEND_OFFSET_Z { 0.0, 0.0 } +#endif + +/** + * Two separate X-carriages with extruders that connect to a moving part + * via a magnetic docking mechanism. Requires SOL1_PIN and SOL2_PIN. + */ +//#define PARKING_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 // Delay (ms) for magnetic field. No delay if 0 or not defined. + #define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders + #define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder + #define PARKING_EXTRUDER_SECURITY_RAISE 5 // Z-raise before parking + #define HOTEND_OFFSET_Z { 0.0, 1.3 } // Z-offsets of the two hotends. The first must be 0. +#endif + +/** + * "Mixing Extruder" + * - Adds a new code, M165, to set the current mix factors. + * - Extends the stepping routines to move multiple steppers in proportion to the mix. + * - Optional support for Repetier Firmware M163, M164, and virtual extruder. + * - This implementation supports only a single extruder. + * - Enable DIRECT_MIXING_IN_G1 for 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 +#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} // (in mm) for each extruder, offset of the hotend on the X axis +//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis + +// @section machine + +/** + * Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN + * + * 0 = No Power Switch + * 1 = ATX + * 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC) + * + * :{ 0:'No power switch', 1:'ATX', 2:'X-Box 360' } + */ +#define POWER_SUPPLY 0 + +#if POWER_SUPPLY > 0 + // Enable this option to leave the PSU off at startup. + // Power to steppers and heaters will need to be turned on with M80. + //#define PS_DEFAULT_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 POWER_TIMEOUT 30 + #endif + +#endif + +// @section temperature + +//=========================================================================== +//============================= Thermal Settings ============================ +//=========================================================================== + +/** + * --NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table + * + * Temperature sensors available: + * + * -4 : thermocouple with AD8495 + * -3 : thermocouple with MAX31855 (only for sensor 0) + * -2 : thermocouple with MAX6675 (only for sensor 0) + * -1 : thermocouple with AD595 + * 0 : not used + * 1 : 100k thermistor - best choice for EPCOS 100k (4.7k pullup) + * 2 : 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup) + * 3 : Mendel-parts thermistor (4.7k pullup) + * 4 : 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !! + * 5 : 100K thermistor - ATC Semitec 104GT-2/104NT-4-R025H42G (Used in ParCan & J-Head) (4.7k pullup) + * 501 : 100K Zonestar (Tronxy X3A) Thermistor + * 6 : 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup) + * 7 : 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup) + * 71 : 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup) + * 8 : 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) + * 9 : 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup) + * 10 : 100k RS thermistor 198-961 (4.7k pullup) + * 11 : 100k beta 3950 1% thermistor (4.7k pullup) + * 12 : 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed) + * 13 : 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE" + * 15 : 100k thermistor calibration for JGAurora A5 hotend + * 20 : the PT100 circuit found in the Ultimainboard V2.x + * 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950 + * 66 : 4.7M High Temperature thermistor from Dyze Design + * 70 : the 100K thermistor found in the bq Hephestos 2 + * 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor + * + * 1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k. + * (but gives greater accuracy and more stable PID) + * 51 : 100k thermistor - EPCOS (1k pullup) + * 52 : 200k thermistor - ATC Semitec 204GT-2 (1k pullup) + * 55 : 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup) + * + * 1047 : Pt1000 with 4k7 pullup + * 1010 : Pt1000 with 1k pullup (non standard) + * 147 : Pt100 with 4k7 pullup + * 110 : Pt100 with 1k pullup (non standard) + * + * 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. + * + * :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" } + */ +#define TEMP_SENSOR_0 5 +#define TEMP_SENSOR_1 0 +#define TEMP_SENSOR_2 0 +#define TEMP_SENSOR_3 0 +#define TEMP_SENSOR_4 0 + +#if ANYCUBIC_KOSSEL_ENABLE_BED > 0 + #define TEMP_SENSOR_BED 5 +#else + #define TEMP_SENSOR_BED 0 +#endif + +#define TEMP_SENSOR_CHAMBER 0 + +// Dummy thermistor constant temperature readings, for use with 998 and 999 +#define DUMMY_THERMISTOR_998_VALUE 25 +#define DUMMY_THERMISTOR_999_VALUE 100 + +// Use temp sensor 1 as a redundant sensor with sensor 0. If the readings +// from the two sensors differ too much the print will be aborted. +//#define TEMP_SENSOR_1_AS_REDUNDANT +#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 + +// Extruder temperature must be close to target for this long before M109 returns success +#define TEMP_RESIDENCY_TIME 10 // (seconds) +#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + +// Bed temperature must be close to target for this long before M190 returns success +#define TEMP_BED_RESIDENCY_TIME 10 // (seconds) +#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one +#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early. + +// The minimal temperature defines the temperature below which the heater will not be enabled It is used +// to check that the wiring to the thermistor is not broken. +// Otherwise this would lead to the heater being powered on all the time. +#define HEATER_0_MINTEMP 5 +#define HEATER_1_MINTEMP 5 +#define HEATER_2_MINTEMP 5 +#define HEATER_3_MINTEMP 5 +#define HEATER_4_MINTEMP 5 +#define BED_MINTEMP 5 + +// When temperature exceeds max temp, your heater will be switched off. +// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure! +// You should use MINTEMP for thermistor short/failure protection. +#define HEATER_0_MAXTEMP 275 +#define HEATER_1_MAXTEMP 275 +#define HEATER_2_MAXTEMP 275 +#define HEATER_3_MAXTEMP 275 +#define HEATER_4_MAXTEMP 275 +#define BED_MAXTEMP 120 + +//=========================================================================== +//============================= PID Settings ================================ +//=========================================================================== +// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning + +// Comment the following line to disable PID and enable bang-bang. +#define PIDTEMP +#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_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result. + //#define PID_DEBUG // Sends debug data to the serial port. + //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX + //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay + //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders) + // Set/get with gcode: M301 E[extruder number, 0-2] + #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature + // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. + + // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it + + // Ultimaker + //#define DEFAULT_Kp 22.2 + //#define DEFAULT_Ki 1.08 + //#define DEFAULT_Kd 114 + + // MakerGear + //#define DEFAULT_Kp 7.0 + //#define DEFAULT_Ki 0.1 + //#define DEFAULT_Kd 12 + + // Mendel Parts V9 on 12V + //#define DEFAULT_Kp 63.0 + //#define DEFAULT_Ki 2.25 + //#define DEFAULT_Kd 440 + + // Anycubic Kossel - run 'M106 S255' & 'M303 E0 C10 S200' + #define DEFAULT_Kp 22.36 + #define DEFAULT_Ki 1.63 + #define DEFAULT_Kd 76.48 + +#endif // PIDTEMP + +//=========================================================================== +//============================= 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. + */ +#if ANYCUBIC_KOSSEL_ENABLE_BED > 0 + #define PIDTEMPBED +#endif +//#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) + + // Anycubic Kossel + // this is for the aluminium bed with a BuildTak-like sticker on it + // from pid autotune. "M303 E-1 C8 S60" to run autotune on the bed at 60 degreesC for 8 cycles + #if ANYCUBIC_KOSSEL_ENABLE_BED == 1 + #define DEFAULT_bedKp 374.03 + #define DEFAULT_bedKi 72.47 + #define DEFAULT_bedKd 482.59 + #elif ANYCUBIC_KOSSEL_ENABLE_BED == 2 + // TODO get real PID values for Ultrabase Bed + #define DEFAULT_bedKp 374.03 + #define DEFAULT_bedKi 72.47 + #define DEFAULT_bedKd 482.59 + #endif + + //#define PID_BED_DEBUG // Sends debug data to the serial port. + + //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) + //from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10) + //#define DEFAULT_bedKp 10.00 + //#define DEFAULT_bedKi .023 + //#define DEFAULT_bedKd 305.4 + + //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) + //from pidautotune + //#define DEFAULT_bedKp 97.1 + //#define DEFAULT_bedKi 1.41 + //#define DEFAULT_bedKd 1675.16 + + // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. +#endif // PIDTEMPBED + +// @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 170 + +/** + * 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 750 + +//=========================================================================== +//======================== 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 + +//=========================================================================== +//============================= Mechanical Settings ========================= +//=========================================================================== + +// @section machine + +// Uncomment one of these options to enable CoreXY, CoreXZ, or CoreYZ kinematics +// either in the usual order or reversed +//#define COREXY +//#define COREXZ +//#define COREYZ +//#define COREYX +//#define COREZX +//#define COREZY + +//=========================================================================== +//============================== Delta Settings ============================= +//=========================================================================== +// Enable DELTA kinematics and most of the default configuration for Deltas +#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 80 + + // Convert feedrates to apply to the Effector instead of the Carriages + //#define DELTA_FEEDRATE_SCALING + + // 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) + #if ANYCUBIC_PROBE_VERSION > 0 + #define DELTA_AUTO_CALIBRATION + #endif + + // 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 ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU) + // Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS for non-eccentric probes + #define DELTA_CALIBRATION_RADIUS DELTA_PRINTABLE_RADIUS - MIN_PROBE_EDGE // mm + // Set the steprate for papertest probing + #define PROBE_MANUALLY_STEP 0.05 // mm + #endif + + + #if ENABLED(ANCYUBIC_KOSSEL_PLUS) + // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). + #define DELTA_PRINTABLE_RADIUS 116.0 // mm + // Center-to-center distance of the holes in the diagonal push rods. + #define DELTA_DIAGONAL_ROD 271.5 // mm + // Horizontal offset from middle of printer to smooth rod center. + #define DELTA_SMOOTH_ROD_OFFSET 186 // mm + // Horizontal offset of the universal joints on the end effector. + #define DELTA_EFFECTOR_OFFSET 31 // mm + // Horizontal offset of the universal joints on the carriages. + #define DELTA_CARRIAGE_OFFSET 20.6 // mm + // Horizontal distance bridged by diagonal push rods when effector is centered. + #define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-(DELTA_EFFECTOR_OFFSET)-(DELTA_CARRIAGE_OFFSET)) //mm Get this value from auto calibrate + #else + // Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). + #define DELTA_PRINTABLE_RADIUS 90.0 // mm + // Center-to-center distance of the holes in the diagonal push rods. + #define DELTA_DIAGONAL_ROD 218.0 // mm + // Horizontal distance bridged by diagonal push rods when effector is centered. + #define DELTA_RADIUS 97.0 //mm Get this value from auto calibrate + #endif + + // height from z=0 to home position + #define DELTA_HEIGHT 320.00 // get this value from auto calibrate + + #define DELTA_ENDSTOP_ADJ { 0.0, 0.0, 0.0 } // get these from 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 auto calibrate + + // delta radius and diaginal rod adjustments measured in 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 + +//=========================================================================== +//============================== 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 +#if ANYCUBIC_PROBE_VERSION > 0 + #define USE_ZMIN_PLUG // a Z probe +#endif +#define USE_XMAX_PLUG +#define USE_YMAX_PLUG +#define USE_ZMAX_PLUG + +// Enable pullup for all endstops to prevent a floating state +#define ENDSTOPPULLUPS +#if DISABLED(ENDSTOPPULLUPS) + // Disable ENDSTOPPULLUPS to set pullups individually + //#define ENDSTOPPULLUP_XMAX + //#define ENDSTOPPULLUP_YMAX + //#define ENDSTOPPULLUP_ZMAX + //#define ENDSTOPPULLUP_XMIN + //#define ENDSTOPPULLUP_YMIN + //#define ENDSTOPPULLUP_ZMIN + //#define ENDSTOPPULLUP_ZMIN_PROBE +#endif + +// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup). +#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. +#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. +#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop. +#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. +#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. +#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop. +#define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the probe. + +/** + * 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. + * + * A4988 is assumed for unspecified drivers. + * + * Options: A4988, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100, + * TMC2130, TMC2130_STANDALONE, TMC2208, TMC2208_STANDALONE, + * TMC26X, TMC26X_STANDALONE, TMC2660, TMC2660_STANDALONE, + * TMC5130, TMC5130_STANDALONE + * :['A4988', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE'] + */ +//#define X_DRIVER_TYPE A4988 +//#define Y_DRIVER_TYPE A4988 +//#define Z_DRIVER_TYPE A4988 +//#define X2_DRIVER_TYPE A4988 +//#define Y2_DRIVER_TYPE A4988 +//#define Z2_DRIVER_TYPE A4988 +//#define E0_DRIVER_TYPE A4988 +//#define E1_DRIVER_TYPE A4988 +//#define E2_DRIVER_TYPE A4988 +//#define E3_DRIVER_TYPE A4988 +//#define E4_DRIVER_TYPE A4988 + +// 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 Filter + * + * Enable this option if endstops falsely trigger due to noise. + * NOTE: Enabling this feature means adds an error of +/-0.2mm, so homing + * will end up at a slightly different position on each G28. This will also + * reduce accuracy of some bed probes. + * For mechanical switches, the better approach to reduce noise is to install + * a 100 nanofarads ceramic capacitor in parallel with the switch, making it + * essentially noise-proof without sacrificing accuracy. + * This option also increases MCU load when endstops or the probe are enabled. + * So this is not recommended. USE AT YOUR OWN RISK. + * (This feature is not required for common micro-switches mounted on PCBs + * based on the Makerbot design, since they already include the 100nF capacitor.) + */ +//#define ENDSTOP_NOISE_FILTER + +//============================================================================= +//============================== Movement Settings ============================ +//============================================================================= +// @section motion + +// delta speeds must be the same on xyz +/** + * 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, E0 [, E1[, E2[, E3[, E4]]]] + */ +// variables to calculate steps +#define XYZ_FULL_STEPS_PER_ROTATION 200 +#define XYZ_MICROSTEPS 16 +#define XYZ_BELT_PITCH 2 +#define XYZ_PULLEY_TEETH 20 + +// delta speeds must be the same on xyz +#define DEFAULT_XYZ_STEPS_PER_UNIT ((XYZ_FULL_STEPS_PER_ROTATION) * (XYZ_MICROSTEPS) / double(XYZ_BELT_PITCH) / double(XYZ_PULLEY_TEETH)) // 80 +#define DEFAULT_AXIS_STEPS_PER_UNIT { DEFAULT_XYZ_STEPS_PER_UNIT, DEFAULT_XYZ_STEPS_PER_UNIT, DEFAULT_XYZ_STEPS_PER_UNIT, 96 } // default steps per unit for Kossel (GT2, 20 tooth) + +/** + * Default Max Feed Rate (mm/s) + * Override with M203 + * X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]] + */ +#define DEFAULT_MAX_FEEDRATE { 100, 100, 100, 100} + +/** + * Default Max Acceleration (change/s) change = mm/s + * (Maximum start speed for accelerated moves) + * Override with M201 + * X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]] + */ +#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 3000, 3000 } + +/** + * Default Acceleration (change/s) change = mm/s + * Override with M204 + * + * M204 P Acceleration + * M204 R Retract Acceleration + * M204 T Travel Acceleration + */ +#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E acceleration for printing moves +#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts +#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves + +/** + * Default Jerk (mm/s) + * Override with M205 X Y Z E + * + * "Jerk" specifies the minimum speed change that requires acceleration. + * When changing speed and direction, if the difference is less than the + * value set here, it may happen instantaneously. + */ +#define DEFAULT_XJERK 5.0 +#define DEFAULT_YJERK DEFAULT_XJERK +#define DEFAULT_ZJERK DEFAULT_XJERK // Must be same as XY for delta +#define DEFAULT_EJERK DEFAULT_XJERK + +/** + * 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 http://marlinfw.org/docs/configuration/probes.html +// + +/** + * Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN + * + * Enable this option for a probe connected to the Z Min endstop pin. + */ +#if ANYCUBIC_PROBE_VERSION > 0 + #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN +#endif + +/** + * Z_MIN_PROBE_ENDSTOP + * + * Enable this option for a probe connected to any pin except Z-Min. + * (By default Marlin assumes the Z-Max endstop pin.) + * To use a custom Z Probe pin, set Z_MIN_PROBE_PIN below. + * + * - 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. + * + * WARNING: Setting the wrong pin may have unexpected and potentially + * disastrous consequences. Use with caution and do your homework. + * + */ +//#define Z_MIN_PROBE_ENDSTOP + +/** + * 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. + */ +#if ANYCUBIC_PROBE_VERSION == 0 + #define PROBE_MANUALLY + #define MANUAL_PROBE_START_Z 1.5 +#endif + +/** + * A Fix-Mounted Probe either doesn't deploy or needs manual deployment. + * (e.g., an inductive probe or a nozzle-based probe-switch.) + */ +#if ANYCUBIC_PROBE_VERSION > 0 + #define FIX_MOUNTED_PROBE +#endif + +/** + * Z Servo Probe, such as an endstop switch on a rotating arm. + */ +//#define Z_PROBE_SERVO_NR 0 // Defaults to SERVO 0 connector. +//#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 +#if ENABLED(BLTOUCH) + //#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed +#endif + +/** + * Enable one or more of the following if probing seems unreliable. + * Heaters and/or fans can be disabled during probing to minimize electrical + * noise. A delay can also be added to allow noise and vibration to settle. + * These options are most useful for the BLTouch probe, but may also improve + * readings with inductive probes and piezo sensors. + */ +//#define PROBING_HEATERS_OFF // Turn heaters off when probing +#if ENABLED(PROBING_HEATERS_OFF) + //#define WAIT_FOR_BED_HEATER // Wait for bed to heat back up between probes (to improve accuracy) +#endif +//#define PROBING_FANS_OFF // Turn fans off when probing +//#define DELAY_BEFORE_PROBING 200 // (ms) To prevent vibrations from triggering piezo sensors + +// A probe that is deployed and stowed with a solenoid pin (SOL1_PIN) +//#define SOLENOID_PROBE + +// 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. + +// +// For Z_PROBE_ALLEN_KEY see the Delta example configurations. +// + +/** + * Z Probe to nozzle (X,Y) offset, relative to (0, 0). + * X and Y offsets must be integers. + * + * In the following example the X and Y offsets are both positive: + * #define X_PROBE_OFFSET_FROM_EXTRUDER 10 + * #define Y_PROBE_OFFSET_FROM_EXTRUDER 10 + * + * +-- BACK ---+ + * | | + * L | (+) P | R <-- probe (20,20) + * E | | I + * F | (-) N (+) | G <-- nozzle (10,10) + * T | | H + * | (-) | T + * | | + * O-- FRONT --+ + * (0,0) + */ +#define X_PROBE_OFFSET_FROM_EXTRUDER 0 // X offset: -left +right [of the nozzle] +#define Y_PROBE_OFFSET_FROM_EXTRUDER 0 // Y offset: -front +behind [the nozzle] + +#if ANYCUBIC_PROBE_VERSION == 0 + #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle] +#elif ANYCUBIC_PROBE_VERSION == 1 + #define Z_PROBE_OFFSET_FROM_EXTRUDER -19.0 // Z offset: -below +above [the nozzle] +#else + #define Z_PROBE_OFFSET_FROM_EXTRUDER -16.8 // Z offset: -below +above [the nozzle] +#endif + +// Certain types of probes need to stay away from edges +#define MIN_PROBE_EDGE 20 + +// X and Y axis travel speed (mm/m) between probes +#define XY_PROBE_SPEED 6000 + +// Feedrate (mm/m) for the first approach when double-probing (MULTIPLE_PROBING == 2) +#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z + +// Feedrate (mm/m) for the "accurate" probe of each point +#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 3) + +// The number of probes to perform at each point. +// Set to 2 for a fast/slow probe, using the second probe result. +// Set to 3 or more for slow probes, averaging the results. +#define MULTIPLE_PROBING 3 + +/** + * Allen key retractable z-probe as seen on many Kossel delta printers - http://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe + * Deploys by touching z-axis belt. Retracts by pushing the probe down. Uses Z_MIN_PIN. + */ +//#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_X 30.0 + #define Z_PROBE_ALLEN_KEY_DEPLOY_1_Y DELTA_PRINTABLE_RADIUS + #define Z_PROBE_ALLEN_KEY_DEPLOY_1_Z 100.0 + #define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE XY_PROBE_SPEED + + #define Z_PROBE_ALLEN_KEY_DEPLOY_2_X 0.0 + #define Z_PROBE_ALLEN_KEY_DEPLOY_2_Y DELTA_PRINTABLE_RADIUS + #define Z_PROBE_ALLEN_KEY_DEPLOY_2_Z 100.0 + #define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (XY_PROBE_SPEED)/10 + + #define Z_PROBE_ALLEN_KEY_DEPLOY_3_X Z_PROBE_ALLEN_KEY_DEPLOY_2_X * 0.75 + #define Z_PROBE_ALLEN_KEY_DEPLOY_3_Y Z_PROBE_ALLEN_KEY_DEPLOY_2_Y * 0.75 + #define Z_PROBE_ALLEN_KEY_DEPLOY_3_Z Z_PROBE_ALLEN_KEY_DEPLOY_2_Z + #define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE XY_PROBE_SPEED + + #define Z_PROBE_ALLEN_KEY_STOW_1_X -64.0 // Move the probe into position + #define Z_PROBE_ALLEN_KEY_STOW_1_Y 56.0 + #define Z_PROBE_ALLEN_KEY_STOW_1_Z 23.0 + #define Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE XY_PROBE_SPEED + + #define Z_PROBE_ALLEN_KEY_STOW_2_X -64.0 // Push it down + #define Z_PROBE_ALLEN_KEY_STOW_2_Y 56.0 + #define Z_PROBE_ALLEN_KEY_STOW_2_Z 3.0 + #define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (XY_PROBE_SPEED)/10 + + #define Z_PROBE_ALLEN_KEY_STOW_3_X -64.0 // Move it up to clear + #define Z_PROBE_ALLEN_KEY_STOW_3_Y 56.0 + #define Z_PROBE_ALLEN_KEY_STOW_3_Z 50.0 + #define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE XY_PROBE_SPEED + + #define Z_PROBE_ALLEN_KEY_STOW_4_X 0.0 + #define Z_PROBE_ALLEN_KEY_STOW_4_Y 0.0 + #define Z_PROBE_ALLEN_KEY_STOW_4_Z Z_PROBE_ALLEN_KEY_STOW_3_Z + #define Z_PROBE_ALLEN_KEY_STOW_4_FEEDRATE XY_PROBE_SPEED + +#endif // Z_PROBE_ALLEN_KEY + +/** + * Z probes require clearance when deploying, stowing, and moving between + * probe points to avoid hitting the bed and other hardware. + * Servo-mounted probes require extra space for the arm to rotate. + * Inductive probes need space to keep from triggering early. + * + * Use these settings to specify the distance (mm) to raise the probe (or + * lower the bed). The values set here apply over and above any (negative) + * probe Z Offset set with Z_PROBE_OFFSET_FROM_EXTRUDER, M851, or the LCD. + * Only integer values >= 1 are valid here. + * + * Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle. + * But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle. + */ +#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow +#define Z_CLEARANCE_BETWEEN_PROBES 25 // Z Clearance between probe points +#define Z_CLEARANCE_MULTI_PROBE 25 // Z Clearance between multiple probes +#define Z_AFTER_PROBING 30 // 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 -40 +#define Z_PROBE_OFFSET_RANGE_MAX 20 + +// Enable the M48 repeatability test to test probe accuracy +#if ANYCUBIC_PROBE_VERSION > 0 + #define Z_MIN_PROBE_REPEATABILITY_TEST +#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 + +// Disables axis stepper immediately when it's not being used. +// 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 +// Warn on display about possibly reduced accuracy +//#define DISABLE_REDUCED_ACCURACY_WARNING + +// @section extruder + +#define DISABLE_E false // For all extruders +#define DISABLE_INACTIVE_EXTRUDER true // 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 true +#define INVERT_Y_DIR true +#define INVERT_Z_DIR true + +// @section extruder + +// For direct drive extruder v9 set to true, for geared extruder set to false. +#define INVERT_E0_DIR true +#define INVERT_E1_DIR false +#define INVERT_E2_DIR false +#define INVERT_E3_DIR false +#define INVERT_E4_DIR false + +// @section homing + +//#define NO_MOTION_BEFORE_HOMING // Inhibit movement until all axes have been homed + +//#define UNKNOWN_Z_NO_RAISE // Don't raise Z (lower the bed) if Z is "unknown." For beds that fall when Z is powered off. + +//#define Z_HOMING_HEIGHT 4 // (in mm) Minimal z height before homing (G28) for Z clearance above the bed, clamps, ... + // Be sure you have this distance over your Z_MAX_POS in case. + +// Direction of endstops when homing; 1=MAX, -1=MIN +// :[-1,1] +#define X_HOME_DIR 1 // deltas always home to max +#define Y_HOME_DIR 1 +#define Z_HOME_DIR 1 + +// @section machine + +// The size of the print bed +#define X_BED_SIZE ((DELTA_PRINTABLE_RADIUS) * 2) +#define Y_BED_SIZE ((DELTA_PRINTABLE_RADIUS) * 2) + +// Travel limits (mm) after homing, corresponding to endstop positions. +#define X_MIN_POS -(DELTA_PRINTABLE_RADIUS) +#define Y_MIN_POS -(DELTA_PRINTABLE_RADIUS) +#define Z_MIN_POS 0 +#define X_MAX_POS DELTA_PRINTABLE_RADIUS +#define Y_MAX_POS DELTA_PRINTABLE_RADIUS +#define Z_MAX_POS MANUAL_Z_HOME_POS + +/** + * 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 +#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 +#endif + +#if ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(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. + * + * RAMPS-based boards use SERVO3_PIN for the first runout sensor. + * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc. + * By default the firmware assumes HIGH=FILAMENT PRESENT. + */ +//#define FILAMENT_RUNOUT_SENSOR +#if ENABLED(FILAMENT_RUNOUT_SENSOR) + #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. + #define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor. + #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. + #define FILAMENT_RUNOUT_SCRIPT "M600" +#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. + */ +#if ANYCUBIC_PROBE_VERSION == 0 + #define AUTO_BED_LEVELING_3POINT +#else +//#define AUTO_BED_LEVELING_LINEAR + #define AUTO_BED_LEVELING_BILINEAR +//#define AUTO_BED_LEVELING_UBL +//#define MESH_BED_LEVELING +#endif +/** + * Normally G28 leaves leveling disabled on completion. Enable + * this option to have G28 restore the prior leveling state. + */ +#define RESTORE_LEVELING_AFTER_G28 + +/** + * Enable detailed logging of G28, G29, M48, etc. + * Turn on with the command 'M111 S32'. + * NOTE: Requires a lot of PROGMEM! + */ +//#define DEBUG_LEVELING_FEATURE + +#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL) + // Gradually reduce leveling correction until a set height is reached, + // at which point movement will be level to the machine's XY plane. + // The height can be set with M420 Z<height> + //#define ENABLE_LEVELING_FADE_HEIGHT + + // For Cartesian machines, instead of dividing moves on mesh boundaries, + // split up moves into short segments like a Delta. This follows the + // contours of the bed more closely than edge-to-edge straight moves. + #define SEGMENT_LEVELED_MOVES + #define LEVELED_SEGMENT_LENGTH 5.0 // (mm) Length of all segments (except the last one) + + /** + * Enable the G26 Mesh Validation Pattern tool. + */ + //#define G26_MESH_VALIDATION + #if ENABLED(G26_MESH_VALIDATION) + #define MESH_TEST_NOZZLE_SIZE 0.4 // (mm) Diameter of primary nozzle. + #define MESH_TEST_LAYER_HEIGHT 0.2 // (mm) Default layer height for the G26 Mesh Validation Tool. + #define MESH_TEST_HOTEND_TEMP 205.0 // (°C) Default nozzle temperature for the G26 Mesh Validation Tool. + #define MESH_TEST_BED_TEMP 60.0 // (°C) Default bed temperature for the G26 Mesh Validation Tool. + #endif + +#endif + +#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR) + + // Set the number of grid points per dimension. + // Works best with 5 or more points in each dimension. + #define GRID_MAX_POINTS_X 9 + #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X + + // Set the boundaries for probing (where the probe can reach). + #define LEFT_PROBE_BED_POSITION -(DELTA_PRINTABLE_RADIUS -(MIN_PROBE_EDGE)) + #define RIGHT_PROBE_BED_POSITION DELTA_PRINTABLE_RADIUS -(MIN_PROBE_EDGE) + #define FRONT_PROBE_BED_POSITION -(DELTA_PRINTABLE_RADIUS -(MIN_PROBE_EDGE)) + #define BACK_PROBE_BED_POSITION DELTA_PRINTABLE_RADIUS -(MIN_PROBE_EDGE) + + // 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_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. + +#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 + +/** + * Points to probe for all 3-point Leveling procedures. + * Override if the automatically selected points are inadequate. + */ +#if ENABLED(AUTO_BED_LEVELING_3POINT) || ENABLED(AUTO_BED_LEVELING_UBL) + #define PROBE_PT_1_X -40 + #define PROBE_PT_1_Y 60 + #define PROBE_PT_2_X 40 + #define PROBE_PT_2_Y 60 + #define PROBE_PT_3_X 0 + #define PROBE_PT_3_Y -70 +#endif + +/** + * 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 MBL_Z_STEP 0.05 // Step size while manually probing Z axis. + #define LCD_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment +#endif + +// Add a menu item to move between bed corners for manual bed adjustment +//#define LEVEL_BED_CORNERS + +#if ENABLED(LEVEL_BED_CORNERS) + #define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling + //#define LEVEL_CENTER_TOO // Move to the center after the last corner +#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 DELTA_HEIGHT // Distance between the nozzle to printbed after homing + +// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area. +// +// With this feature enabled: +// +// - Allow Z homing only after X and Y homing AND stepper drivers still enabled. +// - If stepper drivers time out, it will need X and Y homing again before Z homing. +// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28). +// - Prevent Z homing when the Z probe is outside bed area. +// +//#define Z_SAFE_HOMING + +#if ENABLED(Z_SAFE_HOMING) + #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2) // X point for Z homing when homing all axes (G28). + #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2) // Y point for Z homing when homing all axes (G28). +#endif + +// Delta only homes to Z +#define HOMING_FEEDRATE_Z (100*60) + +// @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 +// +// The microcontroller can store settings in the EEPROM, e.g. max velocity... +// M500 - stores parameters in EEPROM +// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). +// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to. +// +#define EEPROM_SETTINGS // Enable for M500 and M501 commands +//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release! +#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM. + +// +// 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 + +// +// M100 Free Memory Watcher +// +//#define M100_FREE_MEMORY_WATCHER // Add M100 (Free Memory Watcher) to debug memory usage + +// +// G20/G21 Inch mode support +// +//#define INCH_MODE_SUPPORT + +// +// M149 Set temperature units support +// +//#define TEMPERATURE_UNITS_SUPPORT + +// @section temperature + +// Preheat Constants +#define PREHEAT_1_TEMP_HOTEND 190 +#define PREHEAT_1_TEMP_BED 60 +#define PREHEAT_1_FAN_SPEED 255 // Value from 0 to 255 + +#define PREHEAT_2_TEMP_HOTEND 240 +#define PREHEAT_2_TEMP_BED 100 +#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 } + #define NOZZLE_PARK_POINT { 0, 0, 20 } + #define NOZZLE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis) + #define NOZZLE_PARK_Z_FEEDRATE 100 // Z axis feedrate in mm/s (not used for delta printers) +#endif + +/** + * Clean Nozzle Feature -- EXPERIMENTAL + * + * Adds the G12 command to perform a nozzle cleaning process. + * + * Parameters: + * P Pattern + * S Strokes / Repetitions + * T Triangles (P1 only) + * + * Patterns: + * P0 Straight line (default). This process requires a sponge type material + * at a fixed bed location. "S" specifies strokes (i.e. back-forth motions) + * between the start / end points. + * + * P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the + * number of zig-zag triangles to do. "S" defines the number of strokes. + * Zig-zags are done in whichever is the narrower dimension. + * For example, "G12 P1 S1 T3" will execute: + * + * -- + * | (X0, Y1) | /\ /\ /\ | (X1, Y1) + * | | / \ / \ / \ | + * A | | / \ / \ / \ | + * | | / \ / \ / \ | + * | (X0, Y0) | / \/ \/ \ | (X1, Y0) + * -- +--------------------------------+ + * |________|_________|_________| + * T1 T2 T3 + * + * P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE. + * "R" specifies the radius. "S" specifies the stroke count. + * Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT. + * + * Caveats: The ending Z should be the same as starting Z. + * Attention: EXPERIMENTAL. G-code arguments may change. + * + */ +//#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 as { X, Y, Z } + #define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)} + #define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)} + + // Circular pattern radius + #define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5 + // Circular pattern circle fragments number + #define NOZZLE_CLEAN_CIRCLE_FN 10 + // Middle point of circle + #define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT + + // Moves the nozzle to the initial position + #define NOZZLE_CLEAN_GOBACK +#endif + +/** + * Print Job Timer + * + * Automatically start and stop the print job timer on M104/M109/M190. + * + * M104 (hotend, no wait) - high temp = none, low temp = stop timer + * M109 (hotend, wait) - high temp = start timer, low temp = stop timer + * M190 (bed, wait) - high temp = start timer, low temp = none + * + * The timer can also be controlled with the following commands: + * + * M75 - Start the print job timer + * M76 - Pause the print job timer + * M77 - Stop the print job timer + */ +#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 + +//============================================================================= +//============================= LCD and SD support ============================ +//============================================================================= + +// @section lcd + +/** + * LCD LANGUAGE + * + * Select the language to display on the LCD. These languages are available: + * + * en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, es_utf8, + * eu, fi, fr, fr_utf8, gl, hr, it, kana, kana_utf8, nl, pl, pt, + * pt_utf8, pt-br, pt-br_utf8, ru, sk_utf8, tr, uk, zh_CN, zh_TW, test + * + * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'es_utf8':'Spanish (UTF8)', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'fr_utf8':'French (UTF8)', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'sk_utf8':'Slovak (UTF8)', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', 'test':'TEST' } + */ +#define LCD_LANGUAGE en + +/** + * LCD Character Set + * + * Note: This option is NOT applicable to Graphical Displays. + * + * All character-based LCDs provide ASCII plus one of these + * language extensions: + * + * - JAPANESE ... the most common + * - WESTERN ... with more accented characters + * - CYRILLIC ... for the Russian language + * + * To determine the language extension installed on your controller: + * + * - Compile and upload with LCD_LANGUAGE set to 'test' + * - Click the controller to view the LCD menu + * - The LCD will display Japanese, Western, or Cyrillic text + * + * See http://marlinfw.org/docs/development/lcd_language.html + * + * :['JAPANESE', 'WESTERN', 'CYRILLIC'] + */ +#define DISPLAY_CHARSET_HD44780 JAPANESE + +/** + * SD CARD + * + * SD Card support is disabled by default. If your controller has an SD slot, + * you must uncomment the following option or it won't work. + * + */ +#define SDSUPPORT + +/** + * SD CARD: SPI SPEED + * + * Enable one of the following items for a slower SPI transfer speed. + * This may be required to resolve "volume init" errors. + */ +//#define SPI_SPEED SPI_HALF_SPEED +//#define SPI_SPEED SPI_QUARTER_SPEED +//#define SPI_SPEED SPI_EIGHTH_SPEED + +/** + * SD CARD: ENABLE CRC + * + * Use CRC checks and retries on the SD communication. + */ +//#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 3 + +// +// 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 + +// +// Individual Axis Homing +// +// Add individual axis homing items (Home X, Home Y, and Home Z) to the LCD menu. +// +//#define INDIVIDUAL_AXIS_HOMING_MENU + +// +// 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<frequency Hz> P<duration ms> +// +//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 2 +//#define LCD_FEEDBACK_FREQUENCY_HZ 5000 + +//============================================================================= +//======================== LCD / Controller Selection ========================= +//======================== (Character-based LCDs) ========================= +//============================================================================= + +// +// RepRapDiscount Smart Controller. +// http://reprap.org/wiki/RepRapDiscount_Smart_Controller +// +// Note: Usually sold with a white PCB. +// +#define REPRAP_DISCOUNT_SMART_CONTROLLER + +// +// ULTIMAKER Controller. +// +//#define ULTIMAKERCONTROLLER + +// +// ULTIPANEL as seen on Thingiverse. +// +//#define ULTIPANEL + +// +// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3) +// http://reprap.org/wiki/PanelOne +// +//#define PANEL_ONE + +// +// GADGETS3D G3D LCD/SD Controller +// http://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/Micromake-Makeboard-3D-Printer-Parts-3D-Printer-Mini-Display-1602-Mini-Controller-Compatible-with-Ramps-1/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: http://reprap.org/wiki/SAV_3D_LCD +// +//#define SAV_3DLCD + +//============================================================================= +//======================= 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 +// + +// +// RepRapDiscount FULL GRAPHIC Smart Controller +// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller +// +//#define REPRAP_DISCOUNT_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 +// http://panucatt.com +// +//#define VIKI2 +//#define miniVIKI + +// +// MakerLab Mini Panel with graphic +// controller and SD support - http://reprap.org/wiki/Mini_panel +// +//#define MINIPANEL + +// +// MaKr3d Makr-Panel with graphic controller and SD support. +// http://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 + +// +// 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 + +// +// 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 + +// +// TinyBoy2 128x64 OLED / Encoder Panel +// +//#define OLED_PANEL_TINYBOY2 + +// +// MKS MINI12864 with graphic controller and SD support +// http://reprap.org/wiki/MKS_MINI_12864 +// +//#define MKS_MINI_12864 + +// +// Factory display for Creality CR-10 +// https://www.aliexpress.com/item/Universal-LCD-12864-3D-Printer-Display-Screen-With-Encoder-For-CR-10-CR-7-Model/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 + +// +// ANET and Tronxy Graphical Controller +// +//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6 + // A clone of the RepRapDiscount full graphics display but with + // different pins/wiring (see pins_ANET_10.h). + +// +// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER +// http://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 + +// +// Silvergate GLCD controller +// http://github.com/android444/Silvergate +// +//#define SILVER_GATE_GLCD_CONTROLLER + +//============================================================================= +//============================ Other Controllers ============================ +//============================================================================= + +// +// CONTROLLER TYPE: Standalone / Serial +// + +// +// LCD for Malyan M200 printers. +// +//#define MALYAN_LCD + +// +// CONTROLLER TYPE: Keypad / Add-on +// + +// +// RepRapWorld REPRAPWORLD_KEYPAD v1.1 +// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626 +// +// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key +// is pressed, a value of 10.0 means 10mm per click. +// +//#define REPRAPWORLD_KEYPAD +//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 + +//============================================================================= +//=============================== Extra Features ============================== +//============================================================================= + +// @section extras + +// Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino +//#define FAST_PWM_FAN + +// 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. +#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 + +// M240 Triggers a camera by emulating a Canon RC-1 Remote +// Data from: http://www.doc-diy.net/photo/rc-1_hacked/ +//#define PHOTOGRAPH_PIN 23 + +// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure +//#define SF_ARC_FIX + +// Support for the BariCUDA Paste Extruder +//#define BARICUDA + +// Support for BlinkM/CyzRgb +//#define BLINKM + +// Support for PCA9632 PWM LED driver +//#define PCA9632 + +/** + * RGB LED / LED Strip Control + * + * Enable support for an RGB LED connected to 5V digital pins, or + * an RGB Strip connected to MOSFETs controlled by digital pins. + * + * Adds the M150 command to set the LED (or LED strip) color. + * If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of + * luminance values can be set from 0 to 255. + * For Neopixel LED an overall brightness parameter is also available. + * + * *** 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 ENABLED(RGB_LED) || ENABLED(RGBW_LED) + #define RGB_LED_R_PIN 34 + #define RGB_LED_G_PIN 43 + #define RGB_LED_B_PIN 35 + #define RGB_LED_W_PIN -1 +#endif + +// Support for Adafruit Neopixel LED driver +//#define NEOPIXEL_LED +#if ENABLED(NEOPIXEL_LED) + #define NEOPIXEL_TYPE NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (defined in Adafruit_NeoPixel.h) + #define NEOPIXEL_PIN 4 // LED driving pin on motherboard 4 => D4 (EXP2-5 on Printrboard) / 30 => PC7 (EXP3-13 on Rumba) + #define NEOPIXEL_PIXELS 30 // Number of LEDs in the strip + #define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once. + #define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255) + //#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup +#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 ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(NEOPIXEL_LED) + #define PRINTER_EVENT_LEDS +#endif + +/** + * R/C SERVO support + * Sponsored by TrinityLabs, Reworked by codexmas + */ + +/** + * Number of servos + * + * For some servo-related options NUM_SERVOS will be set automatically. + * Set this manually if there are extra servos needing manual control. + * Leave undefined or set to 0 to entirely disable the servo subsystem. + */ +//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command + +// Delay (in milliseconds) before the next move will start, to give the servo time to reach its target angle. +// 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 + +#endif // CONFIGURATION_H diff --git a/Marlin/example_configurations/delta/Anycubic/Kossel/Configuration_adv.h b/Marlin/example_configurations/delta/Anycubic/Kossel/Configuration_adv.h new file mode 100644 index 0000000000..9ca6b8355c --- /dev/null +++ b/Marlin/example_configurations/delta/Anycubic/Kossel/Configuration_adv.h @@ -0,0 +1,1656 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +/** + * 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 + * + */ +#ifndef CONFIGURATION_ADV_H +#define CONFIGURATION_ADV_H +#define CONFIGURATION_ADV_H_VERSION 010109 + +// @section temperature + +//=========================================================================== +//=============================Thermal Settings ============================ +//=========================================================================== + +// +// 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 + +#if DISABLED(PIDTEMPBED) + #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control + #if ENABLED(BED_LIMIT_SWITCHING) + #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS + #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 + + /** + * 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 20 // 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 20 // Seconds + #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius + + /** + * As described above, except for the bed (M140/M190/M303). + */ + #define WATCH_BED_TEMP_PERIOD 60 // Seconds + #define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius +#endif + +#if ENABLED(PIDTEMP) + // this adds an experimental additional term to the heating power, proportional to the extrusion speed. + // if Kc is chosen well, the additional required power due to increased melting should be compensated. + //#define PID_EXTRUSION_SCALING + #if ENABLED(PID_EXTRUSION_SCALING) + #define DEFAULT_Kc (100) //heating power=Kc*(e_speed) + #define LPQ_MAX_LEN 50 + #endif +#endif + +/** + * Automatic Temperature: + * The hotend target temperature is calculated by all the buffered lines of gcode. + * The maximum buffered steps/sec of the extruder motor is called "se". + * Start autotemp mode with M109 S<mintemp> B<maxtemp> F<factor> + * The target temperature is set to mintemp+factor*se[steps/sec] and is limited by + * mintemp and maxtemp. Turn this off by executing M109 without F* + * Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp. + * On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode + */ +#define AUTOTEMP +#if ENABLED(AUTOTEMP) + #define AUTOTEMP_OLDWEIGHT 0.98 +#endif + +// Show extra position information in M114 +//#define M114_DETAIL + +// 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 HEATER_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/m + #define EXTRUDER_RUNOUT_EXTRUDE 5 // mm +#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 will turn on automatically whenever any stepper is enabled + * and turn off after a set period after all steppers 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 CONTROLLERFAN_SECS 60 // Duration in seconds for the fan to run after all motors are disabled + #define CONTROLLERFAN_SPEED 255 // 255 == full speed +#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 + +/** + * 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 + +// @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 CHAMBER_AUTO_FAN_PIN -1 +#define EXTRUDER_AUTO_FAN_TEMPERATURE 50 +#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed + +/** + * 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 MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu + //#define CASE_LIGHT_USE_NEOPIXEL // Use Neopixel LED as case light, requires NEOPIXEL_LED. + #if ENABLED(CASE_LIGHT_USE_NEOPIXEL) + #define CASE_LIGHT_NEOPIXEL_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White } + #endif +#endif + +//=========================================================================== +//============================ Mechanical Settings ========================== +//=========================================================================== + +// @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. + +/** + * Dual Steppers / Dual Endstops + * + * This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes. + * + * For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to + * spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop + * set X_DUAL_ENDSTOPS. This can adjust for "racking." Use X2_USE_ENDSTOP to set the endstop plug + * that should be used for the second endstop. Extra endstops will appear in the output of 'M119'. + * + * Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors + * this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error + * in X2. Dual endstop offsets can be set at runtime with 'M666 X<offset> Y<offset> Z<offset>'. + */ + +//#define X_DUAL_STEPPER_DRIVERS +#if ENABLED(X_DUAL_STEPPER_DRIVERS) + #define INVERT_X2_VS_X_DIR true // Set 'true' if X motors should rotate in opposite directions + //#define X_DUAL_ENDSTOPS + #if ENABLED(X_DUAL_ENDSTOPS) + #define X2_USE_ENDSTOP _XMAX_ + #define X_DUAL_ENDSTOPS_ADJUSTMENT 0 + #endif +#endif + +//#define Y_DUAL_STEPPER_DRIVERS +#if ENABLED(Y_DUAL_STEPPER_DRIVERS) + #define INVERT_Y2_VS_Y_DIR true // Set 'true' if Y motors should rotate in opposite directions + //#define Y_DUAL_ENDSTOPS + #if ENABLED(Y_DUAL_ENDSTOPS) + #define Y2_USE_ENDSTOP _YMAX_ + #define Y_DUAL_ENDSTOPS_ADJUSTMENT 0 + #endif +#endif + +//#define Z_DUAL_STEPPER_DRIVERS +#if ENABLED(Z_DUAL_STEPPER_DRIVERS) + //#define Z_DUAL_ENDSTOPS + #if ENABLED(Z_DUAL_ENDSTOPS) + #define Z2_USE_ENDSTOP _XMAX_ + #define Z_DUAL_ENDSTOPS_ADJUSTMENT 0 + #endif +#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. + */ +//#define DUAL_X_CARRIAGE +#if ENABLED(DUAL_X_CARRIAGE) + #define X1_MIN_POS X_MIN_POS // set minimum to ensure first x-carriage doesn't hit the parked second X-carriage + #define X1_MAX_POS X_BED_SIZE // set maximum to ensure first x-carriage doesn't hit the parked second X-carriage + #define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage + #define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed + #define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position + #define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position + // However: In this mode the HOTEND_OFFSET_X value for the second extruder provides a software + // override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops + // without modifying the firmware (through the "M218 T1 X???" command). + // Remember: you should set the second extruder x-offset to 0 in your slicer. + + // There are a few selectable movement modes for dual x-carriages using M605 S<mode> + // Mode 0 (DXC_FULL_CONTROL_MODE): 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) + // Mode 1 (DXC_AUTO_PARK_MODE) : Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so + // that additional slicer support is not required. (M605 S1) + // Mode 2 (DXC_DUPLICATION_MODE) : Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all + // actions of the first x-carriage. This allows the printer to print 2 arbitrary items at + // once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm]) + + // This is the default power-up mode which can be later using M605. + #define DEFAULT_DUAL_X_CARRIAGE_MODE DXC_FULL_CONTROL_MODE + + // Default settings in "Auto-park Mode" + #define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder + #define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder + + // Default x offset in duplication mode (typically set to half print bed width) + #define DEFAULT_DUPLICATION_X_OFFSET 100 + +#endif // DUAL_X_CARRIAGE + +// 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 hits each endstop, retracts by these distances, then does a slower bump. +#define X_HOME_BUMP_MM 5 +#define Y_HOME_BUMP_MM 5 +#define Z_HOME_BUMP_MM 5 // deltas need the same for all three axes +#define HOMING_BUMP_DIVISOR { 10, 10, 10 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) +//#define QUICK_HOME // If homing includes X and Y, do a diagonal move initially + +// When G28 is called, this option will make Y home before X +//#define HOME_Y_BEFORE_X + +// Enable this if X or Y can't home without homing the other axis first. +//#define CODEPENDENT_XY_HOMING + +// @section machine + +#define AXIS_RELATIVE_MODES {false, false, false, false} + +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// 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_E_STEP_PIN false + +// Default stepper release if idle. Set to 0 to deactivate. +// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true. +// Time can be set by M18 and M84. +#define DEFAULT_STEPPER_DEACTIVE_TIME 60 +#define DISABLE_INACTIVE_X true +#define DISABLE_INACTIVE_Y true +#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished. +#define DISABLE_INACTIVE_E true + +#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate +#define DEFAULT_MINTRAVELFEEDRATE 0.0 + +//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated + +// @section lcd + +#if ENABLED(ULTIPANEL) + #define MANUAL_FEEDRATE_XYZ 50*60 + #define MANUAL_FEEDRATE { MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, MANUAL_FEEDRATE_XYZ, 60 } // Feedrates for manual moves along X, Y, Z, E from panel + #define ULTIPANEL_FEEDMULTIPLY // Comment to disable setting feedrate multiplier via encoder +#endif + +// @section extras + +// minimum time in microseconds that a movement needs to take if the buffer is emptied. +#define DEFAULT_MINSEGMENTTIME 20000 + +// If defined the movements slow down when the look ahead buffer is only half full +// (don't use SLOWDOWN with DELTA because DELTA generates hundreds of segments per second) +//#define SLOWDOWN + +// Frequency limit +// See nophead's blog for more info +// Not working O +//#define XY_FREQUENCY_LIMIT 15 + +// 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/sec) + +// +// Use Junction Deviation instead of traditional Jerk Limiting +// +//#define JUNCTION_DEVIATION +#if ENABLED(JUNCTION_DEVIATION) + #define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge +#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 + +// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU. +#define MICROSTEP_MODES { 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, 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 + +// Use an I2C based DIGIPOT (e.g., Azteeg X3 Pro) +//#define DIGIPOT_I2C +#if ENABLED(DIGIPOT_I2C) && !defined(DIGIPOT_I2C_ADDRESS_A) + /** + * Common slave addresses: + * + * A (A shifted) B (B shifted) IC + * Smoothie 0x2C (0x58) 0x2D (0x5A) MCP4451 + * AZTEEG_X3_PRO 0x2C (0x58) 0x2E (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 + +//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster +#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8 +// 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 + +//=========================================================================== +//=============================Additional Features=========================== +//=========================================================================== + +#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly +#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value +#define ENCODER_100X_STEPS_PER_SEC 160 // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value + +//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/ +#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again + +// @section lcd + +// Include a page of printer information in the LCD Main Menu +#define LCD_INFO_MENU + +// Scroll a longer status message into view +#define STATUS_MESSAGE_SCROLLING + +// On the Info Screen, display XY with one decimal place when possible +//#define LCD_DECIMAL_SMALL_XY + +// The timeout (in ms) to return to the status screen from sub-menus +#define LCD_TIMEOUT_TO_STATUS 15000 + +// Add an 'M73' G-code to set the current percentage +//#define LCD_SET_PROGRESS_MANUALLY + +#if ENABLED(SDSUPPORT) || ENABLED(LCD_SET_PROGRESS_MANUALLY) + //#define LCD_PROGRESS_BAR // Show a progress bar on HD44780 LCDs for SD printing + #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 // SDSUPPORT || LCD_SET_PROGRESS_MANUALLY + +/** + * LED Control Menu + * Enable this feature to 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 + #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 +#endif // LED_CONTROL_MENU + +#if ENABLED(SDSUPPORT) + + // Some RAMPS and other boards don't detect when an SD card is inserted. You can work + // around this by connecting a push button or single throw switch to the pin defined + // as SD_DETECT_PIN in your board's pins definitions. + // This setting should be disabled unless you are using a push button, pulling the pin to ground. + // Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER). + #define SD_DETECT_INVERTED + + #define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished + #define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the 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 + + // Add an option in the menu to run all auto#.g files + //#define MENU_ADDAUTOSTART + + /** + * 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 POWER_LOSS_PIN 44 // Pin to detect power loss + //#define POWER_LOSS_STATE HIGH // State of pin indicating power loss + #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 false // Pre-allocate a static array for faster pre-sorting. + #define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.) + #define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option. + #define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use! + #define SDSORT_CACHE_VFATS 2 // Maximum number of 13-byte VFAT entries to use for sorting. + // Note: Only affects SCROLL_LONG_FILENAMES with SDSORT_CACHE_NAMES but not SDSORT_DYNAMIC_RAM. + #endif + + // This allows hosts to request long names for files and folders with M33 + //#define LONG_FILENAME_HOST_SUPPORT + + // Enable this option to scroll long filenames in the SD card menu + #define SCROLL_LONG_FILENAMES + + /** + * This option allows you to abort SD printing when any endstop is triggered. + * This feature must be enabled with "M540 S1" or from the LCD menu. + * To have any effect, endstops must be enabled during SD printing. + */ + //#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED + + /** + * This option makes it easier to print the same SD Card file again. + * On print completion the LCD Menu will open with the file selected. + * You can just click to start the print, or navigate elsewhere. + */ + //#define SD_REPRINT_LAST_SELECTED_FILE + + /** + * Auto-report SdCard status with M27 S<seconds> + */ + //#define AUTO_REPORT_SD_STATUS + +#endif // SDSUPPORT + +/** + * 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 ENABLED(DOGLCD) + // Show SD percentage next to the progress bar + //#define DOGM_SD_PERCENT + + // Enable to save many cycles by drawing a hollow frame on the Info Screen + #define XYZ_HOLLOW_FRAME + + // Enable to save many cycles by drawing a hollow frame on Menu Screens + #define MENU_HOLLOW_FRAME + + // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM. + // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. + //#define USE_BIG_EDIT_FONT + + // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM. + // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. + //#define USE_SMALL_INFOFONT + + // 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 + + // Swap the CW/CCW indicators in the graphics overlay + //#define OVERLAY_GFX_REVERSE + + #if ENABLED(U8GLIB_ST7920) + /** + * 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. + */ + //#define LIGHTWEIGHT_UI + #if ENABLED(LIGHTWEIGHT_UI) + #define STATUS_EXPIRE_SECONDS 20 + #endif + #endif + +#endif // DOGLCD + +// @section safety + +// The hardware watchdog should reset the microcontroller disabling all outputs, +// in case the firmware gets stuck and doesn't do temperature regulation. +#define USE_WATCHDOG + +#if ENABLED(USE_WATCHDOG) + // If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on. + // The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset. + // However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled. + //#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 BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA! + #define BABYSTEP_INVERT_Z false // Change if Z babysteps should go the other way + #define BABYSTEP_MULTIPLICATOR 1 // Babysteps are very small. Increase for faster motion. + //#define BABYSTEP_ZPROBE_OFFSET // Enable to combine M851 and Babystepping + #define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping. + #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds. + // Note: Extra time may be added to mitigate controller latency. + //#define BABYSTEP_ZPROBE_GFX_OVERLAY // Enable graphical overlay on Z-offset editor +#endif + +// @section extruder + +/** + * 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 http://marlinfw.org/docs/features/lin_advance.html for full instructions. + * Mention @Sebastianv650 on GitHub to alert the author of any issues. + */ +//#define LIN_ADVANCE +#if ENABLED(LIN_ADVANCE) + #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. +#endif + +// @section leveling + +#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_UBL) + // Override the mesh area if the automatic (max) area is too large + //#define MESH_MIN_X MESH_INSET + //#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 + +// @section extras + +// +// G2/G3 Arc Support +// +#define ARC_SUPPORT // Disable this feature to save ~3226 bytes +#if ENABLED(ARC_SUPPORT) + #define MM_PER_ARC_SEGMENT 1 // Length of each arc segment + #define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections + //#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles + //#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes +#endif + +// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes. +//#define BEZIER_CURVE_SUPPORT + +// G38.2 and G38.3 Probe Target +// Set MULTIPLE_PROBING if you want G38 to double touch +//#define G38_PROBE_TARGET +#if ENABLED(G38_PROBE_TARGET) + #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_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 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 + * 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_DIR_DELAY 650 + +/** + * Minimum stepper driver pulse width (in µs) + * 0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers + * 1 : Minimum for A4988 stepper drivers + * 1 : Minimum for LV8729 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) + * 500000 : Maximum for A4988 stepper driver + * 400000 : Maximum for TMC2xxx stepper drivers + * 250000 : Maximum for DRV8825 stepper driver + * 150000 : Maximum for TB6600 stepper driver + * 130000 : Maximum for LV8729 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 hidden + +// The number of linear motions that can be in the plan at any give time. +// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2 (e.g. 8, 16, 32) because shifts and ors are used to do the ring-buffering. +#if ENABLED(SDSUPPORT) + #define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller +#else + #define BLOCK_BUFFER_SIZE 16 // maximize block buffer +#endif + +// @section serial + +// The ASCII buffer for serial input +#define MAX_CMD_SIZE 96 +#define BUFSIZE 4 + +// Transmission to Host Buffer Size +// To save 386 bytes of PROGMEM (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 + +// Enable an emergency-command parser to intercept certain commands as they +// enter the serial receive buffer, so they cannot be blocked. +// Currently handles M108, M112, M410 +// Does not work on boards using AT90USB (USBCON) processors! +//#define EMERGENCY_PARSER + +// 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 + +// @section extras + +/** + * 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 // ONLY PARTIALLY TESTED +#if ENABLED(FWRETRACT) + #define MIN_AUTORETRACT 0.1 // When auto-retract is on, convert E moves of this length and over + #define MAX_AUTORETRACT 10.0 // Upper limit for auto-retract conversion + #define RETRACT_LENGTH 3 // Default retract length (positive mm) + #define RETRACT_LENGTH_SWAP 13 // Default swap retract length (positive mm), for extruder change + #define RETRACT_FEEDRATE 45 // Default feedrate for retracting (mm/s) + #define RETRACT_ZLIFT 0 // Default retract Z-lift + #define RETRACT_RECOVER_LENGTH 0 // Default additional recover length (mm, added to retract length when recovering) + #define RETRACT_RECOVER_LENGTH_SWAP 0 // Default additional swap recover length (mm, added to retract length when recovering from extruder change) + #define RETRACT_RECOVER_FEEDRATE 8 // Default feedrate for recovering from retraction (mm/s) + #define RETRACT_RECOVER_FEEDRATE_SWAP 8 // Default feedrate for recovering from swap retraction (mm/s) +#endif + +/** + * Extra Fan Speed + * Adds a secondary fan speed for each print-cooling fan. + * 'M106 P<fan> T3-255' : Set a secondary speed for <fan> + * 'M106 P<fan> T2' : Use the set secondary speed + * 'M106 P<fan> T1' : Restore the previous fan speed + */ +//#define EXTRA_FAN_SPEED + +/** + * Advanced Pause + * Experimental feature for filament change support and for parking the nozzle when paused. + * Adds the GCode M600 for initiating filament change. + * If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle. + * + * Requires an LCD display. + * Requires NOZZLE_PARK_FEATURE. + * This feature is required for the default FILAMENT_RUNOUT_SCRIPT. + */ +#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 40 // (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 750 // (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 40 // (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 650 // (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 150 // (mm) Length to extrude after loading. + // Set to 0 for manual extrusion. + // Filament can be extruded repeatedly from the Filament Change menu + // until extrusion is consistent, and to purge old filament. + + // Filament Unload does a Retract, Delay, and Purge first: + #define FILAMENT_UNLOAD_RETRACT_LENGTH 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_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 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 PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. + #define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change + + #define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) +#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) + + #define X_MAX_CURRENT 1000 // in mA + #define X_SENSE_RESISTOR 91 // in mOhms + #define X_MICROSTEPS 16 // number of microsteps + + #define X2_MAX_CURRENT 1000 + #define X2_SENSE_RESISTOR 91 + #define X2_MICROSTEPS 16 + + #define Y_MAX_CURRENT 1000 + #define Y_SENSE_RESISTOR 91 + #define Y_MICROSTEPS 16 + + #define Y2_MAX_CURRENT 1000 + #define Y2_SENSE_RESISTOR 91 + #define Y2_MICROSTEPS 16 + + #define Z_MAX_CURRENT 1000 + #define Z_SENSE_RESISTOR 91 + #define Z_MICROSTEPS 16 + + #define Z2_MAX_CURRENT 1000 + #define Z2_SENSE_RESISTOR 91 + #define Z2_MICROSTEPS 16 + + #define E0_MAX_CURRENT 1000 + #define E0_SENSE_RESISTOR 91 + #define E0_MICROSTEPS 16 + + #define E1_MAX_CURRENT 1000 + #define E1_SENSE_RESISTOR 91 + #define E1_MICROSTEPS 16 + + #define E2_MAX_CURRENT 1000 + #define E2_SENSE_RESISTOR 91 + #define E2_MICROSTEPS 16 + + #define E3_MAX_CURRENT 1000 + #define E3_SENSE_RESISTOR 91 + #define E3_MICROSTEPS 16 + + #define E4_MAX_CURRENT 1000 + #define E4_SENSE_RESISTOR 91 + #define E4_MICROSTEPS 16 + +#endif + +// @section tmc_smart + +/** + * To use TMC2130 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. + * + * You'll also need the TMC2130Stepper Arduino library + * (https://github.com/teemuatlut/TMC2130Stepper). + * + * 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. + * + * You'll also need the TMC2208Stepper Arduino library + * (https://github.com/teemuatlut/TMC2208Stepper). + */ +#if HAS_TRINAMIC + + #define R_SENSE 0.11 // R_sense resistor for SilentStepStick2130 + #define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current + #define INTERPOLATE true // Interpolate X/Y/Z_MICROSTEPS to 256 + + #define X_CURRENT 800 // rms current in mA. Multiply by 1.41 for peak current. + #define X_MICROSTEPS 16 // 0..256 + + #define Y_CURRENT 800 + #define Y_MICROSTEPS 16 + + #define Z_CURRENT 800 + #define Z_MICROSTEPS 16 + + #define X2_CURRENT 800 + #define X2_MICROSTEPS 16 + + #define Y2_CURRENT 800 + #define Y2_MICROSTEPS 16 + + #define Z2_CURRENT 800 + #define Z2_MICROSTEPS 16 + + #define E0_CURRENT 800 + #define E0_MICROSTEPS 16 + + #define E1_CURRENT 800 + #define E1_MICROSTEPS 16 + + #define E2_CURRENT 800 + #define E2_MICROSTEPS 16 + + #define E3_CURRENT 800 + #define E3_MICROSTEPS 16 + + #define E4_CURRENT 800 + #define E4_MICROSTEPS 16 + + /** + * Use software SPI for TMC2130. + * 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 + + /** + * Use Trinamic's ultra quiet stepping mode. + * When disabled, Marlin will use spreadCycle stepping mode. + */ + #define STEALTHCHOP + + /** + * Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions, + * like overtemperature and short to ground. TMC2208 requires hardware serial. + * In the case of overtemperature Marlin can decrease the driver current until 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 S0/1 - 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 + + /** + * 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 needs to be enabled. + * 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 E0_HYBRID_THRESHOLD 30 + #define E1_HYBRID_THRESHOLD 30 + #define E2_HYBRID_THRESHOLD 30 + #define E3_HYBRID_THRESHOLD 30 + #define E4_HYBRID_THRESHOLD 30 + + /** + * Use stallGuard2 to sense an obstacle and trigger an endstop. + * You need to place a wire from the 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_HOMING_SENSITIVITY is used for tuning the trigger sensitivity. + * Higher values make the system LESS sensitive. + * Lower value make the system MORE sensitive. + * Too low values can lead to false positives, while too high values will collide the axis without triggering. + * It is advised to set X/Y/Z_HOME_BUMP_MM to 0. + * M914 X/Y/Z to live tune the setting + */ + //#define SENSORLESS_HOMING // TMC2130 only + + #if ENABLED(SENSORLESS_HOMING) + #define X_HOMING_SENSITIVITY 8 + #define Y_HOMING_SENSITIVITY 8 + #define Z_HOMING_SENSITIVITY 8 + #endif + + /** + * Enable M122 debugging command for TMC stepper drivers. + * M122 S0/1 will enable continous reporting. + */ + //#define TMC_DEBUG + + /** + * M915 Z Axis Calibration + * + * - Adjust Z stepper current, + * - Drive the Z axis to its physical maximum, and + * - Home Z to account for the lost steps. + * + * Use M915 Snn to specify the current. + * Use M925 Znn to add extra Z height to Z_MAX_POS. + */ + //#define TMC_Z_CALIBRATION + #if ENABLED(TMC_Z_CALIBRATION) + #define CALIBRATION_CURRENT 250 + #define CALIBRATION_EXTRA_HEIGHT 10 + #endif + + /** + * 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/TMC2130Stepper + * https://github.com/teemuatlut/TMC2208Stepper + * + * Example: + * #define TMC_ADV() { \ + * stepperX.diag0_temp_prewarn(1); \ + * stepperY.interpolate(0); \ + * } + */ + #define TMC_ADV() { } + +#endif // TMC2130 || TMC2208 + +// @section L6470 + +/** + * L6470 Stepper Driver options + * + * The Arduino-L6470 library is required for this stepper driver. + * https://github.com/ameyer/Arduino-L6470 + */ +#if HAS_DRIVER(L6470) + + #define X_MICROSTEPS 16 // number of microsteps + #define X_OVERCURRENT 2000 // maxc current in mA. If the current goes over this value, the driver will switch off + #define X_STALLCURRENT 1500 // current in mA where the driver will detect a stall + + #define X2_MICROSTEPS 16 + #define X2_OVERCURRENT 2000 + #define X2_STALLCURRENT 1500 + + #define Y_MICROSTEPS 16 + #define Y_OVERCURRENT 2000 + #define Y_STALLCURRENT 1500 + + #define Y2_MICROSTEPS 16 + #define Y2_OVERCURRENT 2000 + #define Y2_STALLCURRENT 1500 + + #define Z_MICROSTEPS 16 + #define Z_OVERCURRENT 2000 + #define Z_STALLCURRENT 1500 + + #define Z2_MICROSTEPS 16 + #define Z2_OVERCURRENT 2000 + #define Z2_STALLCURRENT 1500 + + #define E0_MICROSTEPS 16 + #define E0_OVERCURRENT 2000 + #define E0_STALLCURRENT 1500 + + #define E1_MICROSTEPS 16 + #define E1_OVERCURRENT 2000 + #define E1_STALLCURRENT 1500 + + #define E2_MICROSTEPS 16 + #define E2_OVERCURRENT 2000 + #define E2_STALLCURRENT 1500 + + #define E3_MICROSTEPS 16 + #define E3_OVERCURRENT 2000 + #define E3_STALLCURRENT 1500 + + #define E4_MICROSTEPS 16 + #define E4_OVERCURRENT 2000 + #define E4_STALLCURRENT 1500 + +#endif + +/** + * 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<base 10> 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 + */ + +// @section i2cbus + +//#define EXPERIMENTAL_I2CBUS +#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave + +// @section extras + +/** + * 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 http://marlinfw.org/docs/configuration/laser_spindle.html for more config details. + */ +//#define SPINDLE_LASER_ENABLE +#if ENABLED(SPINDLE_LASER_ENABLE) + + #define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed + #define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power + #define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower + #define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power + #define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop + #define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction + #define SPINDLE_INVERT_DIR false + #define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction + + /** + * The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power + * + * SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT + * where PWM duty cycle varies from 0 to 255 + * + * set the following for your controller (ALL MUST BE SET) + */ + + #define SPEED_POWER_SLOPE 118.4 + #define SPEED_POWER_INTERCEPT 0 + #define SPEED_POWER_MIN 5000 + #define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM + + //#define SPEED_POWER_SLOPE 0.3922 + //#define SPEED_POWER_INTERCEPT 0 + //#define SPEED_POWER_MIN 10 + //#define SPEED_POWER_MAX 100 // 0-100% +#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 + +/** + * 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 + +/** + * M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins + */ +//#define PINS_DEBUGGING + +/** + * Auto-report temperatures with M155 S<seconds> + */ +#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +#define EXTENDED_CAPABILITIES_REPORT + +/** + * 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. + */ + //#define VOLUMETRIC_DEFAULT_ON +#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 + +/** + * 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 + +/** + * Spend 28 bytes of SRAM to optimize the GCode parser + */ +#define FASTER_GCODE_PARSER + +/** + * User-defined menu items that execute custom GCode + */ +//#define CUSTOM_USER_MENUS +#if ENABLED(CUSTOM_USER_MENUS) + #define USER_SCRIPT_DONE "M117 User Script Done" + #define USER_SCRIPT_AUDIBLE_FEEDBACK + //#define USER_SCRIPT_RETURN // Return to status screen after a script + + #define USER_DESC_1 "Home & UBL Info" + #define USER_GCODE_1 "G28\nG29 W" + + #define USER_DESC_2 "Preheat for PLA" + #define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND) + + #define USER_DESC_3 "Preheat for ABS" + #define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND) + + #define USER_DESC_4 "Heat Bed/Home/Level" + #define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29" + + #define USER_DESC_5 "Home & Info" + #define USER_GCODE_5 "G28\nM503" +#endif + +/** + * Specify an action command to send to the host when the printer is killed. + * Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'. + * The host must be configured to handle the action command. + */ +//#define ACTION_ON_KILL "poweroff" + +/** + * Specify an action command to send to the host on pause and resume. + * Will be sent in the form '//action:ACTION_ON_PAUSE', e.g. '//action:pause'. + * The host must be configured to handle the action command. + */ +//#define ACTION_ON_PAUSE "pause" +//#define ACTION_ON_RESUME "resume" + +//=========================================================================== +//====================== I2C Position Encoder Settings ====================== +//=========================================================================== + +/** + * I2C position encoders for closed loop control. + * Developed by Chris Barr at Aus3D. + * + * Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder + * Github: https://github.com/Aus3D/MagneticEncoder + * + * Supplier: http://aus3d.com.au/magnetic-encoder-module + * Alternative Supplier: http://reliabuild3d.com/ + * + * Reilabuild 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. <X|Y|Z|E>_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 behaviour. + + #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 persistant errors that indicate skips, as opposed to vibration and noise. + #define I2CPE_ERR_ROLLING_AVERAGE + +#endif // I2C_POSITION_ENCODERS + +/** + * 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 // Do a test pattern at initialization (Set to 2 for 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 + /** + * 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 + * + * Add support for Synchronized Z moves when using with NanoDLP. G0/G1 axis moves will output "Z_move_comp" + * string to enable synchronization with DLP projector exposure. This change will allow to use + * [[WaitForDoneMessage]] instead of populating your gcode with M400 commands + */ +//#define NANODLP_Z_SYNC +#if ENABLED(NANODLP_Z_SYNC) + //#define NANODLP_ALL_AXIS // Enables "Z_move_comp" output on any axis move. + // Default behaviour is limited to Z axis only. +#endif + +// Enable Marlin dev mode which adds some special commands +//#define MARLIN_DEV_MODE + +#endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/delta/Anycubic/Kossel/README.md b/Marlin/example_configurations/delta/Anycubic/Kossel/README.md new file mode 100644 index 0000000000..e5caf6dd88 --- /dev/null +++ b/Marlin/example_configurations/delta/Anycubic/Kossel/README.md @@ -0,0 +1,50 @@ +# Readme + +These configurations activate many of the new advanced features of the Marlin firmware: + + * Auto Calibration + * Auto Bed Leveling + * Pause & Filament Change + +**Important**: Before doing anything else after updating the firmware, go to `Configuration > Advanced Settings > Initialize EEPROM` to get rid of old configurations. + +Then you should execute `Configuration > Delta Calibration > Set Delta Height` and also run `Configuration > Delta Configuration > Probe Z-offset` to verify the Probe offset. + +After that you should connect the Z-Probe and start `Configuration > Delta Calibration > Auto Calibration`. When it's done don't forget to also do `Configuration > Delta Calibration > Store Settings` to make it permanent. + +You should also do a `Motion > Bed Leveling > Level bed` followed by `Store Settings` to ensure a perfect leveling. + +Please do a manual paper test (moving the nozzle slowly down to Z0 and checking with a piece of paper). If it's not perfect, use `Configuration > Advanced Settings > Probe Z Offset` to correct the difference and execute the calibration again. + + +# Select the Configuration + +**Please select the correct values at the start of the Configuration.h file** + +The Kossel comes in 3 versions: + + * Pulley + * Linear + * Linear Plus + +Pulley and Linear use the same configuration, the Linear Plus is bigger and uses slightly different configurations. + +Typically the probes for the Anycubic Delta Kossel printers come in two different versions. + + * Version 1: Z Probe Offset of -19.0mm + +  + + * Version 2: Z Probe Offset of -16.8mm + +  + +If you select the `ANYCUBIC_PROBE_VERSION 0`: It's very important to follow the correct procedure to set it up after flashing the firmware, otherwise you might damage the printer by ramming the nozzle into the buildplate: + +* `Configuration > Advanced Settings > Initialize EEPROM` +* `Motion > Move Axis > Soft Endstops` : `Off` +* Auto Home and slowly move the nozzle down until it barely touches the bed. (Do a paper-test: A normal sheet of paper should just feel the drag of the nozzle) and note this number. +* Subtract this number from the value in `Configuration > Delta Calibration > Delta Settings > Height`. (If it's negative, add it). +* Save and try the paper test again to verify your height. +* `Configuration > Store Settings` +* Motion > Bed Leveling (using paper test) diff --git a/Marlin/example_configurations/delta/Anycubic/Kossel/images/Version1Probe.jpg b/Marlin/example_configurations/delta/Anycubic/Kossel/images/Version1Probe.jpg new file mode 100644 index 0000000000000000000000000000000000000000..953373b1ab93d79f24f7cd3363e4c949a1e90d79 GIT binary patch literal 94933 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 literal 0 HcmV?d00001 diff --git a/Marlin/example_configurations/delta/Anycubic/Kossel/images/Version2Probe.jpg b/Marlin/example_configurations/delta/Anycubic/Kossel/images/Version2Probe.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f1f4baf2f283af826a79907925a4d13ba808e6a8 GIT binary patch literal 51853 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 literal 0 HcmV?d00001