Merge pull request #8844 from thinkyhead/bf1_no_volumetrics

[1.1.x] Add option for NO_VOLUMETRICS
master
Scott Lahteine 7 years ago committed by GitHub
commit 201bbaacfc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -121,7 +121,7 @@ script:
- opt_enable NUM_SERVOS Z_ENDSTOP_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE - opt_enable NUM_SERVOS Z_ENDSTOP_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE
- opt_set NUM_SERVOS 1 - opt_set NUM_SERVOS 1
- opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS EEPROM_CHITCHAT - opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS EEPROM_CHITCHAT
- opt_enable_adv EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES AUTOTEMP G38_PROBE_TARGET - opt_enable_adv NO_VOLUMETRICS EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES AUTOTEMP G38_PROBE_TARGET
- build_marlin - build_marlin
# #
# Test MESH_BED_LEVELING feature, with LCD # Test MESH_BED_LEVELING feature, with LCD

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -8446,92 +8446,107 @@ inline void gcode_M114() {
/** /**
* M115: Capabilities string * M115: Capabilities string
*/ */
#if ENABLED(EXTENDED_CAPABILITIES_REPORT)
static void cap_line(const char * const name, bool ena=false) {
SERIAL_PROTOCOLPGM("Cap:");
serialprintPGM(name);
SERIAL_PROTOCOLLN(int(ena ? 1 : 0));
}
#endif
inline void gcode_M115() { inline void gcode_M115() {
SERIAL_PROTOCOLLNPGM(MSG_M115_REPORT); SERIAL_PROTOCOLLNPGM(MSG_M115_REPORT);
#if ENABLED(EXTENDED_CAPABILITIES_REPORT) #if ENABLED(EXTENDED_CAPABILITIES_REPORT)
// SERIAL_XON_XOFF // SERIAL_XON_XOFF
cap_line(PSTR("SERIAL_XON_XOFF")
#if ENABLED(SERIAL_XON_XOFF) #if ENABLED(SERIAL_XON_XOFF)
SERIAL_PROTOCOLLNPGM("Cap:SERIAL_XON_XOFF:1"); , true
#else
SERIAL_PROTOCOLLNPGM("Cap:SERIAL_XON_XOFF:0");
#endif #endif
);
// EEPROM (M500, M501) // EEPROM (M500, M501)
cap_line(PSTR("EEPROM")
#if ENABLED(EEPROM_SETTINGS) #if ENABLED(EEPROM_SETTINGS)
SERIAL_PROTOCOLLNPGM("Cap:EEPROM:1"); , true
#else #endif
SERIAL_PROTOCOLLNPGM("Cap:EEPROM:0"); );
// Volumetric Extrusion (M200)
cap_line(PSTR("VOLUMETRIC")
#if DISABLED(NO_VOLUMETRICS)
, true
#endif #endif
);
// AUTOREPORT_TEMP (M155) // AUTOREPORT_TEMP (M155)
cap_line(PSTR("AUTOREPORT_TEMP")
#if ENABLED(AUTO_REPORT_TEMPERATURES) #if ENABLED(AUTO_REPORT_TEMPERATURES)
SERIAL_PROTOCOLLNPGM("Cap:AUTOREPORT_TEMP:1"); , true
#else
SERIAL_PROTOCOLLNPGM("Cap:AUTOREPORT_TEMP:0");
#endif #endif
);
// PROGRESS (M530 S L, M531 <file>, M532 X L) // PROGRESS (M530 S L, M531 <file>, M532 X L)
SERIAL_PROTOCOLLNPGM("Cap:PROGRESS:0"); cap_line(PSTR("PROGRESS"));
// Print Job timer M75, M76, M77 // Print Job timer M75, M76, M77
SERIAL_PROTOCOLLNPGM("Cap:PRINT_JOB:1"); cap_line(PSTR("PRINT_JOB"), true);
// AUTOLEVEL (G29) // AUTOLEVEL (G29)
#if HAS_ABL cap_line(PSTR("AUTOLEVEL")
SERIAL_PROTOCOLLNPGM("Cap:AUTOLEVEL:1"); #if HAS_AUTOLEVEL
#else , true
SERIAL_PROTOCOLLNPGM("Cap:AUTOLEVEL:0");
#endif #endif
);
// Z_PROBE (G30) // Z_PROBE (G30)
cap_line(PSTR("Z_PROBE")
#if HAS_BED_PROBE #if HAS_BED_PROBE
SERIAL_PROTOCOLLNPGM("Cap:Z_PROBE:1"); , true
#else
SERIAL_PROTOCOLLNPGM("Cap:Z_PROBE:0");
#endif #endif
);
// MESH_REPORT (M420 V) // MESH_REPORT (M420 V)
cap_line(PSTR("LEVELING_DATA")
#if HAS_LEVELING #if HAS_LEVELING
SERIAL_PROTOCOLLNPGM("Cap:LEVELING_DATA:1"); , true
#else
SERIAL_PROTOCOLLNPGM("Cap:LEVELING_DATA:0");
#endif #endif
);
// BUILD_PERCENT (M73) // BUILD_PERCENT (M73)
cap_line(PSTR("BUILD_PERCENT")
#if ENABLED(LCD_SET_PROGRESS_MANUALLY) #if ENABLED(LCD_SET_PROGRESS_MANUALLY)
SERIAL_PROTOCOLLNPGM("Cap:BUILD_PERCENT:1"); , true
#else
SERIAL_PROTOCOLLNPGM("Cap:BUILD_PERCENT:0");
#endif #endif
);
// SOFTWARE_POWER (M80, M81) // SOFTWARE_POWER (M80, M81)
cap_line(PSTR("SOFTWARE_POWER")
#if HAS_POWER_SWITCH #if HAS_POWER_SWITCH
SERIAL_PROTOCOLLNPGM("Cap:SOFTWARE_POWER:1"); , true
#else
SERIAL_PROTOCOLLNPGM("Cap:SOFTWARE_POWER:0");
#endif #endif
);
// CASE LIGHTS (M355) // CASE LIGHTS (M355)
cap_line(PSTR("TOGGLE_LIGHTS")
#if HAS_CASE_LIGHT #if HAS_CASE_LIGHT
SERIAL_PROTOCOLLNPGM("Cap:TOGGLE_LIGHTS:1"); , true
if (USEABLE_HARDWARE_PWM(CASE_LIGHT_PIN)) { #endif
SERIAL_PROTOCOLLNPGM("Cap:CASE_LIGHT_BRIGHTNESS:1"); );
} cap_line(PSTR("CASE_LIGHT_BRIGHTNESS")
else #if HAS_CASE_LIGHT
SERIAL_PROTOCOLLNPGM("Cap:CASE_LIGHT_BRIGHTNESS:0"); , USEABLE_HARDWARE_PWM(CASE_LIGHT_PIN)
#else
SERIAL_PROTOCOLLNPGM("Cap:TOGGLE_LIGHTS:0");
SERIAL_PROTOCOLLNPGM("Cap:CASE_LIGHT_BRIGHTNESS:0");
#endif #endif
);
// EMERGENCY_PARSER (M108, M112, M410) // EMERGENCY_PARSER (M108, M112, M410)
cap_line(PSTR("EMERGENCY_PARSER")
#if ENABLED(EMERGENCY_PARSER) #if ENABLED(EMERGENCY_PARSER)
SERIAL_PROTOCOLLNPGM("Cap:EMERGENCY_PARSER:1"); , true
#else
SERIAL_PROTOCOLLNPGM("Cap:EMERGENCY_PARSER:0");
#endif #endif
);
#endif // EXTENDED_CAPABILITIES_REPORT #endif // EXTENDED_CAPABILITIES_REPORT
} }
@ -8669,13 +8684,15 @@ inline void gcode_M121() { endstops.enable_globally(false); }
#endif // HAS_COLOR_LEDS #endif // HAS_COLOR_LEDS
/** #if DISABLED(NO_VOLUMETRICS)
/**
* M200: Set filament diameter and set E axis units to cubic units * M200: Set filament diameter and set E axis units to cubic units
* *
* T<extruder> - Optional extruder number. Current extruder if omitted. * T<extruder> - Optional extruder number. Current extruder if omitted.
* D<linear> - Diameter of the filament. Use "D0" to switch back to linear units on the E axis. * D<linear> - Diameter of the filament. Use "D0" to switch back to linear units on the E axis.
*/ */
inline void gcode_M200() { inline void gcode_M200() {
if (get_target_extruder_from_command(200)) return; if (get_target_extruder_from_command(200)) return;
@ -8687,7 +8704,9 @@ inline void gcode_M200() {
planner.set_filament_size(target_extruder, parser.value_linear_units()); planner.set_filament_size(target_extruder, parser.value_linear_units());
} }
planner.calculate_volumetric_multipliers(); planner.calculate_volumetric_multipliers();
} }
#endif // !NO_VOLUMETRICS
/** /**
* M201: Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000) * M201: Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000)
@ -12036,9 +12055,12 @@ void process_parsed_command() {
#endif #endif
#endif #endif
#if DISABLED(NO_VOLUMETRICS)
case 200: // M200: Set filament diameter, E to cubic units case 200: // M200: Set filament diameter, E to cubic units
gcode_M200(); gcode_M200();
break; break;
#endif
case 201: // M201: Set max acceleration for print moves (units/s^2) case 201: // M201: Set max acceleration for print moves (units/s^2)
gcode_M201(); gcode_M201();
break; break;

@ -901,8 +901,12 @@ static_assert(1 >= 0
/** /**
* Filament Width Sensor * Filament Width Sensor
*/ */
#if ENABLED(FILAMENT_WIDTH_SENSOR) && !HAS_FILAMENT_WIDTH_SENSOR #if ENABLED(FILAMENT_WIDTH_SENSOR)
#if !HAS_FILAMENT_WIDTH_SENSOR
#error "FILAMENT_WIDTH_SENSOR requires a FILWIDTH_PIN to be defined." #error "FILAMENT_WIDTH_SENSOR requires a FILWIDTH_PIN to be defined."
#elif ENABLED(NO_VOLUMETRICS)
#error "FILAMENT_WIDTH_SENSOR requires NO_VOLUMETRICS to be disabled."
#endif
#endif #endif
/** /**

@ -238,7 +238,9 @@ void MarlinSettings::postprocess() {
thermalManager.updatePID(); thermalManager.updatePID();
#endif #endif
#if DISABLED(NO_VOLUMETRICS)
planner.calculate_volumetric_multipliers(); planner.calculate_volumetric_multipliers();
#endif
#if HAS_HOME_OFFSET || ENABLED(DUAL_X_CARRIAGE) #if HAS_HOME_OFFSET || ENABLED(DUAL_X_CARRIAGE)
// Software endstops depend on home_offset // Software endstops depend on home_offset
@ -566,6 +568,11 @@ void MarlinSettings::postprocess() {
EEPROM_WRITE(swap_retract_recover_length); EEPROM_WRITE(swap_retract_recover_length);
EEPROM_WRITE(swap_retract_recover_feedrate_mm_s); EEPROM_WRITE(swap_retract_recover_feedrate_mm_s);
//
// Volumetric & Filament Size
//
#if DISABLED(NO_VOLUMETRICS)
EEPROM_WRITE(parser.volumetric_enabled); EEPROM_WRITE(parser.volumetric_enabled);
// Save filament sizes // Save filament sizes
@ -574,6 +581,8 @@ void MarlinSettings::postprocess() {
EEPROM_WRITE(dummy); EEPROM_WRITE(dummy);
} }
#endif // !NO_VOLUMETRICS
// Save TMC2130 or TMC2208 Configuration, and placeholder values // Save TMC2130 or TMC2208 Configuration, and placeholder values
uint16_t val; uint16_t val;
#if HAS_TRINAMIC #if HAS_TRINAMIC
@ -1053,13 +1062,17 @@ void MarlinSettings::postprocess() {
// //
// Volumetric & Filament Size // Volumetric & Filament Size
// //
#if DISABLED(NO_VOLUMETRICS)
EEPROM_READ(parser.volumetric_enabled); EEPROM_READ(parser.volumetric_enabled);
for (uint8_t q = 0; q < MAX_EXTRUDERS; q++) { for (uint8_t q = 0; q < MAX_EXTRUDERS; q++) {
EEPROM_READ(dummy); EEPROM_READ(dummy);
if (q < COUNT(planner.filament_size)) planner.filament_size[q] = dummy; if (q < COUNT(planner.filament_size)) planner.filament_size[q] = dummy;
} }
#endif
// //
// TMC2130 Stepper Current // TMC2130 Stepper Current
// //
@ -1502,6 +1515,8 @@ void MarlinSettings::reset() {
swap_retract_recover_feedrate_mm_s = RETRACT_RECOVER_FEEDRATE_SWAP; swap_retract_recover_feedrate_mm_s = RETRACT_RECOVER_FEEDRATE_SWAP;
#endif // FWRETRACT #endif // FWRETRACT
#if DISABLED(NO_VOLUMETRICS)
parser.volumetric_enabled = parser.volumetric_enabled =
#if ENABLED(VOLUMETRIC_DEFAULT_ON) #if ENABLED(VOLUMETRIC_DEFAULT_ON)
true true
@ -1512,6 +1527,8 @@ void MarlinSettings::reset() {
for (uint8_t q = 0; q < COUNT(planner.filament_size); q++) for (uint8_t q = 0; q < COUNT(planner.filament_size); q++)
planner.filament_size[q] = DEFAULT_NOMINAL_FILAMENT_DIA; planner.filament_size[q] = DEFAULT_NOMINAL_FILAMENT_DIA;
#endif
endstops.enable_globally( endstops.enable_globally(
#if ENABLED(ENDSTOPS_ALWAYS_ON_DEFAULT) #if ENABLED(ENDSTOPS_ALWAYS_ON_DEFAULT)
true true
@ -1648,6 +1665,8 @@ void MarlinSettings::reset() {
SERIAL_EOL(); SERIAL_EOL();
#if DISABLED(NO_VOLUMETRICS)
/** /**
* Volumetric extrusion M200 * Volumetric extrusion M200
*/ */
@ -1689,6 +1708,8 @@ void MarlinSettings::reset() {
SERIAL_ECHOLNPGM(" M200 D0"); SERIAL_ECHOLNPGM(" M200 D0");
} }
#endif
if (!forReplay) { if (!forReplay) {
CONFIG_ECHO_START; CONFIG_ECHO_START;
SERIAL_ECHOLNPGM("Steps per unit:"); SERIAL_ECHOLNPGM("Steps per unit:");

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1379,13 +1379,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
//#define EXTENDED_CAPABILITIES_REPORT //#define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1377,13 +1377,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1343,13 +1343,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1387,13 +1387,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1378,13 +1378,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1378,13 +1378,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1378,13 +1378,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1378,13 +1378,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1378,13 +1378,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1383,13 +1383,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1378,13 +1378,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1376,13 +1376,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -1366,13 +1366,20 @@
#define EXTENDED_CAPABILITIES_REPORT #define EXTENDED_CAPABILITIES_REPORT
/** /**
* Disable all Volumetric extrusion options
*/
//#define NO_VOLUMETRICS
#if DISABLED(NO_VOLUMETRICS)
/**
* Volumetric extrusion default state * Volumetric extrusion default state
* Activate to make volumetric extrusion the default method, * Activate to make volumetric extrusion the default method,
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter. * with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
* *
* M200 D0 to disable, M200 Dn to set a new diameter. * M200 D0 to disable, M200 Dn to set a new diameter.
*/ */
//#define VOLUMETRIC_DEFAULT_ON //#define VOLUMETRIC_DEFAULT_ON
#endif
/** /**
* Enable this option for a leaner build of Marlin that removes all * Enable this option for a leaner build of Marlin that removes all

@ -94,10 +94,13 @@ float Planner::max_feedrate_mm_s[XYZE_N], // Max speeds in mm per second
int16_t Planner::flow_percentage[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(100); // Extrusion factor for each extruder int16_t Planner::flow_percentage[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(100); // Extrusion factor for each extruder
float Planner::e_factor[EXTRUDERS], // The flow percentage and volumetric multiplier combine to scale E movement float Planner::e_factor[EXTRUDERS]; // The flow percentage and volumetric multiplier combine to scale E movement
Planner::filament_size[EXTRUDERS], // diameter of filament (in millimeters), typically around 1.75 or 2.85, 0 disables the volumetric calculations for the extruder
#if DISABLED(NO_VOLUMETRICS)
float Planner::filament_size[EXTRUDERS], // diameter of filament (in millimeters), typically around 1.75 or 2.85, 0 disables the volumetric calculations for the extruder
Planner::volumetric_area_nominal = CIRCLE_AREA((DEFAULT_NOMINAL_FILAMENT_DIA) * 0.5), // Nominal cross-sectional area Planner::volumetric_area_nominal = CIRCLE_AREA((DEFAULT_NOMINAL_FILAMENT_DIA) * 0.5), // Nominal cross-sectional area
Planner::volumetric_multiplier[EXTRUDERS]; // Reciprocal of cross-sectional area of filament (in mm^2). Pre-calculated to reduce computation in the planner Planner::volumetric_multiplier[EXTRUDERS]; // Reciprocal of cross-sectional area of filament (in mm^2). Pre-calculated to reduce computation in the planner
#endif
uint32_t Planner::max_acceleration_steps_per_s2[XYZE_N], uint32_t Planner::max_acceleration_steps_per_s2[XYZE_N],
Planner::max_acceleration_mm_per_s2[XYZE_N]; // Use M201 to override by software Planner::max_acceleration_mm_per_s2[XYZE_N]; // Use M201 to override by software
@ -550,25 +553,29 @@ void Planner::check_axes_activity() {
#endif #endif
} }
/** #if DISABLED(NO_VOLUMETRICS)
/**
* Get a volumetric multiplier from a filament diameter. * Get a volumetric multiplier from a filament diameter.
* This is the reciprocal of the circular cross-section area. * This is the reciprocal of the circular cross-section area.
* Return 1.0 with volumetric off or a diameter of 0.0. * Return 1.0 with volumetric off or a diameter of 0.0.
*/ */
inline float calculate_volumetric_multiplier(const float &diameter) { inline float calculate_volumetric_multiplier(const float &diameter) {
return (parser.volumetric_enabled && diameter) ? 1.0 / CIRCLE_AREA(diameter * 0.5) : 1.0; return (parser.volumetric_enabled && diameter) ? 1.0 / CIRCLE_AREA(diameter * 0.5) : 1.0;
} }
/** /**
* Convert the filament sizes into volumetric multipliers. * Convert the filament sizes into volumetric multipliers.
* The multiplier converts a given E value into a length. * The multiplier converts a given E value into a length.
*/ */
void Planner::calculate_volumetric_multipliers() { void Planner::calculate_volumetric_multipliers() {
for (uint8_t i = 0; i < COUNT(filament_size); i++) { for (uint8_t i = 0; i < COUNT(filament_size); i++) {
volumetric_multiplier[i] = calculate_volumetric_multiplier(filament_size[i]); volumetric_multiplier[i] = calculate_volumetric_multiplier(filament_size[i]);
refresh_e_factor(i); refresh_e_factor(i);
} }
} }
#endif // !NO_VOLUMETRICS
#if ENABLED(FILAMENT_WIDTH_SENSOR) #if ENABLED(FILAMENT_WIDTH_SENSOR)
/** /**

@ -155,11 +155,14 @@ class Planner {
static int16_t flow_percentage[EXTRUDERS]; // Extrusion factor for each extruder static int16_t flow_percentage[EXTRUDERS]; // Extrusion factor for each extruder
static float e_factor[EXTRUDERS], // The flow percentage and volumetric multiplier combine to scale E movement static float e_factor[EXTRUDERS]; // The flow percentage and volumetric multiplier combine to scale E movement
filament_size[EXTRUDERS], // diameter of filament (in millimeters), typically around 1.75 or 2.85, 0 disables the volumetric calculations for the extruder
#if DISABLED(NO_VOLUMETRICS)
static float filament_size[EXTRUDERS], // diameter of filament (in millimeters), typically around 1.75 or 2.85, 0 disables the volumetric calculations for the extruder
volumetric_area_nominal, // Nominal cross-sectional area volumetric_area_nominal, // Nominal cross-sectional area
volumetric_multiplier[EXTRUDERS]; // Reciprocal of cross-sectional area of filament (in mm^2). Pre-calculated to reduce computation in the planner volumetric_multiplier[EXTRUDERS]; // Reciprocal of cross-sectional area of filament (in mm^2). Pre-calculated to reduce computation in the planner
// May be auto-adjusted by a filament width sensor // May be auto-adjusted by a filament width sensor
#endif
static float max_feedrate_mm_s[XYZE_N], // Max speeds in mm per second static float max_feedrate_mm_s[XYZE_N], // Max speeds in mm per second
axis_steps_per_mm[XYZE_N], axis_steps_per_mm[XYZE_N],
@ -273,7 +276,11 @@ class Planner {
static void refresh_positioning(); static void refresh_positioning();
FORCE_INLINE static void refresh_e_factor(const uint8_t e) { FORCE_INLINE static void refresh_e_factor(const uint8_t e) {
e_factor[e] = volumetric_multiplier[e] * flow_percentage[e] * 0.01; e_factor[e] = (flow_percentage[e] * 0.01
#if DISABLED(NO_VOLUMETRICS)
* volumetric_multiplier[e]
#endif
);
} }
// Manage fans, paste pressure, etc. // Manage fans, paste pressure, etc.
@ -293,6 +300,8 @@ class Planner {
void calculate_volumetric_for_width_sensor(const int8_t encoded_ratio); void calculate_volumetric_for_width_sensor(const int8_t encoded_ratio);
#endif #endif
#if DISABLED(NO_VOLUMETRICS)
FORCE_INLINE static void set_filament_size(const uint8_t e, const float &v) { FORCE_INLINE static void set_filament_size(const uint8_t e, const float &v) {
filament_size[e] = v; filament_size[e] = v;
// make sure all extruders have some sane value for the filament size // make sure all extruders have some sane value for the filament size
@ -300,6 +309,8 @@ class Planner {
if (!filament_size[i]) filament_size[i] = DEFAULT_NOMINAL_FILAMENT_DIA; if (!filament_size[i]) filament_size[i] = DEFAULT_NOMINAL_FILAMENT_DIA;
} }
#endif
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
/** /**

Loading…
Cancel
Save