From 50833c983655e641d5236a07efca05011963387e Mon Sep 17 00:00:00 2001 From: InsanityAutomation Date: Wed, 22 Jul 2020 17:07:44 -0400 Subject: [PATCH] Add New G34 mode for current adjustable drivers TODO : Sanity checks, Finish DAC mode, Test on Rambo --- Marlin/Configuration_adv.h | 104 ++++++++++++------------------------- 1 file changed, 32 insertions(+), 72 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 3ad615e3ca..9d37f2daf7 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -29,13 +29,15 @@ * Some of these settings can damage your printer if improperly set! * * Basic settings can be found in Configuration.h + * */ -#define CONFIGURATION_ADV_H_VERSION 020007 +#define CONFIGURATION_ADV_H_VERSION 020006 + +// @section temperature //=========================================================================== //============================= Thermal Settings ============================ //=========================================================================== -// @section temperature /** * Thermocouple sensors are quite sensitive to noise. Any noise induced in @@ -124,19 +126,9 @@ #define HEATER_BED_INVERTING true #endif -// -// Heated Bed Bang-Bang options -// -#if DISABLED(PIDTEMPBED) - #define BED_CHECK_INTERVAL 5000 // (ms) Interval between checks in bang-bang control - #if ENABLED(BED_LIMIT_SWITCHING) - #define BED_HYSTERESIS 2 // (°C) Only set the relevant heater state when ABS(T-target) > BED_HYSTERESIS - #endif -#endif - -// -// Heated Chamber options -// +/** + * Heated Chamber settings + */ #if TEMP_SENSOR_CHAMBER #define CHAMBER_MINTEMP 5 #define CHAMBER_MAXTEMP 60 @@ -144,28 +136,12 @@ //#define CHAMBER_LIMIT_SWITCHING //#define HEATER_CHAMBER_PIN 44 // Chamber heater on/off pin //#define HEATER_CHAMBER_INVERTING false +#endif - //#define CHAMBER_FAN // Enable a fan on the chamber - #if ENABLED(CHAMBER_FAN) - #define CHAMBER_FAN_MODE 2 // Fan control mode: 0=Static; 1=Linear increase when temp is higher than target; 2=V-shaped curve. - #if CHAMBER_FAN_MODE == 0 - #define CHAMBER_FAN_BASE 255 // Chamber fan PWM (0-255) - #elif CHAMBER_FAN_MODE == 1 - #define CHAMBER_FAN_BASE 128 // Base chamber fan PWM (0-255); turns on when chamber temperature is above the target - #define CHAMBER_FAN_FACTOR 25 // PWM increase per °C above target - #elif CHAMBER_FAN_MODE == 2 - #define CHAMBER_FAN_BASE 128 // Minimum chamber fan PWM (0-255) - #define CHAMBER_FAN_FACTOR 25 // PWM increase per °C difference from target - #endif - #endif - - //#define CHAMBER_VENT // Enable a servo-controlled vent on the chamber - #if ENABLED(CHAMBER_VENT) - #define CHAMBER_VENT_SERVO_NR 1 // Index of the vent servo - #define HIGH_EXCESS_HEAT_LIMIT 5 // How much above target temp to consider there is excess heat in the chamber - #define LOW_EXCESS_HEAT_LIMIT 3 - #define MIN_COOLING_SLOPE_TIME_CHAMBER_VENT 20 - #define MIN_COOLING_SLOPE_DEG_CHAMBER_VENT 1.5 +#if DISABLED(PIDTEMPBED) + #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control + #if ENABLED(BED_LIMIT_SWITCHING) + #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS #endif #endif @@ -762,6 +738,7 @@ * | 4 3 | 1 4 | 2 1 | 3 2 | * | | | | | * | 1 2 | 2 3 | 3 4 | 4 1 | + * */ #ifndef Z_STEPPER_ALIGN_XY //#define Z_STEPPERS_ORIENTATION 0 @@ -796,7 +773,6 @@ // //#define ASSISTED_TRAMMING #if ENABLED(ASSISTED_TRAMMING) - // Define positions for probing points, use the hotend as reference not the sensor. #define TRAMMING_POINT_XY { { 20, 20 }, { 200, 20 }, { 200, 200 }, { 20, 200 } } @@ -819,7 +795,6 @@ * M5: 50 = Clockwise, 51 = Counter-Clockwise */ #define TRAMMING_SCREW_THREAD 30 - #endif // @section motion @@ -1075,14 +1050,6 @@ #if HAS_LCD_MENU - // Add Probe Z Offset calibration to the Z Probe Offsets menu - #if HAS_BED_PROBE - //#define PROBE_OFFSET_WIZARD - #if ENABLED(PROBE_OFFSET_WIZARD) - #define PROBE_OFFSET_START -4.0 // Estimated nozzle-to-probe Z offset, plus a little extra - #endif - #endif - // Include a page of printer information in the LCD Main Menu //#define LCD_INFO_MENU #if ENABLED(LCD_INFO_MENU) @@ -1139,18 +1106,18 @@ #define BOOTSCREEN_TIMEOUT 4000 // (ms) Total Duration to display the boot screen(s) #endif -#if EITHER(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY) && ANY(HAS_MARLINUI_U8GLIB, HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL) +#if EITHER(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY) && (HAS_GRAPHICAL_LCD || HAS_CHARACTER_LCD) //#define SHOW_REMAINING_TIME // Display estimated time to completion #if ENABLED(SHOW_REMAINING_TIME) //#define USE_M73_REMAINING_TIME // Use remaining time from M73 command instead of estimation //#define ROTATE_PROGRESS_DISPLAY // Display (P)rogress, (E)lapsed, and (R)emaining time #endif - #if HAS_MARLINUI_U8GLIB + #if HAS_GRAPHICAL_LCD //#define PRINT_PROGRESS_SHOW_DECIMALS // Show progress with decimal digits #endif - #if EITHER(HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL) + #if HAS_CHARACTER_LCD //#define LCD_PROGRESS_BAR // Show a progress bar on HD44780 LCDs for SD printing #if ENABLED(LCD_PROGRESS_BAR) #define PROGRESS_BAR_BAR_TIME 2000 // (ms) Amount of time to show the bar @@ -1201,7 +1168,6 @@ #if ENABLED(POWER_LOSS_RECOVERY) #define PLR_ENABLED_DEFAULT false // Power Loss Recovery enabled by default. (Set with 'M413 Sn' & M500) //#define BACKUP_POWER_SUPPLY // Backup power / UPS to move the steppers on power loss - //#define POWER_LOSS_RECOVER_ZHOME // Z homing is needed for proper recovery. 99.9% of the time this should be disabled! //#define POWER_LOSS_ZRAISE 2 // (mm) Z axis raise on resume (on power loss with UPS) //#define POWER_LOSS_PIN 44 // Pin to detect power loss. Set to -1 to disable default pin on boards without module. //#define POWER_LOSS_STATE HIGH // State of pin indicating power loss @@ -1362,7 +1328,7 @@ * controller events, as there is a trade-off between reliable * printing performance versus fast display updates. */ -#if HAS_MARLINUI_U8GLIB +#if HAS_GRAPHICAL_LCD // Show SD percentage next to the progress bar //#define DOGM_SD_PERCENT @@ -1377,7 +1343,7 @@ // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. //#define USE_BIG_EDIT_FONT - // A smaller font may be used on the Info Screen. Costs 2434 bytes of PROGMEM. + // A smaller font may be used on the Info Screen. Costs 2300 bytes of PROGMEM. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. //#define USE_SMALL_INFOFONT @@ -1432,18 +1398,18 @@ //#define MARLIN_SNAKE //#define GAMES_EASTER_EGG // Add extra blank lines above the "Games" sub-menu -#endif // HAS_MARLINUI_U8GLIB +#endif // HAS_GRAPHICAL_LCD // // Additional options for DGUS / DWIN displays // #if HAS_DGUS_LCD - #define LCD_SERIAL_PORT 3 - #define LCD_BAUDRATE 115200 + #define DGUS_SERIAL_PORT 3 + #define DGUS_BAUDRATE 115200 #define DGUS_RX_BUFFER_SIZE 128 #define DGUS_TX_BUFFER_SIZE 48 - //#define SERIAL_STATS_RX_BUFFER_OVERRUNS // Fix Rx overrun situation (Currently only for AVR) + //#define DGUS_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 @@ -1803,7 +1769,6 @@ #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 - //#define SF_ARC_FIX // Enable only if using SkeinForge with "Arc Point" fillet procedure #endif // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes. @@ -1989,6 +1954,7 @@ * Be sure to turn off auto-retract during filament change. * * Note that M207 / M208 / M209 settings are saved to EEPROM. + * */ //#define FWRETRACT #if ENABLED(FWRETRACT) @@ -3379,11 +3345,11 @@ #endif /** - * Mechanical Gantry Calibration - * Modern replacement for the Prusa TMC_Z_CALIBRATION. - * Adds capability to work with any adjustable current drivers. - * Implemented as G34 because M915 is deprecated. + * Modern replacement for the Prusa TMC_Z_CALIBRATION + * Adds capability to work with any adjustable current drivers + * Implements as G34 as M915 is deprecated */ + //#define MECHANICAL_GANTRY_CALIBRATION #if ENABLED(MECHANICAL_GANTRY_CALIBRATION) #define GANTRY_CALIBRATION_CURRENT 600 // Default calibration current in ma @@ -3394,10 +3360,9 @@ //#define GANTRY_CALIBRATION_SAFE_POSITION {X_CENTER, Y_CENTER} // Safe position for nozzle //#define GANTRY_CALIBRATION_XY_PARK_FEEDRATE 3000 // XY Park Feedrate - MMM //#define GANTRY_CALIBRATION_COMMANDS_PRE "" - #define GANTRY_CALIBRATION_COMMANDS_POST "G28" // G28 highly recommended to ensure an accurate position + //#define GANTRY_CALIBRATION_COMMANDS_POST "G28" #endif - /** * MAX7219 Debug Matrix * @@ -3473,10 +3438,10 @@ #if ENABLED(PRUSA_MMU2) // Serial port used for communication with MMU2. - // For AVR enable the UART port used for the MMU. (e.g., mmuSerial) + // For AVR enable the UART port used for the MMU. (e.g., internalSerial) // For 32-bit boards check your HAL for available serial ports. (e.g., Serial2) - #define MMU2_SERIAL_PORT 2 - #define MMU2_SERIAL mmuSerial + #define INTERNAL_SERIAL_PORT 2 + #define MMU2_SERIAL internalSerial // Use hardware reset for MMU if a pin is defined for it //#define MMU2_RST_PIN 23 @@ -3527,7 +3492,7 @@ */ //#define MMU_EXTRUDER_SENSOR #if ENABLED(MMU_EXTRUDER_SENSOR) - #define MMU_LOADING_ATTEMPTS_NR 5 // max. number of attempts to load filament if first load fail + #define MMU_LOADING_ATTEMPTS_NR 5 //max. number of attempts to load filament if first load fail #endif /** @@ -3579,11 +3544,6 @@ // //#define M100_FREE_MEMORY_WATCHER -// -// M42 - Set pin states -// -//#define DIRECT_PIN_CONTROL - // // M43 - display pin status, toggle pins, watch pins, watch endstops & toggle LED, test servo probe //