@ -78,6 +78,18 @@
# define HOTEND5_BETA 3950 // Beta value
# define HOTEND5_BETA 3950 // Beta value
# endif
# endif
# if TEMP_SENSOR_6 == 1000
# define HOTEND6_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
# define HOTEND6_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
# define HOTEND6_BETA 3950 // Beta value
# endif
# if TEMP_SENSOR_7 == 1000
# define HOTEND7_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
# define HOTEND7_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
# define HOTEND7_BETA 3950 // Beta value
# endif
# if TEMP_SENSOR_BED == 1000
# if TEMP_SENSOR_BED == 1000
# define BED_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
# define BED_PULLUP_RESISTOR_OHMS 4700 // Pullup resistor
# define BED_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
# define BED_RESISTANCE_25C_OHMS 100000 // Resistance at 25C
@ -165,28 +177,28 @@
* Thermal Protection parameters for the bed are just as above for hotends .
* Thermal Protection parameters for the bed are just as above for hotends .
*/
*/
# if ENABLED(THERMAL_PROTECTION_BED)
# if ENABLED(THERMAL_PROTECTION_BED)
# define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
# define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
# define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
# define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
/**
* As described above , except for the bed ( M140 / M190 / M303 ) .
* As described above , except for the bed ( M140 / M190 / M303 ) .
*/
*/
# define WATCH_BED_TEMP_PERIOD 60 // Seconds
# define WATCH_BED_TEMP_PERIOD 60 // Seconds
# define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
# define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
# endif
# endif
/**
/**
* Thermal Protection parameters for the heated chamber .
* Thermal Protection parameters for the heated chamber .
*/
*/
# if ENABLED(THERMAL_PROTECTION_CHAMBER)
# if ENABLED(THERMAL_PROTECTION_CHAMBER)
# define THERMAL_PROTECTION_CHAMBER_PERIOD 20 // Seconds
# define THERMAL_PROTECTION_CHAMBER_PERIOD 20 // Seconds
# define THERMAL_PROTECTION_CHAMBER_HYSTERESIS 2 // Degrees Celsius
# define THERMAL_PROTECTION_CHAMBER_HYSTERESIS 2 // Degrees Celsius
/**
/**
* Heated chamber watch settings ( M141 / M191 ) .
* Heated chamber watch settings ( M141 / M191 ) .
*/
*/
# define WATCH_CHAMBER_TEMP_PERIOD 60 // Seconds
# define WATCH_CHAMBER_TEMP_PERIOD 60 // Seconds
# define WATCH_CHAMBER_TEMP_INCREASE 2 // Degrees Celsius
# define WATCH_CHAMBER_TEMP_INCREASE 2 // Degrees Celsius
# endif
# endif
# if ENABLED(PIDTEMP)
# if ENABLED(PIDTEMP)
@ -368,7 +380,7 @@
* FAST_PWM_FAN_FREQUENCY [ undefined by default ]
* FAST_PWM_FAN_FREQUENCY [ undefined by default ]
* Set this to your desired frequency .
* Set this to your desired frequency .
* If left undefined this defaults to F = F_CPU / ( 2 * 255 * 1 )
* If left undefined this defaults to F = F_CPU / ( 2 * 255 * 1 )
* i e F = 31.4 Khz on 16 MHz microcontrollers or F = 39.2 KHz on 20 MHz microcontrollers
* i . e . , F = 31.4 kHz on 16 MHz microcontrollers or F = 39.2 kHz on 20 MHz microcontrollers .
* These defaults are the same as with the old FAST_PWM_FAN implementation - no migration is required
* These defaults are the same as with the old FAST_PWM_FAN implementation - no migration is required
* NOTE : Setting very low frequencies ( < 10 Hz ) may result in unexpected timer behavior .
* NOTE : Setting very low frequencies ( < 10 Hz ) may result in unexpected timer behavior .
*
*
@ -479,7 +491,7 @@
//#define X_DUAL_ENDSTOPS
//#define X_DUAL_ENDSTOPS
# if ENABLED(X_DUAL_ENDSTOPS)
# if ENABLED(X_DUAL_ENDSTOPS)
# define X2_USE_ENDSTOP _XMAX_
# define X2_USE_ENDSTOP _XMAX_
# define X _DUAL_ENDSTOPS _ADJUSTMENT 0
# define X 2_ENDSTOP _ADJUSTMENT 0
# endif
# endif
# endif
# endif
@ -489,27 +501,28 @@
//#define Y_DUAL_ENDSTOPS
//#define Y_DUAL_ENDSTOPS
# if ENABLED(Y_DUAL_ENDSTOPS)
# if ENABLED(Y_DUAL_ENDSTOPS)
# define Y2_USE_ENDSTOP _YMAX_
# define Y2_USE_ENDSTOP _YMAX_
# define Y _DUAL_ENDSTOPS _ADJUSTMENT 0
# define Y 2_ENDSTOP _ADJUSTMENT 0
# endif
# endif
# endif
# endif
//#define Z_DUAL_STEPPER_DRIVERS
//
# if ENABLED(Z_DUAL_STEPPER_DRIVERS)
// For Z set the number of stepper drivers
//#define Z_DUAL_ENDSTOPS
//
# if ENABLED(Z_DUAL_ENDSTOPS)
# define NUM_Z_STEPPER_DRIVERS 1 // (1-4) Z options change based on how many
# define Z2_USE_ENDSTOP _XMAX_
# define Z_DUAL_ENDSTOPS_ADJUSTMENT 0
# if NUM_Z_STEPPER_DRIVERS > 1
# endif
//#define Z_MULTI_ENDSTOPS
# endif
# if ENABLED(Z_MULTI_ENDSTOPS)
# define Z2_USE_ENDSTOP _XMAX_
//#define Z_TRIPLE_STEPPER_DRIVERS
# define Z2_ENDSTOP_ADJUSTMENT 0
# if ENABLED(Z_TRIPLE_STEPPER_DRIVERS)
# if NUM_Z_STEPPER_DRIVERS >= 3
//#define Z_TRIPLE_ENDSTOPS
# define Z3_USE_ENDSTOP _YMAX_
# if ENABLED(Z_TRIPLE_ENDSTOPS)
# define Z3_ENDSTOP_ADJUSTMENT 0
# define Z2_USE_ENDSTOP _XMAX_
# endif
# define Z3_USE_ENDSTOP _YMAX_
# if NUM_Z_STEPPER_DRIVERS >= 4
# define Z_TRIPLE_ENDSTOPS_ADJUSTMENT2 0
# define Z4_USE_ENDSTOP _ZMAX_
# define Z_TRIPLE_ENDSTOPS_ADJUSTMENT3 0
# define Z4_ENDSTOP_ADJUSTMENT 0
# endif
# endif
# endif
# endif
# endif
@ -1243,6 +1256,44 @@
# endif // HAS_GRAPHICAL_LCD
# endif // HAS_GRAPHICAL_LCD
//
// Additional options for DGUS / DWIN displays
//
# if HAS_DGUS_LCD
# define DGUS_SERIAL_PORT 2
# define DGUS_BAUDRATE 115200
# define DGUS_RX_BUFFER_SIZE 128
# define DGUS_TX_BUFFER_SIZE 48
//#define DGUS_SERIAL_STATS_RX_BUFFER_OVERRUNS // Fix Rx overrun situation (Currently only for AVR)
# define DGUS_UPDATE_INTERVAL_MS 500 // (ms) Interval between automatic screen updates
# define BOOTSCREEN_TIMEOUT 3000 // (ms) Duration to display the boot screen
# if EITHER(DGUS_LCD_UI_FYSETC, DGUS_LCD_UI_HIPRECY)
# define DGUS_PRINT_FILENAME // Display the filename during printing
# define DGUS_PREHEAT_UI // Display a preheat screen during heatup
# if ENABLED(DGUS_LCD_UI_FYSETC)
//#define DUGS_UI_MOVE_DIS_OPTION // Disabled by default for UI_FYSETC
# else
# define DUGS_UI_MOVE_DIS_OPTION // Enabled by default for UI_HIPRECY
# endif
# define DGUS_FILAMENT_LOADUNLOAD
# if ENABLED(DGUS_FILAMENT_LOADUNLOAD)
# define DGUS_FILAMENT_PURGE_LENGTH 10
# define DGUS_FILAMENT_LOAD_LENGTH_PER_TIME 0.5 // (mm) Adjust in proportion to DGUS_UPDATE_INTERVAL_MS
# endif
# define DGUS_UI_WAITING // Show a "waiting" screen between some screens
# if ENABLED(DGUS_UI_WAITING)
# define DGUS_UI_WAITING_STATUS 10
# define DGUS_UI_WAITING_STATUS_PERIOD 8 // Increase to slower waiting status looping
# endif
# endif
# endif // HAS_DGUS_LCD
//
//
// Touch UI for the FTDI Embedded Video Engine (EVE)
// Touch UI for the FTDI Embedded Video Engine (EVE)
//
//
@ -1341,6 +1392,13 @@
//#define TFT_BTOKMENU_COLOR 0x145F // 00010 100010 11111 Cyan
//#define TFT_BTOKMENU_COLOR 0x145F // 00010 100010 11111 Cyan
# endif
# endif
//
// ADC Button Debounce
//
# if HAS_ADC_BUTTONS
# define ADC_BUTTON_DEBOUNCE_DELAY 16 // (ms) Increase if buttons bounce or repeat too fast
# endif
// @section safety
// @section safety
/**
/**
@ -1438,7 +1496,8 @@
* Override MIN_PROBE_EDGE for each side of the build plate
* Override MIN_PROBE_EDGE for each side of the build plate
* Useful to get probe points to exact positions on targets or
* Useful to get probe points to exact positions on targets or
* to allow leveling to avoid plate clamps on only specific
* to allow leveling to avoid plate clamps on only specific
* sides of the bed .
* sides of the bed . With NOZZLE_AS_PROBE negative values are
* allowed , to permit probing outside the bed .
*
*
* If you are replacing the prior * _PROBE_BED_POSITION options ,
* If you are replacing the prior * _PROBE_BED_POSITION options ,
* LEFT and FRONT values in most cases will map directly over
* LEFT and FRONT values in most cases will map directly over
@ -1483,18 +1542,57 @@
# endif
# endif
/**
* Thermal Probe Compensation
* Probe measurements are adjusted to compensate for temperature distortion .
* Use G76 to calibrate this feature . Use M871 to set values manually .
* For a more detailed explanation of the process see G76_M871 . cpp .
*/
# if HAS_BED_PROBE && TEMP_SENSOR_PROBE && TEMP_SENSOR_BED
// Enable thermal first layer compensation using bed and probe temperatures
# define PROBE_TEMP_COMPENSATION
// Add additional compensation depending on hotend temperature
// Note: this values cannot be calibrated and have to be set manually
# ifdef PROBE_TEMP_COMPENSATION
// Max temperature that can be reached by heated bed.
// This is required only for the calibration process.
# define PTC_MAX_BED_TEMP 110
// Park position to wait for probe cooldown
# define PTC_PARK_POS_X 0.0F
# define PTC_PARK_POS_Y 0.0F
# define PTC_PARK_POS_Z 100.0F
// Probe position to probe and wait for probe to reach target temperature
# define PTC_PROBE_POS_X 90.0F
# define PTC_PROBE_POS_Y 100.0F
// Enable additional compensation using hotend temperature
// Note: this values cannot be calibrated automatically but have to be set manually
//#define USE_TEMP_EXT_COMPENSATION
# endif
# endif
// @section extras
// @section extras
//
// G60/G61 Position Save and Return
//
//#define SAVED_POSITIONS 1 // Each saved position slot costs 12 bytes
//
//
// G2/G3 Arc Support
// G2/G3 Arc Support
//
//
# define ARC_SUPPORT // Disable this feature to save ~3226 bytes
# define ARC_SUPPORT // Disable this feature to save ~3226 bytes
# if ENABLED(ARC_SUPPORT)
# if ENABLED(ARC_SUPPORT)
# define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
# define MM_PER_ARC_SEGMENT 1 // (mm) Length (or minimum length) of each arc segment
# define MIN_ARC_SEGMENTS 24 // Minimum number of segments in a complete circle
//#define ARC_SEGMENTS_PER_R 1 // Max segment length, MM_PER = Min
# define N_ARC_CORRECTION 25 // Number of interpolated segments between corrections
# define MIN_ARC_SEGMENTS 24 // Minimum number of segments in a complete circle
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
//#define ARC_SEGMENTS_PER_SEC 50 // Use feedrate to choose segment length (with MM_PER_ARC_SEGMENT as the minimum)
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
# define N_ARC_CORRECTION 25 // Number of interpolated segments between corrections
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
# endif
# endif
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
@ -1691,6 +1789,9 @@
// Z raise distance for tool-change, as needed for some extruders
// Z raise distance for tool-change, as needed for some extruders
# define TOOLCHANGE_ZRAISE 2 // (mm)
# define TOOLCHANGE_ZRAISE 2 // (mm)
//#define TOOLCHANGE_NO_RETURN // Never return to the previous position on tool-change
//#define TOOLCHANGE_NO_RETURN // Never return to the previous position on tool-change
# if ENABLED(TOOLCHANGE_NO_RETURN)
//#define EVENT_GCODE_AFTER_TOOLCHANGE "G12X" // G-code to run after tool-change is complete
# endif
// Retract and prime filament on tool-change
// Retract and prime filament on tool-change
//#define TOOLCHANGE_FILAMENT_SWAP
//#define TOOLCHANGE_FILAMENT_SWAP
@ -1754,6 +1855,7 @@
# define FILAMENT_UNLOAD_PURGE_RETRACT 13 // (mm) Unload initial retract length.
# define FILAMENT_UNLOAD_PURGE_RETRACT 13 // (mm) Unload initial retract length.
# define FILAMENT_UNLOAD_PURGE_DELAY 5000 // (ms) Delay for the filament to cool after retract.
# define FILAMENT_UNLOAD_PURGE_DELAY 5000 // (ms) Delay for the filament to cool after retract.
# define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged.
# define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged.
# define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 // (mm/s) feedrate to purge before unload
# define PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety.
# define PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety.
# define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed.
# define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed.
@ -1818,6 +1920,12 @@
# define Z3_MICROSTEPS 16
# define Z3_MICROSTEPS 16
# endif
# endif
# if AXIS_DRIVER_TYPE_Z4(TMC26X)
# define Z4_MAX_CURRENT 1000
# define Z4_SENSE_RESISTOR 91
# define Z4_MICROSTEPS 16
# endif
# if AXIS_DRIVER_TYPE_E0(TMC26X)
# if AXIS_DRIVER_TYPE_E0(TMC26X)
# define E0_MAX_CURRENT 1000
# define E0_MAX_CURRENT 1000
# define E0_SENSE_RESISTOR 91
# define E0_SENSE_RESISTOR 91
@ -1854,6 +1962,18 @@
# define E5_MICROSTEPS 16
# define E5_MICROSTEPS 16
# endif
# endif
# if AXIS_DRIVER_TYPE_E6(TMC26X)
# define E6_MAX_CURRENT 1000
# define E6_SENSE_RESISTOR 91
# define E6_MICROSTEPS 16
# endif
# if AXIS_DRIVER_TYPE_E7(TMC26X)
# define E7_MAX_CURRENT 1000
# define E7_SENSE_RESISTOR 91
# define E7_MICROSTEPS 16
# endif
# endif // TMC26X
# endif // TMC26X
// @section tmc_smart
// @section tmc_smart
@ -1935,6 +2055,14 @@
# define Z3_CHAIN_POS -1
# define Z3_CHAIN_POS -1
# endif
# endif
# if AXIS_IS_TMC(Z4)
# define Z4_CURRENT 800
# define Z4_CURRENT_HOME Z4_CURRENT
# define Z4_MICROSTEPS 16
# define Z4_RSENSE 0.11
# define Z4_CHAIN_POS -1
# endif
# if AXIS_IS_TMC(E0)
# if AXIS_IS_TMC(E0)
# define E0_CURRENT 800
# define E0_CURRENT 800
# define E0_MICROSTEPS 16
# define E0_MICROSTEPS 16
@ -1977,6 +2105,20 @@
# define E5_CHAIN_POS -1
# define E5_CHAIN_POS -1
# endif
# endif
# if AXIS_IS_TMC(E6)
# define E6_CURRENT 800
# define E6_MICROSTEPS 16
# define E6_RSENSE 0.11
# define E6_CHAIN_POS -1
# endif
# if AXIS_IS_TMC(E7)
# define E7_CURRENT 800
# define E7_MICROSTEPS 16
# define E7_RSENSE 0.11
# define E7_CHAIN_POS -1
# endif
/**
/**
* Override default SPI pins for TMC2130 , TMC2160 , TMC2660 , TMC5130 and TMC5160 drivers here .
* Override default SPI pins for TMC2130 , TMC2160 , TMC2660 , TMC5130 and TMC5160 drivers here .
* The default pins can be found in your board ' s pins file .
* The default pins can be found in your board ' s pins file .
@ -1994,6 +2136,8 @@
//#define E3_CS_PIN -1
//#define E3_CS_PIN -1
//#define E4_CS_PIN -1
//#define E4_CS_PIN -1
//#define E5_CS_PIN -1
//#define E5_CS_PIN -1
//#define E6_CS_PIN -1
//#define E7_CS_PIN -1
/**
/**
* Software option for SPI driven drivers ( TMC2130 , TMC2160 , TMC2660 , TMC5130 and TMC5160 ) .
* Software option for SPI driven drivers ( TMC2130 , TMC2160 , TMC2660 , TMC5130 and TMC5160 ) .
@ -2024,12 +2168,15 @@
# define Y2_SLAVE_ADDRESS 0
# define Y2_SLAVE_ADDRESS 0
# define Z2_SLAVE_ADDRESS 0
# define Z2_SLAVE_ADDRESS 0
# define Z3_SLAVE_ADDRESS 0
# define Z3_SLAVE_ADDRESS 0
# define Z4_SLAVE_ADDRESS 0
# define E0_SLAVE_ADDRESS 0
# define E0_SLAVE_ADDRESS 0
# define E1_SLAVE_ADDRESS 0
# define E1_SLAVE_ADDRESS 0
# define E2_SLAVE_ADDRESS 0
# define E2_SLAVE_ADDRESS 0
# define E3_SLAVE_ADDRESS 0
# define E3_SLAVE_ADDRESS 0
# define E4_SLAVE_ADDRESS 0
# define E4_SLAVE_ADDRESS 0
# define E5_SLAVE_ADDRESS 0
# define E5_SLAVE_ADDRESS 0
# define E6_SLAVE_ADDRESS 0
# define E7_SLAVE_ADDRESS 0
/**
/**
* Software enable
* Software enable
@ -2099,12 +2246,15 @@
# define Z_HYBRID_THRESHOLD 3
# define Z_HYBRID_THRESHOLD 3
# define Z2_HYBRID_THRESHOLD 3
# define Z2_HYBRID_THRESHOLD 3
# define Z3_HYBRID_THRESHOLD 3
# define Z3_HYBRID_THRESHOLD 3
# define Z4_HYBRID_THRESHOLD 3
# define E0_HYBRID_THRESHOLD 30
# define E0_HYBRID_THRESHOLD 30
# define E1_HYBRID_THRESHOLD 30
# define E1_HYBRID_THRESHOLD 30
# define E2_HYBRID_THRESHOLD 30
# define E2_HYBRID_THRESHOLD 30
# define E3_HYBRID_THRESHOLD 30
# define E3_HYBRID_THRESHOLD 30
# define E4_HYBRID_THRESHOLD 30
# define E4_HYBRID_THRESHOLD 30
# define E5_HYBRID_THRESHOLD 30
# define E5_HYBRID_THRESHOLD 30
# define E6_HYBRID_THRESHOLD 30
# define E7_HYBRID_THRESHOLD 30
/**
/**
* Use StallGuard2 to home / probe X , Y , Z .
* Use StallGuard2 to home / probe X , Y , Z .
@ -2176,12 +2326,12 @@
# endif // HAS_TRINAMIC
# endif // HAS_TRINAMIC
// @section L64 70
// @section L64 XX
/**
/**
* L64 70 Stepper Driver options
* L64 XX Stepper Driver options
*
*
* Arduino - L6470 library ( 0. 7 .0 or higher ) is required for this stepper driver .
* Arduino - L6470 library ( 0. 8 .0 or higher ) is required .
* https : //github.com/ameyer/Arduino-L6470
* https : //github.com/ameyer/Arduino-L6470
*
*
* Requires the following to be defined in your pins_YOUR_BOARD file
* Requires the following to be defined in your pins_YOUR_BOARD file
@ -2189,114 +2339,160 @@
* L6470_CHAIN_MISO_PIN
* L6470_CHAIN_MISO_PIN
* L6470_CHAIN_MOSI_PIN
* L6470_CHAIN_MOSI_PIN
* L6470_CHAIN_SS_PIN
* L6470_CHAIN_SS_PIN
* L6470_RESET_CHAIN_PIN ( optional )
* ENABLE_RESET_L64XX_CHIPS( Q ) where Q is 1 to enable and 0 to reset
*/
*/
# if HAS_DRIVER(L6470)
//#define L6470_CHITCHAT // Display additional status info
# if HAS_L64XX
# if AXIS_DRIVER_TYPE_X(L6470)
//#define L6470_CHITCHAT // Display additional status info
# define X_MICROSTEPS 128 // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128)
# define X_OVERCURRENT 2000 // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
# define X_STALLCURRENT 1500 // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) - 4A max - rounds down)
# define X_MAX_VOLTAGE 127 // 0-255, Maximum effective voltage seen by stepper
# define X_CHAIN_POS -1 // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
# endif
# if AXIS_DRIVER_TYPE_X2(L6470)
# if AXIS_IS_L64XX(X)
# define X_MICROSTEPS 128 // Number of microsteps (VALID: 1, 2, 4, 8, 16, 32, 128) - L6474 max is 16
# define X_OVERCURRENT 2000 // (mA) Current where the driver detects an over current
// L6470 & L6474 - VALID: 375 x (1 - 16) - 6A max - rounds down
// POWERSTEP01: VALID: 1000 x (1 - 32) - 32A max - rounds down
# define X_STALLCURRENT 1500 // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) - 4A max - rounds down)
// L6470 & L6474 - VALID: 31.25 * (1-128) - 4A max - rounds down
// POWERSTEP01: VALID: 200 x (1 - 32) - 6.4A max - rounds down
// L6474 - STALLCURRENT setting is used to set the nominal (TVAL) current
# define X_MAX_VOLTAGE 127 // 0-255, Maximum effective voltage seen by stepper - not used by L6474
# define X_CHAIN_POS -1 // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
# define X_SLEW_RATE 1 // 0-3, Slew 0 is slowest, 3 is fastest
# endif
# if AXIS_IS_L64XX(X2)
# define X2_MICROSTEPS 128
# define X2_MICROSTEPS 128
# define X2_OVERCURRENT 2000
# define X2_OVERCURRENT 2000
# define X2_STALLCURRENT 1500
# define X2_STALLCURRENT 1500
# define X2_MAX_VOLTAGE 127
# define X2_MAX_VOLTAGE 127
# define X2_CHAIN_POS -1
# define X2_CHAIN_POS -1
# define X2_SLEW_RATE 1
# endif
# endif
# if AXIS_DRIVER_TYPE_Y(L6470)
# if AXIS_ IS_L64XX(Y )
# define Y_MICROSTEPS 128
# define Y_MICROSTEPS 128
# define Y_OVERCURRENT 2000
# define Y_OVERCURRENT 2000
# define Y_STALLCURRENT 1500
# define Y_STALLCURRENT 1500
# define Y_MAX_VOLTAGE 127
# define Y_MAX_VOLTAGE 127
# define Y_CHAIN_POS -1
# define Y_CHAIN_POS -1
# define Y_SLEW_RATE 1
# endif
# endif
# if AXIS_ DRIVER_TYPE_Y2(L6470 )
# if AXIS_ IS_L64XX(Y2 )
# define Y2_MICROSTEPS 128
# define Y2_MICROSTEPS 128
# define Y2_OVERCURRENT 2000
# define Y2_OVERCURRENT 2000
# define Y2_STALLCURRENT 1500
# define Y2_STALLCURRENT 1500
# define Y2_MAX_VOLTAGE 127
# define Y2_MAX_VOLTAGE 127
# define Y2_CHAIN_POS -1
# define Y2_CHAIN_POS -1
# define Y2_SLEW_RATE 1
# endif
# endif
# if AXIS_ DRIVER_TYPE_Z(L6470 )
# if AXIS_ IS_L64XX(Z )
# define Z_MICROSTEPS 128
# define Z_MICROSTEPS 128
# define Z_OVERCURRENT 2000
# define Z_OVERCURRENT 2000
# define Z_STALLCURRENT 1500
# define Z_STALLCURRENT 1500
# define Z_MAX_VOLTAGE 127
# define Z_MAX_VOLTAGE 127
# define Z_CHAIN_POS -1
# define Z_CHAIN_POS -1
# define Z_SLEW_RATE 1
# endif
# endif
# if AXIS_ DRIVER_TYPE_Z2(L6470 )
# if AXIS_ IS_L64XX(Z2 )
# define Z2_MICROSTEPS 128
# define Z2_MICROSTEPS 128
# define Z2_OVERCURRENT 2000
# define Z2_OVERCURRENT 2000
# define Z2_STALLCURRENT 1500
# define Z2_STALLCURRENT 1500
# define Z2_MAX_VOLTAGE 127
# define Z2_MAX_VOLTAGE 127
# define Z2_CHAIN_POS -1
# define Z2_CHAIN_POS -1
# define Z2_SLEW_RATE 1
# endif
# endif
# if AXIS_ DRIVER_TYPE_Z3(L6470 )
# if AXIS_ IS_L64XX(Z3 )
# define Z3_MICROSTEPS 128
# define Z3_MICROSTEPS 128
# define Z3_OVERCURRENT 2000
# define Z3_OVERCURRENT 2000
# define Z3_STALLCURRENT 1500
# define Z3_STALLCURRENT 1500
# define Z3_MAX_VOLTAGE 127
# define Z3_MAX_VOLTAGE 127
# define Z3_CHAIN_POS -1
# define Z3_CHAIN_POS -1
# define Z3_SLEW_RATE 1
# endif
# if AXIS_IS_L64XX(Z4)
# define Z4_MICROSTEPS 128
# define Z4_OVERCURRENT 2000
# define Z4_STALLCURRENT 1500
# define Z4_MAX_VOLTAGE 127
# define Z4_CHAIN_POS -1
# define Z4_SLEW_RATE 1
# endif
# endif
# if AXIS_DRIVER_TYPE_E0(L6470)
# if AXIS_ IS_L64XX(E 0)
# define E0_MICROSTEPS 128
# define E0_MICROSTEPS 128
# define E0_OVERCURRENT 2000
# define E0_OVERCURRENT 2000
# define E0_STALLCURRENT 1500
# define E0_STALLCURRENT 1500
# define E0_MAX_VOLTAGE 127
# define E0_MAX_VOLTAGE 127
# define E0_CHAIN_POS -1
# define E0_CHAIN_POS -1
# define E0_SLEW_RATE 1
# endif
# endif
# if AXIS_ DRIVER_TYPE_E1(L6470 )
# if AXIS_ IS_L64XX(E1 )
# define E1_MICROSTEPS 128
# define E1_MICROSTEPS 128
# define E1_OVERCURRENT 2000
# define E1_OVERCURRENT 2000
# define E1_STALLCURRENT 1500
# define E1_STALLCURRENT 1500
# define E1_MAX_VOLTAGE 127
# define E1_MAX_VOLTAGE 127
# define E1_CHAIN_POS -1
# define E1_CHAIN_POS -1
# define E1_SLEW_RATE 1
# endif
# endif
# if AXIS_ DRIVER_TYPE_E2(L6470 )
# if AXIS_ IS_L64XX(E2 )
# define E2_MICROSTEPS 128
# define E2_MICROSTEPS 128
# define E2_OVERCURRENT 2000
# define E2_OVERCURRENT 2000
# define E2_STALLCURRENT 1500
# define E2_STALLCURRENT 1500
# define E2_MAX_VOLTAGE 127
# define E2_MAX_VOLTAGE 127
# define E2_CHAIN_POS -1
# define E2_CHAIN_POS -1
# define E2_SLEW_RATE 1
# endif
# endif
# if AXIS_ DRIVER_TYPE_E3(L6470 )
# if AXIS_ IS_L64XX(E3 )
# define E3_MICROSTEPS 128
# define E3_MICROSTEPS 128
# define E3_OVERCURRENT 2000
# define E3_OVERCURRENT 2000
# define E3_STALLCURRENT 1500
# define E3_STALLCURRENT 1500
# define E3_MAX_VOLTAGE 127
# define E3_MAX_VOLTAGE 127
# define E3_CHAIN_POS -1
# define E3_CHAIN_POS -1
# define E3_SLEW_RATE 1
# endif
# endif
# if AXIS_ DRIVER_TYPE_E4(L6470 )
# if AXIS_ IS_L64XX(E4 )
# define E4_MICROSTEPS 128
# define E4_MICROSTEPS 128
# define E4_OVERCURRENT 2000
# define E4_OVERCURRENT 2000
# define E4_STALLCURRENT 1500
# define E4_STALLCURRENT 1500
# define E4_MAX_VOLTAGE 127
# define E4_MAX_VOLTAGE 127
# define E4_CHAIN_POS -1
# define E4_CHAIN_POS -1
# define E4_SLEW_RATE 1
# endif
# endif
# if AXIS_ DRIVER_TYPE_E5(L6470 )
# if AXIS_ IS_L64XX(E5 )
# define E5_MICROSTEPS 128
# define E5_MICROSTEPS 128
# define E5_OVERCURRENT 2000
# define E5_OVERCURRENT 2000
# define E5_STALLCURRENT 1500
# define E5_STALLCURRENT 1500
# define E5_MAX_VOLTAGE 127
# define E5_MAX_VOLTAGE 127
# define E5_CHAIN_POS -1
# define E5_CHAIN_POS -1
# define E5_SLEW_RATE 1
# endif
# if AXIS_IS_L64XX(E6)
# define E6_MICROSTEPS 128
# define E6_OVERCURRENT 2000
# define E6_STALLCURRENT 1500
# define E6_MAX_VOLTAGE 127
# define E6_CHAIN_POS -1
# define E6_SLEW_RATE 1
# endif
# if AXIS_IS_L64XX(E7)
# define E7_MICROSTEPS 128
# define E7_OVERCURRENT 2000
# define E7_STALLCURRENT 1500
# define E7_MAX_VOLTAGE 127
# define E7_CHAIN_POS -1
# define E7_SLEW_RATE 1
# endif
# endif
/**
/**
@ -2308,7 +2504,7 @@
* I not present or I0 or I1 - X , Y , Z or E0
* I not present or I0 or I1 - X , Y , Z or E0
* I2 - X2 , Y2 , Z2 or E1
* I2 - X2 , Y2 , Z2 or E1
* I3 - Z3 or E3
* I3 - Z3 or E3
* I4 - E4
* I4 - Z4 or E4
* I5 - E5
* I5 - E5
* M916 - Increase drive level until get thermal warning
* M916 - Increase drive level until get thermal warning
* M917 - Find minimum current thresholds
* M917 - Find minimum current thresholds
@ -2322,7 +2518,15 @@
//#define L6470_STOP_ON_ERROR
//#define L6470_STOP_ON_ERROR
# endif
# endif
# endif // L6470
# endif // HAS_L64XX
// @section i2cbus
//
// I2C Master ID for LPC176x LCD and Digital Current control
// Does not apply to other peripherals based on the Wire library.
//
//#define I2C_MASTER_ID 1 // Set a value from 0 to 2
/**
/**
* TWI / I2C BUS
* TWI / I2C BUS
@ -2352,10 +2556,10 @@
* echo : i2c - reply : from : 99 bytes : 5 data : hello
* echo : i2c - reply : from : 99 bytes : 5 data : hello
*/
*/
// @section i2cbus
//#define EXPERIMENTAL_I2CBUS
//#define EXPERIMENTAL_I2CBUS
# define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
# if ENABLED(EXPERIMENTAL_I2CBUS)
# define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
# endif
// @section extras
// @section extras
@ -2384,6 +2588,20 @@
// Duration to hold the switch or keep CHDK_PIN high
// Duration to hold the switch or keep CHDK_PIN high
//#define PHOTO_SWITCH_MS 50 // (ms) (M240 D)
//#define PHOTO_SWITCH_MS 50 // (ms) (M240 D)
/**
* PHOTO_PULSES_US may need adjustment depending on board and camera model .
* Pin must be running at 48.4 kHz .
* Be sure to use a PHOTOGRAPH_PIN which can rise and fall quick enough .
* ( e . g . , MKS SBase temp sensor pin was too slow , so used P1 .23 on J8 . )
*
* Example pulse data for Nikon : https : //bit.ly/2FKD0Aq
* IR Wiring : https : //git.io/JvJf7
*/
//#define PHOTO_PULSES_US { 2000, 27850, 400, 1580, 400, 3580, 400 } // (µs) Durations for each 48.4kHz oscillation
# ifdef PHOTO_PULSES_US
# define PHOTO_PULSE_DELAY_US 13 // (µs) Approximate duration of each HIGH and LOW pulse in the oscillation
# endif
# endif
# endif
/**
/**
@ -2723,7 +2941,11 @@
# define JOY_Z_PIN 12 // RAMPS: Suggested pin A12 on AUX2
# define JOY_Z_PIN 12 // RAMPS: Suggested pin A12 on AUX2
# define JOY_EN_PIN 44 // RAMPS: Suggested pin D44 on AUX2
# define JOY_EN_PIN 44 // RAMPS: Suggested pin D44 on AUX2
// Use M119 to find reasonable values after connecting your hardware:
//#define INVERT_JOY_X // Enable if X direction is reversed
//#define INVERT_JOY_Y // Enable if Y direction is reversed
//#define INVERT_JOY_Z // Enable if Z direction is reversed
// Use M119 with JOYSTICK_DEBUG to find reasonable values after connecting:
# define JOY_X_LIMITS { 5600, 8190-100, 8190+100, 10800 } // min, deadzone start, deadzone end, max
# define JOY_X_LIMITS { 5600, 8190-100, 8190+100, 10800 } // min, deadzone start, deadzone end, max
# define JOY_Y_LIMITS { 5600, 8250-100, 8250+100, 11000 }
# define JOY_Y_LIMITS { 5600, 8250-100, 8250+100, 11000 }
# define JOY_Z_LIMITS { 4800, 8080-100, 8080+100, 11550 }
# define JOY_Z_LIMITS { 4800, 8080-100, 8080+100, 11550 }
@ -2778,12 +3000,15 @@
/**
/**
* WiFi Support ( Espressif ESP32 WiFi )
* WiFi Support ( Espressif ESP32 WiFi )
*/
*/
//#define WIFISUPPORT
//#define WIFISUPPORT // Marlin embedded WiFi managenent
# if ENABLED(WIFISUPPORT)
//#define ESP3D_WIFISUPPORT // ESP3D Library WiFi management (https://github.com/luc-github/ESP3DLib)
# if EITHER(WIFISUPPORT, ESP3D_WIFISUPPORT)
# define WIFI_SSID "Wifi SSID"
# define WIFI_SSID "Wifi SSID"
# define WIFI_PWD "Wifi Password"
# define WIFI_PWD "Wifi Password"
//#define WEBSUPPORT // Start a webserver with auto-discovery
//#define WEBSUPPORT // Start a webserver (which may include auto-discovery)
//#define OTASUPPORT // Support over-the-air firmware updates
//#define OTASUPPORT // Support over-the-air firmware updates
//#define WIFI_CUSTOM_COMMAND // Accept feature config commands (e.g., WiFi ESP3D) from the host
# endif
# endif
/**
/**
@ -2855,9 +3080,14 @@
// @section develop
// @section develop
/**
//
* M43 - display pin status , watch pins for changes , watch endstops & toggle LED , Z servo probe test , toggle pins
// M100 Free Memory Watcher to debug memory usage
*/
//
//#define M100_FREE_MEMORY_WATCHER
//
// M43 - display pin status, toggle pins, watch pins, watch endstops & toggle LED, test servo probe
//
//#define PINS_DEBUGGING
//#define PINS_DEBUGGING
// Enable Marlin dev mode which adds some special commands
// Enable Marlin dev mode which adds some special commands