MKS-Robin-Nano-V3.X icon indicating copy to clipboard operation
MKS-Robin-Nano-V3.X copied to clipboard

Problems with Marlin with custom FLSUN QQ-S Pro

Open davedouthettrb opened this issue 2 years ago • 5 comments

I've spent hours working with FLSUN to fix the firmware for my custom QQ-S Pro with an MKS Robin Nano V3.1 and a TS35 V2.0.

I have the Homing fixed except, if I offset any axis by a small amount manually after homing, Homing fails every time even after a printer reset or power up until I reinstall the firmware.bin file.

Other unresolved issues which either cause build failures or printer function failures:

  1. Auto-leveling crashes into build plate even after homing.
  2. The stock sensor lights up when pressed manually but doesn't get detected by the controller.
  3. My hotend thermistor (from SeeMeCNC) doesn't work correctly (stopped between 160°C and 170°C ... setting 1 & 11 tried). I'm getting a new one (included with E3D Revo Micro Kit).

A few others have tried the same mods with similar results.

Using the following: Mks-Robin-Nano-Marlin2.0-Firmware-master.zip Configurations-release-2.0.9.3.zip (using one of the Delta/FLSUN examples

Someone please help!

Thanks!

davedouthettrb avatar May 19 '22 16:05 davedouthettrb

Is this the motherboard of the machine? Or did you replace it yourself? This is because your configuration parameters are incorrect. The configuration of delta is very complicated. It is recommended that you look for the configuration file of this machine in the configuration file of marlin.

MKS-hosiey avatar May 23 '22 02:05 MKS-hosiey

MKS-hosiey, I replace the original because it failed.A lot of modifications were done to get the Robin Nano and the TS35 in the chassis. I'm still working on the firmware myself (just finished a build that passed using Configurations-bugfix-2.0.x.zip & Marlin-bugfix-2.0 downloaded today).I've already spent hours on the firmware trying to get everything to work. I can send you the configuration files to look at if you wish. Thanks! Dave On Sunday, May 22, 2022, 08:41:13 PM MDT, MKS-hosiey @.***> wrote:

Is this the motherboard of the machine? Or did you replace it yourself? This is because your configuration parameters are incorrect. The configuration of delta is very complicated. It is recommended that you look for the configuration file of this machine in the configuration file of marlin.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

davedouthettrb avatar May 23 '22 04:05 davedouthettrb

MKS-hosiey,

Just tried the new firmware. 1.    Homing is working correctly now.2.    Previously, the touch-screen and decoder were working but now they are erratic.  It takes a bit of effort to get the correct selection and then to activate it.3.    Leveling looked like it was going to work, it stopped moving down about 20mm from the build plate and then move toward the edge of the plate.  Unfortunately, it moved about 5 mm beyond the edge of the build plate and crashed below it. The sensor lights up on contact with the build plate but the controller doesn't seem to detect it. If you can help me with this, that would be great!  Files attached. Thanks! Dave

On Sunday, May 22, 2022, 10:12:31 PM MDT, Dave Douthett ***@***.***> wrote:  

MKS-hosiey, I replace the original because it failed.A lot of modifications were done to get the Robin Nano and the TS35 in the chassis. I'm still working on the firmware myself (just finished a build that passed using Configurations-bugfix-2.0.x.zip & Marlin-bugfix-2.0 downloaded today).I've already spent hours on the firmware trying to get everything to work. I can send you the configuration files to look at if you wish. Thanks! Dave On Sunday, May 22, 2022, 08:41:13 PM MDT, MKS-hosiey @.***> wrote:

Is this the motherboard of the machine? Or did you replace it yourself? This is because your configuration parameters are incorrect. The configuration of delta is very complicated. It is recommended that you look for the configuration file of this machine in the configuration file of marlin.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

/**

  • Marlin 3D Printer Firmware
  • Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
  • Based on Sprinter and grbl.
  • Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
  • This program is free software: you can redistribute it and/or modify
  • it under the terms of the GNU General Public License as published by
  • the Free Software Foundation, either version 3 of the License, or
  • (at your option) any later version.
  • This program is distributed in the hope that it will be useful,
  • but WITHOUT ANY WARRANTY; without even the implied warranty of
  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  • GNU General Public License for more details.
  • You should have received a copy of the GNU General Public License
  • along with this program. If not, see https://www.gnu.org/licenses/.

*/ #pragma once

#define CONFIG_EXAMPLES_DIR "delta/FLSUN/QQS-Pro"

/**

  • Configuration.h
  • Basic settings such as:
    • Type of electronics
    • Type of temperature sensor
    • Printer geometry
    • Endstop configuration
    • LCD controller
    • Extra features
  • Advanced settings can be found in Configuration_adv.h */ #define CONFIGURATION_H_VERSION 02010000

//=========================================================================== //============================= Getting Started ============================= //===========================================================================

/**

  • Here are some useful links to help get your machine configured and calibrated:
  • Example Configs: https://github.com/MarlinFirmware/Configurations/branches/all
  • Průša Calculator: https://blog.prusaprinters.org/calculator_3416/
  • Calibration Guides: https://reprap.org/wiki/Calibration
  •                  https://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
    
  •                  https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
    
  •                  https://youtu.be/wAL9d7FgInk
    
  • Calibration Objects: https://www.thingiverse.com/thing:5573
  •                  https://www.thingiverse.com/thing:1278865
    

*/

// @section info

// Author info of this build printed to the host during boot and M115 #define STRING_CONFIG_H_AUTHOR "(Foxies-CSTL, QQS-Pro)" // Who made the changes. //#define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes)

/**

  • *** VENDORS PLEASE READ ***
  • Marlin allows you to add a custom boot image for Graphical LCDs.
  • With this option Marlin will first show your custom screen followed
  • by the standard Marlin logo with version number and web URL.
  • We encourage you to take advantage of this new feature and we also
  • respectfully request that you retain the unmodified Marlin boot screen. */

// Show the Marlin bootscreen on startup. ** ENABLE FOR PRODUCTION ** #define SHOW_BOOTSCREEN

// Show the bitmap in Marlin/_Bootscreen.h on startup. //#define SHOW_CUSTOM_BOOTSCREEN

// Show the bitmap in Marlin/_Statusscreen.h on the status screen. //#define CUSTOM_STATUS_SCREEN_IMAGE

// @section machine

// Choose the name from boards.h that matches your setup #ifndef MOTHERBOARD #define MOTHERBOARD BOARD_MKS_ROBIN_NANO_V3 #endif

/**

  • Select the serial port on the board to use for communication with the host.
  • This allows the connection of wireless adapters (for instance) to non-default port pins.
  • Serial port -1 is the USB emulated serial port, if available.
  • Note: The first serial port (-1 or 0) will always be used by the Arduino bootloader.
  • :[-1, 0, 1, 2, 3, 4, 5, 6, 7] */ #define SERIAL_PORT -1

/**

  • Serial Port Baud Rate
  • This is the default communication speed for all serial ports.
  • Set the baud rate defaults for additional serial ports below.
  • 250000 works in most cases, but you might try a lower speed if
  • you commonly experience drop-outs during host printing.
  • You may try up to 1000000 to speed up SD file transfer.
  • :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] */ #define BAUDRATE 115200 //#define BAUD_RATE_GCODE // Enable G-code M575 to set the baud rate

/**

  • Select a secondary serial port on the board to use for communication with the host.
  • Currently Ethernet (-2) is only supported on Teensy 4.1 boards.
  • :[-2, -1, 0, 1, 2, 3, 4, 5, 6, 7] */ #define SERIAL_PORT_2 3 //#define BAUDRATE_2 250000 // Enable to override BAUDRATE

/**

  • Select a third serial port on the board to use for communication with the host.
  • Currently only supported for AVR, DUE, LPC1768/9 and STM32/STM32F1
  • :[-1, 0, 1, 2, 3, 4, 5, 6, 7] */ //#define SERIAL_PORT_3 1 //#define BAUDRATE_3 250000 // Enable to override BAUDRATE

// Enable the Bluetooth serial interface on AT90USB devices //#define BLUETOOTH

// Name displayed in the LCD "Ready" message and Info menu #define CUSTOM_MACHINE_NAME "FLSUN QQS-Pro Robin Nano V3.1 TS35 V2"

// Printer's unique ID, used by some programs to differentiate between machines. // Choose your own or use a service like https://www.uuidgenerator.net/version4 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"

/**

  • Stepper Drivers
  • These settings allow Marlin to tune stepper driver timing and enable advanced options for
  • stepper drivers that support them. You may also override timing options in Configuration_adv.h.
  • Use TMC2208/TMC2208_STANDALONE for TMC2225 drivers and TMC2209/TMC2209_STANDALONE for TMC2226 drivers.
  • Options: A4988, A5984, DRV8825, LV8729, L6470, L6474, POWERSTEP01,
  •      TB6560, TB6600, TMC2100,
    
  •      TMC2130, TMC2130_STANDALONE, TMC2160, TMC2160_STANDALONE,
    
  •      TMC2208, TMC2208_STANDALONE, TMC2209, TMC2209_STANDALONE,
    
  •      TMC26X,  TMC26X_STANDALONE,  TMC2660, TMC2660_STANDALONE,
    
  •      TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE
    
  • :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE'] */ #define X_DRIVER_TYPE TMC2209 #define Y_DRIVER_TYPE TMC2209 #define Z_DRIVER_TYPE TMC2209 //#define X2_DRIVER_TYPE A4988 //#define Y2_DRIVER_TYPE A4988 //#define Z2_DRIVER_TYPE A4988 //#define Z3_DRIVER_TYPE A4988 //#define Z4_DRIVER_TYPE A4988 //#define I_DRIVER_TYPE A4988 //#define J_DRIVER_TYPE A4988 //#define K_DRIVER_TYPE A4988 //#define U_DRIVER_TYPE A4988 //#define V_DRIVER_TYPE A4988 //#define W_DRIVER_TYPE A4988 #define E0_DRIVER_TYPE TMC2209 //#define E1_DRIVER_TYPE A4988 //#define E2_DRIVER_TYPE A4988 //#define E3_DRIVER_TYPE A4988 //#define E4_DRIVER_TYPE A4988 //#define E5_DRIVER_TYPE A4988 //#define E6_DRIVER_TYPE A4988 //#define E7_DRIVER_TYPE A4988

/**

  • Additional Axis Settings
  • Define AXISn_ROTATES for all axes that rotate or pivot.
  • Rotational axis coordinates are expressed in degrees.
  • AXISn_NAME defines the letter used to refer to the axis in (most) G-code commands.
  • By convention the names and roles are typically:
  • 'A' : Rotational axis parallel to X
  • 'B' : Rotational axis parallel to Y
  • 'C' : Rotational axis parallel to Z
  • 'U' : Secondary linear axis parallel to X
  • 'V' : Secondary linear axis parallel to Y
  • 'W' : Secondary linear axis parallel to Z
  • Regardless of these settings the axes are internally named I, J, K, U, V, W. */ #ifdef I_DRIVER_TYPE #define AXIS4_NAME 'A' // :['A', 'B', 'C', 'U', 'V', 'W'] #define AXIS4_ROTATES #endif #ifdef J_DRIVER_TYPE #define AXIS5_NAME 'B' // :['B', 'C', 'U', 'V', 'W'] #define AXIS5_ROTATES #endif #ifdef K_DRIVER_TYPE #define AXIS6_NAME 'C' // :['C', 'U', 'V', 'W'] #define AXIS6_ROTATES #endif #ifdef U_DRIVER_TYPE #define AXIS7_NAME 'U' // :['U', 'V', 'W'] //#define AXIS7_ROTATES #endif #ifdef V_DRIVER_TYPE #define AXIS8_NAME 'V' // :['V', 'W'] //#define AXIS8_ROTATES #endif #ifdef W_DRIVER_TYPE #define AXIS9_NAME 'W' // :['W'] //#define AXIS9_ROTATES #endif

// @section extruder

// This defines the number of extruders // :[0, 1, 2, 3, 4, 5, 6, 7, 8] #define EXTRUDERS 1

// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc. #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75

// For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE

// Save and restore temperature and fan speed on tool-change. // Set standby for the unselected tool with M104/106/109 T... #if ENABLED(SINGLENOZZLE) //#define SINGLENOZZLE_STANDBY_TEMP //#define SINGLENOZZLE_STANDBY_FAN #endif

/**

  • Multi-Material Unit
  • Set to one of these predefined models:
  • PRUSA_MMU1 : Průša MMU1 (The "multiplexer" version)
  • PRUSA_MMU2 : Průša MMU2
  • PRUSA_MMU2S : Průša MMU2S (Requires MK3S extruder with motion sensor, EXTRUDERS = 5)
  • EXTENDABLE_EMU_MMU2 : MMU with configurable number of filaments (ERCF, SMuFF or similar with Průša MMU2 compatible firmware)
  • EXTENDABLE_EMU_MMU2S : MMUS with configurable number of filaments (ERCF, SMuFF or similar with Průša MMU2 compatible firmware)
  • Requires NOZZLE_PARK_FEATURE to park print head in case MMU unit fails.
  • See additional options in Configuration_adv.h. */ //#define MMU_MODEL PRUSA_MMU2

// A dual extruder that uses a single stepper motor //#define SWITCHING_EXTRUDER #if ENABLED(SWITCHING_EXTRUDER) #define SWITCHING_EXTRUDER_SERVO_NR 0 #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1[, E2, E3] #if EXTRUDERS > 3 #define SWITCHING_EXTRUDER_E23_SERVO_NR 1 #endif #endif

// A dual-nozzle that uses a servomotor to raise/lower one (or both) of the nozzles //#define SWITCHING_NOZZLE #if ENABLED(SWITCHING_NOZZLE) #define SWITCHING_NOZZLE_SERVO_NR 0 //#define SWITCHING_NOZZLE_E1_SERVO_NR 1 // If two servos are used, the index of the second #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1 (single servo) or lowered/raised (dual servo) #endif

/**

  • Two separate X-carriages with extruders that connect to a moving part
  • via a solenoid docking mechanism. Requires SOL1_PIN and SOL2_PIN. */ //#define PARKING_EXTRUDER

/**

  • Two separate X-carriages with extruders that connect to a moving part
  • via a magnetic docking mechanism using movements and no solenoid
  • project : https://www.thingiverse.com/thing:3080893
  • movements : https://youtu.be/0xCEiG9VS3k
  •         https://youtu.be/Bqbcs0CU2FE
    

*/ //#define MAGNETIC_PARKING_EXTRUDER

#if EITHER(PARKING_EXTRUDER, MAGNETIC_PARKING_EXTRUDER)

#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders #define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder

#if ENABLED(PARKING_EXTRUDER)

#define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // (ms) Delay for magnetic field. No delay if 0 or not defined.
//#define MANUAL_SOLENOID_CONTROL                   // Manual control of docking solenoids with M380 S / M381

#elif ENABLED(MAGNETIC_PARKING_EXTRUDER)

#define MPE_FAST_SPEED      9000      // (mm/min) Speed for travel before last distance point
#define MPE_SLOW_SPEED      4500      // (mm/min) Speed for last distance travel to park and couple
#define MPE_TRAVEL_DISTANCE   10      // (mm) Last distance point
#define MPE_COMPENSATION       0      // Offset Compensation -1 , 0 , 1 (multiplier) only for coupling

#endif

#endif

/**

  • Switching Toolhead
  • Support for swappable and dockable toolheads, such as
  • the E3D Tool Changer. Toolheads are locked with a servo. */ //#define SWITCHING_TOOLHEAD

/**

  • Magnetic Switching Toolhead
  • Support swappable and dockable toolheads with a magnetic
  • docking mechanism using movement and no servo. */ //#define MAGNETIC_SWITCHING_TOOLHEAD

/**

  • Electromagnetic Switching Toolhead
  • Parking for CoreXY / HBot kinematics.
  • Toolheads are parked at one edge and held with an electromagnet.
  • Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4 */ //#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD

#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD) #define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock #define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis #define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis #define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders #if ENABLED(SWITCHING_TOOLHEAD) #define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD) #define SWITCHING_TOOLHEAD_Y_RELEASE 5 // (mm) Security distance Y axis #define SWITCHING_TOOLHEAD_X_SECURITY { 90, 150 } // (mm) Security distance X axis (T0,T1) //#define PRIME_BEFORE_REMOVE // Prime the nozzle before release from the dock #if ENABLED(PRIME_BEFORE_REMOVE) #define SWITCHING_TOOLHEAD_PRIME_MM 20 // (mm) Extruder prime length #define SWITCHING_TOOLHEAD_RETRACT_MM 10 // (mm) Retract after priming length #define SWITCHING_TOOLHEAD_PRIME_FEEDRATE 300 // (mm/min) Extruder prime feedrate #define SWITCHING_TOOLHEAD_RETRACT_FEEDRATE 2400 // (mm/min) Extruder retract feedrate #endif #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD) #define SWITCHING_TOOLHEAD_Z_HOP 2 // (mm) Z raise for switching #endif #endif

/**

  • "Mixing Extruder"
    • Adds G-codes M163 and M164 to set and "commit" the current mix factors.
    • Extends the stepping routines to move multiple steppers in proportion to the mix.
    • Optional support for Repetier Firmware's 'M164 S' supporting virtual tools.
    • This implementation supports up to two mixing extruders.
    • Enable DIRECT_MIXING_IN_G1 for M165 and mixing in G1 (from Pia Taubert's reference implementation). */ //#define MIXING_EXTRUDER #if ENABLED(MIXING_EXTRUDER) #define MIXING_STEPPERS 2 // Number of steppers in your mixing extruder #define MIXING_VIRTUAL_TOOLS 16 // Use the Virtual Tool method with M163 and M164 //#define DIRECT_MIXING_IN_G1 // Allow ABCDHI mix factors in G1 movement commands //#define GRADIENT_MIX // Support for gradient mixing with M166 and LCD //#define MIXING_PRESETS // Assign 8 default V-tool presets for 2 or 3 MIXING_STEPPERS #if ENABLED(GRADIENT_MIX) //#define GRADIENT_VTOOL // Add M166 T to use a V-tool index as a Gradient alias #endif #endif

// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing). // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder). // For the other hotends it is their distance from the extruder 0 hotend. //#define HOTEND_OFFSET_X { 0.0, 20.00 } // (mm) relative X-offset for each nozzle //#define HOTEND_OFFSET_Y { 0.0, 5.00 } // (mm) relative Y-offset for each nozzle //#define HOTEND_OFFSET_Z { 0.0, 0.00 } // (mm) relative Z-offset for each nozzle

// @section machine

/**

  • Power Supply Control
  • Enable and connect the power supply to the PS_ON_PIN.
  • Specify whether the power supply is active HIGH or active LOW. */ //#define PSU_CONTROL //#define PSU_NAME "Power Supply"

#if ENABLED(PSU_CONTROL) //#define MKS_PWC // Using the MKS PWC add-on //#define PS_OFF_CONFIRM // Confirm dialog when power off //#define PS_OFF_SOUND // Beep 1s when power off #define PSU_ACTIVE_STATE LOW // Set 'LOW' for ATX, 'HIGH' for X-Box

//#define PSU_DEFAULT_OFF // Keep power off until enabled directly with M80 //#define PSU_POWERUP_DELAY 250 // (ms) Delay for the PSU to warm up to full power //#define LED_POWEROFF_TIMEOUT 10000 // (ms) Turn off LEDs after power-off, with this amount of delay

//#define POWER_OFF_TIMER // Enable M81 D to power off after a delay //#define POWER_OFF_WAIT_FOR_COOLDOWN // Enable M81 S to power off only after cooldown

//#define PSU_POWERUP_GCODE "M355 S1" // G-code to run after power-on (e.g., case light on) //#define PSU_POWEROFF_GCODE "M355 S0" // G-code to run before power-off (e.g., case light off)

//#define AUTO_POWER_CONTROL // Enable automatic control of the PS_ON pin #if ENABLED(AUTO_POWER_CONTROL) #define AUTO_POWER_FANS // Turn on PSU if fans need power #define AUTO_POWER_E_FANS #define AUTO_POWER_CONTROLLERFAN #define AUTO_POWER_CHAMBER_FAN #define AUTO_POWER_COOLER_FAN #define POWER_TIMEOUT 30 // (s) Turn off power if the machine is idle for this duration //#define POWER_OFF_DELAY 60 // (s) Delay of poweroff after M81 command. Useful to let fans run for extra time. #endif #if EITHER(AUTO_POWER_CONTROL, POWER_OFF_WAIT_FOR_COOLDOWN) //#define AUTO_POWER_E_TEMP 50 // (°C) PSU on if any extruder is over this temperature //#define AUTO_POWER_CHAMBER_TEMP 30 // (°C) PSU on if the chamber is over this temperature //#define AUTO_POWER_COOLER_TEMP 26 // (°C) PSU on if the cooler is over this temperature #endif #endif

//=========================================================================== //============================= Thermal Settings ============================ //=========================================================================== // @section temperature

/**

  • --NORMAL IS 4.7kΩ PULLUP!-- 1kΩ pullup can be used on hotend sensor, using correct resistor and table
  • Temperature sensors available:
  • SPI RTD/Thermocouple Boards - IMPORTANT: Read the NOTE below!

  • -5 : MAX31865 with Pt100/Pt1000, 2, 3, or 4-wire (only for sensors 0-1)
  •              NOTE: You must uncomment/set the MAX31865_*_OHMS_n defines below.
    
  • -3 : MAX31855 with Thermocouple, -200°C to +700°C (only for sensors 0-1)
  • -2 : MAX6675 with Thermocouple, 0°C to +700°C (only for sensors 0-1)
  • NOTE: Ensure TEMP_n_CS_PIN is set in your pins file for each TEMP_SENSOR_n using an SPI Thermocouple. By default,
  •    Hardware SPI on the default serial bus is used. If you have also set TEMP_n_SCK_PIN and TEMP_n_MISO_PIN,
    
  •    Software SPI will be used on those ports instead. You can force Hardware SPI on the default bus in the
    
  •    Configuration_adv.h file. At this time, separate Hardware SPI buses for sensors are not supported.
    
  • Analog Themocouple Boards

  • -4 : AD8495 with Thermocouple
  • -1 : AD595 with Thermocouple
  • Analog Thermistors - 4.7kΩ pullup - Normal

  • 1 : 100kΩ  EPCOS - Best choice for EPCOS thermistors
    
  • 331 : 100kΩ Same as #1, but 3.3V scaled for MEGA
  • 332 : 100kΩ Same as #1, but 3.3V scaled for DUE
  • 2 : 200kΩ  ATC Semitec 204GT-2
    
  • 202 : 200kΩ Copymaster 3D
  • 3 : ???Ω   Mendel-parts thermistor
    
  • 4 : 10kΩ   Generic Thermistor !! DO NOT use for a hotend - it gives bad resolution at high temp. !!
    
  • 5 : 100kΩ  ATC Semitec 104GT-2/104NT-4-R025H42G - Used in ParCan, J-Head, and E3D, SliceEngineering 300°C
    
  • 501 : 100kΩ Zonestar - Tronxy X3A
  • 502 : 100kΩ Zonestar - used by hot bed in Zonestar Průša P802M
  • 503 : 100kΩ Zonestar (Z8XM2) Heated Bed thermistor
  • 504 : 100kΩ Zonestar P802QR2 (Part# QWG-104F-B3950) Hotend Thermistor
  • 505 : 100kΩ Zonestar P802QR2 (Part# QWG-104F-3950) Bed Thermistor
  • 512 : 100kΩ RPW-Ultra hotend
  • 6 : 100kΩ  EPCOS - Not as accurate as table #1 (created using a fluke thermocouple)
    
  • 7 : 100kΩ  Honeywell 135-104LAG-J01
    
  • 71 : 100kΩ Honeywell 135-104LAF-J01
  • 8 : 100kΩ  Vishay 0603 SMD NTCS0603E3104FXT
    
  • 9 : 100kΩ  GE Sensing AL03006-58.2K-97-G1
    
  • 10 : 100kΩ RS PRO 198-961
  • 11 : 100kΩ Keenovo AC silicone mats, most Wanhao i3 machines - beta 3950, 1%
  • 12 : 100kΩ Vishay 0603 SMD NTCS0603E3104FXT (#8) - calibrated for Makibox hot bed
  • 13 : 100kΩ Hisens up to 300°C - for "Simple ONE" & "All In ONE" hotend - beta 3950, 1%
  • 15 : 100kΩ Calibrated for JGAurora A5 hotend
  • 18 : 200kΩ ATC Semitec 204GT-2 Dagoma.Fr - MKS_Base_DKU001327
  • 22 : 100kΩ GTM32 Pro vB - hotend - 4.7kΩ pullup to 3.3V and 220Ω to analog input
  • 23 : 100kΩ GTM32 Pro vB - bed - 4.7kΩ pullup to 3.3v and 220Ω to analog input
  • 30 : 100kΩ Kis3d Silicone heating mat 200W/300W with 6mm precision cast plate (EN AW 5083) NTC100K - beta 3950
  • 60 : 100kΩ Maker's Tool Works Kapton Bed Thermistor - beta 3950
  • 61 : 100kΩ Formbot/Vivedino 350°C Thermistor - beta 3950
  • 66 : 4.7MΩ Dyze Design High Temperature Thermistor
  • 67 : 500kΩ SliceEngineering 450°C Thermistor
  • 68 : PT100 amplifier board from Dyze Design
  • 70 : 100kΩ bq Hephestos 2
  • 75 : 100kΩ Generic Silicon Heat Pad with NTC100K MGB18-104F39050L32
  • 2000 : 100kΩ Ultimachine Rambo TDK NTCG104LH104KT1 NTC100K motherboard Thermistor
  • Analog Thermistors - 1kΩ pullup - Atypical, and requires changing out the 4.7kΩ pullup for 1kΩ.
  • ------- (but gives greater accuracy and more stable PID)
  • 51 : 100kΩ EPCOS (1kΩ pullup)
  • 52 : 200kΩ ATC Semitec 204GT-2 (1kΩ pullup)
  • 55 : 100kΩ ATC Semitec 104GT-2 - Used in ParCan & J-Head (1kΩ pullup)
  • Analog Thermistors - 10kΩ pullup - Atypical

  • 99 : 100kΩ Found on some Wanhao i3 machines with a 10kΩ pull-up resistor
  • Analog RTDs (Pt100/Pt1000)

  • 110 : Pt100 with 1kΩ pullup (atypical)
  • 147 : Pt100 with 4.7kΩ pullup
  • 1010 : Pt1000 with 1kΩ pullup (atypical)
  • 1047 : Pt1000 with 4.7kΩ pullup (E3D)
  • 20 : Pt100 with circuit in the Ultimainboard V2.x with mainboard ADC reference voltage = INA826 amplifier-board supply voltage.
  •            NOTE: (1) Must use an ADC input with no pullup. (2) Some INA826 amplifiers are unreliable at 3.3V so consider using sensor 147, 110, or 21.
    
  • 21 : Pt100 with circuit in the Ultimainboard V2.x with 3.3v ADC reference voltage (STM32, LPC176x....) and 5V INA826 amplifier board supply.
  •            NOTE: ADC pins are not 5V tolerant. Not recommended because it's possible to damage the CPU by going over 500°C.
    
  • 201 : Pt100 with circuit in Overlord, similar to Ultimainboard V2.x
  • Custom/Dummy/Other Thermal Sensors

  • 0 : not used
    
  • 1000 : Custom - Specify parameters in Configuration_adv.h
  • !!! Use these for Testing or Development purposes. NEVER for production machine. !!!
  • 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
  • 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.

*/ #define TEMP_SENSOR_0 11 #define TEMP_SENSOR_1 0 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_3 0 #define TEMP_SENSOR_4 0 #define TEMP_SENSOR_5 0 #define TEMP_SENSOR_6 0 #define TEMP_SENSOR_7 0 #define TEMP_SENSOR_BED 11 #define TEMP_SENSOR_PROBE 0 #define TEMP_SENSOR_CHAMBER 0 #define TEMP_SENSOR_COOLER 0 #define TEMP_SENSOR_BOARD 0 #define TEMP_SENSOR_REDUNDANT 0

// Dummy thermistor constant temperature readings, for use with 998 and 999 //#define DUMMY_THERMISTOR_998_VALUE 25 //#define DUMMY_THERMISTOR_999_VALUE 100

// Resistor values when using MAX31865 sensors (-5) on TEMP_SENSOR_0 / 1 //#define MAX31865_SENSOR_OHMS_0 100 // (Ω) Typically 100 or 1000 (PT100 or PT1000) //#define MAX31865_CALIBRATION_OHMS_0 430 // (Ω) Typically 430 for Adafruit PT100; 4300 for Adafruit PT1000 //#define MAX31865_SENSOR_OHMS_1 100 //#define MAX31865_CALIBRATION_OHMS_1 430

#define TEMP_RESIDENCY_TIME 10 // (seconds) Time to wait for hotend to "settle" in M109 #define TEMP_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer #define TEMP_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target

#define TEMP_BED_RESIDENCY_TIME 10 // (seconds) Time to wait for bed to "settle" in M190 #define TEMP_BED_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer #define TEMP_BED_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target

#define TEMP_CHAMBER_RESIDENCY_TIME 10 // (seconds) Time to wait for chamber to "settle" in M191 #define TEMP_CHAMBER_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer #define TEMP_CHAMBER_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target

/**

  • Redundant Temperature Sensor (TEMP_SENSOR_REDUNDANT)
  • Use a temp sensor as a redundant sensor for another reading. Select an unused temperature sensor, and another
  • sensor you'd like it to be redundant for. If the two thermistors differ by TEMP_SENSOR_REDUNDANT_MAX_DIFF (°C),
  • the print will be aborted. Whichever sensor is selected will have its normal functions disabled; i.e. selecting
  • the Bed sensor (-1) will disable bed heating/monitoring.
  • For selecting source/target use: COOLER, PROBE, BOARD, CHAMBER, BED, E0, E1, E2, E3, E4, E5, E6, E7 */ #if TEMP_SENSOR_REDUNDANT #define TEMP_SENSOR_REDUNDANT_SOURCE E1 // The sensor that will provide the redundant reading. #define TEMP_SENSOR_REDUNDANT_TARGET E0 // The sensor that we are providing a redundant reading for. #define TEMP_SENSOR_REDUNDANT_MAX_DIFF 10 // (°C) Temperature difference that will trigger a print abort. #endif

// Below this temperature the heater will be switched off // because it probably indicates a broken thermistor wire. #define HEATER_0_MINTEMP 5 #define HEATER_1_MINTEMP 5 #define HEATER_2_MINTEMP 5 #define HEATER_3_MINTEMP 5 #define HEATER_4_MINTEMP 5 #define HEATER_5_MINTEMP 5 #define HEATER_6_MINTEMP 5 #define HEATER_7_MINTEMP 5 #define BED_MINTEMP 5 #define CHAMBER_MINTEMP 5

// Above this temperature the heater will be switched off. // This can protect components from overheating, but NOT from shorts and failures. // (Use MINTEMP for thermistor short/failure protection.) #define HEATER_0_MAXTEMP 275 #define HEATER_1_MAXTEMP 275 #define HEATER_2_MAXTEMP 275 #define HEATER_3_MAXTEMP 275 #define HEATER_4_MAXTEMP 275 #define HEATER_5_MAXTEMP 275 #define HEATER_6_MAXTEMP 275 #define HEATER_7_MAXTEMP 275 #define BED_MAXTEMP 120 #define CHAMBER_MAXTEMP 60

/**

  • Thermal Overshoot
  • During heatup (and printing) the temperature can often "overshoot" the target by many degrees
  • (especially before PID tuning). Setting the target temperature too close to MAXTEMP guarantees
  • a MAXTEMP shutdown! Use these values to forbid temperatures being set too close to MAXTEMP. */ #define HOTEND_OVERSHOOT 15 // (°C) Forbid temperatures over MAXTEMP - OVERSHOOT #define BED_OVERSHOOT 10 // (°C) Forbid temperatures over MAXTEMP - OVERSHOOT #define COOLER_OVERSHOOT 2 // (°C) Forbid temperatures closer than OVERSHOOT

//=========================================================================== //============================= PID Settings ================================ //===========================================================================

// Enable PIDTEMP for PID control or MPCTEMP for Predictive Model. // temperature control. Disable both for bang-bang heating. #define PIDTEMP // See the PID Tuning Guide at https://reprap.org/wiki/PID_Tuning //#define MPCTEMP // ** EXPERIMENTAL **

#define BANG_MAX 255 // Limits current to nozzle while in bang-bang mode; 255=full current #define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current #define PID_K1 0.95 // Smoothing factor within any PID loop

#if ENABLED(PIDTEMP) //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2]

#if ENABLED(PID_PARAMS_PER_HOTEND) // Specify up to one value per hotend here, according to your setup. // If there are fewer values, the last one applies to the remaining hotends. #define DEFAULT_Kp_LIST { 21.6708, 21.6708 } #define DEFAULT_Ki_LIST { 1.2515, 1.2515 } #define DEFAULT_Kd_LIST { 93.8127, 93.8127 } #else // FLSUN QQS-Pro, PET 235 C with 70% part cooling #define DEFAULT_Kp 21.6708 #define DEFAULT_Ki 1.2515 #define DEFAULT_Kd 93.8127 #endif #endif

/**

  • Model Predictive Control for hotend
  • Use a physical model of the hotend to control temperature. When configured correctly
  • this gives better responsiveness and stability than PID and it also removes the need
  • for PID_EXTRUSION_SCALING and PID_FAN_SCALING. Use M306 to autotune the model. */ #if ENABLED(MPCTEMP) //#define MPC_EDIT_MENU // Add MPC editing to the "Advanced Settings" menu. (~1300 bytes of flash) //#define MPC_AUTOTUNE_MENU // Add MPC auto-tuning to the "Advanced Settings" menu. (~350 bytes of flash)

#define MPC_MAX BANG_MAX // (0..255) Current to nozzle while MPC is active. #define MPC_HEATER_POWER { 40.0f } // (W) Heat cartridge powers.

#define MPC_INCLUDE_FAN // Model the fan speed?

// Measured physical constants from M306 #define MPC_BLOCK_HEAT_CAPACITY { 16.7f } // (J/K) Heat block heat capacities. #define MPC_SENSOR_RESPONSIVENESS { 0.22f } // (K/s per ∆K) Rate of change of sensor temperature from heat block. #define MPC_AMBIENT_XFER_COEFF { 0.068f } // (W/K) Heat transfer coefficients from heat block to room air with fan off. #if ENABLED(MPC_INCLUDE_FAN) #define MPC_AMBIENT_XFER_COEFF_FAN255 { 0.097f } // (W/K) Heat transfer coefficients from heat block to room air with fan on full. #endif

// For one fan and multiple hotends MPC needs to know how to apply the fan cooling effect. #if ENABLED(MPC_INCLUDE_FAN) //#define MPC_FAN_0_ALL_HOTENDS //#define MPC_FAN_0_ACTIVE_HOTEND #endif

#define FILAMENT_HEAT_CAPACITY_PERMM 5.6e-3f // 0.0056 J/K/mm for 1.75mm PLA (0.0149 J/K/mm for 2.85mm PLA). //#define FILAMENT_HEAT_CAPACITY_PERMM 3.6e-3f // 0.0036 J/K/mm for 1.75mm PETG (0.0094 J/K/mm for 2.85mm PETG).

// Advanced options #define MPC_SMOOTHING_FACTOR 0.5f // (0.0...1.0) Noisy temperature sensors may need a lower value for stabilization. #define MPC_MIN_AMBIENT_CHANGE 1.0f // (K/s) Modeled ambient temperature rate of change, when correcting model inaccuracies. #define MPC_STEADYSTATE 0.5f // (K/s) Temperature change rate for steady state logic to be enforced.

#define MPC_TUNING_POS { X_CENTER, Y_CENTER, 1.0f } // (mm) M306 Autotuning position, ideally bed center just above the surface. #define MPC_TUNING_END_Z 10.0f // (mm) M306 Autotuning final Z position. #endif

//=========================================================================== //====================== PID > Bed Temperature Control ====================== //===========================================================================

/**

  • PID Bed Heating
  • If this option is enabled set PID constants below.
  • If this option is disabled, bang-bang will be used and BED_LIMIT_SWITCHING will enable hysteresis.
  • The PID frequency will be the same as the extruder PWM.
  • If PID_dT is the default, and correct for the hardware/configuration, that means 7.689Hz,
  • which is fine for driving a square wave into a resistive load and does not significantly
  • impact FET heating. This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W
  • heater. If your configuration is significantly different than this and you don't understand
  • the issues involved, don't use bed PID until someone else verifies that your hardware works. */ #define PIDTEMPBED

//#define BED_LIMIT_SWITCHING

/**

  • Max Bed Power
  • Applies to all forms of bed control (PID, bang-bang, and bang-bang with hysteresis).
  • When set to any value below 255, enables a form of PWM to the bed that acts like a divider
  • so don't use it unless you are OK with PWM on your bed. (See the comment on enabling PIDTEMPBED) */ #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current

#if ENABLED(PIDTEMPBED) //#define MIN_BED_POWER 0 //#define PID_BED_DEBUG // Sends debug data to the serial port.

// FLSUN QQS-Pro 1.6mm aluminium heater with 4mm lattice glass #define DEFAULT_bedKp 82.98 #define DEFAULT_bedKi 15.93 #define DEFAULT_bedKd 288.25

// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. #endif // PIDTEMPBED

//=========================================================================== //==================== PID > Chamber Temperature Control ==================== //===========================================================================

/**

  • PID Chamber Heating
  • If this option is enabled set PID constants below.
  • If this option is disabled, bang-bang will be used and CHAMBER_LIMIT_SWITCHING will enable
  • hysteresis.
  • The PID frequency will be the same as the extruder PWM.
  • If PID_dT is the default, and correct for the hardware/configuration, that means 7.689Hz,
  • which is fine for driving a square wave into a resistive load and does not significantly
  • impact FET heating. This also works fine on a Fotek SSR-10DA Solid State Relay into a 200W
  • heater. If your configuration is significantly different than this and you don't understand
  • the issues involved, don't use chamber PID until someone else verifies that your hardware works. */ //#define PIDTEMPCHAMBER //#define CHAMBER_LIMIT_SWITCHING

/**

  • Max Chamber Power
  • Applies to all forms of chamber control (PID, bang-bang, and bang-bang with hysteresis).
  • When set to any value below 255, enables a form of PWM to the chamber heater that acts like a divider
  • so don't use it unless you are OK with PWM on your heater. (See the comment on enabling PIDTEMPCHAMBER) */ #define MAX_CHAMBER_POWER 255 // limits duty cycle to chamber heater; 255=full current

#if ENABLED(PIDTEMPCHAMBER) #define MIN_CHAMBER_POWER 0 //#define PID_CHAMBER_DEBUG // Sends debug data to the serial port.

// Lasko "MyHeat Personal Heater" (200w) modified with a Fotek SSR-10DA to control only the heating element // and placed inside the small Creality printer enclosure tent. // #define DEFAULT_chamberKp 37.04 #define DEFAULT_chamberKi 1.40 #define DEFAULT_chamberKd 655.17 // M309 P37.04 I1.04 D655.17

// FIND YOUR OWN: "M303 E-2 C8 S50" to run autotune on the chamber at 50 degreesC for 8 cycles. #endif // PIDTEMPCHAMBER

#if ANY(PIDTEMP, PIDTEMPBED, PIDTEMPCHAMBER) //#define PID_DEBUG // Sends debug data to the serial port. Use 'M303 D' to toggle activation. //#define PID_OPENLOOP // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay #define PID_FUNCTIONAL_RANGE 30 // If the temperature difference between the target temperature and the actual temperature // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.

#define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of flash) #define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of flash) #endif

// @section extruder

/**

  • Prevent extrusion if the temperature is below EXTRUDE_MINTEMP.
  • Add M302 to set the minimum extrusion temperature and/or turn
  • cold extrusion prevention on and off.
  • *** IT IS HIGHLY RECOMMENDED TO LEAVE THIS OPTION ENABLED! *** */ #define PREVENT_COLD_EXTRUSION #define EXTRUDE_MINTEMP 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 950

//=========================================================================== //======================== Thermal Runaway Protection ======================= //===========================================================================

/**

  • Thermal Protection provides additional protection to your printer from damage
  • and fire. Marlin always includes safe min and max temperature ranges which
  • protect against a broken or disconnected thermistor wire.
  • The issue: If a thermistor falls out, it will report the much lower
  • temperature of the air in the room, and the the firmware will keep
  • the heater on.
  • If you get "Thermal Runaway" or "Heating failed" errors the
  • details can be tuned in Configuration_adv.h */

#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders #define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed //#define THERMAL_PROTECTION_CHAMBER // Enable thermal protection for the heated chamber //#define THERMAL_PROTECTION_COOLER // Enable thermal protection for the laser cooling

//=========================================================================== //============================= Mechanical Settings ========================= //===========================================================================

// @section machine

// Enable one of the options below for CoreXY, CoreXZ, or CoreYZ kinematics, // either in the usual order or reversed //#define COREXY //#define COREXZ //#define COREYZ //#define COREYX //#define COREZX //#define COREZY //#define MARKFORGED_XY // MarkForged. See https://reprap.org/forum/read.php?152,504042 //#define MARKFORGED_YX

//=========================================================================== //============================== 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 160

// After homing move down to a height where XY movement is unconstrained //#define DELTA_HOME_TO_SAFE_ZONE

// Delta calibration menu // uncomment to add three points calibration menu option. // See http://minow.blogspot.com/index.html#4918805519571907051 //#define DELTA_CALIBRATION_MENU

// uncomment to add G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results) //#define DELTA_AUTO_CALIBRATION

// NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them

#if ENABLED(DELTA_AUTO_CALIBRATION) // set the default number of probe points : n*n (1 -> 7) #define DELTA_CALIBRATION_DEFAULT_POINTS 4 #endif

#if EITHER(DELTA_AUTO_CALIBRATION, DELTA_CALIBRATION_MENU) // Set the steprate for papertest probing #define PROBE_MANUALLY_STEP 0.05 // (mm) #endif

// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). #define DELTA_PRINTABLE_RADIUS 127.0 // (mm)

// Maximum reachable area #define DELTA_MAX_RADIUS 127.0 // (mm)

// Center-to-center distance of the holes in the diagonal push rods. #define DELTA_DIAGONAL_ROD 280.00 // (mm)

// Distance between bed and nozzle Z home position #define DELTA_HEIGHT 350.00 // (mm) Get this value from G33 auto calibrate

#define DELTA_ENDSTOP_ADJ { 0.0, 0.0, 0.0 } // Get these values from G33 auto calibrate

// Horizontal distance bridged by diagonal push rods when effector is centered. #define DELTA_RADIUS 140.8 // (mm) Get this value from G33 auto calibrate

// Trim adjustments for individual towers // tower angle corrections for X and Y tower / rotate XYZ so Z tower angle = 0 // measured in degrees anticlockwise looking from above the printer #define DELTA_TOWER_ANGLE_TRIM { 0.0, 0.0, 0.0 } // Get these values from G33 auto calibrate

// Delta radius and diagonal rod adjustments (mm) //#define DELTA_RADIUS_TRIM_TOWER { 0.0, 0.0, 0.0 } #define DELTA_DIAGONAL_ROD_TRIM_TOWER { 0.0, 0.0, 0.0 }

#endif

//=========================================================================== //============================== Endstop Settings =========================== //===========================================================================

// @section homing

// Specify here all the endstop connectors that are connected to any endstop or probe. // Almost all printers will be using one per axis. Probes will use one or more of the // extra connectors. Leave undefined any used for non-endstop and non-probe purposes. //#define USE_XMIN_PLUG //#define USE_YMIN_PLUG #define USE_ZMIN_PLUG // a Z probe //#define USE_IMIN_PLUG //#define USE_JMIN_PLUG //#define USE_KMIN_PLUG //#define USE_UMIN_PLUG //#define USE_VMIN_PLUG //#define USE_WMIN_PLUG #define USE_XMAX_PLUG #define USE_YMAX_PLUG #define USE_ZMAX_PLUG //#define USE_IMAX_PLUG //#define USE_JMAX_PLUG //#define USE_KMAX_PLUG //#define USE_UMAX_PLUG //#define USE_VMAX_PLUG //#define USE_WMAX_PLUG

// Enable pullup for all endstops to prevent a floating state #define ENDSTOPPULLUPS #if DISABLED(ENDSTOPPULLUPS) // Disable ENDSTOPPULLUPS to set pullups individually //#define ENDSTOPPULLUP_XMIN //#define ENDSTOPPULLUP_YMIN //#define ENDSTOPPULLUP_ZMIN //#define ENDSTOPPULLUP_IMIN //#define ENDSTOPPULLUP_JMIN //#define ENDSTOPPULLUP_KMIN //#define ENDSTOPPULLUP_UMIN //#define ENDSTOPPULLUP_VMIN //#define ENDSTOPPULLUP_WMIN //#define ENDSTOPPULLUP_XMAX //#define ENDSTOPPULLUP_YMAX //#define ENDSTOPPULLUP_ZMAX //#define ENDSTOPPULLUP_IMAX //#define ENDSTOPPULLUP_JMAX //#define ENDSTOPPULLUP_KMAX //#define ENDSTOPPULLUP_UMAX //#define ENDSTOPPULLUP_VMAX //#define ENDSTOPPULLUP_WMAX //#define ENDSTOPPULLUP_ZMIN_PROBE #endif

// Enable pulldown for all endstops to prevent a floating state //#define ENDSTOPPULLDOWNS #if DISABLED(ENDSTOPPULLDOWNS) // Disable ENDSTOPPULLDOWNS to set pulldowns individually //#define ENDSTOPPULLDOWN_XMIN //#define ENDSTOPPULLDOWN_YMIN //#define ENDSTOPPULLDOWN_ZMIN //#define ENDSTOPPULLDOWN_IMIN //#define ENDSTOPPULLDOWN_JMIN //#define ENDSTOPPULLDOWN_KMIN //#define ENDSTOPPULLDOWN_UMIN //#define ENDSTOPPULLDOWN_VMIN //#define ENDSTOPPULLDOWN_WMIN //#define ENDSTOPPULLDOWN_XMAX //#define ENDSTOPPULLDOWN_YMAX //#define ENDSTOPPULLDOWN_ZMAX //#define ENDSTOPPULLDOWN_IMAX //#define ENDSTOPPULLDOWN_JMAX //#define ENDSTOPPULLDOWN_KMAX //#define ENDSTOPPULLDOWN_UMAX //#define ENDSTOPPULLDOWN_VMAX //#define ENDSTOPPULLDOWN_WMAX //#define ENDSTOPPULLDOWN_ZMIN_PROBE #endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup). #define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Z_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. #define I_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define J_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define K_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define U_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define V_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define W_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define X_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Y_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Z_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define I_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define J_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define K_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define U_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define V_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define W_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Z_MIN_PROBE_ENDSTOP_INVERTING true // Set to true to invert the logic of the probe.

// Enable this feature if all enabled endstop pins are interrupt-capable. // This will remove the need to poll the interrupt pins, saving many CPU cycles. //#define ENDSTOP_INTERRUPTS_FEATURE

/**

  • Endstop Noise Threshold
  • Enable if your probe or endstops falsely trigger due to noise.
    • Higher values may affect repeatability or accuracy of some bed probes.
    • To fix noise install a 100nF ceramic capacitor in parallel with the switch.
    • This feature is not required for common micro-switches mounted on PCBs
  • based on the Makerbot design, which already have the 100nF capacitor.
  • :[2,3,4,5,6,7] */ //#define ENDSTOP_NOISE_THRESHOLD 2

// Check for stuck or disconnected endstops during homing moves. //#define DETECT_BROKEN_ENDSTOP

//============================================================================= //============================== Movement Settings ============================ //============================================================================= // @section motion

// 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 (linear=steps/mm, rotational=steps/°)
  • Override with M92
  •                                  X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]
    

*/ // variables to calculate steps #define XYZ_FULL_STEPS_PER_ROTATION 200 #define XYZ_MICROSTEPS 16 #define XYZ_BELT_PITCH 2 #define XYZ_PULLEY_TEETH 16

// 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)) #define DEFAULT_AXIS_STEPS_PER_UNIT { DEFAULT_XYZ_STEPS_PER_UNIT, DEFAULT_XYZ_STEPS_PER_UNIT, DEFAULT_XYZ_STEPS_PER_UNIT, 396 } // default steps per unit

/**

  • Default Max Feed Rate (linear=mm/s, rotational=°/s)
  • Override with M203
  •                                  X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]
    

*/ #define DEFAULT_MAX_FEEDRATE { 250, 250, 250, 210 }

//#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2 #if ENABLED(LIMITED_MAX_FR_EDITING) #define MAX_FEEDRATE_EDIT_VALUES { 600, 600, 10, 50 } // ...or, set your own edit limits #endif

/**

  • Default Max Acceleration (speed change with time) (linear=mm/(s^2), rotational=°/(s^2))
  • (Maximum start speed for accelerated moves)
  • Override with M201
  •                                  X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]
    

*/ #define DEFAULT_MAX_ACCELERATION { 3000, 3000, 3000, 3000 }

//#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2 #if ENABLED(LIMITED_MAX_ACCEL_EDITING) #define MAX_ACCEL_EDIT_VALUES { 6000, 6000, 3000, 20000 } // ...or, set your own edit limits #endif

/**

  • Default Acceleration (speed change with time) (linear=mm/(s^2), rotational=°/(s^2))
  • 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 1500 // E acceleration for retracts #define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves

/**

  • Default Jerk limits (mm/s)
  • Override with M205 X Y Z . . . E
  • "Jerk" specifies the minimum speed change that requires acceleration.
  • When changing speed and direction, if the difference is less than the
  • value set here, it may happen instantaneously. */ #define CLASSIC_JERK #if ENABLED(CLASSIC_JERK) #define DEFAULT_XJERK 10.0 #define DEFAULT_YJERK DEFAULT_XJERK #define DEFAULT_ZJERK DEFAULT_XJERK // Must be same as XY for delta //#define DEFAULT_IJERK 0.3 //#define DEFAULT_JJERK 0.3 //#define DEFAULT_KJERK 0.3 //#define DEFAULT_UJERK 0.3 //#define DEFAULT_VJERK 0.3 //#define DEFAULT_WJERK 0.3

//#define TRAVEL_EXTRA_XYJERK 0.0 // Additional jerk allowance for all travel moves

//#define LIMITED_JERK_EDITING // Limit edit via M205 or LCD to DEFAULT_aJERK * 2 #if ENABLED(LIMITED_JERK_EDITING) #define MAX_JERK_EDIT_VALUES { 20, 20, 20, 10 } // ...or, set your own edit limits #endif #endif

#define DEFAULT_EJERK 5.0 // May be used by Linear Advance

/**

  • Junction Deviation Factor
  • See:
  • https://reprap.org/forum/read.php?1,739819
  • https://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html */ #if DISABLED(CLASSIC_JERK) #define JUNCTION_DEVIATION_MM 0.013 // (mm) Distance from real junction edge #define JD_HANDLE_SMALL_SEGMENTS // Use curvature estimation instead of just the junction angle // for small segments (< 1mm) with large junction angles (> 135°). #endif

/**

  • S-Curve Acceleration
  • This option eliminates vibration during printing by fitting a Bézier
  • curve to move acceleration, producing much smoother direction changes.
  • See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained */ #define S_CURVE_ACCELERATION

//=========================================================================== //============================= Z Probe Options ============================= //=========================================================================== // @section probes

// // See https://marlinfw.org/docs/configuration/probes.html //

/**

  • Enable this option for a probe connected to the Z-MIN pin.
  • The probe replaces the Z-MIN endstop and is used for Z homing.
  • (Automatically enables USE_PROBE_FOR_Z_HOMING.) */ #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

// Force the use of the probe for Z-axis homing //#define USE_PROBE_FOR_Z_HOMING

/**

  • Z_MIN_PROBE_PIN
  • Define this pin if the probe is not connected to Z_MIN_PIN.
  • If not defined the default pin for the selected MOTHERBOARD
  • will be used. Most of the time the default is what you want.
    • The simplest option is to use a free endstop connector.
    • Use 5V for powered (usually inductive) sensors.
    • RAMPS 1.3/1.4 boards may use the 5V, GND, and Aux4->D32 pin:
    • For simple switches connect...
  •  - normally-closed switches to GND and D32.
    
  •  - normally-open switches to 5V and D32.
    

*/ //#define Z_MIN_PROBE_PIN 32 // Pin 32 is the RAMPS default

/**

  • Probe Type
  • Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
  • Activate one of these to use Auto Bed Leveling below. */

/**

  • The "Manual Probe" provides a means to do "Auto" Bed Leveling without a probe.
  • Use G29 repeatedly, adjusting the Z height at each point with movement commands
  • or (with LCD_BED_LEVELING) the LCD controller. */ //#define PROBE_MANUALLY

/**

  • A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
  • (e.g., an inductive probe or a nozzle-based probe-switch.) */ #define FIX_MOUNTED_PROBE

/**

  • Use the nozzle as the probe, as with a conductive
  • nozzle system or a piezo-electric smart effector. */ //#define NOZZLE_AS_PROBE

/**

  • Z Servo Probe, such as an endstop switch on a rotating arm. */ //#define Z_PROBE_SERVO_NR 0 // Defaults to SERVO 0 connector. //#define Z_SERVO_ANGLES { 70, 0 } // Z Servo Deploy and Stow angles

/**

  • The BLTouch probe uses a Hall effect sensor and emulates a servo. */ //#define BLTOUCH

/**

  • MagLev V4 probe by MDD
  • This probe is deployed and activated by powering a built-in electromagnet. */ //#define MAGLEV4 #if ENABLED(MAGLEV4) //#define MAGLEV_TRIGGER_PIN 11 // Set to the connected digital output #define MAGLEV_TRIGGER_DELAY 15 // Changing this risks overheating the coil #endif

/**

  • Touch-MI Probe by hotends.fr
  • This probe is deployed and activated by moving the X-axis to a magnet at the edge of the bed.
  • By default, the magnet is assumed to be on the left and activated by a home. If the magnet is
  • on the right, enable and set TOUCH_MI_DEPLOY_XPOS to the deploy position.
  • Also requires: BABYSTEPPING, BABYSTEP_ZPROBE_OFFSET, Z_SAFE_HOMING,
  •            and a minimum Z_HOMING_HEIGHT of 10.
    

*/ //#define TOUCH_MI_PROBE #if ENABLED(TOUCH_MI_PROBE) #define TOUCH_MI_RETRACT_Z 0.5 // Height at which the probe retracts //#define TOUCH_MI_DEPLOY_XPOS (X_MAX_BED + 2) // For a magnet on the right side of the bed //#define TOUCH_MI_MANUAL_DEPLOY // For manual deploy (LCD menu) #endif

// A probe that is deployed and stowed with a solenoid pin (SOL1_PIN) //#define SOLENOID_PROBE

// A sled-mounted probe like those designed by Charles Bell. //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.

// A probe deployed by moving the x-axis, such as the Wilson II's rack-and-pinion probe designed by Marty Rice. //#define RACK_AND_PINION_PROBE #if ENABLED(RACK_AND_PINION_PROBE) #define Z_PROBE_DEPLOY_X X_MIN_POS #define Z_PROBE_RETRACT_X X_MAX_POS #endif

// Duet Smart Effector (for delta printers) - https://bit.ly/2ul5U7J // When the pin is defined you can use M672 to set/reset the probe sensitivity. //#define DUET_SMART_EFFECTOR #if ENABLED(DUET_SMART_EFFECTOR) #define SMART_EFFECTOR_MOD_PIN -1 // Connect a GPIO pin to the Smart Effector MOD pin #endif

/**

  • Use StallGuard2 to probe the bed with the nozzle.
  • Requires stallGuard-capable Trinamic stepper drivers.
  • CAUTION: This can damage machines with Z lead screws.
  •      Take extreme care when setting up this feature.
    

*/ //#define SENSORLESS_PROBING

/**

  • Allen key retractable z-probe as seen on many Kossel delta printers - https://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe
  • Deploys by touching z-axis belt. Retracts by pushing the probe down. 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 { 30.0, DELTA_PRINTABLE_RADIUS, 100.0 } #define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE XY_PROBE_FEEDRATE

#define Z_PROBE_ALLEN_KEY_DEPLOY_2 { 0.0, DELTA_PRINTABLE_RADIUS, 100.0 } #define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (XY_PROBE_FEEDRATE)/10

#define Z_PROBE_ALLEN_KEY_DEPLOY_3 { 0.0, (DELTA_PRINTABLE_RADIUS) * 0.75, 100.0 } #define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE XY_PROBE_FEEDRATE

#define Z_PROBE_ALLEN_KEY_STOW_1 { -64.0, 56.0, 23.0 } // Move the probe into position #define Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE XY_PROBE_FEEDRATE

#define Z_PROBE_ALLEN_KEY_STOW_2 { -64.0, 56.0, 3.0 } // Push it down #define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (XY_PROBE_FEEDRATE)/10

#define Z_PROBE_ALLEN_KEY_STOW_3 { -64.0, 56.0, 50.0 } // Move it up to clear #define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE XY_PROBE_FEEDRATE

#define Z_PROBE_ALLEN_KEY_STOW_4 { 0.0, 0.0, 50.0 } #define Z_PROBE_ALLEN_KEY_STOW_4_FEEDRATE XY_PROBE_FEEDRATE

#endif // Z_PROBE_ALLEN_KEY

/**

  • Nozzle-to-Probe offsets { X, Y, Z }
  • X and Y offset
  • Use a caliper or ruler to measure the distance from the tip of
  • the Nozzle to the center-point of the Probe in the X and Y axes.
  • Z offset
    • For the Z offset use your best known value and adjust at runtime.
    • Common probes trigger below the nozzle and have negative values for Z offset.
    • Probes triggering above the nozzle height are uncommon but do exist. When using
  • probes such as this, carefully set Z_CLEARANCE_DEPLOY_PROBE and Z_CLEARANCE_BETWEEN_PROBES
  • to avoid collisions during probing.
  • Tune and Adjust
    • Probe Offsets can be tuned at runtime with 'M851', LCD menus, babystepping, etc.
    • PROBE_OFFSET_WIZARD (configuration_adv.h) can be used for setting the Z offset.
  • Assuming the typical work area orientation:
    • Probe to RIGHT of the Nozzle has a Positive X offset
    • Probe to LEFT of the Nozzle has a Negative X offset
    • Probe in BACK of the Nozzle has a Positive Y offset
    • Probe in FRONT of the Nozzle has a Negative Y offset
  • Some examples:
  • #define NOZZLE_TO_PROBE_OFFSET { 10, 10, -1 } // Example "1"
  • #define NOZZLE_TO_PROBE_OFFSET {-10, 5, -1 } // Example "2"
  • #define NOZZLE_TO_PROBE_OFFSET { 5, -5, -1 } // Example "3"
  • #define NOZZLE_TO_PROBE_OFFSET {-15,-10, -1 } // Example "4"
  • +-- BACK ---+
    
  • |    [+]    |
    
  • L | 1 | R <-- Example "1" (right+, back+)
  • E | 2 | I <-- Example "2" ( left-, back+)
  • F |[-] N [+]| G <-- Nozzle
  • T | 3 | H <-- Example "3" (right+, front-)
  • | 4         | T <-- Example "4" ( left-, front-)
    
  • |    [-]    |
    
  • O-- FRONT --+
    

*/ #define NOZZLE_TO_PROBE_OFFSET { 0, 0, -16.2 }

// Most probes should stay away from the edges of the bed, but // with NOZZLE_AS_PROBE this can be negative for a wider probing area. #define PROBING_MARGIN 15

// X and Y axis travel speed (mm/min) between probes #define XY_PROBE_FEEDRATE (66*60)

// Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2) #define Z_PROBE_FEEDRATE_FAST (40*60)

// Feedrate (mm/min) for the "accurate" probe of each point #define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 4)

/**

  • Probe Activation Switch
  • A switch indicating proper deployment, or an optical
  • switch triggered when the carriage is near the bed. */ //#define PROBE_ACTIVATION_SWITCH #if ENABLED(PROBE_ACTIVATION_SWITCH) #define PROBE_ACTIVATION_SWITCH_STATE LOW // State indicating probe is active //#define PROBE_ACTIVATION_SWITCH_PIN PC6 // Override default pin #endif

/**

  • Tare Probe (determine zero-point) prior to each probe.
  • Useful for a strain gauge or piezo sensor that needs to factor out
  • elements such as cables pulling on the carriage. */ //#define PROBE_TARE #if ENABLED(PROBE_TARE) #define PROBE_TARE_TIME 200 // (ms) Time to hold tare pin #define PROBE_TARE_DELAY 200 // (ms) Delay after tare before #define PROBE_TARE_STATE HIGH // State to write pin for tare //#define PROBE_TARE_PIN PA5 // Override default pin #if ENABLED(PROBE_ACTIVATION_SWITCH) //#define PROBE_TARE_ONLY_WHILE_INACTIVE // Fail to tare/probe if PROBE_ACTIVATION_SWITCH is active #endif #endif

/**

  • Probe Enable / Disable
  • The probe only provides a triggered signal when enabled. */ //#define PROBE_ENABLE_DISABLE #if ENABLED(PROBE_ENABLE_DISABLE) //#define PROBE_ENABLE_PIN -1 // Override the default pin here #endif

/**

  • Multiple Probing
  • You may get improved results by probing 2 or more times.
  • With EXTRA_PROBING the more atypical reading(s) will be disregarded.
  • A total of 2 does fast/slow probes with a weighted average.
  • A total of 3 or more adds more slow probes, taking the average. */ #define MULTIPLE_PROBING 2 #define EXTRA_PROBING 1

/**

  • Z probes require clearance when deploying, stowing, and moving between
  • probe points to avoid hitting the bed and other hardware.
  • Servo-mounted probes require extra space for the arm to rotate.
  • Inductive probes need space to keep from triggering early.
  • Use these settings to specify the distance (mm) to raise the probe (or
  • lower the bed). The values set here apply over and above any (negative)
  • probe Z Offset set with NOZZLE_TO_PROBE_OFFSET, M851, or the LCD.
  • Only integer values >= 1 are valid here.
  • Example: M851 Z-5 with a CLEARANCE of 4 => 9mm from bed to nozzle.
  • But: `M851 Z+1` with a CLEARANCE of 2  =>  2mm from bed to nozzle.
    

*/ #define Z_CLEARANCE_DEPLOY_PROBE 20 // Z Clearance for Deploy/Stow #define Z_CLEARANCE_BETWEEN_PROBES 15 // Z Clearance between probe points #define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes //#define Z_AFTER_PROBING 100 // Z position after probing is done

#define Z_PROBE_LOW_POINT -4 // 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 -25 #define Z_PROBE_OFFSET_RANGE_MAX 20

// Enable the M48 repeatability test to test probe accuracy #define Z_MIN_PROBE_REPEATABILITY_TEST

// Before deploy/stow pause for user confirmation #define PAUSE_BEFORE_DEPLOY_STOW #if ENABLED(PAUSE_BEFORE_DEPLOY_STOW) //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe #endif

/**

  • Enable one or more of the following if probing seems unreliable.
  • Heaters and/or fans can be disabled during probing to minimize electrical
  • noise. A delay can also be added to allow noise and vibration to settle.
  • These options are most useful for the BLTouch probe, but may also improve
  • readings with inductive probes and piezo sensors. */ //#define PROBING_HEATERS_OFF // Turn heaters off when probing #if ENABLED(PROBING_HEATERS_OFF) //#define WAIT_FOR_BED_HEATER // Wait for bed to heat back up between probes (to improve accuracy) //#define WAIT_FOR_HOTEND // Wait for hotend to heat back up between probes (to improve accuracy & prevent cold extrude) #endif //#define PROBING_FANS_OFF // Turn fans off when probing //#define PROBING_ESTEPPERS_OFF // Turn all extruder steppers off when probing //#define PROBING_STEPPERS_OFF // Turn all steppers off (unless needed to hold position) when probing (including extruders) //#define DELAY_BEFORE_PROBING 200 // (ms) To prevent vibrations from triggering piezo sensors

// Require minimum nozzle and/or bed temperature for probing #define PREHEAT_BEFORE_PROBING #if ENABLED(PREHEAT_BEFORE_PROBING) //#d

davedouthettrb avatar May 23 '22 04:05 davedouthettrb

MKS-hosiey,

I keep getting the following error: arm-none-eabi/bin/ld.exe: region `FLASH' overflowed by 176540 bytescollect2.exe: error: ld returned 1 exit status*** [.pio\build\mks_robin_nano_v3_1_usb_flash_drive\firmware.elf] Error 1 What can I do to eliminate this error? Can I just delete all the disabled features in the Configuration.h file or is there something else I need to change in either the Configuration.h file or the Configuration_Adv.h file? Thanks! Dave

On Sunday, May 22, 2022, 10:42:50 PM MDT, Dave Douthett ***@***.***> wrote:  

MKS-hosiey,

Just tried the new firmware. 1.    Homing is working correctly now.2.    Previously, the touch-screen and decoder were working but now they are erratic.  It takes a bit of effort to get the correct selection and then to activate it.3.    Leveling looked like it was going to work, it stopped moving down about 20mm from the build plate and then move toward the edge of the plate.  Unfortunately, it moved about 5 mm beyond the edge of the build plate and crashed below it. The sensor lights up on contact with the build plate but the controller doesn't seem to detect it. If you can help me with this, that would be great!  Files attached. Thanks! Dave

On Sunday, May 22, 2022, 10:12:31 PM MDT, Dave Douthett ***@***.***> wrote:  

MKS-hosiey, I replace the original because it failed.A lot of modifications were done to get the Robin Nano and the TS35 in the chassis. I'm still working on the firmware myself (just finished a build that passed using Configurations-bugfix-2.0.x.zip & Marlin-bugfix-2.0 downloaded today).I've already spent hours on the firmware trying to get everything to work. I can send you the configuration files to look at if you wish. Thanks! Dave On Sunday, May 22, 2022, 08:41:13 PM MDT, MKS-hosiey @.***> wrote:

Is this the motherboard of the machine? Or did you replace it yourself? This is because your configuration parameters are incorrect. The configuration of delta is very complicated. It is recommended that you look for the configuration file of this machine in the configuration file of marlin.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

/** Dave's Mods 25MAY2022 — 09:51PM

  • Marlin 3D Printer Firmware
  • Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
  • Based on Sprinter and grbl.
  • Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
  • This program is free software: you can redistribute it and/or modify
  • it under the terms of the GNU General Public License as published by
  • the Free Software Foundation, either version 3 of the License, or
  • (at your option) any later version.
  • This program is distributed in the hope that it will be useful,
  • but WITHOUT ANY WARRANTY; without even the implied warranty of
  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  • GNU General Public License for more details.
  • You should have received a copy of the GNU General Public License
  • along with this program. If not, see https://www.gnu.org/licenses/.

*/ #pragma once

#define CONFIG_EXAMPLES_DIR "delta/FLSUN/QQS-Pro"

/**

  • Configuration.h
  • Basic settings such as:
    • Type of electronics
    • Type of temperature sensor
    • Printer geometry
    • Endstop configuration
    • LCD controller
    • Extra features
  • Advanced settings can be found in Configuration_adv.h */ #define CONFIGURATION_H_VERSION 02010000

//=========================================================================== //============================= Getting Started ============================= //===========================================================================

/**

  • Here are some useful links to help get your machine configured and calibrated:
  • Example Configs: https://github.com/MarlinFirmware/Configurations/branches/all
  • Průša Calculator: https://blog.prusaprinters.org/calculator_3416/
  • Calibration Guides: https://reprap.org/wiki/Calibration
  •                  https://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
    
  •                  https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
    
  •                  https://youtu.be/wAL9d7FgInk
    
  • Calibration Objects: https://www.thingiverse.com/thing:5573
  •                  https://www.thingiverse.com/thing:1278865
    

*/

// @section info

// Author info of this build printed to the host during boot and M115 #define STRING_CONFIG_H_AUTHOR "(Foxies-CSTL, QQS-Pro)" // Who made the changes. //#define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes)

/**

  • *** VENDORS PLEASE READ ***
  • Marlin allows you to add a custom boot image for Graphical LCDs.
  • With this option Marlin will first show your custom screen followed
  • by the standard Marlin logo with version number and web URL.
  • We encourage you to take advantage of this new feature and we also
  • respectfully request that you retain the unmodified Marlin boot screen. */

// Show the Marlin bootscreen on startup. ** ENABLE FOR PRODUCTION ** #define SHOW_BOOTSCREEN

// Show the bitmap in Marlin/_Bootscreen.h on startup. //#define SHOW_CUSTOM_BOOTSCREEN

// Show the bitmap in Marlin/_Statusscreen.h on the status screen. //#define CUSTOM_STATUS_SCREEN_IMAGE

// @section machine

// Choose the name from boards.h that matches your setup #ifndef MOTHERBOARD #define MOTHERBOARD BOARD_MKS_ROBIN_NANO_V3_1 #endif

/**

  • Select the serial port on the board to use for communication with the host.
  • This allows the connection of wireless adapters (for instance) to non-default port pins.
  • Serial port -1 is the USB emulated serial port, if available.
  • Note: The first serial port (-1 or 0) will always be used by the Arduino bootloader.
  • :[-1, 0, 1, 2, 3, 4, 5, 6, 7] */ #define SERIAL_PORT -1

/**

  • Serial Port Baud Rate
  • This is the default communication speed for all serial ports.
  • Set the baud rate defaults for additional serial ports below.
  • 250000 works in most cases, but you might try a lower speed if
  • you commonly experience drop-outs during host printing.
  • You may try up to 1000000 to speed up SD file transfer.
  • :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] */ #define BAUDRATE 115200 //#define BAUD_RATE_GCODE // Enable G-code M575 to set the baud rate

/**

  • Select a secondary serial port on the board to use for communication with the host.
  • Currently Ethernet (-2) is only supported on Teensy 4.1 boards.
  • :[-2, -1, 0, 1, 2, 3, 4, 5, 6, 7] */ #define SERIAL_PORT_2 3 //#define BAUDRATE_2 115200 // Enable to override BAUDRATE

/**

  • Select a third serial port on the board to use for communication with the host.
  • Currently only supported for AVR, DUE, LPC1768/9 and STM32/STM32F1
  • :[-1, 0, 1, 2, 3, 4, 5, 6, 7] */ //#define SERIAL_PORT_3 1 //#define BAUDRATE_3 250000 // Enable to override BAUDRATE

// Enable the Bluetooth serial interface on AT90USB devices //#define BLUETOOTH

// Name displayed in the LCD "Ready" message and Info menu #define CUSTOM_MACHINE_NAME "FLSUN QQS-Pro MKS Robin Nano 3.1 TS35 V2.0"

// Printer's unique ID, used by some programs to differentiate between machines. // Choose your own or use a service like https://www.uuidgenerator.net/version4 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"

/**

  • Stepper Drivers
  • These settings allow Marlin to tune stepper driver timing and enable advanced options for
  • stepper drivers that support them. You may also override timing options in Configuration_adv.h.
  • Use TMC2208/TMC2208_STANDALONE for TMC2225 drivers and TMC2209/TMC2209_STANDALONE for TMC2226 drivers.
  • Options: A4988, A5984, DRV8825, LV8729, L6470, L6474, POWERSTEP01,
  •      TB6560, TB6600, TMC2100,
    
  •      TMC2130, TMC2130_STANDALONE, TMC2160, TMC2160_STANDALONE,
    
  •      TMC2208, TMC2208_STANDALONE, TMC2209, TMC2209_STANDALONE,
    
  •      TMC26X,  TMC26X_STANDALONE,  TMC2660, TMC2660_STANDALONE,
    
  •      TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE
    
  • :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE'] */ #define X_DRIVER_TYPE TMC2209 #define Y_DRIVER_TYPE TMC2209 #define Z_DRIVER_TYPE TMC2209 //#define X2_DRIVER_TYPE A4988 //#define Y2_DRIVER_TYPE A4988 //#define Z2_DRIVER_TYPE A4988 //#define Z3_DRIVER_TYPE A4988 //#define Z4_DRIVER_TYPE A4988 //#define I_DRIVER_TYPE A4988 //#define J_DRIVER_TYPE A4988 //#define K_DRIVER_TYPE A4988 //#define U_DRIVER_TYPE A4988 //#define V_DRIVER_TYPE A4988 //#define W_DRIVER_TYPE A4988 #define E0_DRIVER_TYPE TMC2209 //#define E1_DRIVER_TYPE A4988 //#define E2_DRIVER_TYPE A4988 //#define E3_DRIVER_TYPE A4988 //#define E4_DRIVER_TYPE A4988 //#define E5_DRIVER_TYPE A4988 //#define E6_DRIVER_TYPE A4988 //#define E7_DRIVER_TYPE A4988

/**

  • Additional Axis Settings
  • Define AXISn_ROTATES for all axes that rotate or pivot.
  • Rotational axis coordinates are expressed in degrees.
  • AXISn_NAME defines the letter used to refer to the axis in (most) G-code commands.
  • By convention the names and roles are typically:
  • 'A' : Rotational axis parallel to X
  • 'B' : Rotational axis parallel to Y
  • 'C' : Rotational axis parallel to Z
  • 'U' : Secondary linear axis parallel to X
  • 'V' : Secondary linear axis parallel to Y
  • 'W' : Secondary linear axis parallel to Z
  • Regardless of these settings the axes are internally named I, J, K, U, V, W. */ #ifdef I_DRIVER_TYPE #define AXIS4_NAME 'A' // :['A', 'B', 'C', 'U', 'V', 'W'] #define AXIS4_ROTATES #endif #ifdef J_DRIVER_TYPE #define AXIS5_NAME 'B' // :['B', 'C', 'U', 'V', 'W'] #define AXIS5_ROTATES #endif #ifdef K_DRIVER_TYPE #define AXIS6_NAME 'C' // :['C', 'U', 'V', 'W'] #define AXIS6_ROTATES #endif #ifdef U_DRIVER_TYPE #define AXIS7_NAME 'U' // :['U', 'V', 'W'] //#define AXIS7_ROTATES #endif #ifdef V_DRIVER_TYPE #define AXIS8_NAME 'V' // :['V', 'W'] //#define AXIS8_ROTATES #endif #ifdef W_DRIVER_TYPE #define AXIS9_NAME 'W' // :['W'] //#define AXIS9_ROTATES #endif

// @section extruder

// This defines the number of extruders // :[0, 1, 2, 3, 4, 5, 6, 7, 8] #define EXTRUDERS 1

// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc. #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75

// For Cyclops or any "multi-extruder" that shares a single nozzle. //#define SINGLENOZZLE

// Save and restore temperature and fan speed on tool-change. // Set standby for the unselected tool with M104/106/109 T... #if ENABLED(SINGLENOZZLE) //#define SINGLENOZZLE_STANDBY_TEMP //#define SINGLENOZZLE_STANDBY_FAN #endif

/**

  • Multi-Material Unit
  • Set to one of these predefined models:
  • PRUSA_MMU1 : Průša MMU1 (The "multiplexer" version)
  • PRUSA_MMU2 : Průša MMU2
  • PRUSA_MMU2S : Průša MMU2S (Requires MK3S extruder with motion sensor, EXTRUDERS = 5)
  • EXTENDABLE_EMU_MMU2 : MMU with configurable number of filaments (ERCF, SMuFF or similar with Průša MMU2 compatible firmware)
  • EXTENDABLE_EMU_MMU2S : MMUS with configurable number of filaments (ERCF, SMuFF or similar with Průša MMU2 compatible firmware)
  • Requires NOZZLE_PARK_FEATURE to park print head in case MMU unit fails.
  • See additional options in Configuration_adv.h. */ //#define MMU_MODEL PRUSA_MMU2

// A dual extruder that uses a single stepper motor //#define SWITCHING_EXTRUDER #if ENABLED(SWITCHING_EXTRUDER) #define SWITCHING_EXTRUDER_SERVO_NR 0 #define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1[, E2, E3] #if EXTRUDERS > 3 #define SWITCHING_EXTRUDER_E23_SERVO_NR 1 #endif #endif

// A dual-nozzle that uses a servomotor to raise/lower one (or both) of the nozzles //#define SWITCHING_NOZZLE #if ENABLED(SWITCHING_NOZZLE) #define SWITCHING_NOZZLE_SERVO_NR 0 //#define SWITCHING_NOZZLE_E1_SERVO_NR 1 // If two servos are used, the index of the second #define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1 (single servo) or lowered/raised (dual servo) #endif

/**

  • Two separate X-carriages with extruders that connect to a moving part
  • via a solenoid docking mechanism. Requires SOL1_PIN and SOL2_PIN. */ //#define PARKING_EXTRUDER

/**

  • Two separate X-carriages with extruders that connect to a moving part
  • via a magnetic docking mechanism using movements and no solenoid
  • project : https://www.thingiverse.com/thing:3080893
  • movements : https://youtu.be/0xCEiG9VS3k
  •         https://youtu.be/Bqbcs0CU2FE
    

*/ //#define MAGNETIC_PARKING_EXTRUDER

#if EITHER(PARKING_EXTRUDER, MAGNETIC_PARKING_EXTRUDER)

#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders #define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder

#if ENABLED(PARKING_EXTRUDER)

#define PARKING_EXTRUDER_SOLENOIDS_INVERT           // If enabled, the solenoid is NOT magnetized with applied voltage
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW  // LOW or HIGH pin signal energizes the coil
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250        // (ms) Delay for magnetic field. No delay if 0 or not defined.
//#define MANUAL_SOLENOID_CONTROL                   // Manual control of docking solenoids with M380 S / M381

#elif ENABLED(MAGNETIC_PARKING_EXTRUDER)

#define MPE_FAST_SPEED      9000      // (mm/min) Speed for travel before last distance point
#define MPE_SLOW_SPEED      4500      // (mm/min) Speed for last distance travel to park and couple
#define MPE_TRAVEL_DISTANCE   10      // (mm) Last distance point
#define MPE_COMPENSATION       0      // Offset Compensation -1 , 0 , 1 (multiplier) only for coupling

#endif

#endif

/**

  • Switching Toolhead
  • Support for swappable and dockable toolheads, such as
  • the E3D Tool Changer. Toolheads are locked with a servo. */ //#define SWITCHING_TOOLHEAD

/**

  • Magnetic Switching Toolhead
  • Support swappable and dockable toolheads with a magnetic
  • docking mechanism using movement and no servo. */ //#define MAGNETIC_SWITCHING_TOOLHEAD

/**

  • Electromagnetic Switching Toolhead
  • Parking for CoreXY / HBot kinematics.
  • Toolheads are parked at one edge and held with an electromagnet.
  • Supports more than 2 Toolheads. See https://youtu.be/JolbsAKTKf4 */ //#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD

#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD) #define SWITCHING_TOOLHEAD_Y_POS 235 // (mm) Y position of the toolhead dock #define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm) Security distance Y axis #define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm) Minimum distance from dock for unobstructed X axis #define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm) X positions for parking the extruders #if ENABLED(SWITCHING_TOOLHEAD) #define SWITCHING_TOOLHEAD_SERVO_NR 2 // Index of the servo connector #define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (degrees) Angles for Lock, Unlock #elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD) #define SWITCHING_TOOLHEAD_Y_RELEASE 5 // (mm) Security distance Y axis #define SWITCHING_TOOLHEAD_X_SECURITY { 90, 150 } // (mm) Security distance X axis (T0,T1) //#define PRIME_BEFORE_REMOVE // Prime the nozzle before release from the dock #if ENABLED(PRIME_BEFORE_REMOVE) #define SWITCHING_TOOLHEAD_PRIME_MM 20 // (mm) Extruder prime length #define SWITCHING_TOOLHEAD_RETRACT_MM 10 // (mm) Retract after priming length #define SWITCHING_TOOLHEAD_PRIME_FEEDRATE 300 // (mm/min) Extruder prime feedrate #define SWITCHING_TOOLHEAD_RETRACT_FEEDRATE 2400 // (mm/min) Extruder retract feedrate #endif #elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD) #define SWITCHING_TOOLHEAD_Z_HOP 2 // (mm) Z raise for switching #endif #endif

/**

  • "Mixing Extruder"
    • Adds G-codes M163 and M164 to set and "commit" the current mix factors.
    • Extends the stepping routines to move multiple steppers in proportion to the mix.
    • Optional support for Repetier Firmware's 'M164 S' supporting virtual tools.
    • This implementation supports up to two mixing extruders.
    • Enable DIRECT_MIXING_IN_G1 for M165 and mixing in G1 (from Pia Taubert's reference implementation). */ //#define MIXING_EXTRUDER #if ENABLED(MIXING_EXTRUDER) #define MIXING_STEPPERS 2 // Number of steppers in your mixing extruder #define MIXING_VIRTUAL_TOOLS 16 // Use the Virtual Tool method with M163 and M164 //#define DIRECT_MIXING_IN_G1 // Allow ABCDHI mix factors in G1 movement commands //#define GRADIENT_MIX // Support for gradient mixing with M166 and LCD //#define MIXING_PRESETS // Assign 8 default V-tool presets for 2 or 3 MIXING_STEPPERS #if ENABLED(GRADIENT_MIX) //#define GRADIENT_VTOOL // Add M166 T to use a V-tool index as a Gradient alias #endif #endif

// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing). // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder). // For the other hotends it is their distance from the extruder 0 hotend. //#define HOTEND_OFFSET_X { 0.0, 20.00 } // (mm) relative X-offset for each nozzle //#define HOTEND_OFFSET_Y { 0.0, 5.00 } // (mm) relative Y-offset for each nozzle //#define HOTEND_OFFSET_Z { 0.0, 0.00 } // (mm) relative Z-offset for each nozzle

// @section machine

/**

  • Power Supply Control
  • Enable and connect the power supply to the PS_ON_PIN.
  • Specify whether the power supply is active HIGH or active LOW. */ //#define PSU_CONTROL //#define PSU_NAME "Power Supply"

#if ENABLED(PSU_CONTROL) //#define MKS_PWC // Using the MKS PWC add-on //#define PS_OFF_CONFIRM // Confirm dialog when power off //#define PS_OFF_SOUND // Beep 1s when power off #define PSU_ACTIVE_STATE LOW // Set 'LOW' for ATX, 'HIGH' for X-Box

//#define PSU_DEFAULT_OFF // Keep power off until enabled directly with M80 //#define PSU_POWERUP_DELAY 250 // (ms) Delay for the PSU to warm up to full power //#define LED_POWEROFF_TIMEOUT 10000 // (ms) Turn off LEDs after power-off, with this amount of delay

//#define POWER_OFF_TIMER // Enable M81 D to power off after a delay //#define POWER_OFF_WAIT_FOR_COOLDOWN // Enable M81 S to power off only after cooldown

//#define PSU_POWERUP_GCODE "M355 S1" // G-code to run after power-on (e.g., case light on) //#define PSU_POWEROFF_GCODE "M355 S0" // G-code to run before power-off (e.g., case light off)

//#define AUTO_POWER_CONTROL // Enable automatic control of the PS_ON pin #if ENABLED(AUTO_POWER_CONTROL) #define AUTO_POWER_FANS // Turn on PSU if fans need power #define AUTO_POWER_E_FANS #define AUTO_POWER_CONTROLLERFAN #define AUTO_POWER_CHAMBER_FAN #define AUTO_POWER_COOLER_FAN #define POWER_TIMEOUT 30 // (s) Turn off power if the machine is idle for this duration //#define POWER_OFF_DELAY 60 // (s) Delay of poweroff after M81 command. Useful to let fans run for extra time. #endif #if EITHER(AUTO_POWER_CONTROL, POWER_OFF_WAIT_FOR_COOLDOWN) //#define AUTO_POWER_E_TEMP 50 // (°C) PSU on if any extruder is over this temperature //#define AUTO_POWER_CHAMBER_TEMP 30 // (°C) PSU on if the chamber is over this temperature //#define AUTO_POWER_COOLER_TEMP 26 // (°C) PSU on if the cooler is over this temperature #endif #endif

//=========================================================================== //============================= Thermal Settings ============================ //=========================================================================== // @section temperature

/**

  • --NORMAL IS 4.7kΩ PULLUP!-- 1kΩ pullup can be used on hotend sensor, using correct resistor and table
  • Temperature sensors available:
  • SPI RTD/Thermocouple Boards - IMPORTANT: Read the NOTE below!

  • -5 : MAX31865 with Pt100/Pt1000, 2, 3, or 4-wire (only for sensors 0-1)
  •              NOTE: You must uncomment/set the MAX31865_*_OHMS_n defines below.
    
  • -3 : MAX31855 with Thermocouple, -200°C to +700°C (only for sensors 0-1)
  • -2 : MAX6675 with Thermocouple, 0°C to +700°C (only for sensors 0-1)
  • NOTE: Ensure TEMP_n_CS_PIN is set in your pins file for each TEMP_SENSOR_n using an SPI Thermocouple. By default,
  •    Hardware SPI on the default serial bus is used. If you have also set TEMP_n_SCK_PIN and TEMP_n_MISO_PIN,
    
  •    Software SPI will be used on those ports instead. You can force Hardware SPI on the default bus in the
    
  •    Configuration_adv.h file. At this time, separate Hardware SPI buses for sensors are not supported.
    
  • Analog Themocouple Boards

  • -4 : AD8495 with Thermocouple
  • -1 : AD595 with Thermocouple
  • Analog Thermistors - 4.7kΩ pullup - Normal

  • 1 : 100kΩ  EPCOS - Best choice for EPCOS thermistors
    
  • 331 : 100kΩ Same as #1, but 3.3V scaled for MEGA
  • 332 : 100kΩ Same as #1, but 3.3V scaled for DUE
  • 2 : 200kΩ  ATC Semitec 204GT-2
    
  • 202 : 200kΩ Copymaster 3D
  • 3 : ???Ω   Mendel-parts thermistor
    
  • 4 : 10kΩ   Generic Thermistor !! DO NOT use for a hotend - it gives bad resolution at high temp. !!
    
  • 5 : 100kΩ  ATC Semitec 104GT-2/104NT-4-R025H42G - Used in ParCan, J-Head, and E3D, SliceEngineering 300°C
    
  • 501 : 100kΩ Zonestar - Tronxy X3A
  • 502 : 100kΩ Zonestar - used by hot bed in Zonestar Průša P802M
  • 503 : 100kΩ Zonestar (Z8XM2) Heated Bed thermistor
  • 504 : 100kΩ Zonestar P802QR2 (Part# QWG-104F-B3950) Hotend Thermistor
  • 505 : 100kΩ Zonestar P802QR2 (Part# QWG-104F-3950) Bed Thermistor
  • 512 : 100kΩ RPW-Ultra hotend
  • 6 : 100kΩ  EPCOS - Not as accurate as table #1 (created using a fluke thermocouple)
    
  • 7 : 100kΩ  Honeywell 135-104LAG-J01
    
  • 71 : 100kΩ Honeywell 135-104LAF-J01
  • 8 : 100kΩ  Vishay 0603 SMD NTCS0603E3104FXT
    
  • 9 : 100kΩ  GE Sensing AL03006-58.2K-97-G1
    
  • 10 : 100kΩ RS PRO 198-961
  • 11 : 100kΩ Keenovo AC silicone mats, most Wanhao i3 machines - beta 3950, 1%
  • 12 : 100kΩ Vishay 0603 SMD NTCS0603E3104FXT (#8) - calibrated for Makibox hot bed
  • 13 : 100kΩ Hisens up to 300°C - for "Simple ONE" & "All In ONE" hotend - beta 3950, 1%
  • 15 : 100kΩ Calibrated for JGAurora A5 hotend
  • 18 : 200kΩ ATC Semitec 204GT-2 Dagoma.Fr - MKS_Base_DKU001327
  • 22 : 100kΩ GTM32 Pro vB - hotend - 4.7kΩ pullup to 3.3V and 220Ω to analog input
  • 23 : 100kΩ GTM32 Pro vB - bed - 4.7kΩ pullup to 3.3v and 220Ω to analog input
  • 30 : 100kΩ Kis3d Silicone heating mat 200W/300W with 6mm precision cast plate (EN AW 5083) NTC100K - beta 3950
  • 60 : 100kΩ Maker's Tool Works Kapton Bed Thermistor - beta 3950
  • 61 : 100kΩ Formbot/Vivedino 350°C Thermistor - beta 3950
  • 66 : 4.7MΩ Dyze Design High Temperature Thermistor
  • 67 : 500kΩ SliceEngineering 450°C Thermistor
  • 68 : PT100 amplifier board from Dyze Design
  • 70 : 100kΩ bq Hephestos 2
  • 75 : 100kΩ Generic Silicon Heat Pad with NTC100K MGB18-104F39050L32
  • 2000 : 100kΩ Ultimachine Rambo TDK NTCG104LH104KT1 NTC100K motherboard Thermistor
  • Analog Thermistors - 1kΩ pullup - Atypical, and requires changing out the 4.7kΩ pullup for 1kΩ.
  • ------- (but gives greater accuracy and more stable PID)
  • 51 : 100kΩ EPCOS (1kΩ pullup)
  • 52 : 200kΩ ATC Semitec 204GT-2 (1kΩ pullup)
  • 55 : 100kΩ ATC Semitec 104GT-2 - Used in ParCan & J-Head (1kΩ pullup)
  • Analog Thermistors - 10kΩ pullup - Atypical

  • 99 : 100kΩ Found on some Wanhao i3 machines with a 10kΩ pull-up resistor
  • Analog RTDs (Pt100/Pt1000)

  • 110 : Pt100 with 1kΩ pullup (atypical)
  • 147 : Pt100 with 4.7kΩ pullup
  • 1010 : Pt1000 with 1kΩ pullup (atypical)
  • 1047 : Pt1000 with 4.7kΩ pullup (E3D)
  • 20 : Pt100 with circuit in the Ultimainboard V2.x with mainboard ADC reference voltage = INA826 amplifier-board supply voltage.
  •            NOTE: (1) Must use an ADC input with no pullup. (2) Some INA826 amplifiers are unreliable at 3.3V so consider using sensor 147, 110, or 21.
    
  • 21 : Pt100 with circuit in the Ultimainboard V2.x with 3.3v ADC reference voltage (STM32, LPC176x....) and 5V INA826 amplifier board supply.
  •            NOTE: ADC pins are not 5V tolerant. Not recommended because it's possible to damage the CPU by going over 500°C.
    
  • 201 : Pt100 with circuit in Overlord, similar to Ultimainboard V2.x
  • Custom/Dummy/Other Thermal Sensors

  • 0 : not used
    
  • 1000 : Custom - Specify parameters in Configuration_adv.h
  • !!! Use these for Testing or Development purposes. NEVER for production machine. !!!
  • 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
  • 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.

*/ #define TEMP_SENSOR_0 5 #define TEMP_SENSOR_1 0 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_3 0 #define TEMP_SENSOR_4 0 #define TEMP_SENSOR_5 0 #define TEMP_SENSOR_6 0 #define TEMP_SENSOR_7 0 #define TEMP_SENSOR_BED 1 #define TEMP_SENSOR_PROBE 0 #define TEMP_SENSOR_CHAMBER 0 #define TEMP_SENSOR_COOLER 0 #define TEMP_SENSOR_BOARD 0 #define TEMP_SENSOR_REDUNDANT 0

// Dummy thermistor constant temperature readings, for use with 998 and 999 //#define DUMMY_THERMISTOR_998_VALUE 25 //#define DUMMY_THERMISTOR_999_VALUE 100

// Resistor values when using MAX31865 sensors (-5) on TEMP_SENSOR_0 / 1 //#define MAX31865_SENSOR_OHMS_0 100 // (Ω) Typically 100 or 1000 (PT100 or PT1000) //#define MAX31865_CALIBRATION_OHMS_0 430 // (Ω) Typically 430 for Adafruit PT100; 4300 for Adafruit PT1000 //#define MAX31865_SENSOR_OHMS_1 100 //#define MAX31865_CALIBRATION_OHMS_1 430

#define TEMP_RESIDENCY_TIME 10 // (seconds) Time to wait for hotend to "settle" in M109 #define TEMP_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer #define TEMP_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target

#define TEMP_BED_RESIDENCY_TIME 10 // (seconds) Time to wait for bed to "settle" in M190 #define TEMP_BED_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer #define TEMP_BED_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target

#define TEMP_CHAMBER_RESIDENCY_TIME 10 // (seconds) Time to wait for chamber to "settle" in M191 #define TEMP_CHAMBER_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer #define TEMP_CHAMBER_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target

/**

  • Redundant Temperature Sensor (TEMP_SENSOR_REDUNDANT)
  • Use a temp sensor as a redundant sensor for another reading. Select an unused temperature sensor, and another
  • sensor you'd like it to be redundant for. If the two thermistors differ by TEMP_SENSOR_REDUNDANT_MAX_DIFF (°C),
  • the print will be aborted. Whichever sensor is selected will have its normal functions disabled; i.e. selecting
  • the Bed sensor (-1) will disable bed heating/monitoring.
  • For selecting source/target use: COOLER, PROBE, BOARD, CHAMBER, BED, E0, E1, E2, E3, E4, E5, E6, E7 */ #if TEMP_SENSOR_REDUNDANT #define TEMP_SENSOR_REDUNDANT_SOURCE E1 // The sensor that will provide the redundant reading. #define TEMP_SENSOR_REDUNDANT_TARGET E0 // The sensor that we are providing a redundant reading for. #define TEMP_SENSOR_REDUNDANT_MAX_DIFF 10 // (°C) Temperature difference that will trigger a print abort. #endif

// Below this temperature the heater will be switched off // because it probably indicates a broken thermistor wire. #define HEATER_0_MINTEMP 5 #define HEATER_1_MINTEMP 5 #define HEATER_2_MINTEMP 5 #define HEATER_3_MINTEMP 5 #define HEATER_4_MINTEMP 5 #define HEATER_5_MINTEMP 5 #define HEATER_6_MINTEMP 5 #define HEATER_7_MINTEMP 5 #define BED_MINTEMP 5 #define CHAMBER_MINTEMP 5

// Above this temperature the heater will be switched off. // This can protect components from overheating, but NOT from shorts and failures. // (Use MINTEMP for thermistor short/failure protection.) #define HEATER_0_MAXTEMP 275 #define HEATER_1_MAXTEMP 275 #define HEATER_2_MAXTEMP 275 #define HEATER_3_MAXTEMP 275 #define HEATER_4_MAXTEMP 275 #define HEATER_5_MAXTEMP 275 #define HEATER_6_MAXTEMP 275 #define HEATER_7_MAXTEMP 275 #define BED_MAXTEMP 120 #define CHAMBER_MAXTEMP 60

/**

  • Thermal Overshoot
  • During heatup (and printing) the temperature can often "overshoot" the target by many degrees
  • (especially before PID tuning). Setting the target temperature too close to MAXTEMP guarantees
  • a MAXTEMP shutdown! Use these values to forbid temperatures being set too close to MAXTEMP. */ #define HOTEND_OVERSHOOT 15 // (°C) Forbid temperatures over MAXTEMP - OVERSHOOT #define BED_OVERSHOOT 10 // (°C) Forbid temperatures over MAXTEMP - OVERSHOOT #define COOLER_OVERSHOOT 2 // (°C) Forbid temperatures closer than OVERSHOOT

//=========================================================================== //============================= PID Settings ================================ //===========================================================================

// Enable PIDTEMP for PID control or MPCTEMP for Predictive Model. // temperature control. Disable both for bang-bang heating. #define PIDTEMP // See the PID Tuning Guide at https://reprap.org/wiki/PID_Tuning //#define MPCTEMP // ** EXPERIMENTAL **

#define BANG_MAX 255 // Limits current to nozzle while in bang-bang mode; 255=full current #define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current #define PID_K1 0.95 // Smoothing factor within any PID loop

#if ENABLED(PIDTEMP) //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders) // Set/get with gcode: M301 E[extruder number, 0-2]

#if ENABLED(PID_PARAMS_PER_HOTEND) // Specify up to one value per hotend here, according to your setup. // If there are fewer values, the last one applies to the remaining hotends. #define DEFAULT_Kp_LIST { 21.6708, 21.6708 } #define DEFAULT_Ki_LIST { 1.2515, 1.2515 } #define DEFAULT_Kd_LIST { 93.8127, 93.8127 } #else // FLSUN QQS-Pro, PET 235 C with 70% part cooling #define DEFAULT_Kp 21.6708 #define DEFAULT_Ki 1.2515 #define DEFAULT_Kd 93.8127 #endif #endif

/**

  • Model Predictive Control for hotend
  • Use a physical model of the hotend to control temperature. When configured correctly
  • this gives better responsiveness and stability than PID and it also removes the need
  • for PID_EXTRUSION_SCALING and PID_FAN_SCALING. Use M306 to autotune the model. */ #if ENABLED(MPCTEMP) //#define MPC_EDIT_MENU // Add MPC editing to the "Advanced Settings" menu. (~1300 bytes of flash) //#define MPC_AUTOTUNE_MENU // Add MPC auto-tuning to the "Advanced Settings" menu. (~350 bytes of flash)

#define MPC_MAX BANG_MAX // (0..255) Current to nozzle while MPC is active. #define MPC_HEATER_POWER { 40.0f } // (W) Heat cartridge powers.

#define MPC_INCLUDE_FAN // Model the fan speed?

// Measured physical constants from M306 #define MPC_BLOCK_HEAT_CAPACITY { 16.7f } // (J/K) Heat block heat capacities. #define MPC_SENSOR_RESPONSIVENESS { 0.22f } // (K/s per ∆K) Rate of change of sensor temperature from heat block. #define MPC_AMBIENT_XFER_COEFF { 0.068f } // (W/K) Heat transfer coefficients from heat block to room air with fan off. #if ENABLED(MPC_INCLUDE_FAN) #define MPC_AMBIENT_XFER_COEFF_FAN255 { 0.097f } // (W/K) Heat transfer coefficients from heat block to room air with fan on full. #endif

// For one fan and multiple hotends MPC needs to know how to apply the fan cooling effect. #if ENABLED(MPC_INCLUDE_FAN) //#define MPC_FAN_0_ALL_HOTENDS //#define MPC_FAN_0_ACTIVE_HOTEND #endif

#define FILAMENT_HEAT_CAPACITY_PERMM 5.6e-3f // 0.0056 J/K/mm for 1.75mm PLA (0.0149 J/K/mm for 2.85mm PLA). //#define FILAMENT_HEAT_CAPACITY_PERMM 3.6e-3f // 0.0036 J/K/mm for 1.75mm PETG (0.0094 J/K/mm for 2.85mm PETG).

// Advanced options #define MPC_SMOOTHING_FACTOR 0.5f // (0.0...1.0) Noisy temperature sensors may need a lower value for stabilization. #define MPC_MIN_AMBIENT_CHANGE 1.0f // (K/s) Modeled ambient temperature rate of change, when correcting model inaccuracies. #define MPC_STEADYSTATE 0.5f // (K/s) Temperature change rate for steady state logic to be enforced.

#define MPC_TUNING_POS { X_CENTER, Y_CENTER, 1.0f } // (mm) M306 Autotuning position, ideally bed center just above the surface. #define MPC_TUNING_END_Z 10.0f // (mm) M306 Autotuning final Z position. #endif

//=========================================================================== //====================== PID > Bed Temperature Control ====================== //===========================================================================

/**

  • PID Bed Heating
  • If this option is enabled set PID constants below.
  • If this option is disabled, bang-bang will be used and BED_LIMIT_SWITCHING will enable hysteresis.
  • The PID frequency will be the same as the extruder PWM.
  • If PID_dT is the default, and correct for the hardware/configuration, that means 7.689Hz,
  • which is fine for driving a square wave into a resistive load and does not significantly
  • impact FET heating. This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W
  • heater. If your configuration is significantly different than this and you don't understand
  • the issues involved, don't use bed PID until someone else verifies that your hardware works. */ #define PIDTEMPBED

//#define BED_LIMIT_SWITCHING

/**

  • Max Bed Power
  • Applies to all forms of bed control (PID, bang-bang, and bang-bang with hysteresis).
  • When set to any value below 255, enables a form of PWM to the bed that acts like a divider
  • so don't use it unless you are OK with PWM on your bed. (See the comment on enabling PIDTEMPBED) */ #define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current

#if ENABLED(PIDTEMPBED) //#define MIN_BED_POWER 0 //#define PID_BED_DEBUG // Sends debug data to the serial port.

// FLSUN QQS-Pro 1.6mm aluminium heater with 4mm lattice glass #define DEFAULT_bedKp 82.98 #define DEFAULT_bedKi 15.93 #define DEFAULT_bedKd 288.25

// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles. #endif // PIDTEMPBED

//=========================================================================== //==================== PID > Chamber Temperature Control ==================== //===========================================================================

/**

  • PID Chamber Heating
  • If this option is enabled set PID constants below.
  • If this option is disabled, bang-bang will be used and CHAMBER_LIMIT_SWITCHING will enable
  • hysteresis.
  • The PID frequency will be the same as the extruder PWM.
  • If PID_dT is the default, and correct for the hardware/configuration, that means 7.689Hz,
  • which is fine for driving a square wave into a resistive load and does not significantly
  • impact FET heating. This also works fine on a Fotek SSR-10DA Solid State Relay into a 200W
  • heater. If your configuration is significantly different than this and you don't understand
  • the issues involved, don't use chamber PID until someone else verifies that your hardware works. */ //#define PIDTEMPCHAMBER //#define CHAMBER_LIMIT_SWITCHING

/**

  • Max Chamber Power
  • Applies to all forms of chamber control (PID, bang-bang, and bang-bang with hysteresis).
  • When set to any value below 255, enables a form of PWM to the chamber heater that acts like a divider
  • so don't use it unless you are OK with PWM on your heater. (See the comment on enabling PIDTEMPCHAMBER) */ #define MAX_CHAMBER_POWER 255 // limits duty cycle to chamber heater; 255=full current

#if ENABLED(PIDTEMPCHAMBER) #define MIN_CHAMBER_POWER 0 //#define PID_CHAMBER_DEBUG // Sends debug data to the serial port.

// Lasko "MyHeat Personal Heater" (200w) modified with a Fotek SSR-10DA to control only the heating element // and placed inside the small Creality printer enclosure tent. // #define DEFAULT_chamberKp 37.04 #define DEFAULT_chamberKi 1.40 #define DEFAULT_chamberKd 655.17 // M309 P37.04 I1.04 D655.17

// FIND YOUR OWN: "M303 E-2 C8 S50" to run autotune on the chamber at 50 degreesC for 8 cycles. #endif // PIDTEMPCHAMBER

#if ANY(PIDTEMP, PIDTEMPBED, PIDTEMPCHAMBER) //#define PID_DEBUG // Sends debug data to the serial port. Use 'M303 D' to toggle activation. //#define PID_OPENLOOP // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay #define PID_FUNCTIONAL_RANGE 30 // If the temperature difference between the target temperature and the actual temperature // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.

#define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of flash) #define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of flash) #endif

// @section extruder

/**

  • Prevent extrusion if the temperature is below EXTRUDE_MINTEMP.
  • Add M302 to set the minimum extrusion temperature and/or turn
  • cold extrusion prevention on and off.
  • *** IT IS HIGHLY RECOMMENDED TO LEAVE THIS OPTION ENABLED! *** */ #define PREVENT_COLD_EXTRUSION #define EXTRUDE_MINTEMP 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 950

//=========================================================================== //======================== Thermal Runaway Protection ======================= //===========================================================================

/**

  • Thermal Protection provides additional protection to your printer from damage
  • and fire. Marlin always includes safe min and max temperature ranges which
  • protect against a broken or disconnected thermistor wire.
  • The issue: If a thermistor falls out, it will report the much lower
  • temperature of the air in the room, and the the firmware will keep
  • the heater on.
  • If you get "Thermal Runaway" or "Heating failed" errors the
  • details can be tuned in Configuration_adv.h */

#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders #define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed //#define THERMAL_PROTECTION_CHAMBER // Enable thermal protection for the heated chamber //#define THERMAL_PROTECTION_COOLER // Enable thermal protection for the laser cooling

//=========================================================================== //============================= Mechanical Settings ========================= //===========================================================================

// @section machine

// Enable one of the options below for CoreXY, CoreXZ, or CoreYZ kinematics, // either in the usual order or reversed //#define COREXY //#define COREXZ //#define COREYZ //#define COREYX //#define COREZX //#define COREZY //#define MARKFORGED_XY // MarkForged. See https://reprap.org/forum/read.php?152,504042 //#define MARKFORGED_YX

//=========================================================================== //============================== 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

// After homing move down to a height where XY movement is unconstrained //#define DELTA_HOME_TO_SAFE_ZONE

// Delta calibration menu // uncomment to add three points calibration menu option. // See http://minow.blogspot.com/index.html#4918805519571907051 #define DELTA_CALIBRATION_MENU

// uncomment to add G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results) #define DELTA_AUTO_CALIBRATION

// NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them

#if ENABLED(DELTA_AUTO_CALIBRATION) // set the default number of probe points : n*n (1 -> 7) #define DELTA_CALIBRATION_DEFAULT_POINTS 4 #endif

#if EITHER(DELTA_AUTO_CALIBRATION, DELTA_CALIBRATION_MENU) // Set the steprate for papertest probing #define PROBE_MANUALLY_STEP 0.05 // (mm) #endif

// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers). #define DELTA_PRINTABLE_RADIUS 130.0 // (mm)

// Maximum reachable area #define DELTA_MAX_RADIUS 130.0 // (mm)

// Center-to-center distance of the holes in the diagonal push rods. #define DELTA_DIAGONAL_ROD 280.00 // (mm)

// Distance between bed and nozzle Z home position #define DELTA_HEIGHT 370.00 // (mm) Get this value from G33 auto calibrate

#define DELTA_ENDSTOP_ADJ { 0.0, 0.0, 0.0 } // Get these values from G33 auto calibrate

// Horizontal distance bridged by diagonal push rods when effector is centered. #define DELTA_RADIUS 140.8 // (mm) Get this value from G33 auto calibrate

// Trim adjustments for individual towers // tower angle corrections for X and Y tower / rotate XYZ so Z tower angle = 0 // measured in degrees anticlockwise looking from above the printer #define DELTA_TOWER_ANGLE_TRIM { 0.0, 0.0, 0.0 } // Get these values from G33 auto calibrate

// Delta radius and diagonal rod adjustments (mm) //#define DELTA_RADIUS_TRIM_TOWER { 0.0, 0.0, 0.0 } #define DELTA_DIAGONAL_ROD_TRIM_TOWER { 0.0, 0.0, 0.0 }

#endif

//=========================================================================== //============================== Endstop Settings =========================== //===========================================================================

// @section homing

// Specify here all the endstop connectors that are connected to any endstop or probe. // Almost all printers will be using one per axis. Probes will use one or more of the // extra connectors. Leave undefined any used for non-endstop and non-probe purposes. //#define USE_XMIN_PLUG //#define USE_YMIN_PLUG #define USE_ZMIN_PLUG // a Z probe //#define USE_IMIN_PLUG //#define USE_JMIN_PLUG //#define USE_KMIN_PLUG //#define USE_UMIN_PLUG //#define USE_VMIN_PLUG //#define USE_WMIN_PLUG #define USE_XMAX_PLUG #define USE_YMAX_PLUG #define USE_ZMAX_PLUG //#define USE_IMAX_PLUG //#define USE_JMAX_PLUG //#define USE_KMAX_PLUG //#define USE_UMAX_PLUG //#define USE_VMAX_PLUG //#define USE_WMAX_PLUG

// Enable pullup for all endstops to prevent a floating state #define ENDSTOPPULLUPS #if DISABLED(ENDSTOPPULLUPS) // Disable ENDSTOPPULLUPS to set pullups individually //#define ENDSTOPPULLUP_XMIN //#define ENDSTOPPULLUP_YMIN //#define ENDSTOPPULLUP_ZMIN //#define ENDSTOPPULLUP_IMIN //#define ENDSTOPPULLUP_JMIN //#define ENDSTOPPULLUP_KMIN //#define ENDSTOPPULLUP_UMIN //#define ENDSTOPPULLUP_VMIN //#define ENDSTOPPULLUP_WMIN //#define ENDSTOPPULLUP_XMAX //#define ENDSTOPPULLUP_YMAX //#define ENDSTOPPULLUP_ZMAX //#define ENDSTOPPULLUP_IMAX //#define ENDSTOPPULLUP_JMAX //#define ENDSTOPPULLUP_KMAX //#define ENDSTOPPULLUP_UMAX //#define ENDSTOPPULLUP_VMAX //#define ENDSTOPPULLUP_WMAX //#define ENDSTOPPULLUP_ZMIN_PROBE #endif

// Enable pulldown for all endstops to prevent a floating state //#define ENDSTOPPULLDOWNS #if DISABLED(ENDSTOPPULLDOWNS) // Disable ENDSTOPPULLDOWNS to set pulldowns individually //#define ENDSTOPPULLDOWN_XMIN //#define ENDSTOPPULLDOWN_YMIN //#define ENDSTOPPULLDOWN_ZMIN //#define ENDSTOPPULLDOWN_IMIN //#define ENDSTOPPULLDOWN_JMIN //#define ENDSTOPPULLDOWN_KMIN //#define ENDSTOPPULLDOWN_UMIN //#define ENDSTOPPULLDOWN_VMIN //#define ENDSTOPPULLDOWN_WMIN //#define ENDSTOPPULLDOWN_XMAX //#define ENDSTOPPULLDOWN_YMAX //#define ENDSTOPPULLDOWN_ZMAX //#define ENDSTOPPULLDOWN_IMAX //#define ENDSTOPPULLDOWN_JMAX //#define ENDSTOPPULLDOWN_KMAX //#define ENDSTOPPULLDOWN_UMAX //#define ENDSTOPPULLDOWN_VMAX //#define ENDSTOPPULLDOWN_WMAX //#define ENDSTOPPULLDOWN_ZMIN_PROBE #endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup). #define X_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Y_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Z_MIN_ENDSTOP_INVERTING true // Set to true to invert the logic of the endstop. #define I_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define J_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define K_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define U_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define V_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define W_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define X_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Y_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Z_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define I_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define J_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define K_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define U_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define V_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define W_MAX_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop. #define Z_MIN_PROBE_ENDSTOP_INVERTING true // Set to true to invert the logic of the probe.

// Enable this feature if all enabled endstop pins are interrupt-capable. // This will remove the need to poll the interrupt pins, saving many CPU cycles. //#define ENDSTOP_INTERRUPTS_FEATURE

/**

  • Endstop Noise Threshold
  • Enable if your probe or endstops falsely trigger due to noise.
    • Higher values may affect repeatability or accuracy of some bed probes.
    • To fix noise install a 100nF ceramic capacitor in parallel with the switch.
    • This feature is not required for common micro-switches mounted on PCBs
  • based on the Makerbot design, which already have the 100nF capacitor.
  • :[2,3,4,5,6,7] */ //#define ENDSTOP_NOISE_THRESHOLD 2

// Check for stuck or disconnected endstops during homing moves. //#define DETECT_BROKEN_ENDSTOP

//============================================================================= //============================== Movement Settings ============================ //============================================================================= // @section motion

// 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 (linear=steps/mm, rotational=steps/°)
  • Override with M92
  •                                  X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]
    

*/ // variables to calculate steps #define XYZ_FULL_STEPS_PER_ROTATION 200 #define XYZ_MICROSTEPS 16 #define XYZ_BELT_PITCH 2 #define XYZ_PULLEY_TEETH 16

// 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)) #define DEFAULT_AXIS_STEPS_PER_UNIT { DEFAULT_XYZ_STEPS_PER_UNIT, DEFAULT_XYZ_STEPS_PER_UNIT, DEFAULT_XYZ_STEPS_PER_UNIT, 396 } // default steps per unit

/**

  • Default Max Feed Rate (linear=mm/s, rotational=°/s)
  • Override with M203
  •                                  X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]
    

*/ #define DEFAULT_MAX_FEEDRATE { 250, 250, 250, 210 }

//#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2 #if ENABLED(LIMITED_MAX_FR_EDITING) #define MAX_FEEDRATE_EDIT_VALUES { 600, 600, 10, 50 } // ...or, set your own edit limits #endif

/**

  • Default Max Acceleration (speed change with time) (linear=mm/(s^2), rotational=°/(s^2))
  • (Maximum start speed for accelerated moves)
  • Override with M201
  •                                  X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]
    

*/ #define DEFAULT_MAX_ACCELERATION { 3000, 3000, 3000, 3000 }

//#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2 #if ENABLED(LIMITED_MAX_ACCEL_EDITING) #define MAX_ACCEL_EDIT_VALUES { 6000, 6000, 3000, 20000 } // ...or, set your own edit limits #endif

/**

  • Default Acceleration (speed change with time) (linear=mm/(s^2), rotational=°/(s^2))
  • 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 1500 // E acceleration for retracts #define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves

/**

  • Default Jerk limits (mm/s)
  • Override with M205 X Y Z . . . E
  • "Jerk" specifies the minimum speed change that requires acceleration.
  • When changing speed and direction, if the difference is less than the
  • value set here, it may happen instantaneously. */ #define CLASSIC_JERK #if ENABLED(CLASSIC_JERK) #define DEFAULT_XJERK 10.0 #define DEFAULT_YJERK DEFAULT_XJERK #define DEFAULT_ZJERK DEFAULT_XJERK // Must be same as XY for delta //#define DEFAULT_IJERK 0.3 //#define DEFAULT_JJERK 0.3 //#define DEFAULT_KJERK 0.3 //#define DEFAULT_UJERK 0.3 //#define DEFAULT_VJERK 0.3 //#define DEFAULT_WJERK 0.3

//#define TRAVEL_EXTRA_XYJERK 0.0 // Additional jerk allowance for all travel moves

//#define LIMITED_JERK_EDITING // Limit edit via M205 or LCD to DEFAULT_aJERK * 2 #if ENABLED(LIMITED_JERK_EDITING) #define MAX_JERK_EDIT_VALUES { 20, 20, 20, 10 } // ...or, set your own edit limits #endif #endif

#define DEFAULT_EJERK 5.0 // May be used by Linear Advance

/**

  • Junction Deviation Factor
  • See:
  • https://reprap.org/forum/read.php?1,739819
  • https://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html */ #if DISABLED(CLASSIC_JERK) #define JUNCTION_DEVIATION_MM 0.013 // (mm) Distance from real junction edge #define JD_HANDLE_SMALL_SEGMENTS // Use curvature estimation instead of just the junction angle // for small segments (< 1mm) with large junction angles (> 135°). #endif

/**

  • S-Curve Acceleration
  • This option eliminates vibration during printing by fitting a Bézier
  • curve to move acceleration, producing much smoother direction changes.
  • See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained */ #define S_CURVE_ACCELERATION

//=========================================================================== //============================= Z Probe Options ============================= //=========================================================================== // @section probes

// // See https://marlinfw.org/docs/configuration/probes.html //

/**

  • Enable this option for a probe connected to the Z-MIN pin.
  • The probe replaces the Z-MIN endstop and is used for Z homing.
  • (Automatically enables USE_PROBE_FOR_Z_HOMING.) */ #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

// Force the use of the probe for Z-axis homing //#define USE_PROBE_FOR_Z_HOMING

/**

  • Z_MIN_PROBE_PIN
  • Define this pin if the probe is not connected to Z_MIN_PIN.
  • If not defined the default pin for the selected MOTHERBOARD
  • will be used. Most of the time the default is what you want.
    • The simplest option is to use a free endstop connector.
    • Use 5V for powered (usually inductive) sensors.
    • RAMPS 1.3/1.4 boards may use the 5V, GND, and Aux4->D32 pin:
    • For simple switches connect...
  •  - normally-closed switches to GND and D32.
    
  •  - normally-open switches to 5V and D32.
    

*/ //#define Z_MIN_PROBE_PIN 32 // Pin 32 is the RAMPS default

/**

  • Probe Type
  • Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
  • Activate one of these to use Auto Bed Leveling below. */

/**

  • The "Manual Probe" provides a means to do "Auto" Bed Leveling without a probe.
  • Use G29 repeatedly, adjusting the Z height at each point with movement commands
  • or (with LCD_BED_LEVELING) the LCD controller. */ //#define PROBE_MANUALLY

/**

  • A Fix-Mounted Probe either doesn't deploy or needs manual deployment.
  • (e.g., an inductive probe or a nozzle-based probe-switch.) */ #define FIX_MOUNTED_PROBE

/**

  • Use the nozzle as the probe, as with a conductive
  • nozzle system or a piezo-electric smart effector. */ //#define NOZZLE_AS_PROBE

/**

  • Z Servo Probe, such as an endstop switch on a rotating arm. */ //#define Z_PROBE_SERVO_NR 0 // Defaults to SERVO 0 connector. //#define Z_SERVO_ANGLES { 70, 0 } // Z Servo Deploy and Stow angles

/**

  • The BLTouch probe uses a Hall effect sensor and emulates a servo. */ //#define BLTOUCH

/**

  • MagLev V4 probe by MDD
  • This probe is deployed and activated by powering a built-in electromagnet. */ //#define MAGLEV4 #if ENABLED(MAGLEV4) //#define MAGLEV_TRIGGER_PIN 11 // Set to the connected digital output #define MAGLEV_TRIGGER_DELAY 15 // Changing this risks overheating the coil #endif

/**

  • Touch-MI Probe by hotends.fr
  • This probe is deployed and activated by moving the X-axis to a magnet at the edge of the bed.
  • By default, the magnet is assumed to be on the left and activated by a home. If the magnet is
  • on the right, enable and set TOUCH_MI_DEPLOY_XPOS to the deploy position.
  • Also requires: BABYSTEPPING, BABYSTEP_ZPROBE_OFFSET, Z_SAFE_HOMING,
  •            and a minimum Z_HOMING_HEIGHT of 10.
    

*/ //#define TOUCH_MI_PROBE #if ENABLED(TOUCH_MI_PROBE) #define TOUCH_MI_RETRACT_Z 0.5 // Height at which the probe retracts //#define TOUCH_MI_DEPLOY_XPOS (X_MAX_BED + 2) // For a magnet on the right side of the bed //#define TOUCH_MI_MANUAL_DEPLOY // For manual deploy (LCD menu) #endif

// A probe that is deployed and stowed with a solenoid pin (SOL1_PIN) //#define SOLENOID_PROBE

// A sled-mounted probe like those designed by Charles Bell. //#define Z_PROBE_SLED //#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.

// A probe deployed by moving the x-axis, such as the Wilson II's rack-and-pinion probe designed by Marty Rice. //#define RACK_AND_PINION_PROBE #if ENABLED(RACK_AND_PINION_PROBE) #define Z_PROBE_DEPLOY_X X_MIN_POS #define Z_PROBE_RETRACT_X X_MAX_POS #endif

// Duet Smart Effector (for delta printers) - https://bit.ly/2ul5U7J // When the pin is defined you can use M672 to set/reset the probe sensitivity. //#define DUET_SMART_EFFECTOR #if ENABLED(DUET_SMART_EFFECTOR) #define SMART_EFFECTOR_MOD_PIN -1 // Connect a GPIO pin to the Smart Effector MOD pin #endif

/**

  • Use StallGuard2 to probe the bed with the nozzle.
  • Requires stallGuard-capable Trinamic stepper drivers.
  • CAUTION: This can damage machines with Z lead screws.
  •      Take extreme care when setting up this feature.
    

*/ //#define SENSORLESS_PROBING

/**

  • Allen key retractable z-probe as seen on many Kossel delta printers - https://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe
  • Deploys by touching z-axis belt. Retracts by pushing the probe down. 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 { 30.0, DELTA_PRINTABLE_RADIUS, 100.0 } #define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE XY_PROBE_FEEDRATE

#define Z_PROBE_ALLEN_KEY_DEPLOY_2 { 0.0, DELTA_PRINTABLE_RADIUS, 100.0 } #define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (XY_PROBE_FEEDRATE)/10

#define Z_PROBE_ALLEN_KEY_DEPLOY_3 { 0.0, (DELTA_PRINTABLE_RADIUS) * 0.75, 100.0 } #define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE XY_PROBE_FEEDRATE

#define Z_PROBE_ALLEN_KEY_STOW_1 { -64.0, 56.0, 23.0 } // Move the probe into position #define Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE XY_PROBE_FEEDRATE

#define Z_PROBE_ALLEN_KEY_STOW_2 { -64.0, 56.0, 3.0 } // Push it down #define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (XY_PROBE_FEEDRATE)/10

#define Z_PROBE_ALLEN_KEY_STOW_3 { -64.0, 56.0, 50.0 } // Move it up to clear #define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE XY_PROBE_FEEDRATE

#define Z_PROBE_ALLEN_KEY_STOW_4 { 0.0, 0.0, 50.0 } #define Z_PROBE_ALLEN_KEY_STOW_4_FEEDRATE XY_PROBE_FEEDRATE

#endif // Z_PROBE_ALLEN_KEY

/**

  • Nozzle-to-Probe offsets { X, Y, Z }
  • X and Y offset
  • Use a caliper or ruler to measure the distance from the tip of
  • the Nozzle to the center-point of the Probe in the X and Y axes.
  • Z offset
    • For the Z offset use your best known value and adjust at runtime.
    • Common probes trigger below the nozzle and have negative values for Z offset.
    • Probes triggering above the nozzle height are uncommon but do exist. When using
  • probes such as this, carefully set Z_CLEARANCE_DEPLOY_PROBE and Z_CLEARANCE_BETWEEN_PROBES
  • to avoid collisions during probing.
  • Tune and Adjust
    • Probe Offsets can be tuned at runtime with 'M851', LCD menus, babystepping, etc.
    • PROBE_OFFSET_WIZARD (configuration_adv.h) can be used for setting the Z offset.
  • Assuming the typical work area orientation:
    • Probe to RIGHT of the Nozzle has a Positive X offset
    • Probe to LEFT of the Nozzle has a Negative X offset
    • Probe in BACK of the Nozzle has a Positive Y offset
    • Probe in FRONT of the Nozzle has a Negative Y offset
  • Some examples:
  • #define NOZZLE_TO_PROBE_OFFSET { 10, 10, -1 } // Example "1"
  • #define NOZZLE_TO_PROBE_OFFSET {-10, 5, -1 } // Example "2"
  • #define NOZZLE_TO_PROBE_OFFSET { 5, -5, -1 } // Example "3"
  • #define NOZZLE_TO_PROBE_OFFSET {-15,-10, -1 } // Example "4"
  • +-- BACK ---+
    
  • |    [+]    |
    
  • L | 1 | R <-- Example "1" (right+, back+)
  • E | 2 | I <-- Example "2" ( left-, back+)
  • F |[-] N [+]| G <-- Nozzle
  • T | 3 | H <-- Example "3" (right+, front-)
  • | 4         | T <-- Example "4" ( left-, front-)
    
  • |    [-]    |
    
  • O-- FRONT --+
    

*/ #define NOZZLE_TO_PROBE_OFFSET { 0, 0, -16.2 }

// Most probes should stay away from the edges of the bed, but // with NOZZLE_AS_PROBE this can be negative for a wider probing area. #define PROBING_MARGIN 15

// X and Y axis travel speed (mm/min) between probes #define XY_PROBE_FEEDRATE (66*60)

// Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2) #define Z_PROBE_FEEDRATE_FAST (40*60)

// Feedrate (mm/min) for the "accurate" probe of each point #define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 4)

/**

  • Probe Activation Switch
  • A switch indicating proper deployment, or an optical
  • switch triggered when the carriage is near the bed. */ //#define PROBE_ACTIVATION_SWITCH #if ENABLED(PROBE_ACTIVATION_SWITCH) #define PROBE_ACTIVATION_SWITCH_STATE LOW // State indicating probe is active //#define PROBE_ACTIVATION_SWITCH_PIN PC6 // Override default pin #endif

/**

  • Tare Probe (determine zero-point) prior to each probe.
  • Useful for a strain gauge or piezo sensor that needs to factor out
  • elements such as cables pulling on the carriage. */ //#define PROBE_TARE #if ENABLED(PROBE_TARE) #define PROBE_TARE_TIME 200 // (ms) Time to hold tare pin #define PROBE_TARE_DELAY 200 // (ms) Delay after tare before #define PROBE_TARE_STATE HIGH // State to write pin for tare //#define PROBE_TARE_PIN PA5 // Override default pin #if ENABLED(PROBE_ACTIVATION_SWITCH) //#define PROBE_TARE_ONLY_WHILE_INACTIVE // Fail to tare/probe if PROBE_ACTIVATION_SWITCH is active #endif #endif

/**

  • Probe Enable / Disable
  • The probe only provides a triggered signal when enabled. */ //#define PROBE_ENABLE_DISABLE #if ENABLED(PROBE_ENABLE_DISABLE) //#define PROBE_ENABLE_PIN -1 // Override the default pin here #endif

/**

  • Multiple Probing
  • You may get improved results by probing 2 or more times.
  • With EXTRA_PROBING the more atypical reading(s) will be disregarded.
  • A total of 2 does fast/slow probes with a weighted average.
  • A total of 3 or more adds more slow probes, taking the average. */ #define MULTIPLE_PROBING 2 //#define EXTRA_PROBING 1

/**

  • Z probes require clearance when deploying, stowing, and moving between
  • probe points to avoid hitting the bed and other hardware.
  • Servo-mounted probes require extra space for the arm to rotate.
  • Inductive probes need space to keep from triggering early.
  • Use these settings to specify the distance (mm) to raise the probe (or
  • lower the bed). The values set here apply over and above any (negative)
  • probe Z Offset set with NOZZLE_TO_PROBE_OFFSET, M851, or the LCD.
  • Only integer values >= 1 are valid here.
  • Example: M851 Z-5 with a CLEARANCE of 4 => 9mm from bed to nozzle.
  • But: `M851 Z+1` with a CLEARANCE of 2  =>  2mm from bed to nozzle.
    

*/ #define Z_CLEARANCE_DEPLOY_PROBE 20 // Z Clearance for Deploy/Stow #define Z_CLEARANCE_BETWEEN_PROBES 15 // Z Clearance between probe points #define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes //#define Z_AFTER_PROBING 100 // Z position after probing is done

#define Z_PROBE_LOW_POINT -4 // 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 -25 #define Z_PROBE_OFFSET_RANGE_MAX 20

// Enable the M48 repeatability test to test probe accuracy #define Z_MIN_PROBE_REPEATABILITY_TEST

// Before deploy/stow pause for user confirmation #define PAUSE_BEFORE_DEPLOY_STOW #if ENABLED(PAUSE_BEFORE_DEPLOY_STOW) //#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // For Manual Deploy Allenkey Probe #endif

/**

  • Enable one or more of the following if probing seems unreliable.
  • Heaters and/or fans can be disabled during probing to minimize electrical
  • noise. A delay can also be added to allow noise and vibration to settle.
  • These options are most useful for the BLTouch probe, but may also improve
  • readings with inductive probes and piezo sensors. */ //#define PROBING_HEATERS_OFF // Turn heaters off when probing #if ENABLED(PROBING_HEATERS_OFF) //#define WAIT_FOR_BED_HEATER // Wait for bed to heat back up between probes (to improve accuracy) //#define WAIT_FOR_HOTEND // Wait for ho

davedouthettrb avatar May 26 '22 04:05 davedouthettrb

hello good morning

were you able to configure the printer?

I have exactly the same electronics as you and I can't get it to work well.

If you can, could you give me the configuration.h and the adv.h, thank you

JoeSiro avatar Jun 14 '24 14:06 JoeSiro