Skip to content

Commit c50a821

Browse files
⛙ Merge w/Marlin
2 parents 08256fb + d897251 commit c50a821

80 files changed

Lines changed: 1468 additions & 335 deletions

File tree

Some content is hidden

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

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ format-lines:
161161

162162
validate-lines:
163163
@echo "Validating text formatting"
164-
@npx prettier --check . --editorconfig --object-wrap preserve
164+
@npx prettier --check . --editorconfig --object-wrap preserve --prose-wrap never
165165

166166
validate-urls:
167167
@echo "Checking URLs in source files"

Marlin/Configuration_adv.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1244,6 +1244,25 @@
12441244
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation.
12451245
#define FTM_MIN_SHAPE_FREQ 20 // (Hz) Minimum shaping frequency, lower consumes more RAM
12461246

1247+
/**
1248+
* TMC2208 / TMC2208_STANDALONE drivers require a brief pause after a DIR change
1249+
* to prevent a standstill shutdown when using StealthChop (the standalone default).
1250+
* These options cause FT Motion to delay for > 750µs after a DIR change on a given axis.
1251+
* Disable only if you are certain that this can never happen with your TMC2208s.
1252+
*/
1253+
#if AXIS_DRIVER_TYPE_X(TMC2208) || AXIS_DRIVER_TYPE_X(TMC2208_STANDALONE)
1254+
#define FTM_DIR_CHANGE_HOLD_X
1255+
#endif
1256+
#if AXIS_DRIVER_TYPE_Y(TMC2208) || AXIS_DRIVER_TYPE_Y(TMC2208_STANDALONE)
1257+
#define FTM_DIR_CHANGE_HOLD_Y
1258+
#endif
1259+
#if AXIS_DRIVER_TYPE_Z(TMC2208) || AXIS_DRIVER_TYPE_Z(TMC2208_STANDALONE)
1260+
#define FTM_DIR_CHANGE_HOLD_Z
1261+
#endif
1262+
#if HAS_E_DRIVER(TMC2208) || HAS_E_DRIVER(TMC2208_STANDALONE)
1263+
#define FTM_DIR_CHANGE_HOLD_E
1264+
#endif
1265+
12471266
#endif // FT_MOTION
12481267

12491268
/**
@@ -1790,6 +1809,12 @@
17901809
*/
17911810
//#define SD_SPI_SPEED SPI_HALF_SPEED
17921811

1812+
/**
1813+
* Reinit the LCD after SD Card insert/remove or when entering the menu.
1814+
* Required for some LCDs that use shared SPI with an external SD Card reader.
1815+
*/
1816+
#define REINIT_NOISY_LCD
1817+
17931818
// The standard SD detect circuit reads LOW when media is inserted and HIGH when empty.
17941819
// Enable this option and set to HIGH if your SD cards are incorrectly detected.
17951820
//#define SD_DETECT_STATE HIGH

Marlin/Version.h

Lines changed: 1 addition & 1 deletion
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 "2025-12-29"
44+
//#define STRING_DISTRIBUTION_DATE "2026-01-14"
4545

4646
#define STRING_DISTRIBUTION_DATE __DATE__
4747
#define STRING_DISTRIBUTION_TIME __TIME__

Marlin/src/HAL/HC32/README.md

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This document provides notes on the HAL for the HC32F460 MCU.
66

77
The HC32F460 HAL is designed to be generic enough for any HC32F460-based board. Adding support for a new HC32F460-based board will require the following steps:
88

9-
1. Follow [the usual instructions](https://marlinfw.org/docs/development/boards.html#adding-a-new-board) to add a new board to Marlin. (i.e., Add a pins file, edit `boards.h` and `pins.h`, etc.)
9+
1. Follow [the usual instructions](//marlinfw.org/docs/development/boards.html#adding-a-new-board) to add a new board to Marlin. (i.e., Add a pins file, edit `boards.h` and `pins.h`, etc.)
1010
2. Determine the flash size your board uses:
1111
- Examine the board's main processor. (Refer the naming key in `hc32.ini`.)
1212
- Extend the `HC32F460C_common` base env for 256K, or `HC32F460E_common` for 512K.
@@ -49,11 +49,9 @@ SCB->VTOR = ((uint32_t) APP_START_ADDRESS & SCB_VTOR_TBLOFF_Msk);
4949

5050
Just searching for `SCB->VTOR` should yield some results. From there, you just need to look at the value that's assigned to it. The example uses `APP_START_ADDRESS`.
5151

52-
> [!NOTE]
53-
> Some vendors publish incomplete source code. But they sometimes leave version control related files in the repo, which can contain previous version of files that were removed. Find these by including folders like `.git` or `.svn` in your search.
52+
> [!NOTE] Some vendors publish incomplete source code. But they sometimes leave version control related files in the repo, which can contain previous version of files that were removed. Find these by including folders like `.git` or `.svn` in your search.
5453
55-
> [!NOTE]
56-
> The example is based on the [Voxelab-64/Aquila_X2](https://github.com/Voxelab-64/Aquila_X2/blob/main/firmware/Sources/.svn/pristine/ec/ec82bcb480b511906bc3e6658450e3a803ab9813.svn-base#L96) which actually includes deleted files in its repo.
54+
> [!NOTE] The example is based on the [Voxelab-64/Aquila_X2](//github.com/Voxelab-64/Aquila_X2/blob/main/firmware/Sources/.svn/pristine/ec/ec82bcb480b511906bc3e6658450e3a803ab9813.svn-base#L96) which actually includes deleted files in its repo.
5755
5856
2. Using a linker script
5957

@@ -71,8 +69,7 @@ MEMORY
7169
}
7270
```
7371

74-
> [!NOTE]
75-
> This example is based on [Voxelab-64/Aquila_X2](https://github.com/Voxelab-64/Aquila_X2/blob/d1f23adf96920996b979bc31023d1dce236d05db/firmware/Sources/main/hdsc32core/hc32f46x_flash.ld#L55)
72+
> [!NOTE] This example is based on [Voxelab-64/Aquila_X2](//github.com/Voxelab-64/Aquila_X2/blob/d1f23adf96920996b979bc31023d1dce236d05db/firmware/Sources/main/hdsc32core/hc32f46x_flash.ld#L55)
7673
7774
## Documentation on the HC32F460
7875

@@ -96,15 +93,15 @@ Contact me on Discord (@shadow578) if you need it.
9693

9794
This HAL depends on the following projects:
9895

99-
- [shadow578/platform-hc32f46x](https://github.com/shadow578/platform-hc32f46x) (PlatformIO platform for HC32F46x)
100-
- [shadow578/framework-arduino-hc32f46x](https://github.com/shadow578/framework-arduino-hc32f46x) (Arduino framework for HC32F46x)
101-
- [shadow578/framework-hc32f46x-ddl](https://github.com/shadow578/framework-hc32f46x-ddl) (HC32F46x DDL framework)
96+
- [shadow578/platform-hc32f46x](//github.com/shadow578/platform-hc32f46x) (PlatformIO platform for HC32F46x)
97+
- [shadow578/framework-arduino-hc32f46x](//github.com/shadow578/framework-arduino-hc32f46x) (Arduino framework for HC32F46x)
98+
- [shadow578/framework-hc32f46x-ddl](//github.com/shadow578/framework-hc32f46x-ddl) (HC32F46x DDL framework)
10299

103100
## Credits
104101

105102
This HAL wouldn't be possible without the following projects:
106103

107-
- [Voxelab-64/Aquila_X2](https://github.com/Voxelab-64/Aquila_X2) (original implementation)
108-
- [alexqzd/Marlin-H32](https://github.com/alexqzd/Marlin-H32) (misc. fixes to the original implementation)
109-
- [kgoveas/Arduino-Core-Template](https://github.com/kgoveas/Arduino-Core-Template) (template for Arduino headers)
110-
- [stm32duino/Arduino_Core_STM32](https://github.com/stm32duino/Arduino_Core_STM32) (misc. Arduino functions)
104+
- [Voxelab-64/Aquila_X2](//github.com/Voxelab-64/Aquila_X2) (original implementation)
105+
- [alexqzd/Marlin-H32](//github.com/alexqzd/Marlin-H32) (misc. fixes to the original implementation)
106+
- [kgoveas/Arduino-Core-Template](//github.com/kgoveas/Arduino-Core-Template) (template for Arduino headers)
107+
- [stm32duino/Arduino_Core_STM32](//github.com/stm32duino/Arduino_Core_STM32) (misc. Arduino functions)

Marlin/src/HAL/SAMD21/endstop_interrupts.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
* On SAMD21, all pins support external interrupt capability.
3333
* Any pin can be used for external interrupts, but there are some restrictions.
3434
* At most 16 different external interrupts can be used at one time.
35-
* Further, you cant just pick any 16 pins to use. This is because every pin on the SAMD21
35+
* Further, you can't just pick any 16 pins to use. This is because every pin on the SAMD21
3636
* connects to what is called an EXTINT line, and only one pin per EXTINT line can be used for external
3737
* interrupts at a time
3838
*/

Marlin/src/HAL/STM32F1/endstop_interrupts.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
* On STM32F, all pins support external interrupt capability.
2828
* Any pin can be used for external interrupts, but there are some restrictions.
2929
* At most 16 different external interrupts can be used at one time.
30-
* Further, you cant just pick any 16 pins to use. This is because every pin on the STM32
30+
* Further, you can't just pick any 16 pins to use. This is because every pin on the STM32
3131
* connects to what is called an EXTI line, and only one pin per EXTI line can be used for external interrupts at a time
3232
* Check the Reference Manual of the MCU to confirm which line is used by each pin
3333
*/

Marlin/src/core/boards.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,7 @@
419419
#define BOARD_MD_D301 5068 // Mingda D2 DZ301 V1.0 (STM32F103ZE)
420420
#define BOARD_VOXELAB_AQUILA 5069 // Voxelab Aquila V1.0.0/V1.0.1 (GD32F103RC / N32G455RE / STM32F103RE)
421421
#define BOARD_SPRINGER_CONTROLLER 5070 // ORCA 3D SPRINGER Modular Controller (STM32F103VC)
422+
#define BOARD_ATOMSTACK_FB5_V2 5071 // Atomstack FB5 V2.0 (STM32F103RCT6)
422423

423424
//
424425
// ARM Cortex-M4F

0 commit comments

Comments
 (0)