Skip to content

Commit 7b83d25

Browse files
committed
Merge branch 'bugfix-2.1.x' into pr/25327
2 parents 8952aed + 67948ad commit 7b83d25

File tree

518 files changed

+12694
-8879
lines changed

Some content is hidden

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

518 files changed

+12694
-8879
lines changed

.github/workflows/ci-build-tests.yml

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,12 @@ jobs:
151151
# HC32
152152
- HC32F460C_aquila_101
153153

154+
# GD32F3
155+
- GD32F303RE_creality_mfl
156+
157+
# GD32F1
158+
- GD32F103RC_aquila_mfl
159+
154160
# LPC176x - Lengthy tests
155161
- LPC1768
156162
- LPC1769
@@ -164,15 +170,20 @@ jobs:
164170
uses: actions/cache@v4
165171
with:
166172
path: ~/.cache/pip
167-
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
173+
key: ${{ runner.os }}-pip-build-v1
168174
restore-keys: |
169-
${{ runner.os }}-pip-
175+
${{ runner.os }}-pip-build-
170176
171177
- name: Cache PlatformIO
172178
uses: actions/cache@v4
173179
with:
174-
path: ~/.platformio
175-
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
180+
path: |
181+
~/.platformio
182+
.pio/build
183+
.pio/libdeps
184+
key: ${{ runner.os }}-pio-build-v1
185+
restore-keys: |
186+
${{ runner.os }}-pio-build-
176187
177188
- name: Select Python 3.9
178189
uses: actions/setup-python@v5

.github/workflows/ci-unit-tests.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,20 @@ jobs:
4646
uses: actions/cache@v4
4747
with:
4848
path: ~/.cache/pip
49-
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
49+
key: ${{ runner.os }}-pip-unit-v1
5050
restore-keys: |
51-
${{ runner.os }}-pip-
51+
${{ runner.os }}-pip-unit-
5252
5353
- name: Cache PlatformIO
5454
uses: actions/cache@v4
5555
with:
56-
path: ~/.platformio
57-
key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
56+
path: |
57+
~/.platformio
58+
.pio/build
59+
.pio/libdeps
60+
key: ${{ runner.os }}-pio-tests-v1
61+
restore-keys: |
62+
${{ runner.os }}-pio-tests-
5863
5964
- name: Select Python 3.9
6065
uses: actions/setup-python@v5

.github/workflows/ci-validate-boards.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ jobs:
3333
uses: actions/cache@v4
3434
with:
3535
path: ~/.cache/pip
36-
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
36+
key: ${{ runner.os }}-pip-boards-v1
3737
restore-keys: |
38-
${{ runner.os }}-pip-
38+
${{ runner.os }}-pip-boards-
3939
4040
- name: Select Python 3.9
4141
uses: actions/setup-python@v5

.github/workflows/ci-validate-pins.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ jobs:
3636
uses: actions/cache@v4
3737
with:
3838
path: ~/.cache/pip
39-
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
39+
key: ${{ runner.os }}-pip-pins-v1
4040
restore-keys: |
41-
${{ runner.os }}-pip-
41+
${{ runner.os }}-pip-pins-
4242
4343
- name: Select Python 3.9
4444
uses: actions/setup-python@v5

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ help:
1717
@echo "make tests-all-local-docker : Run all tests locally, using docker"
1818
@echo "make unit-test-single-local : Run unit tests for a single config locally"
1919
@echo "make unit-test-single-local-docker : Run unit tests for a single config locally, using docker"
20-
@echo "make unit-test-all-local : Run all code tests locally"
20+
@echo "make unit-test-all-local : Run all code tests locally"
2121
@echo "make unit-test-all-local-docker : Run all code tests locally, using docker"
2222
@echo "make setup-local-docker : Setup local docker using buildx"
2323
@echo ""

Marlin/Configuration.h

Lines changed: 63 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@
129129

130130
// Name displayed in the LCD "Ready" message and Info menu
131131
//#define CUSTOM_MACHINE_NAME "3D Printer"
132+
//#define CONFIGURABLE_MACHINE_NAME // Add G-code M550 to set/report the machine name
132133

133134
// Printer's unique ID, used by some programs to differentiate between machines.
134135
// Choose your own or use a service like https://www.uuidgenerator.net/version4
@@ -259,6 +260,7 @@
259260
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // A pair of angles for { E0, E1 }.
260261
// For Dual Servo use two pairs: { { lower, raise }, { lower, raise } }
261262
#define SWITCHING_NOZZLE_SERVO_DWELL 2500 // Dwell time to wait for servo to make physical move
263+
#define SWITCHING_NOZZLE_LIFT_TO_PROBE // Lift toolheads out of the way while probing
262264
#endif
263265

264266
// Switch nozzles by bumping the toolhead. Requires EVENT_GCODE_TOOLCHANGE_#.
@@ -695,8 +697,9 @@
695697
#define PID_K1 0.95 // Smoothing factor within any PID loop
696698

697699
#if ENABLED(PIDTEMP)
698-
//#define MIN_POWER 0
699-
//#define PID_DEBUG // Print PID debug data to the serial port. Use 'M303 D' to toggle activation.
700+
//#define MIN_POWER 0 // Min power to improve PID stability (0..PID_MAX).
701+
// Get the power from the temperature report ('M105' => @:nnn) and try P*2-20 to P*2-10.
702+
//#define PID_DEBUG // Print PID debug data to the serial port. Use 'M303 D' to enable/disable.
700703
//#define PID_PARAMS_PER_HOTEND // Use separate PID parameters for each extruder (useful for mismatched extruders)
701704
// Set/get with G-code: M301 E[extruder number, 0-2]
702705

@@ -795,8 +798,9 @@
795798
//#define PIDTEMPBED
796799

797800
#if ENABLED(PIDTEMPBED)
798-
//#define MIN_BED_POWER 0
799-
//#define PID_BED_DEBUG // Print Bed PID debug data to the serial port.
801+
//#define MIN_BED_POWER 0 // Min power to improve PID stability (0..MAX_BED_POWER).
802+
// Get the power from the temperature report ('M105' => B@:nnn) and try P*2-20 to P*2-10.
803+
//#define PID_BED_DEBUG // Print Bed PID debug data to the serial port. Use 'M303 D' to enable/disable.
800804

801805
// 120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
802806
// from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
@@ -877,12 +881,12 @@
877881
#define MAX_CHAMBER_POWER 255 // limits duty cycle to chamber heater; 255=full current
878882

879883
#if ENABLED(PIDTEMPCHAMBER)
880-
#define MIN_CHAMBER_POWER 0
881-
//#define PID_CHAMBER_DEBUG // Print Chamber PID debug data to the serial port.
884+
//#define MIN_CHAMBER_POWER 0 // Min power to improve PID stability. (0..MAX_CHAMBER_POWER)
885+
// Get the power from the temperature report ('M105' => C@:nnn) and try P*2-20 to P*2-10.
886+
//#define PID_CHAMBER_DEBUG // Print Chamber PID debug data to the serial port. Use 'M303 D' to enable/disable.
882887

883888
// Lasko "MyHeat Personal Heater" (200w) modified with a Fotek SSR-10DA to control only the heating element
884889
// and placed inside the small Creality printer enclosure tent.
885-
//
886890
#define DEFAULT_chamberKp 37.04
887891
#define DEFAULT_chamberKi 1.40
888892
#define DEFAULT_chamberKd 655.17
@@ -896,7 +900,7 @@
896900
#if ANY(PIDTEMP, PIDTEMPBED, PIDTEMPCHAMBER)
897901
//#define PID_OPENLOOP // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
898902
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
899-
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
903+
#define PID_FUNCTIONAL_RANGE 20 // If the temperature difference between the target temperature and the actual temperature
900904
// is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
901905

902906
//#define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of flash)
@@ -1024,9 +1028,6 @@
10241028
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
10251029
#define PRINTABLE_RADIUS 140.0 // (mm)
10261030

1027-
// Maximum reachable area
1028-
#define DELTA_MAX_RADIUS 140.0 // (mm)
1029-
10301031
// Center-to-center distance of the holes in the diagonal push rods.
10311032
#define DELTA_DIAGONAL_ROD 250.0 // (mm)
10321033

@@ -1539,6 +1540,20 @@
15391540
#define PROBE_DEPLOY_FEEDRATE (133*60) // (mm/min) Probe deploy speed
15401541
#define PROBE_STOW_FEEDRATE (133*60) // (mm/min) Probe stow speed
15411542

1543+
/**
1544+
* Magnetically Mounted Probe with a Servo mechanism
1545+
* Probe Deploy and Stow both follow the same basic sequence:
1546+
* - Rotate the SERVO to its Deployed angle
1547+
* - Perform XYZ moves to deploy or stow the PROBE
1548+
* - Rotate the SERVO to its Stowed angle
1549+
*/
1550+
//#define MAG_MOUNTED_PROBE_SERVO_NR 0 // Servo Number for this probe
1551+
#ifdef MAG_MOUNTED_PROBE_SERVO_NR
1552+
#define MAG_MOUNTED_PROBE_SERVO_ANGLES { 90, 0 } // Servo Angles for Deployed, Stowed
1553+
#define MAG_MOUNTED_PRE_DEPLOY { PROBE_DEPLOY_FEEDRATE, { 15, 160, 30 } } // Safe position for servo activation
1554+
#define MAG_MOUNTED_PRE_STOW { PROBE_DEPLOY_FEEDRATE, { 15, 160, 30 } } // Safe position for servo deactivation
1555+
#endif
1556+
15421557
#define MAG_MOUNTED_DEPLOY_1 { PROBE_DEPLOY_FEEDRATE, { 245, 114, 30 } } // Move to side Dock & Attach probe
15431558
#define MAG_MOUNTED_DEPLOY_2 { PROBE_DEPLOY_FEEDRATE, { 210, 114, 30 } } // Move probe off dock
15441559
#define MAG_MOUNTED_DEPLOY_3 { PROBE_DEPLOY_FEEDRATE, { 0, 0, 0 } } // Extra move if needed
@@ -2022,8 +2037,11 @@
20222037
//#define FILAMENT_MOTION_SENSOR
20232038

20242039
#if ENABLED(FILAMENT_MOTION_SENSOR)
2025-
//#define FILAMENT_SWITCH_AND_MOTION
2040+
//#define FILAMENT_SWITCH_AND_MOTION // Define separate pins below to sense motion
20262041
#if ENABLED(FILAMENT_SWITCH_AND_MOTION)
2042+
2043+
#define FILAMENT_MOTION_DISTANCE_MM 3.0 // (mm) Missing distance required to trigger runout
2044+
20272045
#define NUM_MOTION_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_MOTION#_PIN for each.
20282046
//#define FIL_MOTION1_PIN -1
20292047

@@ -2059,7 +2077,7 @@
20592077
//#define FIL_MOTION8_STATE LOW
20602078
//#define FIL_MOTION8_PULLUP
20612079
//#define FIL_MOTION8_PULLDOWN
2062-
#endif
2080+
#endif // FILAMENT_SWITCH_AND_MOTION
20632081
#endif // FILAMENT_MOTION_SENSOR
20642082
#endif // FILAMENT_RUNOUT_DISTANCE_MM
20652083
#endif // FILAMENT_RUNOUT_SENSOR
@@ -2262,7 +2280,7 @@
22622280
//===========================================================================
22632281

22642282
#define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed
2265-
#define GRID_MAX_POINTS_X 3 // Don't use more than 7 points per axis, implementation limited.
2283+
#define GRID_MAX_POINTS_X 3
22662284
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
22672285

22682286
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
@@ -2898,13 +2916,15 @@
28982916
//
28992917
//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
29002918

2901-
//
2902-
// ANET and Tronxy 20x4 Controller
2903-
//
2904-
//#define ZONESTAR_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
2905-
// This LCD is known to be susceptible to electrical interference
2906-
// which scrambles the display. Pressing any button clears it up.
2907-
// This is a LCD2004 display with 5 analog buttons.
2919+
/**
2920+
* ANET and Tronxy 20x4 Controller
2921+
* LCD2004 display with 5 analog buttons.
2922+
*
2923+
* NOTE: Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
2924+
* This LCD is known to be susceptible to electrical interference which
2925+
* scrambles the display. Press any button to clear it up.
2926+
*/
2927+
//#define ZONESTAR_LCD
29082928

29092929
//
29102930
// Generic 16x2, 16x4, 20x2, or 20x4 character-based LCD.
@@ -3266,7 +3286,7 @@
32663286
#endif
32673287

32683288
//
3269-
// Touch-screen LCD for Malyan M200/M300 printers
3289+
// LCD for Malyan M200/M300 printers
32703290
//
32713291
//#define MALYAN_LCD
32723292

@@ -3541,22 +3561,26 @@
35413561
// :[1,2,3,4,5,6,7,8]
35423562
//#define NUM_M106_FANS 1
35433563

3544-
// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
3545-
// which is not as annoying as with the hardware PWM. On the other hand, if this frequency
3546-
// is too low, you should also increment SOFT_PWM_SCALE.
3564+
/**
3565+
* Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
3566+
* which is not as annoying as with the hardware PWM. On the other hand, if this frequency
3567+
* is too low, you should also increment SOFT_PWM_SCALE.
3568+
*/
35473569
//#define FAN_SOFT_PWM
35483570

3549-
// Incrementing this by 1 will double the software PWM frequency,
3550-
// affecting heaters, and the fan if FAN_SOFT_PWM is enabled.
3551-
// However, control resolution will be halved for each increment;
3552-
// at zero value, there are 128 effective control positions.
3553-
// :[0,1,2,3,4,5,6,7]
3571+
/**
3572+
* Incrementing this by 1 will double the software PWM frequency, affecting heaters, and
3573+
* the fan if FAN_SOFT_PWM is enabled. However, control resolution will be halved for each
3574+
* increment; at zero value, there are 128 effective control positions.
3575+
* :[0,1,2,3,4,5,6,7]
3576+
*/
35543577
#define SOFT_PWM_SCALE 0
35553578

3556-
// If SOFT_PWM_SCALE is set to a value higher than 0, dithering can
3557-
// be used to mitigate the associated resolution loss. If enabled,
3558-
// some of the PWM cycles are stretched so on average the desired
3559-
// duty cycle is attained.
3579+
/**
3580+
* If SOFT_PWM_SCALE is set to a value higher than 0, dithering can be used to mitigate the
3581+
* associated resolution loss. If enabled, some of the PWM cycles are stretched so on average
3582+
* the desired duty cycle is attained.
3583+
*/
35603584
//#define SOFT_PWM_DITHER
35613585

35623586
// @section extras
@@ -3566,9 +3590,11 @@
35663590

35673591
// @section lights
35683592

3569-
// Temperature status LEDs that display the hotend and bed temperature.
3570-
// If all hotends, bed temperature, and target temperature are under 54C
3571-
// then the BLUE led is on. Otherwise the RED led is on. (1C hysteresis)
3593+
/**
3594+
* Temperature status LEDs that display the hotend and bed temperature.
3595+
* If all hotends, bed temperature, and target temperature are under 54C
3596+
* the BLUE led is on. Otherwise the RED led is on. (1C hysteresis)
3597+
*/
35723598
//#define TEMP_STAT_LEDS
35733599

35743600
// Support for BlinkM/CyzRgb

0 commit comments

Comments
 (0)