Skip to content

Commit 3f8dcd5

Browse files
committed
Merge branch '2.0.x' into 2.0.x_cr30
2 parents a9204bc + d6c26f4 commit 3f8dcd5

File tree

624 files changed

+9458
-5303
lines changed

Some content is hidden

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

624 files changed

+9458
-5303
lines changed

.github/workflows/check-pr.yml

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ jobs:
2222
steps:
2323
- uses: peter-evans/close-pull@v1
2424
with:
25+
token: ${{ github.token }}
2526
delete-branch: false
2627
comment: >
2728
Thanks for your contribution! Unfortunately we can't accept PRs directed at release branches. We make patches to the bugfix branches and only later do we push them out as releases.

.github/workflows/test-builds.yml

+21-18
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,25 @@ jobs:
3636
# Base Environments
3737

3838
- DUE
39+
- DUE_archim
3940
- esp32
4041
- linux_native
4142
- mega2560
43+
- at90usb1286_dfu
4244
- teensy31
4345
- teensy35
4446
- teensy41
4547
- SAMD51_grandcentral_m4
4648

4749
# Extended AVR Environments
4850

49-
- FYSETC_F6_13
51+
- FYSETC_F6
5052
- mega1280
5153
- rambo
5254
- sanguino1284p
5355
- sanguino644p
5456

55-
# Extended STM32 Environments
57+
# STM32F1 (Maple) Environments
5658

5759
- STM32F103RC_btt
5860
- STM32F103RC_btt_USB
@@ -62,40 +64,45 @@ jobs:
6264
- STM32F103RC_meeb
6365
- jgaurora_a5s_a1
6466
- STM32F103VE_longer
67+
- mks_robin
68+
- mks_robin_lite
69+
- mks_robin_pro
70+
- STM32F103RET6_creality
71+
- mks_robin_nano35
72+
73+
# STM32 (ST) Environments
74+
75+
- STM32F103RC_btt_stm32
6576
- STM32F407VE_black
6677
- STM32F401VE_STEVAL
6778
- BIGTREE_BTT002
6879
- BIGTREE_SKR_PRO
6980
- BIGTREE_GTR_V1_0
70-
- mks_robin
7181
- mks_robin_stm32
7282
- ARMED
7383
- FYSETC_S6
7484
- STM32F070CB_malyan
7585
- STM32F070RB_malyan
7686
- malyan_M300
77-
- mks_robin_lite
7887
- FLYF407ZG
7988
- rumba32
80-
- mks_robin_pro
81-
- STM32F103RET6_creality
8289
- LERDGEX
83-
- mks_robin_nano35
90+
- LERDGEK
91+
- mks_robin_nano35_stm32
92+
- NUCLEO_F767ZI
93+
- REMRAM_V1
94+
- BTT_SKR_SE_BX
95+
- chitu_f103
8496

8597
# Put lengthy tests last
8698

8799
- LPC1768
88100
- LPC1769
89101

90-
# STM32 with non-STM framework. both broken for now. they should use HAL_STM32 which is working.
91-
92-
#- STM32F4
93-
#- STM32F7
94-
95102
# Non-working environment tests
96103
#- at90usb1286_cdc
97-
#- at90usb1286_dfu
98104
#- STM32F103CB_malyan
105+
#- STM32F103RE
99106
#- mks_robin_mini
100107

101108
steps:
@@ -116,8 +123,4 @@ jobs:
116123

117124
- name: Run ${{ matrix.test-platform }} Tests
118125
run: |
119-
# Inline tests script
120-
chmod +x buildroot/bin/*
121-
chmod +x buildroot/tests/*
122-
export PATH=./buildroot/bin/:./buildroot/tests/:${PATH}
123-
run_tests . ${{ matrix.test-platform }}
126+
make tests-single-ci TEST_TARGET=${{ matrix.test-platform }}

Marlin/Configuration.h

+13-3
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
*
3636
* Advanced settings can be found in Configuration_adv.h
3737
*/
38-
#define CONFIGURATION_H_VERSION 020008
38+
#define CONFIGURATION_H_VERSION 02000801
3939

4040
//===========================================================================
4141
//============================= Getting Started =============================
@@ -111,6 +111,13 @@
111111
*/
112112
//#define SERIAL_PORT_2 3
113113

114+
/**
115+
* Select a third serial port on the board to use for communication with the host.
116+
* Currently only supported for AVR, DUE, LPC1768/9 and STM32/STM32F1
117+
* :[-1, 0, 1, 2, 3, 4, 5, 6, 7]
118+
*/
119+
//#define SERIAL_PORT_3 1
120+
114121
/**
115122
* This setting determines the communication speed of the printer.
116123
*
@@ -1498,6 +1505,8 @@
14981505
//#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // When the nozzle is off the mesh, this value is used
14991506
// as the Z-Height correction value.
15001507

1508+
//#define UBL_MESH_WIZARD // Run several commands in a row to get a complete mesh
1509+
15011510
#elif ENABLED(MESH_BED_LEVELING)
15021511

15031512
//===========================================================================
@@ -2266,7 +2275,8 @@
22662275
// MKS LCD12864A/B with graphic controller and SD support. Follows MKS_MINI_12864 pinout.
22672276
// https://www.aliexpress.com/item/33018110072.html
22682277
//
2269-
//#define MKS_LCD12864
2278+
//#define MKS_LCD12864A
2279+
//#define MKS_LCD12864B
22702280

22712281
//
22722282
// FYSETC variant of the MINI12864 graphic controller with SD support
@@ -2574,7 +2584,7 @@
25742584
#define RET6_12864_LCD
25752585

25762586
//
2577-
// ADS7843/XPT2046 ADC Touchscreen such as ILI9341 2.8
2587+
// Touch Screen Settings
25782588
//
25792589
//#define TOUCH_SCREEN
25802590
#if ENABLED(TOUCH_SCREEN)

Marlin/Configuration_adv.h

+37-15
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
*
3131
* Basic settings can be found in Configuration.h
3232
*/
33-
#define CONFIGURATION_ADV_H_VERSION 020008
33+
#define CONFIGURATION_ADV_H_VERSION 02000801
3434

3535
//===========================================================================
3636
//============================= Thermal Settings ============================
@@ -1486,8 +1486,8 @@
14861486
#if ENABLED(MULTI_VOLUME)
14871487
#define VOLUME_SD_ONBOARD
14881488
#define VOLUME_USB_FLASH_DRIVE
1489-
#define DEFAULT_VOLUME SD_ONBOARD
1490-
#define DEFAULT_SHARED_VOLUME USB_FLASH_DRIVE
1489+
#define DEFAULT_VOLUME SV_SD_ONBOARD
1490+
#define DEFAULT_SHARED_VOLUME SV_USB_FLASH_DRIVE
14911491
#endif
14921492

14931493
#endif // SDSUPPORT
@@ -2301,14 +2301,15 @@
23012301
#endif // HAS_MULTI_EXTRUDER
23022302

23032303
/**
2304-
* Advanced Pause
2305-
* Experimental feature for filament change support and for parking the nozzle when paused.
2306-
* Adds the GCode M600 for initiating filament change.
2307-
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
2304+
* Advanced Pause for Filament Change
2305+
* - Adds the G-code M600 Filament Change to initiate a filament change.
2306+
* - This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
23082307
*
2309-
* Requires an LCD display.
2310-
* Requires NOZZLE_PARK_FEATURE.
2311-
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
2308+
* Requirements:
2309+
* - For Filament Change parking enable and configure NOZZLE_PARK_FEATURE.
2310+
* - For user interaction enable an LCD display, HOST_PROMPT_SUPPORT, or EMERGENCY_PARSER.
2311+
*
2312+
* Enable PARK_HEAD_ON_PAUSE to add the G-code M125 Pause and Park.
23122313
*/
23132314
#define ADVANCED_PAUSE_FEATURE
23142315
#if ENABLED(ADVANCED_PAUSE_FEATURE)
@@ -3166,13 +3167,19 @@
31663167
//#define AIR_EVACUATION // Cutter Vacuum / Laser Blower motor control with G-codes M10-M11
31673168
#if ENABLED(AIR_EVACUATION)
31683169
#define AIR_EVACUATION_ACTIVE LOW // Set to "HIGH" if the on/off function is active HIGH
3169-
#define AIR_EVACUATION_PIN 42 // Override the default Cutter Vacuum or Laser Blower pin
3170+
//#define AIR_EVACUATION_PIN 42 // Override the default Cutter Vacuum or Laser Blower pin
3171+
#endif
3172+
3173+
//#define AIR_ASSIST // Air Assist control with G-codes M8-M9
3174+
#if ENABLED(AIR_ASSIST)
3175+
#define AIR_ASSIST_ACTIVE LOW // Active state on air assist pin
3176+
//#define AIR_ASSIST_PIN 44 // Override the default Air Assist pin
31703177
#endif
31713178

3172-
//#define SPINDLE_SERVO // A servo converting an angle to spindle power
3179+
//#define SPINDLE_SERVO // A servo converting an angle to spindle power
31733180
#ifdef SPINDLE_SERVO
3174-
#define SPINDLE_SERVO_NR 0 // Index of servo used for spindle control
3175-
#define SPINDLE_SERVO_MIN 10 // Minimum angle for servo spindle
3181+
#define SPINDLE_SERVO_NR 0 // Index of servo used for spindle control
3182+
#define SPINDLE_SERVO_MIN 10 // Minimum angle for servo spindle
31763183
#endif
31773184

31783185
/**
@@ -3409,6 +3416,11 @@
34093416
*/
34103417
#define AUTO_REPORT_TEMPERATURES
34113418

3419+
/**
3420+
* Auto-report position with M154 S<seconds>
3421+
*/
3422+
//#define AUTO_REPORT_POSITION
3423+
34123424
/**
34133425
* Include capabilities in M115 output
34143426
*/
@@ -3478,7 +3490,7 @@
34783490
#define PROPORTIONAL_FONT_RATIO 1.0
34793491

34803492
/**
3481-
* Spend 28 bytes of SRAM to optimize the GCode parser
3493+
* Spend 28 bytes of SRAM to optimize the G-code parser
34823494
*/
34833495
#define FASTER_GCODE_PARSER
34843496

@@ -3774,6 +3786,16 @@
37743786
#define GANTRY_CALIBRATION_COMMANDS_POST "G28" // G28 highly recommended to ensure an accurate position
37753787
#endif
37763788

3789+
/**
3790+
* Instant freeze / unfreeze functionality
3791+
* Specified pin has pullup and connecting to ground will instantly pause motion.
3792+
* Potentially useful for emergency stop that allows being resumed.
3793+
*/
3794+
//#define FREEZE_FEATURE
3795+
#if ENABLED(FREEZE_FEATURE)
3796+
//#define FREEZE_PIN 41 // Override the default (KILL) pin here
3797+
#endif
3798+
37773799
/**
37783800
* MAX7219 Debug Matrix
37793801
*

Marlin/Version.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
/**
2929
* Marlin release version identifier
3030
*/
31-
//#define SHORT_BUILD_VERSION "2.0.8"
31+
//#define SHORT_BUILD_VERSION "2.0.8.1"
3232

3333
/**
3434
* Verbose version identifier which should contain a reference to the location
@@ -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 "2021-04-30"
44+
//#define STRING_DISTRIBUTION_DATE "2021-05-15"
4545

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

Marlin/src/HAL/AVR/HAL.h

+11-4
Original file line numberDiff line numberDiff line change
@@ -93,28 +93,35 @@ typedef int8_t pin_t;
9393
#define MYSERIAL1 TERN(BLUETOOTH, btSerial, MSerial0)
9494
#else
9595
#if !WITHIN(SERIAL_PORT, -1, 3)
96-
#error "SERIAL_PORT must be from 0 to 3. You can also use -1 if the board supports Native USB."
96+
#error "SERIAL_PORT must be from 0 to 3, or -1 for USB Serial."
9797
#endif
9898
#define MYSERIAL1 customizedSerial1
9999

100100
#ifdef SERIAL_PORT_2
101101
#if !WITHIN(SERIAL_PORT_2, -1, 3)
102-
#error "SERIAL_PORT_2 must be from 0 to 3. You can also use -1 if the board supports Native USB."
102+
#error "SERIAL_PORT_2 must be from 0 to 3, or -1 for USB Serial."
103103
#endif
104104
#define MYSERIAL2 customizedSerial2
105105
#endif
106+
107+
#ifdef SERIAL_PORT_3
108+
#if !WITHIN(SERIAL_PORT_3, -1, 3)
109+
#error "SERIAL_PORT_3 must be from 0 to 3, or -1 for USB Serial."
110+
#endif
111+
#define MYSERIAL3 customizedSerial3
112+
#endif
106113
#endif
107114

108115
#ifdef MMU2_SERIAL_PORT
109116
#if !WITHIN(MMU2_SERIAL_PORT, -1, 3)
110-
#error "MMU2_SERIAL_PORT must be from 0 to 3. You can also use -1 if the board supports Native USB."
117+
#error "MMU2_SERIAL_PORT must be from 0 to 3, or -1 for USB Serial."
111118
#endif
112119
#define MMU2_SERIAL mmuSerial
113120
#endif
114121

115122
#ifdef LCD_SERIAL_PORT
116123
#if !WITHIN(LCD_SERIAL_PORT, -1, 3)
117-
#error "LCD_SERIAL_PORT must be from 0 to 3. You can also use -1 if the board supports Native USB."
124+
#error "LCD_SERIAL_PORT must be from 0 to 3, or -1 for USB Serial."
118125
#endif
119126
#define LCD_SERIAL lcdSerial
120127
#if HAS_DGUS_LCD

Marlin/src/HAL/AVR/MarlinSerial.cpp

+25-7
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ ISR(SERIAL_REGNAME(USART, SERIAL_PORT, _UDRE_vect)) {
567567

568568
// Because of the template definition above, it's required to instantiate the template to have all methods generated
569569
template class MarlinSerial< MarlinSerialCfg<SERIAL_PORT> >;
570-
MSerialT customizedSerial1(MSerialT::HasEmergencyParser);
570+
MSerialT1 customizedSerial1(MSerialT1::HasEmergencyParser);
571571

572572
#ifdef SERIAL_PORT_2
573573

@@ -582,7 +582,24 @@ MSerialT customizedSerial1(MSerialT::HasEmergencyParser);
582582

583583
template class MarlinSerial< MarlinSerialCfg<SERIAL_PORT_2> >;
584584
MSerialT2 customizedSerial2(MSerialT2::HasEmergencyParser);
585-
#endif
585+
586+
#endif // SERIAL_PORT_2
587+
588+
#ifdef SERIAL_PORT_3
589+
590+
// Hookup ISR handlers
591+
ISR(SERIAL_REGNAME(USART, SERIAL_PORT_3, _RX_vect)) {
592+
MarlinSerial<MarlinSerialCfg<SERIAL_PORT_3>>::store_rxd_char();
593+
}
594+
595+
ISR(SERIAL_REGNAME(USART, SERIAL_PORT_3, _UDRE_vect)) {
596+
MarlinSerial<MarlinSerialCfg<SERIAL_PORT_3>>::_tx_udr_empty_irq();
597+
}
598+
599+
template class MarlinSerial< MarlinSerialCfg<SERIAL_PORT_3> >;
600+
MSerialT3 customizedSerial3(MSerialT3::HasEmergencyParser);
601+
602+
#endif // SERIAL_PORT_3
586603

587604
#ifdef MMU2_SERIAL_PORT
588605

@@ -595,8 +612,9 @@ MSerialT customizedSerial1(MSerialT::HasEmergencyParser);
595612
}
596613

597614
template class MarlinSerial< MMU2SerialCfg<MMU2_SERIAL_PORT> >;
598-
MSerialT3 mmuSerial(MSerialT3::HasEmergencyParser);
599-
#endif
615+
MSerialMMU2 mmuSerial(MSerialMMU2::HasEmergencyParser);
616+
617+
#endif // MMU2_SERIAL_PORT
600618

601619
#ifdef LCD_SERIAL_PORT
602620

@@ -609,7 +627,7 @@ MSerialT customizedSerial1(MSerialT::HasEmergencyParser);
609627
}
610628

611629
template class MarlinSerial< LCDSerialCfg<LCD_SERIAL_PORT> >;
612-
MSerialT4 lcdSerial(MSerialT4::HasEmergencyParser);
630+
MSerialLCD lcdSerial(MSerialLCD::HasEmergencyParser);
613631

614632
#if HAS_DGUS_LCD
615633
template<typename Cfg>
@@ -622,13 +640,13 @@ MSerialT customizedSerial1(MSerialT::HasEmergencyParser);
622640
}
623641
#endif
624642

625-
#endif
643+
#endif // LCD_SERIAL_PORT
626644

627645
#endif // !USBCON && (UBRRH || UBRR0H || UBRR1H || UBRR2H || UBRR3H)
628646

629647
// For AT90USB targets use the UART for BT interfacing
630648
#if defined(USBCON) && ENABLED(BLUETOOTH)
631-
MSerialT5 bluetoothSerial(false);
649+
MSerialBT bluetoothSerial(false);
632650
#endif
633651

634652
#endif // __AVR__

0 commit comments

Comments
 (0)