Skip to content

Commit 6b17d4a

Browse files
committed
Merge branch 'bugfix-2.1.x' into HEVO-BTT-SKR-1.3
2 parents 73fa199 + 218ca05 commit 6b17d4a

File tree

132 files changed

+2141
-1205
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

132 files changed

+2141
-1205
lines changed

Marlin/Configuration.h

+6-9
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,7 @@
3535
* Advanced settings can be found in Configuration_adv.h
3636
*
3737
*/
38-
#ifndef CONFIGURATION_H
39-
#define CONFIGURATION_H
40-
#define CONFIGURATION_H_VERSION 010109
38+
#define CONFIGURATION_H_VERSION 02010300
4139

4240
//===========================================================================
4341
//============================= Getting Started =============================
@@ -504,8 +502,9 @@
504502
// Enable for Polargraph Kinematics
505503
//#define POLARGRAPH
506504
#if ENABLED(POLARGRAPH)
507-
#define POLARGRAPH_MAX_BELT_LEN 1035.0
508-
#define DEFAULT_SEGMENTS_PER_SECOND 5
505+
#define POLARGRAPH_MAX_BELT_LEN 1035.0 // (mm) Belt length at full extension. Override with M665 H.
506+
#define DEFAULT_SEGMENTS_PER_SECOND 5 // Move segmentation based on duration
507+
#define PEN_UP_DOWN_MENU // Add "Pen Up" and "Pen Down" to the MarlinUI menu
509508
#endif
510509

511510
// @section delta
@@ -1307,7 +1306,7 @@
13071306
//#define EXTRAPOLATE_BEYOND_GRID
13081307

13091308
//
1310-
// Experimental Subdivision of the grid by Catmull-Rom method.
1309+
// Subdivision of the grid by Catmull-Rom method.
13111310
// Synthesizes intermediate points to produce a more detailed mesh.
13121311
//
13131312
//#define ABL_BILINEAR_SUBDIVISION
@@ -1553,7 +1552,7 @@
15531552
#endif
15541553

15551554
/**
1556-
* Clean Nozzle Feature -- EXPERIMENTAL
1555+
* Clean Nozzle Feature
15571556
*
15581557
* Adds the G12 command to perform a nozzle cleaning process.
15591558
*
@@ -1587,8 +1586,6 @@
15871586
* Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
15881587
*
15891588
* Caveats: The ending Z should be the same as starting Z.
1590-
* Attention: EXPERIMENTAL. G-code arguments may change.
1591-
*
15921589
*/
15931590
//#define NOZZLE_CLEAN_FEATURE
15941591

Marlin/Configuration_adv.h

+268-9
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@
3030
* Basic settings can be found in Configuration.h
3131
*
3232
*/
33-
#ifndef CONFIGURATION_ADV_H
34-
#define CONFIGURATION_ADV_H
35-
#define CONFIGURATION_ADV_H_VERSION 010109
33+
#define CONFIGURATION_ADV_H_VERSION 02010300
3634

3735
// @section temperature
3836

@@ -78,6 +76,11 @@
7876
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
7977
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
8078

79+
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
80+
#if ENABLED(ADAPTIVE_FAN_SLOWING) && EITHER(MPCTEMP, PIDTEMP)
81+
//#define TEMP_TUNING_MAINTAIN_FAN // Don't slow fan speed during M303 or M306 T
82+
#endif
83+
8184
/**
8285
* Whenever an M104, M109, or M303 increases the target temperature, the
8386
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
@@ -109,13 +112,63 @@
109112
#endif
110113

111114
#if ENABLED(PIDTEMP)
112-
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
113-
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
115+
// Add an additional term to the heater power, proportional to the extrusion speed.
116+
// A well-chosen Kc value should add just enough power to melt the increased material volume.
114117
//#define PID_EXTRUSION_SCALING
115118
#if ENABLED(PID_EXTRUSION_SCALING)
116119
#define DEFAULT_Kc (100) //heating power=Kc*(e_speed)
117120
#define LPQ_MAX_LEN 50
118121
#endif
122+
123+
/**
124+
* Add an additional term to the heater power, proportional to the fan speed.
125+
* A well-chosen Kf value should add just enough power to compensate for power-loss from the cooling fan.
126+
* You can either just add a constant compensation with the DEFAULT_Kf value
127+
* or follow the instruction below to get speed-dependent compensation.
128+
*
129+
* Constant compensation (use only with fanspeeds of 0% and 100%)
130+
* ---------------------------------------------------------------------
131+
* A good starting point for the Kf-value comes from the calculation:
132+
* kf = (power_fan * eff_fan) / power_heater * 255
133+
* where eff_fan is between 0.0 and 1.0, based on fan-efficiency and airflow to the nozzle / heater.
134+
*
135+
* Example:
136+
* Heater: 40W, Fan: 0.1A * 24V = 2.4W, eff_fan = 0.8
137+
* Kf = (2.4W * 0.8) / 40W * 255 = 12.24
138+
*
139+
* Fan-speed dependent compensation
140+
* --------------------------------
141+
* 1. To find a good Kf value, set the hotend temperature, wait for it to settle, and enable the fan (100%).
142+
* Make sure PID_FAN_SCALING_LIN_FACTOR is 0 and PID_FAN_SCALING_ALTERNATIVE_DEFINITION is not enabled.
143+
* If you see the temperature drop repeat the test, increasing the Kf value slowly, until the temperature
144+
* drop goes away. If the temperature overshoots after enabling the fan, the Kf value is too big.
145+
* 2. Note the Kf-value for fan-speed at 100%
146+
* 3. Determine a good value for PID_FAN_SCALING_MIN_SPEED, which is around the speed, where the fan starts moving.
147+
* 4. Repeat step 1. and 2. for this fan speed.
148+
* 5. Enable PID_FAN_SCALING_ALTERNATIVE_DEFINITION and enter the two identified Kf-values in
149+
* PID_FAN_SCALING_AT_FULL_SPEED and PID_FAN_SCALING_AT_MIN_SPEED. Enter the minimum speed in PID_FAN_SCALING_MIN_SPEED
150+
*/
151+
//#define PID_FAN_SCALING
152+
#if ENABLED(PID_FAN_SCALING)
153+
//#define PID_FAN_SCALING_ALTERNATIVE_DEFINITION
154+
#if ENABLED(PID_FAN_SCALING_ALTERNATIVE_DEFINITION)
155+
// The alternative definition is used for an easier configuration.
156+
// Just figure out Kf at fullspeed (255) and PID_FAN_SCALING_MIN_SPEED.
157+
// DEFAULT_Kf and PID_FAN_SCALING_LIN_FACTOR are calculated accordingly.
158+
159+
#define PID_FAN_SCALING_AT_FULL_SPEED 13.0 //=PID_FAN_SCALING_LIN_FACTOR*255+DEFAULT_Kf
160+
#define PID_FAN_SCALING_AT_MIN_SPEED 6.0 //=PID_FAN_SCALING_LIN_FACTOR*PID_FAN_SCALING_MIN_SPEED+DEFAULT_Kf
161+
#define PID_FAN_SCALING_MIN_SPEED 10.0 // Minimum fan speed at which to enable PID_FAN_SCALING
162+
163+
#define DEFAULT_Kf (255.0*PID_FAN_SCALING_AT_MIN_SPEED-PID_FAN_SCALING_AT_FULL_SPEED*PID_FAN_SCALING_MIN_SPEED)/(255.0-PID_FAN_SCALING_MIN_SPEED)
164+
#define PID_FAN_SCALING_LIN_FACTOR (PID_FAN_SCALING_AT_FULL_SPEED-DEFAULT_Kf)/255.0
165+
166+
#else
167+
#define PID_FAN_SCALING_LIN_FACTOR (0) // Power loss due to cooling = Kf * (fan_speed)
168+
#define DEFAULT_Kf 10 // A constant value added to the PID-tuner
169+
#define PID_FAN_SCALING_MIN_SPEED 10 // Minimum fan speed at which to enable PID_FAN_SCALING
170+
#endif
171+
#endif
119172
#endif
120173

121174
/**
@@ -376,7 +429,80 @@
376429
// Default x offset in duplication mode (typically set to half print bed width)
377430
#define DEFAULT_DUPLICATION_X_OFFSET 100
378431

379-
#endif // DUAL_X_CARRIAGE
432+
// Default action to execute following M605 mode change commands. Typically G28X to apply new mode.
433+
//#define EVENT_GCODE_IDEX_AFTER_MODECHANGE "G28X"
434+
#endif
435+
436+
/**
437+
* Multi-Stepper / Multi-Endstop
438+
*
439+
* When X2_DRIVER_TYPE is defined, this indicates that the X and X2 motors work in tandem.
440+
* The following explanations for X also apply to Y and Z multi-stepper setups.
441+
* Endstop offsets may be changed by 'M666 X<offset> Y<offset> Z<offset>' and stored to EEPROM.
442+
*
443+
* - Enable INVERT_X2_VS_X_DIR if the X2 motor requires an opposite DIR signal from X.
444+
*
445+
* - Enable X_DUAL_ENDSTOPS if the second motor has its own endstop, with adjustable offset.
446+
*
447+
* - Extra endstops are included in the output of 'M119'.
448+
*
449+
* - Set X_DUAL_ENDSTOP_ADJUSTMENT to the known error in the X2 endstop.
450+
* Applied to the X2 motor on 'G28' / 'G28 X'.
451+
* Get the offset by homing X and measuring the error.
452+
* Also set with 'M666 X<offset>' and stored to EEPROM with 'M500'.
453+
*
454+
* - Use X2_USE_ENDSTOP to set the endstop plug by name. (_XMIN_, _XMAX_, _YMIN_, _YMAX_, _ZMIN_, _ZMAX_)
455+
*/
456+
#if HAS_X2_STEPPER && DISABLED(DUAL_X_CARRIAGE)
457+
//#define INVERT_X2_VS_X_DIR // X2 direction signal is the opposite of X
458+
//#define X_DUAL_ENDSTOPS // X2 has its own endstop
459+
#if ENABLED(X_DUAL_ENDSTOPS)
460+
#define X2_USE_ENDSTOP _XMAX_ // X2 endstop board plug. Don't forget to enable USE_*_PLUG.
461+
#define X2_ENDSTOP_ADJUSTMENT 0 // X2 offset relative to X endstop
462+
#endif
463+
#endif
464+
465+
#if HAS_DUAL_Y_STEPPERS
466+
//#define INVERT_Y2_VS_Y_DIR // Y2 direction signal is the opposite of Y
467+
//#define Y_DUAL_ENDSTOPS // Y2 has its own endstop
468+
#if ENABLED(Y_DUAL_ENDSTOPS)
469+
#define Y2_USE_ENDSTOP _YMAX_ // Y2 endstop board plug. Don't forget to enable USE_*_PLUG.
470+
#define Y2_ENDSTOP_ADJUSTMENT 0 // Y2 offset relative to Y endstop
471+
#endif
472+
#endif
473+
474+
//
475+
// Multi-Z steppers
476+
//
477+
#ifdef Z2_DRIVER_TYPE
478+
//#define INVERT_Z2_VS_Z_DIR // Z2 direction signal is the opposite of Z
479+
480+
//#define Z_MULTI_ENDSTOPS // Other Z axes have their own endstops
481+
#if ENABLED(Z_MULTI_ENDSTOPS)
482+
#define Z2_USE_ENDSTOP _XMAX_ // Z2 endstop board plug. Don't forget to enable USE_*_PLUG.
483+
#define Z2_ENDSTOP_ADJUSTMENT 0 // Z2 offset relative to Z endstop
484+
#endif
485+
#ifdef Z3_DRIVER_TYPE
486+
//#define INVERT_Z3_VS_Z_DIR // Z3 direction signal is the opposite of Z
487+
#if ENABLED(Z_MULTI_ENDSTOPS)
488+
#define Z3_USE_ENDSTOP _YMAX_ // Z3 endstop board plug. Don't forget to enable USE_*_PLUG.
489+
#define Z3_ENDSTOP_ADJUSTMENT 0 // Z3 offset relative to Z endstop
490+
#endif
491+
#endif
492+
#ifdef Z4_DRIVER_TYPE
493+
//#define INVERT_Z4_VS_Z_DIR // Z4 direction signal is the opposite of Z
494+
#if ENABLED(Z_MULTI_ENDSTOPS)
495+
#define Z4_USE_ENDSTOP _ZMAX_ // Z4 endstop board plug. Don't forget to enable USE_*_PLUG.
496+
#define Z4_ENDSTOP_ADJUSTMENT 0 // Z4 offset relative to Z endstop
497+
#endif
498+
#endif
499+
#endif
500+
501+
// Drive the E axis with two synchronized steppers
502+
//#define E_DUAL_STEPPER_DRIVERS
503+
#if ENABLED(E_DUAL_STEPPER_DRIVERS)
504+
//#define INVERT_E1_VS_E0_DIR // E direction signals are opposites
505+
#endif
380506

381507
// Activate a solenoid on the active extruder with M380. Disable all with M381.
382508
// Define SOL0_PIN, SOL1_PIN, etc., for each extruder that has a solenoid.
@@ -626,7 +752,133 @@
626752
#define LED_USER_PRESET_BRIGHTNESS 255 // User defined intensity
627753
//#define LED_USER_PRESET_STARTUP // Have the printer display the user preset color on startup
628754
#endif
629-
#endif // LED_CONTROL_MENU
755+
#endif
756+
757+
#if HAS_MARLINUI_MENU
758+
759+
#if HAS_BED_PROBE
760+
// Add calibration in the Probe Offsets menu to compensate for X-axis twist.
761+
//#define X_AXIS_TWIST_COMPENSATION
762+
#if ENABLED(X_AXIS_TWIST_COMPENSATION)
763+
/**
764+
* Enable to init the Probe Z-Offset when starting the Wizard.
765+
* Use a height slightly above the estimated nozzle-to-probe Z offset.
766+
* For example, with an offset of -5, consider a starting height of -4.
767+
*/
768+
#define XATC_START_Z 0.0
769+
#define XATC_MAX_POINTS 3 // Number of points to probe in the wizard
770+
#define XATC_Y_POSITION Y_CENTER // (mm) Y position to probe
771+
#define XATC_Z_OFFSETS { 0, 0, 0 } // Z offsets for X axis sample points
772+
#endif
773+
774+
// Show Deploy / Stow Probe options in the Motion menu.
775+
#define PROBE_DEPLOY_STOW_MENU
776+
#endif
777+
778+
// Include a page of printer information in the LCD Main Menu
779+
//#define LCD_INFO_MENU
780+
#if ENABLED(LCD_INFO_MENU)
781+
//#define LCD_PRINTER_INFO_IS_BOOTSCREEN // Show bootscreen(s) instead of Printer Info pages
782+
#endif
783+
784+
// Add 50/100mm moves to MarlinUI even with a smaller bed
785+
//#define LARGE_MOVE_ITEMS
786+
787+
// BACK menu items keep the highlight at the top
788+
//#define TURBO_BACK_MENU_ITEM
789+
790+
// Insert a menu for preheating at the top level to allow for quick access
791+
//#define PREHEAT_SHORTCUT_MENU_ITEM
792+
793+
#endif // HAS_MARLINUI_MENU
794+
795+
#if HAS_DISPLAY
796+
//#define SOUND_MENU_ITEM // Add a mute option to the LCD menu
797+
#define SOUND_ON_DEFAULT // Buzzer/speaker default enabled state
798+
799+
// The timeout to return to the status screen from sub-menus
800+
//#define LCD_TIMEOUT_TO_STATUS 15000 // (ms)
801+
802+
#if ENABLED(SHOW_BOOTSCREEN)
803+
#define BOOTSCREEN_TIMEOUT 4000 // (ms) Total Duration to display the boot screen(s)
804+
#if EITHER(HAS_MARLINUI_U8GLIB, TFT_COLOR_UI)
805+
#define BOOT_MARLIN_LOGO_SMALL // Show a smaller Marlin logo on the Boot Screen (saving lots of flash)
806+
#endif
807+
#endif
808+
809+
// Scroll a longer status message into view
810+
//#define STATUS_MESSAGE_SCROLLING
811+
812+
// Apply a timeout to low-priority status messages
813+
//#define STATUS_MESSAGE_TIMEOUT_SEC 30 // (seconds)
814+
815+
// On the Info Screen, display XY with one decimal place when possible
816+
//#define LCD_DECIMAL_SMALL_XY
817+
818+
// Show the E position (filament used) during printing
819+
//#define LCD_SHOW_E_TOTAL
820+
821+
/**
822+
* LED Control Menu
823+
* Add LED Control to the LCD menu
824+
*/
825+
//#define LED_CONTROL_MENU
826+
#if ENABLED(LED_CONTROL_MENU)
827+
#define LED_COLOR_PRESETS // Enable the Preset Color menu option
828+
//#define NEO2_COLOR_PRESETS // Enable a second NeoPixel Preset Color menu option
829+
#if ENABLED(LED_COLOR_PRESETS)
830+
#define LED_USER_PRESET_RED 255 // User defined RED value
831+
#define LED_USER_PRESET_GREEN 128 // User defined GREEN value
832+
#define LED_USER_PRESET_BLUE 0 // User defined BLUE value
833+
#define LED_USER_PRESET_WHITE 255 // User defined WHITE value
834+
#define LED_USER_PRESET_BRIGHTNESS 255 // User defined intensity
835+
//#define LED_USER_PRESET_STARTUP // Have the printer display the user preset color on startup
836+
#endif
837+
#if ENABLED(NEO2_COLOR_PRESETS)
838+
#define NEO2_USER_PRESET_RED 255 // User defined RED value
839+
#define NEO2_USER_PRESET_GREEN 128 // User defined GREEN value
840+
#define NEO2_USER_PRESET_BLUE 0 // User defined BLUE value
841+
#define NEO2_USER_PRESET_WHITE 255 // User defined WHITE value
842+
#define NEO2_USER_PRESET_BRIGHTNESS 255 // User defined intensity
843+
//#define NEO2_USER_PRESET_STARTUP // Have the printer display the user preset color on startup for the second strip
844+
#endif
845+
#endif
846+
847+
#endif // HAS_DISPLAY
848+
849+
// Add 'M73' to set print job progress, overrides Marlin's built-in estimate
850+
//#define SET_PROGRESS_MANUALLY
851+
#if ENABLED(SET_PROGRESS_MANUALLY)
852+
#define SET_PROGRESS_PERCENT // Add 'P' parameter to set percentage done
853+
#define SET_REMAINING_TIME // Add 'R' parameter to set remaining time
854+
//#define SET_INTERACTION_TIME // Add 'C' parameter to set time until next filament change or other user interaction
855+
//#define M73_REPORT // Report M73 values to host
856+
#if BOTH(M73_REPORT, SDSUPPORT)
857+
#define M73_REPORT_SD_ONLY // Report only when printing from SD
858+
#endif
859+
#endif
860+
861+
// LCD Print Progress options. Multiple times may be displayed in turn.
862+
#if HAS_DISPLAY && EITHER(SDSUPPORT, SET_PROGRESS_MANUALLY)
863+
#define SHOW_PROGRESS_PERCENT // Show print progress percentage (doesn't affect progress bar)
864+
#define SHOW_ELAPSED_TIME // Display elapsed printing time (prefix 'E')
865+
//#define SHOW_REMAINING_TIME // Display estimated time to completion (prefix 'R')
866+
#if ENABLED(SET_INTERACTION_TIME)
867+
#define SHOW_INTERACTION_TIME // Display time until next user interaction ('C' = filament change)
868+
#endif
869+
//#define PRINT_PROGRESS_SHOW_DECIMALS // Show/report progress with decimal digits, not all UIs support this
870+
871+
#if EITHER(HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL)
872+
//#define LCD_PROGRESS_BAR // Show a progress bar on HD44780 LCDs for SD printing
873+
#if ENABLED(LCD_PROGRESS_BAR)
874+
#define PROGRESS_BAR_BAR_TIME 2000 // (ms) Amount of time to show the bar
875+
#define PROGRESS_BAR_MSG_TIME 3000 // (ms) Amount of time to show the status message
876+
#define PROGRESS_MSG_EXPIRE 0 // (ms) Amount of time to retain the status message (0=forever)
877+
//#define PROGRESS_MSG_ONCE // Show the message for MSG_TIME then clear it
878+
//#define LCD_PROGRESS_BAR_TEST // Add a menu item to test the progress bar
879+
#endif
880+
#endif
881+
#endif
630882

631883
#if ENABLED(SDSUPPORT)
632884

@@ -838,8 +1090,15 @@
8381090
*/
8391091
//#define LIN_ADVANCE
8401092
#if ENABLED(LIN_ADVANCE)
841-
#define LIN_ADVANCE_K 0.22 // Unit: mm compression per 1mm/s extruder speed
842-
//#define LA_DEBUG // If enabled, this will generate debug information output over USB.
1093+
#if ENABLED(DISTINCT_E_FACTORS)
1094+
#define ADVANCE_K { 0.22 } // (mm) Compression length per 1mm/s extruder speed, per extruder
1095+
#else
1096+
#define ADVANCE_K 0.22 // (mm) Compression length applying to all extruders
1097+
#endif
1098+
//#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L.
1099+
//#define LA_DEBUG // Print debug information to serial during operation. Disable for production use.
1100+
//#define ALLOW_LOW_EJERK // Allow a DEFAULT_EJERK value of <10. Recommended for direct drive hotends.
1101+
//#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz.
8431102
#endif
8441103

8451104
// @section leveling

Marlin/Version.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
* here we define this default string as the date where the latest release
4242
* version was tagged.
4343
*/
44-
//#define STRING_DISTRIBUTION_DATE "2023-01-11"
44+
//#define STRING_DISTRIBUTION_DATE "2023-02-03"
4545

4646
/**
4747
* Defines a generic printer name to be output to the LCD after booting Marlin.

Marlin/src/HAL/AVR/fastio.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -293,11 +293,11 @@ enum ClockSource2 : uint8_t {
293293

294294
#if HAS_MOTOR_CURRENT_PWM
295295
#if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
296-
#define PWM_CHK_MOTOR_CURRENT(P) (P == MOTOR_CURRENT_PWM_E || P == MOTOR_CURRENT_PWM_E0 || P == MOTOR_CURRENT_PWM_E1 || P == MOTOR_CURRENT_PWM_Z || P == MOTOR_CURRENT_PWM_XY)
296+
#define PWM_CHK_MOTOR_CURRENT(P) (P == MOTOR_CURRENT_PWM_E_PIN || P == MOTOR_CURRENT_PWM_E0_PIN || P == MOTOR_CURRENT_PWM_E1_PIN || P == MOTOR_CURRENT_PWM_Z_PIN || P == MOTOR_CURRENT_PWM_XY_PIN)
297297
#elif PIN_EXISTS(MOTOR_CURRENT_PWM_Z)
298-
#define PWM_CHK_MOTOR_CURRENT(P) (P == MOTOR_CURRENT_PWM_E || P == MOTOR_CURRENT_PWM_E0 || P == MOTOR_CURRENT_PWM_E1 || P == MOTOR_CURRENT_PWM_Z)
298+
#define PWM_CHK_MOTOR_CURRENT(P) (P == MOTOR_CURRENT_PWM_E_PIN || P == MOTOR_CURRENT_PWM_E0_PIN || P == MOTOR_CURRENT_PWM_E1_PIN || P == MOTOR_CURRENT_PWM_Z_PIN)
299299
#else
300-
#define PWM_CHK_MOTOR_CURRENT(P) (P == MOTOR_CURRENT_PWM_E || P == MOTOR_CURRENT_PWM_E0 || P == MOTOR_CURRENT_PWM_E1)
300+
#define PWM_CHK_MOTOR_CURRENT(P) (P == MOTOR_CURRENT_PWM_E_PIN || P == MOTOR_CURRENT_PWM_E0_PIN || P == MOTOR_CURRENT_PWM_E1_PIN)
301301
#endif
302302
#else
303303
#define PWM_CHK_MOTOR_CURRENT(P) false

0 commit comments

Comments
 (0)