Bump
This commit is contained in:
+44
-11
@@ -210,7 +210,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -314,6 +314,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -333,7 +334,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 -1
|
||||
#if ENABLED(DUAL)
|
||||
@@ -400,10 +401,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -681,6 +682,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 1000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -689,10 +698,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 12.0
|
||||
#define DEFAULT_YJERK 12.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1186,6 +1198,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1732,6 +1745,13 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1879,6 +1899,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1953,6 +1982,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -2007,7 +2040,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(NEOPIXEL_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(PCA9533)|| ENABLED(NEOPIXEL_LED)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
+118
-46
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1049,6 +1098,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1168,7 +1221,7 @@
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change.
|
||||
|
||||
#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change.
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
|
||||
#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu.
|
||||
//#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302)
|
||||
@@ -1246,17 +1299,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1303,6 +1353,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1317,7 +1385,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1341,7 +1427,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1394,22 +1480,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1622,11 +1692,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1887,5 +1952,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -97,20 +97,8 @@
|
||||
#endif // SPINDLE_LASER_ENABLE
|
||||
|
||||
/**
|
||||
* TMC2208 software UART and ENDSTOP_INTERRUPTS both use pin change interrupts (PCI)
|
||||
* The Trinamic library includes SoftwareSerial.h, leading to a compile error.
|
||||
*/
|
||||
#if HAS_DRIVER(TMC2208) && ENABLED(ENDSTOP_INTERRUPTS_FEATURE) && !( \
|
||||
defined(X_HARDWARE_SERIAL ) \
|
||||
|| defined(X2_HARDWARE_SERIAL) \
|
||||
|| defined(Y_HARDWARE_SERIAL ) \
|
||||
|| defined(Y2_HARDWARE_SERIAL) \
|
||||
|| defined(Z_HARDWARE_SERIAL ) \
|
||||
|| defined(Z2_HARDWARE_SERIAL) \
|
||||
|| defined(Z3_HARDWARE_SERIAL) \
|
||||
|| defined(E0_HARDWARE_SERIAL) \
|
||||
|| defined(E1_HARDWARE_SERIAL) \
|
||||
|| defined(E2_HARDWARE_SERIAL) \
|
||||
|| defined(E3_HARDWARE_SERIAL) \
|
||||
|| defined(E4_HARDWARE_SERIAL) )
|
||||
#error "Select hardware UART for TMC2208 to use both TMC2208 and ENDSTOP_INTERRUPTS_FEATURE."
|
||||
#if HAS_TRINAMIC && ENABLED(ENDSTOP_INTERRUPTS_FEATURE)
|
||||
#error "TMCStepper includes SoftwareSerial.h which is incompatible with ENDSTOP_INTERRUPTS_FEATURE. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
|
||||
#endif
|
||||
|
||||
@@ -39,8 +39,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
|
||||
if (v != eeprom_read_byte(p)) {
|
||||
eeprom_write_byte(p, v);
|
||||
if (eeprom_read_byte(p) != v) {
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE);
|
||||
SERIAL_ECHO_MSG(MSG_ERR_EEPROM_WRITE);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,7 +150,7 @@ static bool pwm_status(uint8_t pin) {
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
SERIAL_PROTOCOL_SP(2);
|
||||
SERIAL_ECHO_SP(2);
|
||||
} // pwm_status
|
||||
|
||||
|
||||
@@ -222,24 +222,24 @@ const volatile uint8_t* const PWM_OCR[][3] PROGMEM = {
|
||||
|
||||
#define OCR_VAL(T, L) pgm_read_word(&PWM_OCR[T][L])
|
||||
|
||||
static void err_is_counter() { SERIAL_PROTOCOLPGM(" non-standard PWM mode"); }
|
||||
static void err_is_interrupt() { SERIAL_PROTOCOLPGM(" compare interrupt enabled"); }
|
||||
static void err_prob_interrupt() { SERIAL_PROTOCOLPGM(" overflow interrupt enabled"); }
|
||||
static void print_is_also_tied() { SERIAL_PROTOCOLPGM(" is also tied to this pin"); SERIAL_PROTOCOL_SP(14); }
|
||||
static void err_is_counter() { SERIAL_ECHOPGM(" non-standard PWM mode"); }
|
||||
static void err_is_interrupt() { SERIAL_ECHOPGM(" compare interrupt enabled"); }
|
||||
static void err_prob_interrupt() { SERIAL_ECHOPGM(" overflow interrupt enabled"); }
|
||||
static void print_is_also_tied() { SERIAL_ECHOPGM(" is also tied to this pin"); SERIAL_ECHO_SP(14); }
|
||||
|
||||
void com_print(uint8_t N, uint8_t Z) {
|
||||
const uint8_t *TCCRA = (uint8_t*)TCCR_A(N);
|
||||
SERIAL_PROTOCOLPGM(" COM");
|
||||
SERIAL_PROTOCOLCHAR(N + '0');
|
||||
SERIAL_ECHOPGM(" COM");
|
||||
SERIAL_CHAR(N + '0');
|
||||
switch (Z) {
|
||||
case 'A':
|
||||
SERIAL_PROTOCOLPAIR("A: ", ((*TCCRA & (_BV(7) | _BV(6))) >> 6));
|
||||
SERIAL_ECHOPAIR("A: ", ((*TCCRA & (_BV(7) | _BV(6))) >> 6));
|
||||
break;
|
||||
case 'B':
|
||||
SERIAL_PROTOCOLPAIR("B: ", ((*TCCRA & (_BV(5) | _BV(4))) >> 4));
|
||||
SERIAL_ECHOPAIR("B: ", ((*TCCRA & (_BV(5) | _BV(4))) >> 4));
|
||||
break;
|
||||
case 'C':
|
||||
SERIAL_PROTOCOLPAIR("C: ", ((*TCCRA & (_BV(3) | _BV(2))) >> 2));
|
||||
SERIAL_ECHOPAIR("C: ", ((*TCCRA & (_BV(3) | _BV(2))) >> 2));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -251,10 +251,10 @@ void timer_prefix(uint8_t T, char L, uint8_t N) { // T - timer L - pwm N -
|
||||
uint8_t WGM = (((*TCCRB & _BV(WGM_2)) >> 1) | (*TCCRA & (_BV(WGM_0) | _BV(WGM_1))));
|
||||
if (N == 4) WGM |= ((*TCCRB & _BV(WGM_3)) >> 1);
|
||||
|
||||
SERIAL_PROTOCOLPGM(" TIMER");
|
||||
SERIAL_PROTOCOLCHAR(T + '0');
|
||||
SERIAL_PROTOCOLCHAR(L);
|
||||
SERIAL_PROTOCOL_SP(3);
|
||||
SERIAL_ECHOPGM(" TIMER");
|
||||
SERIAL_CHAR(T + '0');
|
||||
SERIAL_CHAR(L);
|
||||
SERIAL_ECHO_SP(3);
|
||||
|
||||
if (N == 3) {
|
||||
const uint8_t *OCRVAL8 = (uint8_t*)OCR_VAL(T, L - 'A');
|
||||
@@ -264,22 +264,22 @@ void timer_prefix(uint8_t T, char L, uint8_t N) { // T - timer L - pwm N -
|
||||
const uint16_t *OCRVAL16 = (uint16_t*)OCR_VAL(T, L - 'A');
|
||||
PWM_PRINT(*OCRVAL16);
|
||||
}
|
||||
SERIAL_PROTOCOLPAIR(" WGM: ", WGM);
|
||||
SERIAL_ECHOPAIR(" WGM: ", WGM);
|
||||
com_print(T,L);
|
||||
SERIAL_PROTOCOLPAIR(" CS: ", (*TCCRB & (_BV(CS_0) | _BV(CS_1) | _BV(CS_2)) ));
|
||||
SERIAL_ECHOPAIR(" CS: ", (*TCCRB & (_BV(CS_0) | _BV(CS_1) | _BV(CS_2)) ));
|
||||
|
||||
SERIAL_PROTOCOLPGM(" TCCR");
|
||||
SERIAL_PROTOCOLCHAR(T + '0');
|
||||
SERIAL_PROTOCOLPAIR("A: ", *TCCRA);
|
||||
SERIAL_ECHOPGM(" TCCR");
|
||||
SERIAL_CHAR(T + '0');
|
||||
SERIAL_ECHOPAIR("A: ", *TCCRA);
|
||||
|
||||
SERIAL_PROTOCOLPGM(" TCCR");
|
||||
SERIAL_PROTOCOLCHAR(T + '0');
|
||||
SERIAL_PROTOCOLPAIR("B: ", *TCCRB);
|
||||
SERIAL_ECHOPGM(" TCCR");
|
||||
SERIAL_CHAR(T + '0');
|
||||
SERIAL_ECHOPAIR("B: ", *TCCRB);
|
||||
|
||||
const uint8_t *TMSK = (uint8_t*)TIMSK(T);
|
||||
SERIAL_PROTOCOLPGM(" TIMSK");
|
||||
SERIAL_PROTOCOLCHAR(T + '0');
|
||||
SERIAL_PROTOCOLPAIR(": ", *TMSK);
|
||||
SERIAL_ECHOPGM(" TIMSK");
|
||||
SERIAL_CHAR(T + '0');
|
||||
SERIAL_ECHOPAIR(": ", *TMSK);
|
||||
|
||||
const uint8_t OCIE = L - 'A' + 1;
|
||||
if (N == 3) { if (WGM == 0 || WGM == 2 || WGM == 4 || WGM == 6) err_is_counter(); }
|
||||
@@ -336,22 +336,22 @@ static void pwm_details(uint8_t pin) {
|
||||
case NOT_ON_TIMER: break;
|
||||
|
||||
}
|
||||
SERIAL_PROTOCOLPGM(" ");
|
||||
SERIAL_ECHOPGM(" ");
|
||||
|
||||
// on pins that have two PWMs, print info on second PWM
|
||||
#if AVR_ATmega2560_FAMILY || AVR_AT90USB1286_FAMILY
|
||||
// looking for port B7 - PWMs 0A and 1C
|
||||
if (digitalPinToPort_DEBUG(pin) == 'B' - 64 && 0x80 == digitalPinToBitMask_DEBUG(pin)) {
|
||||
#if !AVR_AT90USB1286_FAMILY
|
||||
SERIAL_PROTOCOLPGM("\n .");
|
||||
SERIAL_PROTOCOL_SP(18);
|
||||
SERIAL_PROTOCOLPGM("TIMER1C");
|
||||
SERIAL_ECHOPGM("\n .");
|
||||
SERIAL_ECHO_SP(18);
|
||||
SERIAL_ECHOPGM("TIMER1C");
|
||||
print_is_also_tied();
|
||||
timer_prefix(1, 'C', 4);
|
||||
#else
|
||||
SERIAL_PROTOCOLPGM("\n .");
|
||||
SERIAL_PROTOCOL_SP(18);
|
||||
SERIAL_PROTOCOLPGM("TIMER0A");
|
||||
SERIAL_ECHOPGM("\n .");
|
||||
SERIAL_ECHO_SP(18);
|
||||
SERIAL_ECHOPGM("TIMER0A");
|
||||
print_is_also_tied();
|
||||
timer_prefix(0, 'A', 3);
|
||||
#endif
|
||||
@@ -372,7 +372,7 @@ static void pwm_details(uint8_t pin) {
|
||||
void print_port(int8_t pin) { // print port number
|
||||
#ifdef digitalPinToPort_DEBUG
|
||||
uint8_t x;
|
||||
SERIAL_PROTOCOLPGM(" Port: ");
|
||||
SERIAL_ECHOPGM(" Port: ");
|
||||
#if AVR_AT90USB1286_FAMILY
|
||||
x = (pin == 46 || pin == 47) ? 'E' : digitalPinToPort_DEBUG(pin) + 64;
|
||||
#else
|
||||
@@ -395,7 +395,7 @@ static void pwm_details(uint8_t pin) {
|
||||
#endif
|
||||
SERIAL_CHAR(x);
|
||||
#else
|
||||
SERIAL_PROTOCOL_SP(10);
|
||||
SERIAL_ECHO_SP(10);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -62,8 +62,7 @@ void watchdog_init() {
|
||||
#if ENABLED(WATCHDOG_RESET_MANUAL)
|
||||
ISR(WDT_vect) {
|
||||
sei(); // With the interrupt driven serial we need to allow interrupts.
|
||||
SERIAL_ERROR_START();
|
||||
SERIAL_ERRORLNPGM(MSG_WATCHDOG_FIRED);
|
||||
SERIAL_ERROR_MSG(MSG_WATCHDOG_FIRED);
|
||||
minkill(); // interrupt-safe final kill and infinite loop
|
||||
}
|
||||
#endif // WATCHDOG_RESET_MANUAL
|
||||
|
||||
@@ -121,7 +121,7 @@ static uint8_t buffer[256] = {0}, // The RAM buffer to accumulate writes
|
||||
char buffer[80];
|
||||
|
||||
sprintf(buffer, "Page: %d (0x%04x)\n", page, page);
|
||||
SERIAL_PROTOCOL(buffer);
|
||||
SERIAL_ECHO(buffer);
|
||||
|
||||
char* p = &buffer[0];
|
||||
for (int i = 0; i< PageSize; ++i) {
|
||||
@@ -131,7 +131,7 @@ static uint8_t buffer[256] = {0}, // The RAM buffer to accumulate writes
|
||||
if ((i & 0xF) == 0xF) {
|
||||
*p++ = '\n';
|
||||
*p = 0;
|
||||
SERIAL_PROTOCOL(buffer);
|
||||
SERIAL_ECHO(buffer);
|
||||
p = &buffer[0];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,8 +53,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
|
||||
if (v != eeprom_read_byte(p)) {
|
||||
eeprom_write_byte(p, v);
|
||||
if (eeprom_read_byte(p) != v) {
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE);
|
||||
SERIAL_ECHO_MSG(MSG_ERR_EEPROM_WRITE);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ bool GET_ARRAY_IS_DIGITAL(int8_t pin) {
|
||||
void pwm_details(int32_t pin) {
|
||||
if (pwm_status(pin)) {
|
||||
uint32_t chan = g_APinDescription[pin].ulPWMChannel;
|
||||
SERIAL_PROTOCOLPAIR("PWM = ", PWM_INTERFACE->PWM_CH_NUM[chan].PWM_CDTY);
|
||||
SERIAL_ECHOPAIR("PWM = ", PWM_INTERFACE->PWM_CH_NUM[chan].PWM_CDTY);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ void sd_mmc_spi_mem_init(void) {
|
||||
}
|
||||
|
||||
Ctrl_status sd_mmc_spi_test_unit_ready(void) {
|
||||
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.flag.cardOK)
|
||||
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected())
|
||||
return CTRL_NO_PRESENT;
|
||||
return CTRL_GOOD;
|
||||
}
|
||||
@@ -27,7 +27,7 @@ Ctrl_status sd_mmc_spi_test_unit_ready(void) {
|
||||
// NOTE: This function is defined as returning the address of the last block
|
||||
// in the card, which is cardSize() - 1
|
||||
Ctrl_status sd_mmc_spi_read_capacity(uint32_t *nb_sector) {
|
||||
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.flag.cardOK)
|
||||
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected())
|
||||
return CTRL_NO_PRESENT;
|
||||
*nb_sector = card.getSd2Card().cardSize() - 1;
|
||||
return CTRL_GOOD;
|
||||
@@ -42,7 +42,7 @@ bool sd_mmc_spi_wr_protect(void) {
|
||||
}
|
||||
|
||||
bool sd_mmc_spi_removal(void) {
|
||||
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.flag.cardOK)
|
||||
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected())
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
@@ -61,13 +61,13 @@ uint8_t sector_buf[SD_MMC_BLOCK_SIZE];
|
||||
// #define DEBUG_MMC
|
||||
|
||||
Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector) {
|
||||
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.flag.cardOK)
|
||||
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected())
|
||||
return CTRL_NO_PRESENT;
|
||||
|
||||
#ifdef DEBUG_MMC
|
||||
char buffer[80];
|
||||
sprintf(buffer, "SDRD: %d @ 0x%08x\n", nb_sector, addr);
|
||||
SERIAL_PROTOCOL_P(0, buffer);
|
||||
SERIAL_ECHO_P(0, buffer);
|
||||
#endif
|
||||
|
||||
// Start reading
|
||||
@@ -95,13 +95,13 @@ Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector) {
|
||||
}
|
||||
|
||||
Ctrl_status sd_mmc_spi_usb_write_10(uint32_t addr, uint16_t nb_sector) {
|
||||
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.flag.cardOK)
|
||||
if (!IS_SD_INSERTED() || IS_SD_PRINTING() || IS_SD_FILE_OPEN() || !card.isDetected())
|
||||
return CTRL_NO_PRESENT;
|
||||
|
||||
#ifdef DEBUG_MMC
|
||||
char buffer[80];
|
||||
sprintf(buffer, "SDWR: %d @ 0x%08x\n", nb_sector, addr);
|
||||
SERIAL_PROTOCOL_P(0, buffer);
|
||||
SERIAL_ECHO_P(0, buffer);
|
||||
#endif
|
||||
|
||||
if (!card.getSd2Card().writeStart(addr, nb_sector))
|
||||
|
||||
@@ -106,7 +106,7 @@ void HAL_idletask(void) {
|
||||
// the disk if Marlin has it mounted. Unfortuately there is currently no way
|
||||
// to unmount the disk from the LCD menu.
|
||||
// if (IS_SD_PRINTING() || IS_SD_FILE_OPEN())
|
||||
if (card.flag.cardOK)
|
||||
if (card.isDetected())
|
||||
MSC_Aquire_Lock();
|
||||
else
|
||||
MSC_Release_Lock();
|
||||
|
||||
@@ -80,23 +80,23 @@ bool PersistentStore::access_finish() {
|
||||
// to see errors that are happening in read_data / write_data
|
||||
static void debug_rw(const bool write, int &pos, const uint8_t *value, const size_t size, const FRESULT s, const size_t total=0) {
|
||||
PGM_P const rw_str = write ? PSTR("write") : PSTR("read");
|
||||
SERIAL_PROTOCOLCHAR(' ');
|
||||
SERIAL_CHAR(' ');
|
||||
serialprintPGM(rw_str);
|
||||
SERIAL_PROTOCOLPAIR("_data(", pos);
|
||||
SERIAL_PROTOCOLPAIR(",", (int)value);
|
||||
SERIAL_PROTOCOLPAIR(",", (int)size);
|
||||
SERIAL_PROTOCOLLNPGM(", ...)");
|
||||
SERIAL_ECHOPAIR("_data(", pos);
|
||||
SERIAL_ECHOPAIR(",", (int)value);
|
||||
SERIAL_ECHOPAIR(",", (int)size);
|
||||
SERIAL_ECHOLNPGM(", ...)");
|
||||
if (total) {
|
||||
SERIAL_PROTOCOLPGM(" f_");
|
||||
SERIAL_ECHOPGM(" f_");
|
||||
serialprintPGM(rw_str);
|
||||
SERIAL_PROTOCOLPAIR("()=", (int)s);
|
||||
SERIAL_PROTOCOLPAIR("\n size=", size);
|
||||
SERIAL_PROTOCOLPGM("\n bytes_");
|
||||
SERIAL_ECHOPAIR("()=", (int)s);
|
||||
SERIAL_ECHOPAIR("\n size=", size);
|
||||
SERIAL_ECHOPGM("\n bytes_");
|
||||
serialprintPGM(write ? PSTR("written=") : PSTR("read="));
|
||||
SERIAL_PROTOCOLLN(total);
|
||||
SERIAL_ECHOLN(total);
|
||||
}
|
||||
else
|
||||
SERIAL_PROTOCOLLNPAIR(" f_lseek()=", (int)s);
|
||||
SERIAL_ECHOLNPAIR(" f_lseek()=", (int)s);
|
||||
}
|
||||
|
||||
// File function return codes for type FRESULT. This goes away soon, but
|
||||
|
||||
@@ -80,20 +80,13 @@ static uint8_t rs_last_state = 255;
|
||||
|
||||
static void u8g_com_LPC1768_st7920_write_byte_hw_spi(uint8_t rs, uint8_t val) {
|
||||
|
||||
if ( rs != rs_last_state) { // time to send a command/data byte
|
||||
if (rs != rs_last_state) { // Time to send a command/data byte
|
||||
rs_last_state = rs;
|
||||
|
||||
if ( rs == 0 )
|
||||
/* command */
|
||||
spiSend(0x0F8);
|
||||
else
|
||||
/* data */
|
||||
spiSend(0x0FA);
|
||||
|
||||
DELAY_US(40); // give the controller some time to process the data: 20 is bad, 30 is OK, 40 is safe
|
||||
spiSend(rs ? 0x0FA : 0x0F8); // Send data or command
|
||||
DELAY_US(40); // Give the controller some time: 20 is bad, 30 is OK, 40 is safe
|
||||
}
|
||||
|
||||
spiSend(val & 0x0F0);
|
||||
spiSend(val & 0xF0);
|
||||
spiSend(val << 4);
|
||||
}
|
||||
|
||||
@@ -104,8 +97,8 @@ uint8_t u8g_com_HAL_LPC1768_ST7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t ar
|
||||
u8g_SetPIOutput(u8g, U8G_PI_CS);
|
||||
u8g_Delay(5);
|
||||
spiBegin();
|
||||
spiInit(SPI_EIGHTH_SPEED); // ST7920 max speed is about 1.1 MHz
|
||||
u8g->pin_list[U8G_PI_A0_STATE] = 0; /* inital RS state: command mode */
|
||||
spiInit(SPI_EIGHTH_SPEED); // ST7920 max speed is about 1.1 MHz
|
||||
u8g->pin_list[U8G_PI_A0_STATE] = 0; // initial RS state: command mode
|
||||
break;
|
||||
|
||||
case U8G_COM_MSG_STOP:
|
||||
@@ -115,12 +108,12 @@ uint8_t u8g_com_HAL_LPC1768_ST7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t ar
|
||||
u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val);
|
||||
break;
|
||||
|
||||
case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */
|
||||
case U8G_COM_MSG_ADDRESS: // Define cmd (arg_val = 0) or data mode (arg_val = 1)
|
||||
u8g->pin_list[U8G_PI_A0_STATE] = arg_val;
|
||||
break;
|
||||
|
||||
case U8G_COM_MSG_CHIP_SELECT:
|
||||
u8g_SetPILevel(u8g, U8G_PI_CS, arg_val); //note: the st7920 has an active high chip select
|
||||
u8g_SetPILevel(u8g, U8G_PI_CS, arg_val); // Note: the ST7920 has an active high chip-select
|
||||
break;
|
||||
|
||||
case U8G_COM_MSG_WRITE_BYTE:
|
||||
|
||||
@@ -10,18 +10,16 @@ target_drive = "REARM"
|
||||
import os
|
||||
import platform
|
||||
current_OS = platform.system()
|
||||
Import("env")
|
||||
|
||||
#env_vars = subprocess.check_output('platformio run -t envdump')
|
||||
#env_vars = env_vars.split('\n')
|
||||
#for env in env_vars:
|
||||
# print env
|
||||
#exit(0)
|
||||
|
||||
build_type = os.environ.get("BUILD_TYPE", 'Not Set')
|
||||
if build_type == 'upload' or build_type == 'traceback' or build_type == 'Not Set' :
|
||||
def detect_error(e):
|
||||
print '\nUnable to find destination disk (' + e + ')\n' \
|
||||
'Please select it in platformio.ini using the upload_port keyword ' \
|
||||
'(https://docs.platformio.org/en/latest/projectconf/section_env_upload.html)\n' \
|
||||
'or copy the firmware (.pioenvs/' + env.get('PIOENV') + '/firmware.bin) manually to the appropriate disk\n'
|
||||
|
||||
try:
|
||||
if current_OS == 'Windows':
|
||||
|
||||
#
|
||||
# platformio.ini will accept this for a Windows upload port designation: 'upload_port = L:'
|
||||
# Windows - doesn't care about the disk's name, only cares about the drive letter
|
||||
@@ -30,119 +28,114 @@ if build_type == 'upload' or build_type == 'traceback' or build_type == 'Not Set
|
||||
#
|
||||
# get all drives on this computer
|
||||
#
|
||||
|
||||
import subprocess
|
||||
|
||||
driveStr = subprocess.check_output("fsutil fsinfo drives") # typical result (string): 'Drives: C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\ L:\ M:\ Y:\ Z:\'
|
||||
driveStr = driveStr.strip().lstrip('Drives: ') # typical result (string): 'C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\ L:\ M:\ Y:\ Z:\'
|
||||
drives = driveStr.split() # typical result (array of stings): ['C:\\', 'D:\\', 'E:\\', 'F:\\', 'G:\\', 'H:\\', 'I:\\', 'J:\\', 'K:\\', 'L:\\', 'M:\\', 'Y:\\', 'Z:\\']
|
||||
# typical result (string): 'Drives: C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\ L:\ M:\ Y:\ Z:\'
|
||||
driveStr = subprocess.check_output("fsutil fsinfo drives")
|
||||
# typical result (string): 'C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\ L:\ M:\ Y:\ Z:\'
|
||||
driveStr = driveStr.strip().lstrip('Drives: ')
|
||||
# typical result (array of stings): ['C:\\', 'D:\\', 'E:\\', 'F:\\',
|
||||
# 'G:\\', 'H:\\', 'I:\\', 'J:\\', 'K:\\', 'L:\\', 'M:\\', 'Y:\\', 'Z:\\']
|
||||
drives = driveStr.split()
|
||||
|
||||
upload_disk = 'Disk not found'
|
||||
target_file_found = False
|
||||
target_drive_found = False
|
||||
for drive in drives:
|
||||
final_drive_name = drive.strip().rstrip('\\') # typical result (string): 'C:'
|
||||
try:
|
||||
volume_info = subprocess.check_output('cmd /C dir ' + final_drive_name, stderr=subprocess.STDOUT)
|
||||
except Exception as e:
|
||||
continue
|
||||
else:
|
||||
if target_drive in volume_info and target_file_found == False: # set upload if not found target file yet
|
||||
target_drive_found = True
|
||||
upload_disk = final_drive_name
|
||||
if target_filename in volume_info:
|
||||
if target_file_found == False:
|
||||
upload_disk = final_drive_name
|
||||
target_file_found = True
|
||||
final_drive_name = drive.strip().rstrip('\\') # typical result (string): 'C:'
|
||||
try:
|
||||
volume_info = subprocess.check_output('cmd /C dir ' + final_drive_name, stderr=subprocess.STDOUT)
|
||||
except Exception as e:
|
||||
continue
|
||||
else:
|
||||
if target_drive in volume_info and target_file_found == False: # set upload if not found target file yet
|
||||
target_drive_found = True
|
||||
upload_disk = final_drive_name
|
||||
if target_filename in volume_info:
|
||||
if target_file_found == False:
|
||||
upload_disk = final_drive_name
|
||||
target_file_found = True
|
||||
|
||||
#
|
||||
# set upload_port to drive if found
|
||||
#
|
||||
|
||||
if target_file_found == True or target_drive_found == True:
|
||||
Import("env")
|
||||
env.Replace(
|
||||
UPLOAD_PORT = upload_disk
|
||||
)
|
||||
print 'upload disk: ' , upload_disk
|
||||
env.Replace(
|
||||
UPLOAD_PORT=upload_disk
|
||||
)
|
||||
print 'upload disk: ', upload_disk
|
||||
else:
|
||||
print '\nUnable to find destination disk. File must be copied manually. \n'
|
||||
|
||||
|
||||
if current_OS == 'Linux':
|
||||
detect_error('Autodetect Error')
|
||||
|
||||
elif current_OS == 'Linux':
|
||||
#
|
||||
# platformio.ini will accept this for a Linux upload port designation: 'upload_port = /media/media_name/drive'
|
||||
#
|
||||
|
||||
upload_disk = 'Disk not found'
|
||||
target_file_found = False
|
||||
target_drive_found = False
|
||||
medias = os.listdir('/media') #
|
||||
for media in medias:
|
||||
drives = os.listdir('/media/' + media) #
|
||||
if target_drive in drives and target_file_found == False: # set upload if not found target file yet
|
||||
target_drive_found = True
|
||||
upload_disk = '/media/' + media + '/' + target_drive + '/'
|
||||
for drive in drives:
|
||||
try:
|
||||
files = os.listdir('/media/' + media + '/' + drive )
|
||||
except:
|
||||
continue
|
||||
else:
|
||||
if target_filename in files:
|
||||
if target_file_found == False:
|
||||
upload_disk = '/media/' + media + '/' + drive + '/'
|
||||
target_file_found = True
|
||||
drives = os.listdir('/media/' + media) #
|
||||
if target_drive in drives and target_file_found == False: # set upload if not found target file yet
|
||||
target_drive_found = True
|
||||
upload_disk = '/media/' + media + '/' + target_drive + '/'
|
||||
for drive in drives:
|
||||
try:
|
||||
files = os.listdir('/media/' + media + '/' + drive)
|
||||
except:
|
||||
continue
|
||||
else:
|
||||
if target_filename in files:
|
||||
if target_file_found == False:
|
||||
upload_disk = '/media/' + media + '/' + drive + '/'
|
||||
target_file_found = True
|
||||
|
||||
#
|
||||
# set upload_port to drive if found
|
||||
#
|
||||
|
||||
if target_file_found == True or target_drive_found == True:
|
||||
Import("env")
|
||||
env.Replace(
|
||||
UPLOAD_FLAGS = "-P$UPLOAD_PORT",
|
||||
UPLOAD_PORT = upload_disk
|
||||
)
|
||||
print 'upload disk: ' , upload_disk
|
||||
env.Replace(
|
||||
UPLOAD_FLAGS="-P$UPLOAD_PORT",
|
||||
UPLOAD_PORT=upload_disk
|
||||
)
|
||||
print 'upload disk: ', upload_disk
|
||||
else:
|
||||
print '\nUnable to find destination disk. File must be copied manually. \n'
|
||||
|
||||
|
||||
if current_OS == 'Darwin': # MAC
|
||||
detect_error('Autodetect Error')
|
||||
|
||||
elif current_OS == 'Darwin': # MAC
|
||||
#
|
||||
# platformio.ini will accept this for a OSX upload port designation: 'upload_port = /media/media_name/drive'
|
||||
#
|
||||
|
||||
import os
|
||||
upload_disk = 'Disk not found'
|
||||
drives = os.listdir('/Volumes') # human readable names
|
||||
drives = os.listdir('/Volumes') # human readable names
|
||||
target_file_found = False
|
||||
target_drive_found = False
|
||||
if target_drive in drives and target_file_found == False: # set upload if not found target file yet
|
||||
target_drive_found = True
|
||||
upload_disk = '/Volumes/' + target_drive + '/'
|
||||
target_drive_found = True
|
||||
upload_disk = '/Volumes/' + target_drive + '/'
|
||||
for drive in drives:
|
||||
try:
|
||||
filenames = os.listdir('/Volumes/' + drive + '/') # will get an error if the drive is protected
|
||||
except:
|
||||
continue
|
||||
else:
|
||||
if target_filename in filenames:
|
||||
if target_file_found == False:
|
||||
upload_disk = '/Volumes/' + drive + '/'
|
||||
target_file_found = True
|
||||
try:
|
||||
filenames = os.listdir('/Volumes/' + drive + '/') # will get an error if the drive is protected
|
||||
except:
|
||||
continue
|
||||
else:
|
||||
if target_filename in filenames:
|
||||
if target_file_found == False:
|
||||
upload_disk = '/Volumes/' + drive + '/'
|
||||
target_file_found = True
|
||||
#
|
||||
# set upload_port to drive if found
|
||||
#
|
||||
|
||||
if target_file_found == True or target_drive_found == True:
|
||||
Import("env")
|
||||
env.Replace(
|
||||
UPLOAD_PORT = upload_disk
|
||||
)
|
||||
print '\nupload disk: ' , upload_disk, '\n'
|
||||
env.Replace(
|
||||
UPLOAD_PORT=upload_disk
|
||||
)
|
||||
print '\nupload disk: ', upload_disk, '\n'
|
||||
else:
|
||||
print '\nUnable to find destination disk. File must be copied manually. \n'
|
||||
detect_error('Autodetect Error')
|
||||
|
||||
except Exception as e:
|
||||
detect_error(str(e))
|
||||
|
||||
@@ -21,7 +21,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef ARDUINO_ARCH_STM32
|
||||
#if defined(ARDUINO_ARCH_STM32) && !defined(STM32GENERIC)
|
||||
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Includes
|
||||
|
||||
@@ -24,10 +24,6 @@
|
||||
|
||||
#define CPU_32_BIT
|
||||
|
||||
#ifndef vsnprintf_P
|
||||
#define vsnprintf_P vsnprintf
|
||||
#endif
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Includes
|
||||
// --------------------------------------------------------------------------
|
||||
@@ -105,8 +101,6 @@
|
||||
#define NUM_SERIAL 1
|
||||
#endif
|
||||
|
||||
#define _BV(b) (1 << (b))
|
||||
|
||||
/**
|
||||
* TODO: review this to return 1 for pins that are not analog input
|
||||
*/
|
||||
@@ -177,7 +171,7 @@ void _delay_ms(const int delay);
|
||||
|
||||
extern "C" char* _sbrk(int incr);
|
||||
|
||||
static int freeMemory() {
|
||||
static inline int freeMemory() {
|
||||
volatile char top;
|
||||
return &top - reinterpret_cast<char*>(_sbrk(0));
|
||||
}
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#ifdef ARDUINO_ARCH_STM32
|
||||
#if defined(ARDUINO_ARCH_STM32) && !defined(STM32GENERIC)
|
||||
|
||||
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
|
||||
|
||||
@@ -20,7 +20,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#ifdef ARDUINO_ARCH_STM32
|
||||
#if defined(ARDUINO_ARCH_STM32) && !defined(STM32GENERIC)
|
||||
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Includes
|
||||
@@ -115,10 +116,9 @@ uint8_t spiRec(void) {
|
||||
*/
|
||||
void spiRead(uint8_t* buf, uint16_t nbyte) {
|
||||
if (nbyte == 0) return;
|
||||
memset(buf, 0xFF, nbyte);
|
||||
SPI.beginTransaction(spiConfig);
|
||||
for (int i = 0; i < nbyte; i++) {
|
||||
buf[i] = SPI.transfer(0xFF);
|
||||
}
|
||||
SPI.transfer(buf, nbyte);
|
||||
SPI.endTransaction();
|
||||
}
|
||||
|
||||
@@ -144,9 +144,10 @@ void spiSend(uint8_t b) {
|
||||
* @details Use DMA
|
||||
*/
|
||||
void spiSendBlock(uint8_t token, const uint8_t* buf) {
|
||||
uint8_t rxBuf[512];
|
||||
SPI.beginTransaction(spiConfig);
|
||||
SPI.transfer(token);
|
||||
SPI.transfer((uint8_t*)buf, (uint8_t*)0, 512);
|
||||
SPI.transfer((uint8_t*)buf, &rxBuf, 512);
|
||||
SPI.endTransaction();
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#ifdef ARDUINO_ARCH_STM32
|
||||
#if defined(ARDUINO_ARCH_STM32) && !defined(STM32GENERIC)
|
||||
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Includes
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
#include <stdint.h>
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Defines
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#ifdef ARDUINO_ARCH_STM32
|
||||
#if defined(ARDUINO_ARCH_STM32) && !defined(STM32GENERIC)
|
||||
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
|
||||
|
||||
@@ -43,7 +43,6 @@ void FastIO_init(); // Must be called before using fast io macros
|
||||
// Defines
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
#define _BV(b) (1 << (b))
|
||||
#define _BV32(b) (1UL << (b))
|
||||
|
||||
#if defined(STM32F0xx) || defined(STM32F1xx) || defined(STM32F3xx) || defined(STM32L0xx) || defined(STM32L4xx)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#ifdef ARDUINO_ARCH_STM32
|
||||
#if defined(ARDUINO_ARCH_STM32) && !defined(STM32GENERIC)
|
||||
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
|
||||
@@ -62,8 +62,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
|
||||
if (v != eeprom_read_byte(p)) {
|
||||
eeprom_write_byte(p, v);
|
||||
if (eeprom_read_byte(p) != v) {
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE);
|
||||
SERIAL_ECHO_MSG(MSG_ERR_EEPROM_WRITE);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef ARDUINO_ARCH_STM32
|
||||
#if defined(ARDUINO_ARCH_STM32) && !defined(STM32GENERIC)
|
||||
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
#define __I
|
||||
#define __IO
|
||||
#define __IO volatile
|
||||
typedef struct
|
||||
{
|
||||
__I uint32_t CPUID; /*!< Offset: 0x000 (R/ ) CPUID Base Register */
|
||||
@@ -100,12 +100,12 @@ uint16_t HAL_adc_result;
|
||||
// --------------------------------------------------------------------------
|
||||
STM32ADC adc(ADC1);
|
||||
|
||||
uint8 adc_pins[] = {
|
||||
uint8_t adc_pins[] = {
|
||||
#if HAS_TEMP_ADC_0
|
||||
TEMP_0_PIN,
|
||||
#endif
|
||||
#if HAS_TEMP_ADC_1
|
||||
TEMP_1_PIN
|
||||
TEMP_1_PIN,
|
||||
#endif
|
||||
#if HAS_TEMP_ADC_2
|
||||
TEMP_2_PIN,
|
||||
@@ -175,6 +175,24 @@ static void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) {
|
||||
// Public functions
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
//
|
||||
// Leave PA11/PA12 intact if USBSerial is not used
|
||||
//
|
||||
#if SERIAL_USB
|
||||
namespace wirish { namespace priv {
|
||||
#if SERIAL_PORT > 0
|
||||
#if SERIAL_PORT2
|
||||
#if SERIAL_PORT2 > 0
|
||||
void board_setup_usb(void) {}
|
||||
#endif
|
||||
#else
|
||||
void board_setup_usb(void) {}
|
||||
#endif
|
||||
#endif
|
||||
} }
|
||||
#endif
|
||||
|
||||
|
||||
void HAL_init(void) {
|
||||
NVIC_SetPriorityGrouping(0x3);
|
||||
}
|
||||
|
||||
@@ -47,10 +47,10 @@
|
||||
#include "../shared/math_32bit.h"
|
||||
#include "../shared/HAL_SPI.h"
|
||||
|
||||
#include "fastio_Stm32f1.h"
|
||||
#include "watchdog_Stm32f1.h"
|
||||
#include "fastio_STM32F1.h"
|
||||
#include "watchdog_STM32F1.h"
|
||||
|
||||
#include "HAL_timers_Stm32f1.h"
|
||||
#include "HAL_timers_STM32F1.h"
|
||||
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
uint8_t ServoCount; //=0
|
||||
|
||||
#include "HAL_Servo_Stm32f1.h"
|
||||
#include "HAL_Servo_STM32F1.h"
|
||||
|
||||
//#include "Servo.h"
|
||||
|
||||
@@ -52,14 +52,14 @@ uint8_t ServoCount; //=0
|
||||
#define TAU_USEC (TAU_MSEC * 1000)
|
||||
#define TAU_CYC (TAU_MSEC * CYC_MSEC)
|
||||
#define SERVO_PRESCALER (TAU_CYC / MAX_OVERFLOW + 1)
|
||||
#define SERVO_OVERFLOW ((uint16)round((double)TAU_CYC / SERVO_PRESCALER))
|
||||
#define SERVO_OVERFLOW ((uint16_t)round((double)TAU_CYC / SERVO_PRESCALER))
|
||||
|
||||
// Unit conversions
|
||||
#define US_TO_COMPARE(us) ((uint16)map((us), 0, TAU_USEC, 0, SERVO_OVERFLOW))
|
||||
#define COMPARE_TO_US(c) ((uint32)map((c), 0, SERVO_OVERFLOW, 0, TAU_USEC))
|
||||
#define ANGLE_TO_US(a) ((uint16)(map((a), this->minAngle, this->maxAngle, \
|
||||
#define US_TO_COMPARE(us) ((uint16_t)map((us), 0, TAU_USEC, 0, SERVO_OVERFLOW))
|
||||
#define COMPARE_TO_US(c) ((uint32_t)map((c), 0, SERVO_OVERFLOW, 0, TAU_USEC))
|
||||
#define ANGLE_TO_US(a) ((uint16_t)(map((a), this->minAngle, this->maxAngle, \
|
||||
SERVO_DEFAULT_MIN_PW, SERVO_DEFAULT_MAX_PW)))
|
||||
#define US_TO_ANGLE(us) ((int16)(map((us), SERVO_DEFAULT_MIN_PW, SERVO_DEFAULT_MAX_PW, \
|
||||
#define US_TO_ANGLE(us) ((int16_t)(map((us), SERVO_DEFAULT_MIN_PW, SERVO_DEFAULT_MAX_PW, \
|
||||
this->minAngle, this->maxAngle)))
|
||||
|
||||
libServo::libServo() {
|
||||
@@ -74,7 +74,7 @@ bool libServo::attach(const int32_t pin, const int32_t minAngle, const int32_t m
|
||||
this->maxAngle = maxAngle;
|
||||
|
||||
timer_dev *tdev = PIN_MAP[this->pin].timer_device;
|
||||
uint8 tchan = PIN_MAP[this->pin].timer_channel;
|
||||
uint8_t tchan = PIN_MAP[this->pin].timer_channel;
|
||||
|
||||
pinMode(this->pin, PWM);
|
||||
pwmWrite(this->pin, 0);
|
||||
@@ -97,7 +97,7 @@ bool libServo::detach() {
|
||||
int32_t libServo::read() const {
|
||||
if (this->attached()) {
|
||||
timer_dev *tdev = PIN_MAP[this->pin].timer_device;
|
||||
uint8 tchan = PIN_MAP[this->pin].timer_channel;
|
||||
uint8_t tchan = PIN_MAP[this->pin].timer_channel;
|
||||
return US_TO_ANGLE(COMPARE_TO_US(timer_get_compare(tdev, tchan)));
|
||||
}
|
||||
return 0;
|
||||
|
||||
@@ -0,0 +1,267 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
* Copyright (C) 2017 Victor Perez
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef __STM32F1__
|
||||
|
||||
#include "HAL_sdio_STM32F1.h"
|
||||
|
||||
SDIO_CardInfoTypeDef SdCard;
|
||||
|
||||
bool SDIO_Init(void) {
|
||||
uint32_t count = 0U;
|
||||
SdCard.CardType = SdCard.CardVersion = SdCard.Class = SdCard.RelCardAdd = SdCard.BlockNbr = SdCard.BlockSize = SdCard.LogBlockNbr = SdCard.LogBlockSize = 0;
|
||||
|
||||
sdio_begin();
|
||||
sdio_set_dbus_width(SDIO_CLKCR_WIDBUS_1BIT);
|
||||
|
||||
dma_init(SDIO_DMA_DEV);
|
||||
dma_disable(SDIO_DMA_DEV, SDIO_DMA_CHANNEL);
|
||||
dma_set_priority(SDIO_DMA_DEV, SDIO_DMA_CHANNEL, DMA_PRIORITY_VERY_HIGH);
|
||||
|
||||
if (!SDIO_CmdGoIdleState()) return false;
|
||||
if (!SDIO_CmdGoIdleState()) return false; /* Hotplugged cards tends to miss first CMD0, so give them a second chance. */
|
||||
|
||||
SdCard.CardVersion = SDIO_CmdOperCond() ? CARD_V2_X : CARD_V1_X;
|
||||
|
||||
do {
|
||||
if (count++ == SDMMC_MAX_VOLT_TRIAL) return false;
|
||||
SDIO_CmdAppOperCommand(SdCard.CardVersion == CARD_V2_X ? SDMMC_HIGH_CAPACITY : SDMMC_STD_CAPACITY);
|
||||
} while ((SDIO_GetResponse(SDIO_RESP1) & 0x80000000) == 0);
|
||||
|
||||
SdCard.CardType = (SDIO_GetResponse(SDIO_RESP1) & SDMMC_HIGH_CAPACITY) ? CARD_SDHC_SDXC : CARD_SDSC;
|
||||
|
||||
if (!SDIO_CmdSendCID()) return false;
|
||||
if (!SDIO_CmdSetRelAdd(&SdCard.RelCardAdd)) return false; /* Send CMD3 SET_REL_ADDR with argument 0. SD Card publishes its RCA. */
|
||||
if (!SDIO_CmdSendCSD(SdCard.RelCardAdd << 16U)) return false;
|
||||
|
||||
SdCard.Class = (SDIO_GetResponse(SDIO_RESP2) >> 20U);
|
||||
|
||||
if (SdCard.CardType == CARD_SDHC_SDXC) {
|
||||
SdCard.LogBlockNbr = SdCard.BlockNbr = (((SDIO_GetResponse(SDIO_RESP2) & 0x0000003FU) << 26U) | ((SDIO_GetResponse(SDIO_RESP3) & 0xFFFF0000U) >> 6U)) + 1024;
|
||||
SdCard.LogBlockSize = SdCard.BlockSize = 512U;
|
||||
}
|
||||
else {
|
||||
SdCard.BlockNbr = ((((SDIO_GetResponse(SDIO_RESP2) & 0x000003FFU) << 2U ) | ((SDIO_GetResponse(SDIO_RESP3) & 0xC0000000U) >> 30U)) + 1U) * (4U << ((SDIO_GetResponse(SDIO_RESP3) & 0x00038000U) >> 15U));
|
||||
SdCard.BlockSize = 1U << ((SDIO_GetResponse(SDIO_RESP2) >> 16) & 0x0FU);
|
||||
SdCard.LogBlockNbr = (SdCard.BlockNbr) * ((SdCard.BlockSize) / 512U);
|
||||
SdCard.LogBlockSize = 512U;
|
||||
}
|
||||
|
||||
if (!SDIO_CmdSelDesel(SdCard.RelCardAdd << 16U)) return false;
|
||||
if (!SDIO_CmdAppSetClearCardDetect(SdCard.RelCardAdd << 16U)) return false;
|
||||
if (!SDIO_CmdAppSetBusWidth(SdCard.RelCardAdd << 16U, 2)) return false;
|
||||
|
||||
sdio_set_dbus_width(SDIO_CLKCR_WIDBUS_4BIT);
|
||||
sdio_set_clock(SDIO_CLOCK);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SDIO_ReadBlock(uint32_t blockAddress, uint8_t *data) {
|
||||
if (SDIO_GetCardState() != SDIO_CARD_TRANSFER) return false;
|
||||
if (blockAddress >= SdCard.LogBlockNbr) return false;
|
||||
if ((0x03 & (uint32_t)data)) return false; // misaligned data
|
||||
|
||||
if (SdCard.CardType != CARD_SDHC_SDXC) { blockAddress *= 512U; }
|
||||
|
||||
dma_setup_transfer(SDIO_DMA_DEV, SDIO_DMA_CHANNEL, &SDIO->FIFO, DMA_SIZE_32BITS, data, DMA_SIZE_32BITS, DMA_MINC_MODE);
|
||||
dma_set_num_transfers(SDIO_DMA_DEV, SDIO_DMA_CHANNEL, 128);
|
||||
dma_clear_isr_bits(SDIO_DMA_DEV, SDIO_DMA_CHANNEL);
|
||||
dma_enable(SDIO_DMA_DEV, SDIO_DMA_CHANNEL);
|
||||
|
||||
sdio_setup_transfer(SDIO_DATA_TIMEOUT * (F_CPU / 1000U), 512, SDIO_BLOCKSIZE_512 | SDIO_DCTRL_DMAEN | SDIO_DCTRL_DTEN | SDIO_DIR_RX);
|
||||
|
||||
if (!SDIO_CmdReadSingleBlock(blockAddress)) {
|
||||
SDIO_CLEAR_FLAG(SDIO_ICR_CMD_FLAGS);
|
||||
dma_disable(SDIO_DMA_DEV, SDIO_DMA_CHANNEL);
|
||||
return false;
|
||||
}
|
||||
|
||||
while (!SDIO_GET_FLAG(SDIO_STA_DATAEND | SDIO_STA_TRX_ERROR_FLAGS)) {}
|
||||
|
||||
dma_disable(SDIO_DMA_DEV, SDIO_DMA_CHANNEL);
|
||||
|
||||
if (SDIO_GET_FLAG(SDIO_STA_TRX_ERROR_FLAGS)) {
|
||||
SDIO_CLEAR_FLAG(SDIO_ICR_CMD_FLAGS | SDIO_ICR_DATA_FLAGS);
|
||||
return false;
|
||||
}
|
||||
SDIO_CLEAR_FLAG(SDIO_ICR_CMD_FLAGS | SDIO_ICR_DATA_FLAGS);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SDIO_WriteBlock(uint32_t blockAddress, const uint8_t *data) {
|
||||
if (SDIO_GetCardState() != SDIO_CARD_TRANSFER) return false;
|
||||
if (blockAddress >= SdCard.LogBlockNbr) return false;
|
||||
if ((0x03 & (uint32_t)data)) return false; // misaligned data
|
||||
|
||||
if (SdCard.CardType != CARD_SDHC_SDXC) { blockAddress *= 512U; }
|
||||
|
||||
dma_setup_transfer(SDIO_DMA_DEV, SDIO_DMA_CHANNEL, &SDIO->FIFO, DMA_SIZE_32BITS, (volatile void *) data, DMA_SIZE_32BITS, DMA_MINC_MODE | DMA_FROM_MEM);
|
||||
dma_set_num_transfers(SDIO_DMA_DEV, SDIO_DMA_CHANNEL, 128);
|
||||
dma_clear_isr_bits(SDIO_DMA_DEV, SDIO_DMA_CHANNEL);
|
||||
dma_enable(SDIO_DMA_DEV, SDIO_DMA_CHANNEL);
|
||||
|
||||
if (!SDIO_CmdWriteSingleBlock(blockAddress)) {
|
||||
dma_disable(SDIO_DMA_DEV, SDIO_DMA_CHANNEL);
|
||||
return false;
|
||||
}
|
||||
|
||||
sdio_setup_transfer(SDIO_DATA_TIMEOUT * (F_CPU / 1000U), 512U, SDIO_BLOCKSIZE_512 | SDIO_DCTRL_DMAEN | SDIO_DCTRL_DTEN);
|
||||
|
||||
while (!SDIO_GET_FLAG(SDIO_STA_DATAEND | SDIO_STA_TRX_ERROR_FLAGS)) {}
|
||||
|
||||
dma_disable(SDIO_DMA_DEV, SDIO_DMA_CHANNEL);
|
||||
|
||||
if (SDIO_GET_FLAG(SDIO_STA_TRX_ERROR_FLAGS)) {
|
||||
SDIO_CLEAR_FLAG(SDIO_ICR_CMD_FLAGS | SDIO_ICR_DATA_FLAGS);
|
||||
return false;
|
||||
}
|
||||
|
||||
SDIO_CLEAR_FLAG(SDIO_ICR_CMD_FLAGS | SDIO_ICR_DATA_FLAGS);
|
||||
|
||||
uint32_t timeout = millis() + SDIO_WRITE_TIMEOUT;
|
||||
while (timeout > millis()) {
|
||||
if (SDIO_GetCardState() == SDIO_CARD_TRANSFER) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
inline uint32_t SDIO_GetCardState(void) { return SDIO_CmdSendStatus(SdCard.RelCardAdd << 16U) ? (SDIO_GetResponse(SDIO_RESP1) >> 9U) & 0x0FU : SDIO_CARD_ERROR; }
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// SD Commands and Responses
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
void SDIO_SendCommand(uint16_t command, uint32_t argument) { SDIO->ARG = argument; SDIO->CMD = (uint32_t)(SDIO_CMD_CPSMEN | command); }
|
||||
uint8_t SDIO_GetCommandResponse(void) { return (uint8_t)(SDIO->RESPCMD); }
|
||||
uint32_t SDIO_GetResponse(uint32_t response) { return SDIO->RESP[response]; }
|
||||
|
||||
bool SDIO_CmdGoIdleState(void) { SDIO_SendCommand(CMD0_GO_IDLE_STATE, 0); return SDIO_GetCmdError(); }
|
||||
bool SDIO_CmdSendCID(void) { SDIO_SendCommand(CMD2_ALL_SEND_CID, 0); return SDIO_GetCmdResp2(); }
|
||||
bool SDIO_CmdSetRelAdd(uint32_t *rca) { SDIO_SendCommand(CMD3_SET_REL_ADDR, 0); return SDIO_GetCmdResp6(SDMMC_CMD_SET_REL_ADDR, rca); }
|
||||
bool SDIO_CmdSelDesel(uint32_t address) { SDIO_SendCommand(CMD7_SEL_DESEL_CARD, address); return SDIO_GetCmdResp1(SDMMC_CMD_SEL_DESEL_CARD); }
|
||||
bool SDIO_CmdOperCond(void) { SDIO_SendCommand(CMD8_HS_SEND_EXT_CSD, SDMMC_CHECK_PATTERN); return SDIO_GetCmdResp7(); }
|
||||
bool SDIO_CmdSendCSD(uint32_t argument) { SDIO_SendCommand(CMD9_SEND_CSD, argument); return SDIO_GetCmdResp2(); }
|
||||
bool SDIO_CmdSendStatus(uint32_t argument) { SDIO_SendCommand(CMD13_SEND_STATUS, argument); return SDIO_GetCmdResp1(SDMMC_CMD_SEND_STATUS); }
|
||||
bool SDIO_CmdReadSingleBlock(uint32_t address) { SDIO_SendCommand(CMD17_READ_SINGLE_BLOCK, address); return SDIO_GetCmdResp1(SDMMC_CMD_READ_SINGLE_BLOCK); }
|
||||
bool SDIO_CmdWriteSingleBlock(uint32_t address) { SDIO_SendCommand(CMD24_WRITE_SINGLE_BLOCK, address); return SDIO_GetCmdResp1(SDMMC_CMD_WRITE_SINGLE_BLOCK); }
|
||||
bool SDIO_CmdAppCommand(uint32_t rsa) { SDIO_SendCommand(CMD55_APP_CMD, rsa); return SDIO_GetCmdResp1(SDMMC_CMD_APP_CMD); }
|
||||
|
||||
bool SDIO_CmdAppSetBusWidth(uint32_t rsa, uint32_t argument) {
|
||||
if (!SDIO_CmdAppCommand(rsa)) return false;
|
||||
SDIO_SendCommand(ACMD6_APP_SD_SET_BUSWIDTH, argument);
|
||||
return SDIO_GetCmdResp2();
|
||||
}
|
||||
|
||||
bool SDIO_CmdAppOperCommand(uint32_t sdType) {
|
||||
if (!SDIO_CmdAppCommand(0)) return false;
|
||||
SDIO_SendCommand(ACMD41_SD_APP_OP_COND , SDMMC_VOLTAGE_WINDOW_SD | sdType);
|
||||
return SDIO_GetCmdResp3();
|
||||
}
|
||||
|
||||
bool SDIO_CmdAppSetClearCardDetect(uint32_t rsa) {
|
||||
if (!SDIO_CmdAppCommand(rsa)) return false;
|
||||
SDIO_SendCommand(ACMD42_SD_APP_SET_CLR_CARD_DETECT, 0);
|
||||
return SDIO_GetCmdResp2();
|
||||
}
|
||||
|
||||
// Wait until given flags are unset or till timeout
|
||||
#define SDIO_WAIT(FLAGS) do{ \
|
||||
uint32_t count = 1 + (SDIO_CMDTIMEOUT) * ((F_CPU) / 8U / 1000U); \
|
||||
do { if (!--count) return false; } while (!SDIO_GET_FLAG(FLAGS)); \
|
||||
}while(0)
|
||||
|
||||
bool SDIO_GetCmdError(void) {
|
||||
SDIO_WAIT(SDIO_STA_CMDSENT);
|
||||
|
||||
SDIO_CLEAR_FLAG(SDIO_ICR_CMD_FLAGS);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SDIO_GetCmdResp1(uint8_t command) {
|
||||
SDIO_WAIT(SDIO_STA_CCRCFAIL | SDIO_STA_CMDREND | SDIO_STA_CTIMEOUT);
|
||||
|
||||
if (SDIO_GET_FLAG(SDIO_STA_CCRCFAIL | SDIO_STA_CTIMEOUT)) {
|
||||
SDIO_CLEAR_FLAG(SDIO_STA_CCRCFAIL | SDIO_STA_CTIMEOUT);
|
||||
return false;
|
||||
}
|
||||
if (SDIO_GetCommandResponse() != command) return false;
|
||||
|
||||
SDIO_CLEAR_FLAG(SDIO_ICR_CMD_FLAGS);
|
||||
return (SDIO_GetResponse(SDIO_RESP1) & SDMMC_OCR_ERRORBITS) == SDMMC_ALLZERO;
|
||||
}
|
||||
|
||||
bool SDIO_GetCmdResp2(void) {
|
||||
SDIO_WAIT(SDIO_STA_CCRCFAIL | SDIO_STA_CMDREND | SDIO_STA_CTIMEOUT);
|
||||
|
||||
if (SDIO_GET_FLAG(SDIO_STA_CCRCFAIL | SDIO_STA_CTIMEOUT)) {
|
||||
SDIO_CLEAR_FLAG(SDIO_STA_CCRCFAIL | SDIO_STA_CTIMEOUT);
|
||||
return false;
|
||||
}
|
||||
|
||||
SDIO_CLEAR_FLAG(SDIO_ICR_CMD_FLAGS);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SDIO_GetCmdResp3(void) {
|
||||
SDIO_WAIT(SDIO_STA_CCRCFAIL | SDIO_STA_CMDREND | SDIO_STA_CTIMEOUT);
|
||||
|
||||
if (SDIO_GET_FLAG(SDIO_STA_CTIMEOUT)) {
|
||||
SDIO_CLEAR_FLAG(SDIO_STA_CTIMEOUT);
|
||||
return false;
|
||||
}
|
||||
|
||||
SDIO_CLEAR_FLAG(SDIO_ICR_CMD_FLAGS);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SDIO_GetCmdResp6(uint8_t command, uint32_t *rca) {
|
||||
SDIO_WAIT(SDIO_STA_CCRCFAIL | SDIO_STA_CMDREND | SDIO_STA_CTIMEOUT);
|
||||
|
||||
if (SDIO_GET_FLAG(SDIO_STA_CCRCFAIL | SDIO_STA_CTIMEOUT)) {
|
||||
SDIO_CLEAR_FLAG(SDIO_STA_CCRCFAIL | SDIO_STA_CTIMEOUT);
|
||||
return false;
|
||||
}
|
||||
if (SDIO_GetCommandResponse() != command) return false;
|
||||
|
||||
SDIO_CLEAR_FLAG(SDIO_ICR_CMD_FLAGS);
|
||||
if (SDIO_GetResponse(SDIO_RESP1) & (SDMMC_R6_GENERAL_UNKNOWN_ERROR | SDMMC_R6_ILLEGAL_CMD | SDMMC_R6_COM_CRC_FAILED)) return false;
|
||||
|
||||
*rca = SDIO_GetResponse(SDIO_RESP1) >> 16;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SDIO_GetCmdResp7(void) {
|
||||
SDIO_WAIT(SDIO_STA_CCRCFAIL | SDIO_STA_CMDREND | SDIO_STA_CTIMEOUT);
|
||||
|
||||
if (SDIO_GET_FLAG(SDIO_STA_CTIMEOUT)) {
|
||||
SDIO_CLEAR_FLAG(SDIO_STA_CTIMEOUT);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (SDIO_GET_FLAG(SDIO_STA_CMDREND)) { SDIO_CLEAR_FLAG(SDIO_STA_CMDREND); }
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // __STM32F1__
|
||||
@@ -0,0 +1,152 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
*
|
||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
* Copyright (c) 2016 Bob Cousins bobcousins42@googlemail.com
|
||||
* Copyright (c) 2017 Victor Perez
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Includes
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
#include "Arduino.h"
|
||||
#include "libmaple/sdio.h"
|
||||
#include "libmaple/dma.h"
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Defines
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
#define SDMMC_CMD_GO_IDLE_STATE ((uint8_t)0) /* Resets the SD memory card. */
|
||||
#define SDMMC_CMD_ALL_SEND_CID ((uint8_t)2) /* Asks any card connected to the host to send the CID numbers on the CMD line. */
|
||||
#define SDMMC_CMD_SET_REL_ADDR ((uint8_t)3) /* Asks the card to publish a new relative address (RCA). */
|
||||
#define SDMMC_CMD_SEL_DESEL_CARD ((uint8_t)7) /* Selects the card by its own relative address and gets deselected by any other address */
|
||||
#define SDMMC_CMD_HS_SEND_EXT_CSD ((uint8_t)8) /* Sends SD Memory Card interface condition, which includes host supply voltage information and asks the card whether card supports voltage. */
|
||||
#define SDMMC_CMD_SEND_CSD ((uint8_t)9) /* Addressed card sends its card specific data (CSD) on the CMD line. */
|
||||
#define SDMMC_CMD_SEND_STATUS ((uint8_t)13) /*!< Addressed card sends its status register. */
|
||||
#define SDMMC_CMD_READ_SINGLE_BLOCK ((uint8_t)17) /* Reads single block of size selected by SET_BLOCKLEN in case of SDSC, and a block of fixed 512 bytes in case of SDHC and SDXC. */
|
||||
#define SDMMC_CMD_WRITE_SINGLE_BLOCK ((uint8_t)24) /* Writes single block of size selected by SET_BLOCKLEN in case of SDSC, and a block of fixed 512 bytes in case of SDHC and SDXC. */
|
||||
#define SDMMC_CMD_APP_CMD ((uint8_t)55) /* Indicates to the card that the next command is an application specific command rather than a standard command. */
|
||||
|
||||
#define SDMMC_ACMD_APP_SD_SET_BUSWIDTH ((uint8_t)6) /* (ACMD6) Defines the data bus width to be used for data transfer. The allowed data bus widths are given in SCR register. */
|
||||
#define SDMMC_ACMD_SD_APP_OP_COND ((uint8_t)41) /* (ACMD41) Sends host capacity support information (HCS) and asks the accessed card to send its operating condition register (OCR) content in the response on the CMD line. */
|
||||
#define SDMMC_ACMD_SD_APP_SET_CLR_CARD_DETECT ((uint8_t)42) /* (ACMD42) Connect/Disconnect the 50 KOhm pull-up resistor on CD/DAT3 (pin 1) of the card */
|
||||
|
||||
#define CMD0_GO_IDLE_STATE (uint16_t)(SDMMC_CMD_GO_IDLE_STATE | SDIO_CMD_WAIT_NO_RESP)
|
||||
#define CMD2_ALL_SEND_CID (uint16_t)(SDMMC_CMD_ALL_SEND_CID | SDIO_CMD_WAIT_LONG_RESP)
|
||||
#define CMD3_SET_REL_ADDR (uint16_t)(SDMMC_CMD_SET_REL_ADDR | SDIO_CMD_WAIT_SHORT_RESP)
|
||||
#define CMD7_SEL_DESEL_CARD (uint16_t)(SDMMC_CMD_SEL_DESEL_CARD | SDIO_CMD_WAIT_SHORT_RESP)
|
||||
#define CMD8_HS_SEND_EXT_CSD (uint16_t)(SDMMC_CMD_HS_SEND_EXT_CSD | SDIO_CMD_WAIT_SHORT_RESP)
|
||||
#define CMD9_SEND_CSD (uint16_t)(SDMMC_CMD_SEND_CSD | SDIO_CMD_WAIT_LONG_RESP)
|
||||
#define CMD13_SEND_STATUS (uint16_t)(SDMMC_CMD_SEND_STATUS | SDIO_CMD_WAIT_SHORT_RESP)
|
||||
#define CMD17_READ_SINGLE_BLOCK (uint16_t)(SDMMC_CMD_READ_SINGLE_BLOCK | SDIO_CMD_WAIT_SHORT_RESP)
|
||||
#define CMD24_WRITE_SINGLE_BLOCK (uint16_t)(SDMMC_CMD_WRITE_SINGLE_BLOCK | SDIO_CMD_WAIT_SHORT_RESP)
|
||||
#define CMD55_APP_CMD (uint16_t)(SDMMC_CMD_APP_CMD | SDIO_CMD_WAIT_SHORT_RESP)
|
||||
|
||||
#define ACMD6_APP_SD_SET_BUSWIDTH (uint16_t)(SDMMC_ACMD_APP_SD_SET_BUSWIDTH | SDIO_CMD_WAIT_SHORT_RESP)
|
||||
#define ACMD41_SD_APP_OP_COND (uint16_t)(SDMMC_ACMD_SD_APP_OP_COND | SDIO_CMD_WAIT_SHORT_RESP)
|
||||
#define ACMD42_SD_APP_SET_CLR_CARD_DETECT (uint16_t)(SDMMC_ACMD_SD_APP_SET_CLR_CARD_DETECT | SDIO_CMD_WAIT_SHORT_RESP)
|
||||
|
||||
|
||||
#define SDMMC_ALLZERO 0x00000000U
|
||||
#define SDMMC_OCR_ERRORBITS 0xFDFFE008U
|
||||
|
||||
#define SDMMC_R6_GENERAL_UNKNOWN_ERROR 0x00002000U
|
||||
#define SDMMC_R6_ILLEGAL_CMD 0x00004000U
|
||||
#define SDMMC_R6_COM_CRC_FAILED 0x00008000U
|
||||
|
||||
#define SDMMC_VOLTAGE_WINDOW_SD 0x80100000U
|
||||
#define SDMMC_HIGH_CAPACITY 0x40000000U
|
||||
#define SDMMC_STD_CAPACITY 0x00000000U
|
||||
#define SDMMC_CHECK_PATTERN 0x000001AAU
|
||||
|
||||
#define SDIO_TRANSFER_MODE_BLOCK 0x00000000U
|
||||
#define SDIO_DPSM_ENABLE 0x00000001U
|
||||
#define SDIO_TRANSFER_DIR_TO_CARD 0x00000000U
|
||||
#define SDIO_DATABLOCK_SIZE_512B 0x00000090U
|
||||
#define SDIO_TRANSFER_DIR_TO_SDIO 0x00000100U
|
||||
#define SDIO_DMA_ENABLE 0x00001000U
|
||||
|
||||
#define CARD_V1_X 0x00000000U
|
||||
#define CARD_V2_X 0x00000001U
|
||||
#define CARD_SDSC 0x00000000U
|
||||
#define CARD_SDHC_SDXC 0x00000001U
|
||||
|
||||
#define SDIO_RESP1 0
|
||||
#define SDIO_RESP2 1
|
||||
#define SDIO_RESP3 2
|
||||
#define SDIO_RESP4 3
|
||||
|
||||
#define SDIO_GET_FLAG(__FLAG__) !!((SDIO->STA) & (__FLAG__))
|
||||
#define SDIO_CLEAR_FLAG(__FLAG__) (SDIO->ICR = (__FLAG__))
|
||||
|
||||
#define SDMMC_MAX_VOLT_TRIAL 0x00000FFFU
|
||||
#define SDIO_CARD_TRANSFER 0x00000004U /* Card is in transfer state */
|
||||
#define SDIO_CARD_ERROR 0x000000FFU /* Card response Error */
|
||||
#define SDIO_CMDTIMEOUT 200U /* Command send and response timeout */
|
||||
#define SDIO_DATA_TIMEOUT 100U /* Read data transfer timeout */
|
||||
#define SDIO_WRITE_TIMEOUT 200U /* Write data transfer timeout */
|
||||
|
||||
#define SDIO_CLOCK 18000000 /* 18 MHz */
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Types
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
typedef struct {
|
||||
uint32_t CardType; // Card Type
|
||||
uint32_t CardVersion; // Card version
|
||||
uint32_t Class; // Class of the card class
|
||||
uint32_t RelCardAdd; // Relative Card Address
|
||||
uint32_t BlockNbr; // Card Capacity in blocks
|
||||
uint32_t BlockSize; // One block size in bytes
|
||||
uint32_t LogBlockNbr; // Card logical Capacity in blocks
|
||||
uint32_t LogBlockSize; // Logical block size in bytes
|
||||
} SDIO_CardInfoTypeDef;
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Public functions
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
inline uint32_t SDIO_GetCardState(void);
|
||||
|
||||
bool SDIO_CmdGoIdleState(void);
|
||||
bool SDIO_CmdSendCID(void);
|
||||
bool SDIO_CmdSetRelAdd(uint32_t *rca);
|
||||
bool SDIO_CmdSelDesel(uint32_t address);
|
||||
bool SDIO_CmdOperCond(void);
|
||||
bool SDIO_CmdSendCSD(uint32_t argument);
|
||||
bool SDIO_CmdSendStatus(uint32_t argument);
|
||||
bool SDIO_CmdReadSingleBlock(uint32_t address);
|
||||
bool SDIO_CmdWriteSingleBlock(uint32_t address);
|
||||
bool SDIO_CmdAppCommand(uint32_t rsa);
|
||||
|
||||
bool SDIO_CmdAppSetBusWidth(uint32_t rsa, uint32_t argument);
|
||||
bool SDIO_CmdAppOperCommand(uint32_t sdType);
|
||||
bool SDIO_CmdAppSetClearCardDetect(uint32_t rsa);
|
||||
|
||||
void SDIO_SendCommand(uint16_t command, uint32_t argument);
|
||||
uint8_t SDIO_GetCommandResponse(void);
|
||||
uint32_t SDIO_GetResponse(uint32_t response);
|
||||
bool SDIO_GetCmdError(void);
|
||||
bool SDIO_GetCmdResp1(uint8_t command);
|
||||
bool SDIO_GetCmdResp2(void);
|
||||
bool SDIO_GetCmdResp3(void);
|
||||
bool SDIO_GetCmdResp6(uint8_t command, uint32_t *rca);
|
||||
bool SDIO_GetCmdResp7(void);
|
||||
@@ -104,7 +104,7 @@ void spiInit(uint8_t spiRate) {
|
||||
case SPI_SPEED_6: clock = SPI_CLOCK_DIV64; break;
|
||||
default: clock = SPI_CLOCK_DIV2; // Default from the SPI library
|
||||
}
|
||||
spiConfig = SPISettings(clock, MSBFIRST, SPI_MODE3);
|
||||
spiConfig = SPISettings(clock, MSBFIRST, SPI_MODE0);
|
||||
SPI.begin();
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ uint8_t spiRec(void) {
|
||||
*/
|
||||
void spiRead(uint8_t* buf, uint16_t nbyte) {
|
||||
SPI.beginTransaction(spiConfig);
|
||||
SPI.dmaTransfer(0, const_cast<uint8*>(buf), nbyte);
|
||||
SPI.dmaTransfer(0, const_cast<uint8_t*>(buf), nbyte);
|
||||
SPI.endTransaction();
|
||||
}
|
||||
|
||||
@@ -161,7 +161,7 @@ void spiSend(uint8_t b) {
|
||||
void spiSendBlock(uint8_t token, const uint8_t* buf) {
|
||||
SPI.beginTransaction(spiConfig);
|
||||
SPI.send(token);
|
||||
SPI.dmaSend(const_cast<uint8*>(buf), 512);
|
||||
SPI.dmaSend(const_cast<uint8_t*>(buf), 512);
|
||||
SPI.endTransaction();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
#include "HAL.h"
|
||||
|
||||
#include "HAL_timers_Stm32f1.h"
|
||||
#include "HAL_timers_STM32F1.h"
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Externals
|
||||
@@ -119,7 +119,7 @@ void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency) {
|
||||
case STEP_TIMER_NUM:
|
||||
timer_pause(STEP_TIMER_DEV);
|
||||
timer_set_count(STEP_TIMER_DEV, 0);
|
||||
timer_set_prescaler(STEP_TIMER_DEV, (uint16)(STEPPER_TIMER_PRESCALE - 1));
|
||||
timer_set_prescaler(STEP_TIMER_DEV, (uint16_t)(STEPPER_TIMER_PRESCALE - 1));
|
||||
timer_set_reload(STEP_TIMER_DEV, 0xFFFF);
|
||||
timer_set_compare(STEP_TIMER_DEV, STEP_TIMER_CHAN, MIN(HAL_TIMER_TYPE_MAX, (STEPPER_TIMER_RATE / frequency)));
|
||||
timer_attach_interrupt(STEP_TIMER_DEV, STEP_TIMER_CHAN, stepTC_Handler);
|
||||
@@ -130,7 +130,7 @@ void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency) {
|
||||
case TEMP_TIMER_NUM:
|
||||
timer_pause(TEMP_TIMER_DEV);
|
||||
timer_set_count(TEMP_TIMER_DEV, 0);
|
||||
timer_set_prescaler(TEMP_TIMER_DEV, (uint16)(TEMP_TIMER_PRESCALE - 1));
|
||||
timer_set_prescaler(TEMP_TIMER_DEV, (uint16_t)(TEMP_TIMER_PRESCALE - 1));
|
||||
timer_set_reload(TEMP_TIMER_DEV, 0xFFFF);
|
||||
timer_set_compare(TEMP_TIMER_DEV, TEMP_TIMER_CHAN, MIN(HAL_TIMER_TYPE_MAX, ((F_CPU / TEMP_TIMER_PRESCALE) / frequency)));
|
||||
timer_attach_interrupt(TEMP_TIMER_DEV, TEMP_TIMER_CHAN, tempTC_Handler);
|
||||
@@ -157,7 +157,7 @@ void HAL_timer_disable_interrupt(const uint8_t timer_num) {
|
||||
}
|
||||
}
|
||||
|
||||
static inline bool timer_irq_enabled(const timer_dev * const dev, const uint8 interrupt) {
|
||||
static inline bool timer_irq_enabled(const timer_dev * const dev, const uint8_t interrupt) {
|
||||
return bool(*bb_perip(&(dev->regs).adv->DIER, interrupt));
|
||||
}
|
||||
|
||||
|
||||
@@ -70,3 +70,7 @@
|
||||
#if ENABLED(EMERGENCY_PARSER)
|
||||
#error "EMERGENCY_PARSER is not yet implemented for STM32F1. Disable EMERGENCY_PARSER to continue."
|
||||
#endif
|
||||
|
||||
#if ENABLED(SDIO_SUPPORT) && DISABLED(SDSUPPORT)
|
||||
#error "SDIO_SUPPORT requires SDSUPPORT. Enable SDSUPPORT to continue."
|
||||
#endif
|
||||
|
||||
@@ -41,7 +41,7 @@ char HAL_STM32F1_eeprom_content[HAL_STM32F1_EEPROM_SIZE];
|
||||
char eeprom_filename[] = "eeprom.dat";
|
||||
|
||||
bool PersistentStore::access_start() {
|
||||
if (!card.flag.cardOK) return false;
|
||||
if (!card.isDetected()) return false;
|
||||
int16_t bytes_read = 0;
|
||||
constexpr char eeprom_zero = 0xFF;
|
||||
card.openFile(eeprom_filename, true);
|
||||
@@ -54,7 +54,7 @@ bool PersistentStore::access_start() {
|
||||
}
|
||||
|
||||
bool PersistentStore::access_finish() {
|
||||
if (!card.flag.cardOK) return false;
|
||||
if (!card.isDetected()) return false;
|
||||
card.openFile(eeprom_filename, true);
|
||||
int16_t bytes_written = card.write(HAL_STM32F1_eeprom_content, HAL_STM32F1_EEPROM_SIZE);
|
||||
card.closefile();
|
||||
|
||||
@@ -17,7 +17,7 @@ if __name__ == "__main__":
|
||||
"--specs=nano.specs",
|
||||
"--specs=nosys.specs",
|
||||
|
||||
"-IMarlin/src/HAL",
|
||||
"-IMarlin/src/HAL/HAL_STM32F1",
|
||||
|
||||
"-MMD",
|
||||
"-MP",
|
||||
|
||||
@@ -0,0 +1,255 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016, 2017 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* u8g_com_stm32duino_fsmc.cpp
|
||||
*
|
||||
* Communication interface for FSMC
|
||||
*/
|
||||
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
|
||||
#if HAS_GRAPHICAL_LCD
|
||||
#if defined(STM32F1) || defined(STM32F1xx)
|
||||
|
||||
#include "U8glib.h"
|
||||
#include "libmaple/fsmc.h"
|
||||
#include "libmaple/gpio.h"
|
||||
#include "boards.h"
|
||||
|
||||
#define LCD_READ_ID 0x04 /* Read display identification information */
|
||||
|
||||
/* Timing configuration */
|
||||
#define FSMC_ADDRESS_SETUP_TIME 15 // AddressSetupTime
|
||||
#define FSMC_DATA_SETUP_TIME 15 // DataSetupTime
|
||||
|
||||
void LCD_IO_Init(uint8_t cs, uint8_t rs);
|
||||
void LCD_IO_WriteData(uint16_t RegValue);
|
||||
void LCD_IO_WriteReg(uint8_t Reg);
|
||||
uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize);
|
||||
|
||||
static uint8_t msgInitCount = 2; // Ignore all messages until 2nd U8G_COM_MSG_INIT
|
||||
|
||||
uint8_t u8g_com_stm32duino_fsmc_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) {
|
||||
if (msgInitCount) {
|
||||
if (msg == U8G_COM_MSG_INIT) msgInitCount--;
|
||||
if (msgInitCount) return -1;
|
||||
}
|
||||
|
||||
static uint8_t isCommand;
|
||||
|
||||
switch(msg) {
|
||||
case U8G_COM_MSG_STOP:
|
||||
break;
|
||||
case U8G_COM_MSG_INIT:
|
||||
u8g_SetPIOutput(u8g, U8G_PI_RESET);
|
||||
|
||||
LCD_IO_Init(u8g->pin_list[U8G_PI_CS], u8g->pin_list[U8G_PI_A0]);
|
||||
u8g_Delay(100);
|
||||
|
||||
if (arg_ptr != NULL)
|
||||
*((uint32_t *)arg_ptr) = LCD_IO_ReadData(LCD_READ_ID, 3);
|
||||
|
||||
isCommand = 0;
|
||||
break;
|
||||
|
||||
case U8G_COM_MSG_ADDRESS: // define cmd (arg_val = 0) or data mode (arg_val = 1)
|
||||
isCommand = arg_val == 0 ? 1 : 0;
|
||||
break;
|
||||
|
||||
case U8G_COM_MSG_RESET:
|
||||
u8g_SetPILevel(u8g, U8G_PI_RESET, arg_val);
|
||||
break;
|
||||
|
||||
case U8G_COM_MSG_WRITE_BYTE:
|
||||
if (isCommand)
|
||||
LCD_IO_WriteReg(arg_val);
|
||||
else
|
||||
LCD_IO_WriteData((uint16_t)arg_val);
|
||||
break;
|
||||
|
||||
case U8G_COM_MSG_WRITE_SEQ:
|
||||
|
||||
for (uint8_t i = 0; i < arg_val; i += 2)
|
||||
LCD_IO_WriteData(*(uint16_t *)(((uint32_t)arg_ptr) + i));
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* FSMC LCD IO
|
||||
*/
|
||||
#define __ASM __asm
|
||||
#define __STATIC_INLINE static inline
|
||||
|
||||
__attribute__((always_inline)) __STATIC_INLINE void __DSB(void) {
|
||||
__ASM volatile ("dsb 0xF":::"memory");
|
||||
}
|
||||
|
||||
#define FSMC_CS_NE1 PD7
|
||||
#define FSMC_CS_NE2 PG9
|
||||
#define FSMC_CS_NE3 PG10
|
||||
#define FSMC_CS_NE4 PG12
|
||||
|
||||
#define FSMC_RS_A0 PF0
|
||||
#define FSMC_RS_A1 PF1
|
||||
#define FSMC_RS_A2 PF2
|
||||
#define FSMC_RS_A3 PF3
|
||||
#define FSMC_RS_A4 PF4
|
||||
#define FSMC_RS_A5 PF5
|
||||
#define FSMC_RS_A6 PF12
|
||||
#define FSMC_RS_A7 PF13
|
||||
#define FSMC_RS_A8 PF14
|
||||
#define FSMC_RS_A9 PF15
|
||||
#define FSMC_RS_A10 PG0
|
||||
#define FSMC_RS_A11 PG1
|
||||
#define FSMC_RS_A12 PG2
|
||||
#define FSMC_RS_A13 PG3
|
||||
#define FSMC_RS_A14 PG4
|
||||
#define FSMC_RS_A15 PG5
|
||||
#define FSMC_RS_A16 PD11
|
||||
#define FSMC_RS_A17 PD12
|
||||
#define FSMC_RS_A18 PD13
|
||||
#define FSMC_RS_A19 PE3
|
||||
#define FSMC_RS_A20 PE4
|
||||
#define FSMC_RS_A21 PE5
|
||||
#define FSMC_RS_A22 PE6
|
||||
#define FSMC_RS_A23 PE2
|
||||
#define FSMC_RS_A24 PG13
|
||||
#define FSMC_RS_A25 PG14
|
||||
|
||||
static uint8_t fsmcInit = 0;
|
||||
|
||||
typedef struct {
|
||||
__IO uint16_t REG;
|
||||
__IO uint16_t RAM;
|
||||
} LCD_CONTROLLER_TypeDef;
|
||||
|
||||
LCD_CONTROLLER_TypeDef *LCD;
|
||||
|
||||
void LCD_IO_Init(uint8_t cs, uint8_t rs) {
|
||||
uint32_t controllerAddress;
|
||||
|
||||
if (fsmcInit) return;
|
||||
fsmcInit = 1;
|
||||
|
||||
switch(cs) {
|
||||
case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; break;
|
||||
case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; break;
|
||||
case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; break;
|
||||
case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; break;
|
||||
default: return;
|
||||
}
|
||||
|
||||
#define _ORADDR(N) controllerAddress |= (_BV32(N) - 2)
|
||||
|
||||
switch(rs) {
|
||||
case FSMC_RS_A0: _ORADDR( 1); break;
|
||||
case FSMC_RS_A1: _ORADDR( 2); break;
|
||||
case FSMC_RS_A2: _ORADDR( 3); break;
|
||||
case FSMC_RS_A3: _ORADDR( 4); break;
|
||||
case FSMC_RS_A4: _ORADDR( 5); break;
|
||||
case FSMC_RS_A5: _ORADDR( 6); break;
|
||||
case FSMC_RS_A6: _ORADDR( 7); break;
|
||||
case FSMC_RS_A7: _ORADDR( 8); break;
|
||||
case FSMC_RS_A8: _ORADDR( 9); break;
|
||||
case FSMC_RS_A9: _ORADDR(10); break;
|
||||
case FSMC_RS_A10: _ORADDR(11); break;
|
||||
case FSMC_RS_A11: _ORADDR(12); break;
|
||||
case FSMC_RS_A12: _ORADDR(13); break;
|
||||
case FSMC_RS_A13: _ORADDR(14); break;
|
||||
case FSMC_RS_A14: _ORADDR(15); break;
|
||||
case FSMC_RS_A15: _ORADDR(16); break;
|
||||
case FSMC_RS_A16: _ORADDR(17); break;
|
||||
case FSMC_RS_A17: _ORADDR(18); break;
|
||||
case FSMC_RS_A18: _ORADDR(19); break;
|
||||
case FSMC_RS_A19: _ORADDR(20); break;
|
||||
case FSMC_RS_A20: _ORADDR(21); break;
|
||||
case FSMC_RS_A21: _ORADDR(22); break;
|
||||
case FSMC_RS_A22: _ORADDR(23); break;
|
||||
case FSMC_RS_A23: _ORADDR(24); break;
|
||||
case FSMC_RS_A24: _ORADDR(25); break;
|
||||
case FSMC_RS_A25: _ORADDR(26); break;
|
||||
default: return;
|
||||
}
|
||||
|
||||
rcc_clk_enable(RCC_FSMC);
|
||||
|
||||
gpio_set_mode(GPIOD, 14, GPIO_AF_OUTPUT_PP); // FSMC_D00
|
||||
gpio_set_mode(GPIOD, 15, GPIO_AF_OUTPUT_PP); // FSMC_D01
|
||||
gpio_set_mode(GPIOD, 0, GPIO_AF_OUTPUT_PP); // FSMC_D02
|
||||
gpio_set_mode(GPIOD, 1, GPIO_AF_OUTPUT_PP); // FSMC_D03
|
||||
gpio_set_mode(GPIOE, 7, GPIO_AF_OUTPUT_PP); // FSMC_D04
|
||||
gpio_set_mode(GPIOE, 8, GPIO_AF_OUTPUT_PP); // FSMC_D05
|
||||
gpio_set_mode(GPIOE, 9, GPIO_AF_OUTPUT_PP); // FSMC_D06
|
||||
gpio_set_mode(GPIOE, 10, GPIO_AF_OUTPUT_PP); // FSMC_D07
|
||||
gpio_set_mode(GPIOE, 11, GPIO_AF_OUTPUT_PP); // FSMC_D08
|
||||
gpio_set_mode(GPIOE, 12, GPIO_AF_OUTPUT_PP); // FSMC_D09
|
||||
gpio_set_mode(GPIOE, 13, GPIO_AF_OUTPUT_PP); // FSMC_D10
|
||||
gpio_set_mode(GPIOE, 14, GPIO_AF_OUTPUT_PP); // FSMC_D11
|
||||
gpio_set_mode(GPIOE, 15, GPIO_AF_OUTPUT_PP); // FSMC_D12
|
||||
gpio_set_mode(GPIOD, 8, GPIO_AF_OUTPUT_PP); // FSMC_D13
|
||||
gpio_set_mode(GPIOD, 9, GPIO_AF_OUTPUT_PP); // FSMC_D14
|
||||
gpio_set_mode(GPIOD, 10, GPIO_AF_OUTPUT_PP); // FSMC_D15
|
||||
|
||||
gpio_set_mode(GPIOD, 4, GPIO_AF_OUTPUT_PP); // FSMC_NOE
|
||||
gpio_set_mode(GPIOD, 5, GPIO_AF_OUTPUT_PP); // FSMC_NWE
|
||||
|
||||
gpio_set_mode(PIN_MAP[cs].gpio_device, PIN_MAP[cs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_CS_NEx
|
||||
gpio_set_mode(PIN_MAP[rs].gpio_device, PIN_MAP[rs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_RS_Ax
|
||||
|
||||
FSMC_NOR_PSRAM4_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN;
|
||||
FSMC_NOR_PSRAM4_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME;
|
||||
|
||||
afio_remap(AFIO_REMAP_FSMC_NADV);
|
||||
|
||||
LCD = (LCD_CONTROLLER_TypeDef*)controllerAddress;
|
||||
}
|
||||
|
||||
void LCD_IO_WriteData(uint16_t RegValue) {
|
||||
LCD->RAM = RegValue;
|
||||
__DSB();
|
||||
}
|
||||
|
||||
void LCD_IO_WriteReg(uint8_t Reg) {
|
||||
LCD->REG = (uint16_t)Reg;
|
||||
__DSB();
|
||||
}
|
||||
|
||||
uint32_t LCD_IO_ReadData(uint16_t RegValue, uint8_t ReadSize) {
|
||||
volatile uint32_t data;
|
||||
LCD->REG = (uint16_t)RegValue;
|
||||
__DSB();
|
||||
|
||||
data = LCD->RAM; // dummy read
|
||||
data = LCD->RAM & 0x00FF;
|
||||
|
||||
while (--ReadSize) {
|
||||
data <<= 8;
|
||||
data |= (LCD->RAM & 0x00FF);
|
||||
}
|
||||
return (uint32_t)data;
|
||||
}
|
||||
|
||||
#endif // STM32F1 || STM32F1xx
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
@@ -31,7 +31,14 @@
|
||||
#if ENABLED(USE_WATCHDOG)
|
||||
|
||||
#include <libmaple/iwdg.h>
|
||||
#include "watchdog_Stm32f1.h"
|
||||
#include "watchdog_STM32F1.h"
|
||||
|
||||
void watchdog_reset() {
|
||||
#if PIN_EXISTS(LED)
|
||||
TOGGLE(LED_PIN); // heartbeat indicator
|
||||
#endif
|
||||
iwdg_feed();
|
||||
}
|
||||
|
||||
void watchdogSetup(void) {
|
||||
// do whatever. don't remove this function.
|
||||
|
||||
@@ -27,8 +27,6 @@
|
||||
|
||||
#include <libmaple/iwdg.h>
|
||||
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
|
||||
/**
|
||||
* The watchdog clock is 40Khz. We need a 4 seconds interval, so use a /256 preescaler and
|
||||
* 625 reload value (counts down to 0)
|
||||
@@ -43,9 +41,4 @@ void watchdog_init();
|
||||
|
||||
// Reset watchdog. MUST be called at least every 4 seconds after the
|
||||
// first watchdog_init or STM32F1 will reset.
|
||||
inline void watchdog_reset() {
|
||||
#if PIN_EXISTS(LED)
|
||||
TOGGLE(LED_PIN); // heart beat indicator
|
||||
#endif
|
||||
iwdg_feed();
|
||||
}
|
||||
void watchdog_reset();
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
/** @addtogroup EEPROM_Emulation
|
||||
* @{
|
||||
*/
|
||||
#if defined(STM32GENERIC) && (defined(STM32F4) || defined(STM32F4xx))
|
||||
#if defined(STM32GENERIC) && (defined(STM32F4))
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "eeprom_emul.h"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(STM32GENERIC) && (defined(STM32F4) || defined(STM32F4xx))
|
||||
#if defined(STM32GENERIC) && (defined(STM32F4))
|
||||
|
||||
/**
|
||||
* Description: functions for I2C connected external EEPROM.
|
||||
@@ -139,4 +139,4 @@ void eeprom_update_block(const void *__src, void *__dst, size_t __n) {
|
||||
}
|
||||
|
||||
#endif // ENABLED(EEPROM_SETTINGS) && DISABLED(I2C_EEPROM) && DISABLED(SPI_EEPROM)
|
||||
#endif // STM32F4 || STM32F4xx
|
||||
#endif // STM32GENERIC && STM32F4
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(STM32GENERIC) && (defined(STM32F4) || defined(STM32F4xx))
|
||||
#if defined(STM32GENERIC) && defined(STM32F4)
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Includes
|
||||
@@ -130,4 +130,4 @@ uint16_t HAL_adc_get_result(void) {
|
||||
return HAL_adc_result;
|
||||
}
|
||||
|
||||
#endif // STM32F4 || STM32F4xx
|
||||
#endif // // STM32GENERIC && STM32F4
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(STM32GENERIC) && (defined(STM32F4) || defined(STM32F4xx))
|
||||
#if defined(STM32GENERIC) && defined(STM32F4)
|
||||
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
|
||||
@@ -50,4 +50,4 @@ void libServo::move(const int value) {
|
||||
}
|
||||
#endif // HAS_SERVOS
|
||||
|
||||
#endif // STM32F4 || STM32F4xx
|
||||
#endif // STM32GENERIC && STM32F4
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
* Adapted to the STM32F4 HAL
|
||||
*/
|
||||
|
||||
#if defined(STM32GENERIC) && (defined(STM32F4) || defined(STM32F4xx))
|
||||
#if defined(STM32GENERIC) && defined(STM32F4)
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Includes
|
||||
@@ -173,4 +173,4 @@ void spiSendBlock(uint8_t token, const uint8_t* buf) {
|
||||
|
||||
#endif // SOFTWARE_SPI
|
||||
|
||||
#endif // STM32F4 || STM32F4xx
|
||||
#endif // STM32GENERIC && STM32F4
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(STM32GENERIC) && (defined(STM32F4) || defined(STM32F4xx))
|
||||
#if defined(STM32GENERIC) && defined(STM32F4)
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
// Includes
|
||||
@@ -156,4 +156,4 @@ bool HAL_timer_interrupt_enabled(const uint8_t timer_num) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif // STM32F4 || STM32F4xx
|
||||
#endif // STM32GENERIC && STM32F4
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(STM32GENERIC) && (defined(STM32F4) || defined(STM32F4xx))
|
||||
#if defined(STM32GENERIC) && defined(STM32F4)
|
||||
|
||||
#include "../shared/persistent_store_api.h"
|
||||
|
||||
@@ -41,8 +41,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
|
||||
if (v != eeprom_read_byte(p)) {
|
||||
eeprom_write_byte(p, v);
|
||||
if (eeprom_read_byte(p) != v) {
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE);
|
||||
SERIAL_ECHO_MSG(MSG_ERR_EEPROM_WRITE);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -67,4 +66,4 @@ bool PersistentStore::read_data(int &pos, uint8_t* value, size_t size, uint16_t
|
||||
size_t PersistentStore::capacity() { return E2END + 1; }
|
||||
|
||||
#endif // EEPROM_SETTINGS
|
||||
#endif // STM32F4 || STM32F4xx
|
||||
#endif // STM32GENERIC && STM32F4
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(STM32GENERIC) && (defined(STM32F4) || defined(STM32F4xx))
|
||||
#if defined(STM32GENERIC) && defined(STM32F4)
|
||||
|
||||
#include "../../inc/MarlinConfig.h"
|
||||
|
||||
@@ -54,4 +54,4 @@
|
||||
|
||||
#endif // USE_WATCHDOG
|
||||
|
||||
#endif // STM32F4 || STM32F4xx
|
||||
#endif // STM32GENERIC && STM32F4
|
||||
|
||||
@@ -127,7 +127,7 @@ uint8_t current_scaling = 0;
|
||||
* dir_pin - the pin where the direction pin is connected
|
||||
* step_pin - the pin where the step pin is connected
|
||||
*/
|
||||
TMC26XStepper::TMC26XStepper(int16_t number_of_steps, int16_t cs_pin, int16_t dir_pin, int16_t step_pin, uint16_t current, uint16_t resistor) {
|
||||
TMC26XStepper::TMC26XStepper(const int16_t in_steps, int16_t cs_pin, int16_t dir_pin, int16_t step_pin, uint16_t current, uint16_t resistor) {
|
||||
// We are not started yet
|
||||
started = false;
|
||||
|
||||
@@ -165,7 +165,7 @@ TMC26XStepper::TMC26XStepper(int16_t number_of_steps, int16_t cs_pin, int16_t di
|
||||
// Set a nice microstepping value
|
||||
setMicrosteps(DEFAULT_MICROSTEPPING_VALUE);
|
||||
// Save the number of steps
|
||||
this->number_of_steps = number_of_steps;
|
||||
number_of_steps = in_steps;
|
||||
}
|
||||
|
||||
|
||||
@@ -389,52 +389,29 @@ char TMC26XStepper::getStallGuardFilter(void) {
|
||||
* any value in between will be mapped to the next smaller value
|
||||
* 0 and 1 set the motor in full step mode
|
||||
*/
|
||||
void TMC26XStepper::setMicrosteps(int16_t number_of_steps) {
|
||||
long setting_pattern;
|
||||
//poor mans log
|
||||
if (number_of_steps >= 256) {
|
||||
setting_pattern = 0;
|
||||
microsteps = 256;
|
||||
}
|
||||
else if (number_of_steps >= 128) {
|
||||
setting_pattern = 1;
|
||||
microsteps = 128;
|
||||
}
|
||||
else if (number_of_steps >= 64) {
|
||||
setting_pattern = 2;
|
||||
microsteps = 64;
|
||||
}
|
||||
else if (number_of_steps >= 32) {
|
||||
setting_pattern = 3;
|
||||
microsteps = 32;
|
||||
}
|
||||
else if (number_of_steps >= 16) {
|
||||
setting_pattern = 4;
|
||||
microsteps = 16;
|
||||
}
|
||||
else if (number_of_steps >= 8) {
|
||||
setting_pattern = 5;
|
||||
microsteps = 8;
|
||||
}
|
||||
else if (number_of_steps >= 4) {
|
||||
setting_pattern = 6;
|
||||
microsteps = 4;
|
||||
}
|
||||
else if (number_of_steps >= 2) {
|
||||
setting_pattern = 7;
|
||||
microsteps = 2;
|
||||
//1 and 0 lead to full step
|
||||
}
|
||||
else if (number_of_steps <= 1) {
|
||||
setting_pattern = 8;
|
||||
microsteps = 1;
|
||||
}
|
||||
void TMC26XStepper::setMicrosteps(const int16_t in_steps) {
|
||||
uint16_t setting_pattern;
|
||||
|
||||
if (in_steps >= 256) setting_pattern = 0;
|
||||
else if (in_steps >= 128) setting_pattern = 1;
|
||||
else if (in_steps >= 64) setting_pattern = 2;
|
||||
else if (in_steps >= 32) setting_pattern = 3;
|
||||
else if (in_steps >= 16) setting_pattern = 4;
|
||||
else if (in_steps >= 8) setting_pattern = 5;
|
||||
else if (in_steps >= 4) setting_pattern = 6;
|
||||
else if (in_steps >= 2) setting_pattern = 7;
|
||||
else if (in_steps <= 1) setting_pattern = 8; // 1 and 0 lead to full step
|
||||
|
||||
microsteps = _BV(8 - setting_pattern);
|
||||
|
||||
#ifdef TMC_DEBUG0 // crashes
|
||||
//SERIAL_PRINTF("Microstepping: ");
|
||||
SERIAL_ECHOPAIR("\n Microstepping: ", microsteps);
|
||||
#endif
|
||||
|
||||
// Delete the old value
|
||||
this->driver_control_register_value &= 0xFFFF0UL;
|
||||
this->driver_control_register_value &= 0x000FFFF0UL;
|
||||
|
||||
// Set the new value
|
||||
this->driver_control_register_value |= setting_pattern;
|
||||
|
||||
|
||||
@@ -119,7 +119,7 @@ class TMC26XStepper {
|
||||
* You can select a different stepping with setMicrosteps() to aa different value.
|
||||
* \sa start(), setMicrosteps()
|
||||
*/
|
||||
TMC26XStepper(int16_t number_of_steps, int16_t cs_pin, int16_t dir_pin, int16_t step_pin, uint16_t current, uint16_t resistor=100); //resistor=150
|
||||
TMC26XStepper(const int16_t in_steps, int16_t cs_pin, int16_t dir_pin, int16_t step_pin, uint16_t current, uint16_t resistor=100); //resistor=150
|
||||
|
||||
/*!
|
||||
* \brief configures and starts the TMC26X stepper driver. Before you called this function the stepper driver is in nonfunctional mode.
|
||||
@@ -163,7 +163,7 @@ class TMC26XStepper {
|
||||
* If you give any other value it will be rounded to the next smaller number (3 would give a microstepping of 2).
|
||||
* You can always check the current microstepping with getMicrosteps().
|
||||
*/
|
||||
void setMicrosteps(int16_t number_of_steps);
|
||||
void setMicrosteps(const int16_t in_steps);
|
||||
|
||||
/*!
|
||||
* \brief returns the effective current number of microsteps selected.
|
||||
|
||||
@@ -41,8 +41,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
|
||||
if (v != eeprom_read_byte(p)) {
|
||||
eeprom_write_byte(p, v);
|
||||
if (eeprom_read_byte(p) != v) {
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE);
|
||||
SERIAL_ECHO_MSG(MSG_ERR_EEPROM_WRITE);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,8 +21,7 @@ bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) {
|
||||
if (v != eeprom_read_byte(p)) {
|
||||
eeprom_write_byte(p, v);
|
||||
if (eeprom_read_byte(p) != v) {
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE);
|
||||
SERIAL_ECHO_MSG(MSG_ERR_EEPROM_WRITE);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,8 +42,7 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
|
||||
if (v != eeprom_read_byte(p)) {
|
||||
eeprom_write_byte(p, v);
|
||||
if (eeprom_read_byte(p) != v) {
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE);
|
||||
SERIAL_ECHO_MSG(MSG_ERR_EEPROM_WRITE);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,8 +21,7 @@ bool write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) {
|
||||
if (v != eeprom_read_byte(p)) {
|
||||
eeprom_write_byte(p, v);
|
||||
if (eeprom_read_byte(p) != v) {
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE);
|
||||
SERIAL_ECHO_MSG(MSG_ERR_EEPROM_WRITE);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ bool HAL_pwm_status(int8_t pin) {
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
SERIAL_PROTOCOLPGM(" ");
|
||||
SERIAL_ECHOPGM(" ");
|
||||
}
|
||||
|
||||
static void HAL_pwm_details(uint8_t pin) { /* TODO */ }
|
||||
|
||||
@@ -88,8 +88,7 @@ void backtrace(void) {
|
||||
btf.pc = pc | 1; // Force Thumb, as CORTEX only support it
|
||||
|
||||
// Perform a backtrace
|
||||
SERIAL_ERROR_START();
|
||||
SERIAL_ERRORLNPGM("Backtrace:");
|
||||
SERIAL_ERROR_MSG("Backtrace:");
|
||||
int ctr = 0;
|
||||
UnwindStart(&btf, &UnwCallbacks, &ctr);
|
||||
}
|
||||
|
||||
+16
-28
@@ -164,17 +164,6 @@ bool Running = true;
|
||||
TempUnit input_temp_units = TEMPUNIT_C;
|
||||
#endif
|
||||
|
||||
#if FAN_COUNT > 0
|
||||
uint8_t fan_speed[FAN_COUNT] = { 0 };
|
||||
#if ENABLED(EXTRA_FAN_SPEED)
|
||||
uint8_t old_fan_speed[FAN_COUNT], new_fan_speed[FAN_COUNT];
|
||||
#endif
|
||||
#if ENABLED(PROBING_FANS_OFF)
|
||||
bool fans_paused; // = false;
|
||||
uint8_t paused_fan_speed[FAN_COUNT] = { 0 };
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// For M109 and M190, this flag may be cleared (by M108) to exit the wait loop
|
||||
volatile bool wait_for_heatup = true;
|
||||
|
||||
@@ -264,8 +253,7 @@ bool pin_is_protected(const pin_t pin) {
|
||||
}
|
||||
|
||||
void protected_pin_err() {
|
||||
SERIAL_ERROR_START();
|
||||
SERIAL_ERRORLNPGM(MSG_ERR_PROTECTED_PIN);
|
||||
SERIAL_ERROR_MSG(MSG_ERR_PROTECTED_PIN);
|
||||
}
|
||||
|
||||
void quickstop_stepper() {
|
||||
@@ -400,8 +388,7 @@ void manage_inactivity(const bool ignore_stepper_queue/*=false*/) {
|
||||
// KILL the machine
|
||||
// ----------------------------------------------------------------
|
||||
if (killCount >= KILL_DELAY) {
|
||||
SERIAL_ERROR_START();
|
||||
SERIAL_ERRORLNPGM(MSG_KILL_BUTTON);
|
||||
SERIAL_ERROR_MSG(MSG_KILL_BUTTON);
|
||||
kill();
|
||||
}
|
||||
#endif
|
||||
@@ -606,8 +593,7 @@ void idle(
|
||||
void kill(PGM_P const lcd_msg/*=NULL*/) {
|
||||
thermalManager.disable_all_heaters();
|
||||
|
||||
SERIAL_ERROR_START();
|
||||
SERIAL_ERRORLNPGM(MSG_ERR_KILLED);
|
||||
SERIAL_ERROR_MSG(MSG_ERR_KILLED);
|
||||
|
||||
#if HAS_SPI_LCD || ENABLED(EXTENSIBLE_UI)
|
||||
ui.kill_screen(lcd_msg ? lcd_msg : PSTR(MSG_KILLED));
|
||||
@@ -658,13 +644,12 @@ void stop() {
|
||||
print_job_timer.stop();
|
||||
|
||||
#if ENABLED(PROBING_FANS_OFF)
|
||||
if (fans_paused) fans_pause(false); // put things back the way they were
|
||||
if (thermalManager.fans_paused) thermalManager.set_fans_paused(false); // put things back the way they were
|
||||
#endif
|
||||
|
||||
if (IsRunning()) {
|
||||
Stopped_gcode_LastN = gcode_LastN; // Save last g_code for restart
|
||||
SERIAL_ERROR_START();
|
||||
SERIAL_ERRORLNPGM(MSG_ERR_STOPPED);
|
||||
SERIAL_ERROR_MSG(MSG_ERR_STOPPED);
|
||||
LCD_MESSAGEPGM(MSG_STOPPED);
|
||||
safe_delay(350); // allow enough time for messages to get out before stopping
|
||||
Running = false;
|
||||
@@ -745,7 +730,7 @@ void setup() {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
SERIAL_PROTOCOLLNPGM("start");
|
||||
SERIAL_ECHOLNPGM("start");
|
||||
SERIAL_ECHO_START();
|
||||
|
||||
#if TMC_HAS_SPI
|
||||
@@ -781,8 +766,7 @@ void setup() {
|
||||
SERIAL_ECHOPGM(MSG_CONFIGURATION_VER);
|
||||
SERIAL_ECHOPGM(STRING_DISTRIBUTION_DATE);
|
||||
SERIAL_ECHOLNPGM(MSG_AUTHOR STRING_CONFIG_H_AUTHOR);
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPGM("Compiled: " __DATE__);
|
||||
SERIAL_ECHO_MSG("Compiled: " __DATE__);
|
||||
#endif
|
||||
|
||||
SERIAL_ECHO_START();
|
||||
@@ -825,10 +809,6 @@ void setup() {
|
||||
OUT_WRITE(PHOTOGRAPH_PIN, LOW);
|
||||
#endif
|
||||
|
||||
#if HAS_CASE_LIGHT
|
||||
update_case_light();
|
||||
#endif
|
||||
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
OUT_WRITE(SPINDLE_LASER_ENABLE_PIN, !SPINDLE_LASER_ENABLE_INVERT); // init spindle to off
|
||||
#if SPINDLE_DIR_CHANGE
|
||||
@@ -889,6 +869,10 @@ void setup() {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if HAS_CASE_LIGHT
|
||||
update_case_light();
|
||||
#endif
|
||||
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
SET_OUTPUT(E_MUX0_PIN);
|
||||
SET_OUTPUT(E_MUX1_PIN);
|
||||
@@ -950,6 +934,10 @@ void setup() {
|
||||
#if ENABLED(SDSUPPORT) && DISABLED(ULTRA_LCD)
|
||||
card.beginautostart();
|
||||
#endif
|
||||
|
||||
#if HAS_TRINAMIC && DISABLED(PS_DEFAULT_OFF)
|
||||
test_tmc_connection(true, true, true, true);
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -977,7 +965,7 @@ void loop() {
|
||||
quickstop_stepper();
|
||||
print_job_timer.stop();
|
||||
thermalManager.disable_all_heaters();
|
||||
zero_fan_speeds();
|
||||
thermalManager.zero_fan_speeds();
|
||||
wait_for_heatup = false;
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
card.removeJobRecoveryFile();
|
||||
|
||||
@@ -41,126 +41,6 @@ void idle(
|
||||
|
||||
void manage_inactivity(const bool ignore_stepper_queue=false);
|
||||
|
||||
#if HAS_X2_ENABLE
|
||||
#define enable_X() do{ X_ENABLE_WRITE( X_ENABLE_ON); X2_ENABLE_WRITE( X_ENABLE_ON); }while(0)
|
||||
#define disable_X() do{ X_ENABLE_WRITE(!X_ENABLE_ON); X2_ENABLE_WRITE(!X_ENABLE_ON); CBI(axis_known_position, X_AXIS); }while(0)
|
||||
#elif HAS_X_ENABLE
|
||||
#define enable_X() X_ENABLE_WRITE( X_ENABLE_ON)
|
||||
#define disable_X() do{ X_ENABLE_WRITE(!X_ENABLE_ON); CBI(axis_known_position, X_AXIS); }while(0)
|
||||
#else
|
||||
#define enable_X() NOOP
|
||||
#define disable_X() NOOP
|
||||
#endif
|
||||
|
||||
#if HAS_Y2_ENABLE
|
||||
#define enable_Y() do{ Y_ENABLE_WRITE( Y_ENABLE_ON); Y2_ENABLE_WRITE(Y_ENABLE_ON); }while(0)
|
||||
#define disable_Y() do{ Y_ENABLE_WRITE(!Y_ENABLE_ON); Y2_ENABLE_WRITE(!Y_ENABLE_ON); CBI(axis_known_position, Y_AXIS); }while(0)
|
||||
#elif HAS_Y_ENABLE
|
||||
#define enable_Y() Y_ENABLE_WRITE( Y_ENABLE_ON)
|
||||
#define disable_Y() do{ Y_ENABLE_WRITE(!Y_ENABLE_ON); CBI(axis_known_position, Y_AXIS); }while(0)
|
||||
#else
|
||||
#define enable_Y() NOOP
|
||||
#define disable_Y() NOOP
|
||||
#endif
|
||||
|
||||
#if HAS_Z3_ENABLE
|
||||
#define enable_Z() do{ Z_ENABLE_WRITE( Z_ENABLE_ON); Z2_ENABLE_WRITE(Z_ENABLE_ON); Z3_ENABLE_WRITE(Z_ENABLE_ON); }while(0)
|
||||
#define disable_Z() do{ Z_ENABLE_WRITE(!Z_ENABLE_ON); Z2_ENABLE_WRITE(!Z_ENABLE_ON); Z3_ENABLE_WRITE(!Z_ENABLE_ON); CBI(axis_known_position, Z_AXIS); }while(0)
|
||||
#elif HAS_Z2_ENABLE
|
||||
#define enable_Z() do{ Z_ENABLE_WRITE( Z_ENABLE_ON); Z2_ENABLE_WRITE(Z_ENABLE_ON); }while(0)
|
||||
#define disable_Z() do{ Z_ENABLE_WRITE(!Z_ENABLE_ON); Z2_ENABLE_WRITE(!Z_ENABLE_ON); CBI(axis_known_position, Z_AXIS); }while(0)
|
||||
#elif HAS_Z_ENABLE
|
||||
#define enable_Z() Z_ENABLE_WRITE( Z_ENABLE_ON)
|
||||
#define disable_Z() do{ Z_ENABLE_WRITE(!Z_ENABLE_ON); CBI(axis_known_position, Z_AXIS); }while(0)
|
||||
#else
|
||||
#define enable_Z() NOOP
|
||||
#define disable_Z() NOOP
|
||||
#endif
|
||||
|
||||
#if ENABLED(MIXING_EXTRUDER)
|
||||
|
||||
/**
|
||||
* Mixing steppers synchronize their enable (and direction) together
|
||||
*/
|
||||
#if MIXING_STEPPERS > 5
|
||||
#define enable_E0() { E0_ENABLE_WRITE( E_ENABLE_ON); E1_ENABLE_WRITE( E_ENABLE_ON); E2_ENABLE_WRITE( E_ENABLE_ON); E3_ENABLE_WRITE( E_ENABLE_ON); E4_ENABLE_WRITE( E_ENABLE_ON); E5_ENABLE_WRITE( E_ENABLE_ON); }
|
||||
#define disable_E0() { E0_ENABLE_WRITE(!E_ENABLE_ON); E1_ENABLE_WRITE(!E_ENABLE_ON); E2_ENABLE_WRITE(!E_ENABLE_ON); E3_ENABLE_WRITE(!E_ENABLE_ON); E4_ENABLE_WRITE(!E_ENABLE_ON); E5_ENABLE_WRITE(!E_ENABLE_ON); }
|
||||
#elif MIXING_STEPPERS > 4
|
||||
#define enable_E0() { E0_ENABLE_WRITE( E_ENABLE_ON); E1_ENABLE_WRITE( E_ENABLE_ON); E2_ENABLE_WRITE( E_ENABLE_ON); E3_ENABLE_WRITE( E_ENABLE_ON); E4_ENABLE_WRITE( E_ENABLE_ON); }
|
||||
#define disable_E0() { E0_ENABLE_WRITE(!E_ENABLE_ON); E1_ENABLE_WRITE(!E_ENABLE_ON); E2_ENABLE_WRITE(!E_ENABLE_ON); E3_ENABLE_WRITE(!E_ENABLE_ON); E4_ENABLE_WRITE(!E_ENABLE_ON); }
|
||||
#elif MIXING_STEPPERS > 3
|
||||
#define enable_E0() { E0_ENABLE_WRITE( E_ENABLE_ON); E1_ENABLE_WRITE( E_ENABLE_ON); E2_ENABLE_WRITE( E_ENABLE_ON); E3_ENABLE_WRITE( E_ENABLE_ON); }
|
||||
#define disable_E0() { E0_ENABLE_WRITE(!E_ENABLE_ON); E1_ENABLE_WRITE(!E_ENABLE_ON); E2_ENABLE_WRITE(!E_ENABLE_ON); E3_ENABLE_WRITE(!E_ENABLE_ON); }
|
||||
#elif MIXING_STEPPERS > 2
|
||||
#define enable_E0() { E0_ENABLE_WRITE( E_ENABLE_ON); E1_ENABLE_WRITE( E_ENABLE_ON); E2_ENABLE_WRITE( E_ENABLE_ON); }
|
||||
#define disable_E0() { E0_ENABLE_WRITE(!E_ENABLE_ON); E1_ENABLE_WRITE(!E_ENABLE_ON); E2_ENABLE_WRITE(!E_ENABLE_ON); }
|
||||
#else
|
||||
#define enable_E0() { E0_ENABLE_WRITE( E_ENABLE_ON); E1_ENABLE_WRITE( E_ENABLE_ON); }
|
||||
#define disable_E0() { E0_ENABLE_WRITE(!E_ENABLE_ON); E1_ENABLE_WRITE(!E_ENABLE_ON); }
|
||||
#endif
|
||||
#define enable_E1() NOOP
|
||||
#define disable_E1() NOOP
|
||||
#define enable_E2() NOOP
|
||||
#define disable_E2() NOOP
|
||||
#define enable_E3() NOOP
|
||||
#define disable_E3() NOOP
|
||||
#define enable_E4() NOOP
|
||||
#define disable_E4() NOOP
|
||||
#define enable_E5() NOOP
|
||||
#define disable_E5() NOOP
|
||||
|
||||
#else // !MIXING_EXTRUDER
|
||||
|
||||
#if HAS_E0_ENABLE
|
||||
#define enable_E0() E0_ENABLE_WRITE( E_ENABLE_ON)
|
||||
#define disable_E0() E0_ENABLE_WRITE(!E_ENABLE_ON)
|
||||
#else
|
||||
#define enable_E0() NOOP
|
||||
#define disable_E0() NOOP
|
||||
#endif
|
||||
|
||||
#if E_STEPPERS > 1 && HAS_E1_ENABLE
|
||||
#define enable_E1() E1_ENABLE_WRITE( E_ENABLE_ON)
|
||||
#define disable_E1() E1_ENABLE_WRITE(!E_ENABLE_ON)
|
||||
#else
|
||||
#define enable_E1() NOOP
|
||||
#define disable_E1() NOOP
|
||||
#endif
|
||||
|
||||
#if E_STEPPERS > 2 && HAS_E2_ENABLE
|
||||
#define enable_E2() E2_ENABLE_WRITE( E_ENABLE_ON)
|
||||
#define disable_E2() E2_ENABLE_WRITE(!E_ENABLE_ON)
|
||||
#else
|
||||
#define enable_E2() NOOP
|
||||
#define disable_E2() NOOP
|
||||
#endif
|
||||
|
||||
#if E_STEPPERS > 3 && HAS_E3_ENABLE
|
||||
#define enable_E3() E3_ENABLE_WRITE( E_ENABLE_ON)
|
||||
#define disable_E3() E3_ENABLE_WRITE(!E_ENABLE_ON)
|
||||
#else
|
||||
#define enable_E3() NOOP
|
||||
#define disable_E3() NOOP
|
||||
#endif
|
||||
|
||||
#if E_STEPPERS > 4 && HAS_E4_ENABLE
|
||||
#define enable_E4() E4_ENABLE_WRITE( E_ENABLE_ON)
|
||||
#define disable_E4() E4_ENABLE_WRITE(!E_ENABLE_ON)
|
||||
#else
|
||||
#define enable_E4() NOOP
|
||||
#define disable_E4() NOOP
|
||||
#endif
|
||||
|
||||
#if E_STEPPERS > 5 && HAS_E5_ENABLE
|
||||
#define enable_E5() E5_ENABLE_WRITE( E_ENABLE_ON)
|
||||
#define disable_E5() E5_ENABLE_WRITE(!E_ENABLE_ON)
|
||||
#else
|
||||
#define enable_E5() NOOP
|
||||
#define disable_E5() NOOP
|
||||
#endif
|
||||
|
||||
#endif // !MIXING_EXTRUDER
|
||||
|
||||
#if ENABLED(EXPERIMENTAL_I2CBUS)
|
||||
#include "feature/twibus.h"
|
||||
extern TWIBus i2c;
|
||||
@@ -201,23 +81,6 @@ extern volatile bool wait_for_heatup;
|
||||
// Inactivity shutdown timer
|
||||
extern millis_t max_inactive_time, stepper_inactive_time;
|
||||
|
||||
#if FAN_COUNT > 0
|
||||
extern uint8_t fan_speed[FAN_COUNT];
|
||||
#if ENABLED(EXTRA_FAN_SPEED)
|
||||
extern uint8_t old_fan_speed[FAN_COUNT], new_fan_speed[FAN_COUNT];
|
||||
#endif
|
||||
#if ENABLED(PROBING_FANS_OFF)
|
||||
extern bool fans_paused;
|
||||
extern uint8_t paused_fan_speed[FAN_COUNT];
|
||||
#endif
|
||||
#endif
|
||||
|
||||
inline void zero_fan_speeds() {
|
||||
#if FAN_COUNT > 0
|
||||
LOOP_L_N(i, FAN_COUNT) fan_speed[i] = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if ENABLED(USE_CONTROLLER_FAN)
|
||||
extern uint8_t controllerfan_speed;
|
||||
#endif
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 1
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -668,6 +669,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -676,10 +685,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1169,6 +1181,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1715,6 +1728,13 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1861,6 +1881,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1935,6 +1964,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1989,7 +2022,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(NEOPIXEL_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632) || ENABLED(PCA9533)|| ENABLED(NEOPIXEL_LED)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1049,6 +1098,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1246,17 +1299,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1303,6 +1353,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1317,7 +1385,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1341,7 +1427,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1394,22 +1480,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1622,11 +1692,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1882,5 +1947,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,3 @@
|
||||
Personalized config files for the "Electron"\"Tevo 3D" i3 6th gen
|
||||
https://www.3dprintersbay.com/electron3d-reprap-prusa-i3-kit
|
||||
https://reprap.org/wiki/Migbot_Prusa_i3
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 7
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX 74 // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 16 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -688,6 +689,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -696,10 +705,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 8.0
|
||||
#define DEFAULT_YJERK 8.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 10.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 8.0
|
||||
#define DEFAULT_YJERK 8.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 10.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1189,6 +1201,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1730,11 +1743,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1881,6 +1901,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1955,6 +1984,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 1
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -668,6 +669,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -676,10 +685,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1169,6 +1181,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1710,11 +1723,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1861,6 +1881,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1935,6 +1964,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 5
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -668,6 +669,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -676,10 +685,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1169,6 +1181,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1710,11 +1723,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1863,6 +1883,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1937,6 +1966,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 5
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -668,6 +669,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -676,10 +685,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1169,6 +1181,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1710,11 +1723,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1863,6 +1883,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1937,6 +1966,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -149,8 +149,8 @@
|
||||
// :[1, 2, 3, 4, 5, 6]
|
||||
#define EXTRUDERS 1
|
||||
|
||||
// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0
|
||||
// The Anet A6 original extruder is designed for 1.75mm
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
|
||||
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 11
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -713,6 +714,13 @@
|
||||
//#define DEFAULT_RETRACT_ACCELERATION 2000 // E acceleration for retracts
|
||||
//#define DEFAULT_TRAVEL_ACCELERATION 4000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
@@ -724,10 +732,13 @@
|
||||
*/
|
||||
// ANET A6 Firmware V2.0 defaults (jerk):
|
||||
// Vxy-jerk: 10, Vz-jerk: +000.30, Ve-jerk: 5
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1308,6 +1319,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1863,11 +1875,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -2016,6 +2035,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -2090,6 +2118,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 60 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 10 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -482,11 +484,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -570,6 +597,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -785,26 +819,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1047,6 +1096,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1244,17 +1297,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1301,6 +1351,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1315,7 +1383,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1339,7 +1425,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1392,22 +1478,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1620,11 +1690,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1880,5 +1945,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -202,7 +202,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -306,6 +306,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -325,7 +326,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 5
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -388,10 +389,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 15 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -439,9 +440,9 @@
|
||||
* heater. If your configuration is significantly different than this and you don't understand
|
||||
* the issues involved, don't use bed PID until someone else verifies that your hardware works.
|
||||
*/
|
||||
//#define PIDTEMPBED
|
||||
#define PIDTEMPBED
|
||||
|
||||
#define BED_LIMIT_SWITCHING
|
||||
//#define BED_LIMIT_SWITCHING
|
||||
|
||||
/**
|
||||
* Max Bed Power
|
||||
@@ -457,9 +458,9 @@
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
|
||||
#define DEFAULT_bedKp 10.00
|
||||
#define DEFAULT_bedKi .023
|
||||
#define DEFAULT_bedKd 305.4
|
||||
//#define DEFAULT_bedKp 10.00
|
||||
//#define DEFAULT_bedKi .023
|
||||
//#define DEFAULT_bedKd 305.4
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
//from pidautotune
|
||||
@@ -467,6 +468,12 @@
|
||||
//#define DEFAULT_bedKi 1.41
|
||||
//#define DEFAULT_bedKd 1675.16
|
||||
|
||||
// ANET A8
|
||||
// original Bed + 0.3mm Heat conducting into 4mm borosilicate (PID-Autotune: M303 E-1 S60 C5):
|
||||
#define DEFAULT_bedKp 295.00
|
||||
#define DEFAULT_bedKi 35.65
|
||||
#define DEFAULT_bedKd 610.21
|
||||
|
||||
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
|
||||
#endif // PIDTEMPBED
|
||||
|
||||
@@ -675,6 +682,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 1000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -683,10 +698,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1176,6 +1194,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1717,11 +1736,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1870,6 +1896,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1944,6 +1979,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 60 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 10 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -212,7 +212,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -316,6 +316,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -335,7 +336,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 5
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -398,10 +399,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -680,6 +681,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 1000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -688,10 +697,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 8.0
|
||||
#define DEFAULT_YJERK 8.0
|
||||
#define DEFAULT_ZJERK 0.4
|
||||
#define DEFAULT_EJERK 1.5
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 8.0
|
||||
#define DEFAULT_YJERK 8.0
|
||||
#define DEFAULT_ZJERK 0.4
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 1.5 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1181,6 +1193,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1722,11 +1735,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1873,6 +1893,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1947,6 +1976,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -81,6 +81,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -466,11 +468,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -543,6 +570,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -758,26 +792,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1021,6 +1070,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1219,17 +1272,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1276,6 +1326,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1290,7 +1358,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1314,7 +1400,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1367,22 +1453,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1595,11 +1665,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1855,5 +1920,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 1
|
||||
#define TEMP_SENSOR_1 1
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -668,6 +669,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -676,10 +685,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1169,6 +1181,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1710,11 +1723,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1861,6 +1881,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1935,6 +1964,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 5
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -668,6 +669,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 1100 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 1100 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -676,10 +685,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 7.0
|
||||
#define DEFAULT_YJERK 7.0
|
||||
#define DEFAULT_ZJERK 0.65
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 7.0
|
||||
#define DEFAULT_YJERK 7.0
|
||||
#define DEFAULT_ZJERK 0.65
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1169,6 +1181,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1710,11 +1723,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1861,6 +1881,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1935,6 +1964,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 45 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 2 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -482,11 +484,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -570,6 +597,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -785,26 +819,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1047,6 +1096,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1244,17 +1297,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1301,6 +1351,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1315,7 +1383,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1339,7 +1425,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1392,22 +1478,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1620,11 +1690,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1880,5 +1945,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 5
|
||||
#define TEMP_SENSOR_1 5
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -668,6 +669,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 1100 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 1100 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -676,10 +685,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 7.0
|
||||
#define DEFAULT_YJERK 7.0
|
||||
#define DEFAULT_ZJERK 0.65
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 7.0
|
||||
#define DEFAULT_YJERK 7.0
|
||||
#define DEFAULT_ZJERK 0.65
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1169,6 +1181,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1710,11 +1723,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1861,6 +1881,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1935,6 +1964,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 60 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 2 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 1
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -656,6 +657,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 1000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -664,10 +673,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1157,6 +1169,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1698,11 +1711,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1849,6 +1869,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1923,6 +1952,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -209,7 +209,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -313,6 +313,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -332,7 +333,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 70
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -395,10 +396,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -669,6 +670,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 1300 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 1500 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -677,10 +686,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 5.0
|
||||
#define DEFAULT_YJERK 5.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 10.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 5.0
|
||||
#define DEFAULT_YJERK 5.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 10.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1169,6 +1181,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1710,11 +1723,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1861,6 +1881,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1935,6 +1964,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -579,6 +606,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 50 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -794,26 +828,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1056,6 +1105,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1253,17 +1306,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1310,6 +1360,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1324,7 +1392,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1348,7 +1434,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1401,22 +1487,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1629,11 +1699,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1889,5 +1954,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 1
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -656,6 +657,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -664,10 +673,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1157,6 +1169,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1698,11 +1711,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1849,6 +1869,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1923,6 +1952,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -202,7 +202,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -306,6 +306,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -325,7 +326,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 -1
|
||||
#define TEMP_SENSOR_1 -1
|
||||
@@ -388,10 +389,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -667,6 +668,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 10000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 1000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -675,10 +684,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1168,6 +1180,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1709,11 +1722,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1860,6 +1880,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1934,6 +1963,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 1
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -678,6 +679,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 500 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 1000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -686,10 +695,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 2.7
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 2.7
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1179,6 +1191,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1720,11 +1733,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1871,6 +1891,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1945,6 +1974,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1624,11 +1694,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1884,5 +1949,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 1
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -668,6 +669,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 800 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -676,10 +685,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.4
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.4
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1170,6 +1182,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1711,11 +1724,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1862,6 +1882,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1936,6 +1965,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -314,6 +314,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -333,7 +334,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 1
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -396,10 +397,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -687,6 +688,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 1000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 1000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -695,10 +704,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1188,6 +1200,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1729,11 +1742,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1880,6 +1900,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1954,6 +1983,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 1
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -678,6 +679,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 500 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 500 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -686,10 +695,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 20.0
|
||||
#define DEFAULT_YJERK 20.0
|
||||
#define DEFAULT_ZJERK 0.4
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.4
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1179,6 +1191,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1720,11 +1733,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1871,6 +1891,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1945,6 +1974,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 1
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -672,6 +673,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 500 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 500 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -680,10 +689,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1173,6 +1185,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1714,11 +1727,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1865,6 +1885,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1939,6 +1968,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 1
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -672,6 +673,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 500 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 500 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -680,10 +689,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.3
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -927,8 +939,8 @@
|
||||
// @section machine
|
||||
|
||||
// The size of the print bed
|
||||
#define X_BED_SIZE 220
|
||||
#define Y_BED_SIZE 220
|
||||
#define X_BED_SIZE 235
|
||||
#define Y_BED_SIZE 235
|
||||
|
||||
// Travel limits (mm) after homing, corresponding to endstop positions.
|
||||
#define X_MIN_POS 0
|
||||
@@ -1173,6 +1185,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1714,11 +1727,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1865,6 +1885,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1939,6 +1968,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW or HIGH pin signal energizes the coil
|
||||
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // Delay (ms) for magnetic field. No delay if 0 or not defined.
|
||||
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // X positions for parking the extruders
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // mm to move beyond the parking point to grab the extruder
|
||||
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm) Distance to move beyond the parking point to grab the extruder
|
||||
//#define MANUAL_SOLENOID_CONTROL // Manual control of docking solenoids with M380 S / M381
|
||||
#endif
|
||||
|
||||
@@ -305,6 +305,7 @@
|
||||
* 15 : 100k thermistor calibration for JGAurora A5 hotend
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 61 : 100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
|
||||
@@ -324,7 +325,7 @@
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '501':"100K Zonestar (Tronxy X3A)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '61':"100k Formbot / Vivedino 3950 350C thermistor 4.7k pullup", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-4':"Thermocouple + AD8495", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 1
|
||||
#define TEMP_SENSOR_1 0
|
||||
@@ -387,10 +388,10 @@
|
||||
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#define PID_K1 0.95 // Smoothing factor within any PID loop
|
||||
#if ENABLED(PIDTEMP)
|
||||
#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||
@@ -678,6 +679,14 @@
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -686,10 +695,13 @@
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 20.0
|
||||
#define DEFAULT_YJERK 20.0
|
||||
#define DEFAULT_ZJERK 2.4
|
||||
#define DEFAULT_EJERK 5.0
|
||||
#if DISABLED(JUNCTION_DEVIATION)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 2.4
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
|
||||
/**
|
||||
* S-Curve Acceleration
|
||||
@@ -1179,6 +1191,7 @@
|
||||
|
||||
#if ENABLED(LEVEL_BED_CORNERS)
|
||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||
#define LEVEL_CORNERS_Z_HOP 4.0 // (mm) Move nozzle up before moving between corners
|
||||
//#define LEVEL_CENTER_TOO // Move to the center after the last corner
|
||||
#endif
|
||||
|
||||
@@ -1720,11 +1733,18 @@
|
||||
//
|
||||
|
||||
//
|
||||
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// 2-wire Non-latching LCD SR from https://goo.gl/aJJ4sH
|
||||
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// 3-wire SR LCD with strobe using 74HC4094
|
||||
// https://github.com/mikeshub/SailfishLCD
|
||||
// Uses the code directly from Sailfish
|
||||
//
|
||||
//#define FF_INTERFACEBOARD
|
||||
|
||||
//=============================================================================
|
||||
//======================= LCD / Controller Selection =======================
|
||||
//========================= (Graphical LCDs) ========================
|
||||
@@ -1871,6 +1891,15 @@
|
||||
//
|
||||
//#define EXTENSIBLE_UI
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Graphical TFTs ==============================
|
||||
//=============================================================================
|
||||
|
||||
//
|
||||
// MKS Robin 320x240 color display
|
||||
//
|
||||
//#define MKS_ROBIN_TFT
|
||||
|
||||
//=============================================================================
|
||||
//============================ Other Controllers ============================
|
||||
//=============================================================================
|
||||
@@ -1945,6 +1974,10 @@
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
// Support for PCA9533 PWM LED driver
|
||||
// https://github.com/mikeshub/SailfishRGB_LED
|
||||
//#define PCA9533
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
|
||||
@@ -77,6 +77,8 @@
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
|
||||
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
|
||||
|
||||
/**
|
||||
* Whenever an M104, M109, or M303 increases the target temperature, the
|
||||
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
|
||||
@@ -483,11 +485,36 @@
|
||||
#define MINIMUM_PLANNER_SPEED 0.05 // (mm/s)
|
||||
|
||||
//
|
||||
// Use Junction Deviation instead of traditional Jerk Limiting
|
||||
// Backlash Compensation
|
||||
// Adds extra movement to axes on direction-changes to account for backlash.
|
||||
//
|
||||
//#define JUNCTION_DEVIATION
|
||||
#if ENABLED(JUNCTION_DEVIATION)
|
||||
#define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge
|
||||
//#define BACKLASH_COMPENSATION
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
// Define values for backlash distance and correction.
|
||||
// If BACKLASH_GCODE is enabled these values are the defaults.
|
||||
#define BACKLASH_DISTANCE_MM { 0, 0, 0 } // (mm)
|
||||
#define BACKLASH_CORRECTION 0.0 // 0.0 = no correction; 1.0 = full correction
|
||||
|
||||
// Set BACKLASH_SMOOTHING_MM to spread backlash correction over multiple segments
|
||||
// to reduce print artifacts. (Enabling this is costly in memory and computation!)
|
||||
//#define BACKLASH_SMOOTHING_MM 3 // (mm)
|
||||
|
||||
// Add runtime configuration and tuning of backlash values (M425)
|
||||
//#define BACKLASH_GCODE
|
||||
|
||||
#if ENABLED(BACKLASH_GCODE)
|
||||
// Measure the Z backlash when probing (G29) and set with "M425 Z"
|
||||
#define MEASURE_BACKLASH_WHEN_PROBING
|
||||
|
||||
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING)
|
||||
// When measuring, the probe will move up to BACKLASH_MEASUREMENT_LIMIT
|
||||
// mm away from point of contact in BACKLASH_MEASUREMENT_RESOLUTION
|
||||
// increments while checking for the contact to be broken.
|
||||
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
|
||||
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -571,6 +598,13 @@
|
||||
#define ENCODER_100X_STEPS_PER_SEC 80 // (steps/s) Encoder rate for 100x speed
|
||||
#endif
|
||||
|
||||
// Play a beep when the feedrate is changed from the Status Screen
|
||||
//#define BEEP_ON_FEEDRATE_CHANGE
|
||||
#if ENABLED(BEEP_ON_FEEDRATE_CHANGE)
|
||||
#define FEEDRATE_CHANGE_BEEP_DURATION 10
|
||||
#define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
||||
#endif
|
||||
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
@@ -786,26 +820,41 @@
|
||||
// Swap the CW/CCW indicators in the graphics overlay
|
||||
//#define OVERLAY_GFX_REVERSE
|
||||
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
#if ENABLED(U8GLIB_ST7920)
|
||||
/**
|
||||
* ST7920-based LCDs can emulate a 16 x 4 character display using
|
||||
* the ST7920 character-generator for very fast screen updates.
|
||||
* Enable LIGHTWEIGHT_UI to use this special display mode.
|
||||
*
|
||||
* Since LIGHTWEIGHT_UI has limited space, the position and status
|
||||
* message occupy the same line. Set STATUS_EXPIRE_SECONDS to the
|
||||
* length of time to display the status message before clearing.
|
||||
*
|
||||
* Set STATUS_EXPIRE_SECONDS to zero to never clear the status.
|
||||
* This will prevent position updates from being displayed.
|
||||
*/
|
||||
//#define LIGHTWEIGHT_UI
|
||||
#if ENABLED(LIGHTWEIGHT_UI)
|
||||
#define STATUS_EXPIRE_SECONDS 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // DOGLCD
|
||||
/**
|
||||
* Status (Info) Screen customizations
|
||||
* These options may affect code size and screen render time.
|
||||
* Custom status screens can forcibly override these settings.
|
||||
*/
|
||||
//#define STATUS_COMBINE_HEATERS // Use combined heater images instead of separate ones
|
||||
//#define STATUS_HOTEND_NUMBERLESS // Use plain hotend icons instead of numbered ones (with 2+ hotends)
|
||||
#define STATUS_HOTEND_INVERTED // Show solid nozzle bitmaps when heating (Requires STATUS_HOTEND_ANIM)
|
||||
#define STATUS_HOTEND_ANIM // Use a second bitmap to indicate hotend heating
|
||||
#define STATUS_BED_ANIM // Use a second bitmap to indicate bed heating
|
||||
//#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap
|
||||
//#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap
|
||||
//#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames
|
||||
//#define STATUS_HEAT_PERCENT // Show heating in a progress bar
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// @section safety
|
||||
|
||||
@@ -1048,6 +1097,10 @@
|
||||
// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
||||
//#define ADVANCED_OK
|
||||
|
||||
// Printrun may have trouble receiving long strings all at once.
|
||||
// This option inserts short delays between lines of serial output.
|
||||
#define SERIAL_OVERRUN_PROTECTION
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
@@ -1245,17 +1298,14 @@
|
||||
* in your `pins_MYBOARD.h` file. (e.g., RAMPS 1.4 uses AUX3 pins `X_CS_PIN 53`, `Y_CS_PIN 49`, etc.).
|
||||
* You may also use software SPI if you wish to use general purpose IO pins.
|
||||
*
|
||||
* The TMC2130Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2130Stepper
|
||||
*
|
||||
* To use TMC2208 stepper UART-configurable stepper drivers
|
||||
* connect #_SERIAL_TX_PIN to the driver side PDN_UART pin with a 1K resistor.
|
||||
* To use the reading capabilities, also connect #_SERIAL_RX_PIN
|
||||
* to PDN_UART without a resistor.
|
||||
* The drivers can also be used with hardware serial.
|
||||
*
|
||||
* The TMC2208Stepper library is required for this stepper driver.
|
||||
* https://github.com/teemuatlut/TMC2208Stepper
|
||||
* TMCStepper library is required for connected TMC stepper drivers.
|
||||
* https://github.com/teemuatlut/TMCStepper
|
||||
*/
|
||||
#if HAS_TRINAMIC
|
||||
|
||||
@@ -1302,6 +1352,24 @@
|
||||
#define E5_CURRENT 800
|
||||
#define E5_MICROSTEPS 16
|
||||
|
||||
/**
|
||||
* Override default SPI pins for TMC2130 and TMC2660 drivers here.
|
||||
* The default pins can be found in your board's pins file.
|
||||
*/
|
||||
//#define X_CS_PIN -1
|
||||
//#define Y_CS_PIN -1
|
||||
//#define Z_CS_PIN -1
|
||||
//#define X2_CS_PIN -1
|
||||
//#define Y2_CS_PIN -1
|
||||
//#define Z2_CS_PIN -1
|
||||
//#define Z3_CS_PIN -1
|
||||
//#define E0_CS_PIN -1
|
||||
//#define E1_CS_PIN -1
|
||||
//#define E2_CS_PIN -1
|
||||
//#define E3_CS_PIN -1
|
||||
//#define E4_CS_PIN -1
|
||||
//#define E5_CS_PIN -1
|
||||
|
||||
/**
|
||||
* Use software SPI for TMC2130.
|
||||
* The default SW SPI pins are defined the respective pins files,
|
||||
@@ -1316,7 +1384,25 @@
|
||||
* Use Trinamic's ultra quiet stepping mode.
|
||||
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||
*/
|
||||
#define STEALTHCHOP
|
||||
#define STEALTHCHOP_XY
|
||||
#define STEALTHCHOP_Z
|
||||
#define STEALTHCHOP_E
|
||||
|
||||
/**
|
||||
* Optimize spreadCycle chopper parameters by using predefined parameter sets
|
||||
* or with the help of an example included in the library.
|
||||
* Provided parameter sets are
|
||||
* CHOPPER_DEFAULT_12V
|
||||
* CHOPPER_DEFAULT_19V
|
||||
* CHOPPER_DEFAULT_24V
|
||||
* CHOPPER_DEFAULT_36V
|
||||
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
|
||||
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
|
||||
*
|
||||
* Define you own with
|
||||
* { <off_time[1..15]>, <hysteresis_end[-3..12]>, hysteresis_start[1..8] }
|
||||
*/
|
||||
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
|
||||
|
||||
/**
|
||||
* Monitor Trinamic TMC2130 and TMC2208 drivers for error conditions,
|
||||
@@ -1340,7 +1426,7 @@
|
||||
/**
|
||||
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||
* This mode allows for faster movements at the expense of higher noise levels.
|
||||
* STEALTHCHOP needs to be enabled.
|
||||
* STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD.
|
||||
* M913 X/Y/Z/E to live tune the setting
|
||||
*/
|
||||
//#define HYBRID_THRESHOLD
|
||||
@@ -1393,22 +1479,6 @@
|
||||
*/
|
||||
//#define TMC_DEBUG
|
||||
|
||||
/**
|
||||
* M915 Z Axis Calibration
|
||||
*
|
||||
* - Adjust Z stepper current,
|
||||
* - Drive the Z axis to its physical maximum, and
|
||||
* - Home Z to account for the lost steps.
|
||||
*
|
||||
* Use M915 Snn to specify the current.
|
||||
* Use M925 Znn to add extra Z height to Z_MAX_POS.
|
||||
*/
|
||||
//#define TMC_Z_CALIBRATION
|
||||
#if ENABLED(TMC_Z_CALIBRATION)
|
||||
#define CALIBRATION_CURRENT 250
|
||||
#define CALIBRATION_EXTRA_HEIGHT 10
|
||||
#endif
|
||||
|
||||
/**
|
||||
* You can set your own advanced settings by filling in predefined functions.
|
||||
* A list of available functions can be found on the library github page
|
||||
@@ -1621,11 +1691,6 @@
|
||||
*/
|
||||
//#define CNC_COORDINATE_SYSTEMS
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
@@ -1881,5 +1946,12 @@
|
||||
#define WIFI_PWD "Wifi Password"
|
||||
#endif
|
||||
|
||||
// @section develop
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
//#define PINS_DEBUGGING
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user