diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e169d1aebd..a0a067896d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -56,6 +56,7 @@ exclude: | Marlin/src(/gcode)?/feature/input_shaper/| Marlin/src(/gcode)?/feature/pressure_advance/| Marlin/src(/gcode)?/feature/precise_stepping/| + Marlin/src(/gcode)?/feature/phase_stepping/| Marlin/src/module/prusa/| Marlin/src/gcode/calibrate/M958.cpp )| diff --git a/CMakePresets.json b/CMakePresets.json index 0165e10b92..46b38420bb 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -3018,6 +3018,322 @@ } } }, + { + "name": "xl-burst_debug_boot", + "generator": "Ninja", + "binaryDir": "build-vscode-buddy", + "cacheVariables": { + "CMAKE_MAKE_PROGRAM": { + "type": "FILEPATH", + "value": "${sourceDir}/.dependencies/ninja-1.10.2/ninja" + }, + "CMAKE_EXPORT_COMPILE_COMMANDS": { + "type": "STRING", + "value": "ON" + }, + "PRINTER": { + "type": "STRING", + "value": "XL" + }, + "BOARD": { + "type": "STRING", + "value": "" + }, + "BOARD_VERSION": { + "type": "STRING", + "value": "0.9.0" + }, + "DWARF_BINARY_DIR": { + "type": "FILEPATH", + "value": "${sourceDir}/build-vscode-dwarf" + }, + "MODULARBED_BINARY_DIR": { + "type": "FILEPATH", + "value": "${sourceDir}/build-vscode-modularbed" + }, + "PRESET_COMPILE_OPTIONS": { + "type": "STRING", + "value": "" + }, + "ENABLE_BURST": { + "type": "BOOL", + "value": "YES" + }, + "IS_KNOBLET": { + "type": "STRING", + "value": "FALSE" + }, + "BOOTLOADER": { + "type": "STRING", + "value": "YES" + }, + "GENERATE_BBF": { + "type": "BOOL", + "value": "TRUE" + }, + "GENERATE_DFU": { + "type": "BOOL", + "value": "OFF" + }, + "SIGNING_KEY": { + "type": "FILEPATH", + "value": "" + }, + "CMAKE_TOOLCHAIN_FILE": { + "type": "FILEPATH", + "value": "${sourceDir}/cmake/GccArmNoneEabi.cmake" + }, + "CMAKE_BUILD_TYPE": { + "type": "STRING", + "value": "Debug" + }, + "PROJECT_VERSION_SUFFIX": { + "type": "STRING", + "value": "" + }, + "PROJECT_VERSION_SUFFIX_SHORT": { + "type": "STRING", + "value": "" + } + } + }, + { + "name": "xl-burst_debug_noboot", + "generator": "Ninja", + "binaryDir": "build-vscode-buddy", + "cacheVariables": { + "CMAKE_MAKE_PROGRAM": { + "type": "FILEPATH", + "value": "${sourceDir}/.dependencies/ninja-1.10.2/ninja" + }, + "CMAKE_EXPORT_COMPILE_COMMANDS": { + "type": "STRING", + "value": "ON" + }, + "PRINTER": { + "type": "STRING", + "value": "XL" + }, + "BOARD": { + "type": "STRING", + "value": "" + }, + "BOARD_VERSION": { + "type": "STRING", + "value": "0.9.0" + }, + "DWARF_BINARY_DIR": { + "type": "FILEPATH", + "value": "${sourceDir}/build-vscode-dwarf" + }, + "MODULARBED_BINARY_DIR": { + "type": "FILEPATH", + "value": "${sourceDir}/build-vscode-modularbed" + }, + "PRESET_COMPILE_OPTIONS": { + "type": "STRING", + "value": "" + }, + "ENABLE_BURST": { + "type": "BOOL", + "value": "YES" + }, + "IS_KNOBLET": { + "type": "STRING", + "value": "FALSE" + }, + "BOOTLOADER": { + "type": "STRING", + "value": "NO" + }, + "GENERATE_BBF": { + "type": "BOOL", + "value": "FALSE" + }, + "GENERATE_DFU": { + "type": "BOOL", + "value": "OFF" + }, + "SIGNING_KEY": { + "type": "FILEPATH", + "value": "" + }, + "CMAKE_TOOLCHAIN_FILE": { + "type": "FILEPATH", + "value": "${sourceDir}/cmake/GccArmNoneEabi.cmake" + }, + "CMAKE_BUILD_TYPE": { + "type": "STRING", + "value": "Debug" + }, + "PROJECT_VERSION_SUFFIX": { + "type": "STRING", + "value": "" + }, + "PROJECT_VERSION_SUFFIX_SHORT": { + "type": "STRING", + "value": "" + } + } + }, + { + "name": "xl-burst_release_boot", + "generator": "Ninja", + "binaryDir": "build-vscode-buddy", + "cacheVariables": { + "CMAKE_MAKE_PROGRAM": { + "type": "FILEPATH", + "value": "${sourceDir}/.dependencies/ninja-1.10.2/ninja" + }, + "CMAKE_EXPORT_COMPILE_COMMANDS": { + "type": "STRING", + "value": "ON" + }, + "PRINTER": { + "type": "STRING", + "value": "XL" + }, + "BOARD": { + "type": "STRING", + "value": "" + }, + "BOARD_VERSION": { + "type": "STRING", + "value": "0.9.0" + }, + "DWARF_BINARY_DIR": { + "type": "FILEPATH", + "value": "${sourceDir}/build-vscode-dwarf" + }, + "MODULARBED_BINARY_DIR": { + "type": "FILEPATH", + "value": "${sourceDir}/build-vscode-modularbed" + }, + "PRESET_COMPILE_OPTIONS": { + "type": "STRING", + "value": "" + }, + "ENABLE_BURST": { + "type": "BOOL", + "value": "YES" + }, + "IS_KNOBLET": { + "type": "STRING", + "value": "FALSE" + }, + "BOOTLOADER": { + "type": "STRING", + "value": "YES" + }, + "GENERATE_BBF": { + "type": "BOOL", + "value": "TRUE" + }, + "GENERATE_DFU": { + "type": "BOOL", + "value": "OFF" + }, + "SIGNING_KEY": { + "type": "FILEPATH", + "value": "" + }, + "CMAKE_TOOLCHAIN_FILE": { + "type": "FILEPATH", + "value": "${sourceDir}/cmake/GccArmNoneEabi.cmake" + }, + "CMAKE_BUILD_TYPE": { + "type": "STRING", + "value": "Release" + }, + "PROJECT_VERSION_SUFFIX": { + "type": "STRING", + "value": "" + }, + "PROJECT_VERSION_SUFFIX_SHORT": { + "type": "STRING", + "value": "" + } + } + }, + { + "name": "xl-burst_release_noboot", + "generator": "Ninja", + "binaryDir": "build-vscode-buddy", + "cacheVariables": { + "CMAKE_MAKE_PROGRAM": { + "type": "FILEPATH", + "value": "${sourceDir}/.dependencies/ninja-1.10.2/ninja" + }, + "CMAKE_EXPORT_COMPILE_COMMANDS": { + "type": "STRING", + "value": "ON" + }, + "PRINTER": { + "type": "STRING", + "value": "XL" + }, + "BOARD": { + "type": "STRING", + "value": "" + }, + "BOARD_VERSION": { + "type": "STRING", + "value": "0.9.0" + }, + "DWARF_BINARY_DIR": { + "type": "FILEPATH", + "value": "${sourceDir}/build-vscode-dwarf" + }, + "MODULARBED_BINARY_DIR": { + "type": "FILEPATH", + "value": "${sourceDir}/build-vscode-modularbed" + }, + "PRESET_COMPILE_OPTIONS": { + "type": "STRING", + "value": "" + }, + "ENABLE_BURST": { + "type": "BOOL", + "value": "YES" + }, + "IS_KNOBLET": { + "type": "STRING", + "value": "FALSE" + }, + "BOOTLOADER": { + "type": "STRING", + "value": "NO" + }, + "GENERATE_BBF": { + "type": "BOOL", + "value": "FALSE" + }, + "GENERATE_DFU": { + "type": "BOOL", + "value": "OFF" + }, + "SIGNING_KEY": { + "type": "FILEPATH", + "value": "" + }, + "CMAKE_TOOLCHAIN_FILE": { + "type": "FILEPATH", + "value": "${sourceDir}/cmake/GccArmNoneEabi.cmake" + }, + "CMAKE_BUILD_TYPE": { + "type": "STRING", + "value": "Release" + }, + "PROJECT_VERSION_SUFFIX": { + "type": "STRING", + "value": "" + }, + "PROJECT_VERSION_SUFFIX_SHORT": { + "type": "STRING", + "value": "" + } + } + }, { "name": "xl-knoblet_debug_boot", "generator": "Ninja", diff --git a/ProjectOptions.cmake b/ProjectOptions.cmake index cc773982c2..e9794c5178 100644 --- a/ProjectOptions.cmake +++ b/ProjectOptions.cmake @@ -127,6 +127,11 @@ set(IS_KNOBLET ) define_boolean_option(IS_KNOBLET ${IS_KNOBLET}) +set(ENABLE_BURST + "NO" + CACHE BOOL "Enable BURST stepping on supported printers." + ) + # Validate options foreach(OPTION "PRINTER" "BOARD" "MCU" "BOOTLOADER" "TRANSLATIONS_ENABLED" "TOUCH_ENABLED") if(NOT ${OPTION} IN_LIST ${OPTION}_VALID_OPTS) @@ -285,6 +290,8 @@ set(PRINTERS_WITH_POWER_PANIC "MK4" "MK3.5" "XL") # this does require selftest a # to work set(PRINTERS_WITH_PRECISE_HOMING "MK4" "MK3.5") set(PRINTERS_WITH_PRECISE_HOMING_COREXY "XL" "XL_DEV_KIT") +set(PRINTERS_WITH_PHASE_STEPPING "XL") +set(PRINTERS_WITH_BURST_STEPPING "XL") # private MINI would not fit to 1MB so it has disabled selftest set(PRINTERS_WITH_SELFTEST "MINI" # "MK4") set(PRINTERS_WITH_SELFTEST "MK4" "MK3.5" "XL" "iX" "MINI") @@ -459,6 +466,23 @@ else() define_boolean_option(HAS_HUMAN_INTERACTIONS NO) endif() +if(${PRINTER} IN_LIST PRINTERS_WITH_PHASE_STEPPING AND BOARD_IS_MASTER_BOARD) + set(HAS_PHASE_STEPPING YES) +else() + set(HAS_PHASE_STEPPING NO) +endif() +define_boolean_option(HAS_PHASE_STEPPING ${HAS_PHASE_STEPPING}) + +if(ENABLE_BURST + AND ${PRINTER} IN_LIST PRINTERS_WITH_BURST_STEPPING + AND BOARD_IS_MASTER_BOARD + ) + set(HAS_BURST_STEPPING YES) +else() + set(HAS_BURST_STEPPING NO) +endif() +define_boolean_option(HAS_BURST_STEPPING ${HAS_BURST_STEPPING}) + if(${PRINTER} IN_LIST PRINTERS_WITH_LOADCELL AND BOARD_IS_MASTER_BOARD) set(HAS_LOADCELL YES) else() diff --git a/doc/logging_components.md b/doc/logging_components.md index 7e48238e3b..b7f044577c 100644 --- a/doc/logging_components.md +++ b/doc/logging_components.md @@ -1,7 +1,6 @@ # Logging - Defined Components This file is generated automatically so don't edit it directly -- Accel: LOG_SEVERITY_INFO, src/puppy/dwarf/accelerometer.cpp - Bootloader: LOG_SEVERITY_INFO, src/bootloader/bootloader.cpp - Buddy: LOG_SEVERITY_DEBUG, src/common/appmain.cpp - BufferedSerial: LOG_SEVERITY_DEBUG, src/hw/buffered_serial.cpp @@ -38,7 +37,9 @@ This file is generated automatically so don't edit it directly - ModularBed: LOG_SEVERITY_INFO, src/puppies/modular_bed.cpp - Network: LOG_SEVERITY_INFO, lib/WUI/wui.cpp - PRUSA_GCODE: LOG_SEVERITY_INFO, src/marlin_stubs/gcode.cpp +- PhaseStepping: LOG_SEVERITY_DEBUG, lib/Marlin/Marlin/src/feature/phase_stepping/phase_stepping.cpp - PowerPanic: LOG_SEVERITY_INFO, src/common/power_panic.cpp +- PreciseStepping: LOG_SEVERITY_DEBUG, lib/Marlin/Marlin/src/feature/precise_stepping/precise_stepping.cpp - PrusaToolChanger: LOG_SEVERITY_DEBUG, lib/Marlin/Marlin/src/module/prusa/toolchanger_utils.cpp - Puppies: LOG_SEVERITY_DEBUG, src/puppies/puppy_task.cpp - Resources: LOG_SEVERITY_DEBUG, src/resources/bootstrap.cpp diff --git a/doc/timers.md b/doc/timers.md index fc85dec342..be8e792e50 100644 --- a/doc/timers.md +++ b/doc/timers.md @@ -1,15 +1,54 @@ -ARM-CORE SysTick timer - used by FreeRTOS -TIM1 - hwio - FAN0 and FAN1 PWM - src\main.cpp -TIM2 - hwio - BUZZER - src\main.cpp -TIM3 - hwio - HEAT0 and BED_HEAT PWM - src\main.cpp -TIM4 - reserved for encoder -TIM5 - SystemTimer (~12ns tick, 32bit, 84MHz, 1s period) - src\common\timing_sys.c -TIM6 - Marlin/Temperature - lib\Marlin\Marlin\src\HAL\HAL_STM32_F4_F7\STM32F4\timers.cpp -TIM7 - Marlin/Temperature - lib\Marlin\Marlin\src\HAL\HAL_STM32_F4_F7\STM32F4\timers.cpp -TIM8 - Marlin/Stepper - lib\Marlin\Marlin\src\HAL\HAL_STM32_F4_F7\STM32F4\timers.cpp -TIM9 - -TIM10 - -TIM11 - -TIM12 - -TIM13 - -TIM14 - GUI - jogwheel, hwio, touch - src\main.cpp +SysTick +: used by FreeRTOS + +TIM1 +: hwio - FAN0 and FAN1 PWM +: `src/main.cpp` + +TIM2 +: hwio - BUZZER +: `src/main.cpp` + +TIM3 +: hwio - HEAT0 and BED_HEAT PWM +: `src/main.cpp` + +TIM4 +: reserved for encoder + +TIM5 +: SystemTimer (~12ns tick, 32bit, 84MHz, 1s period) +: `src/common/timing_sys.c` + +TIM6 +: Marlin/Temperature +: `lib/Marlin/Marlin/src/HAL/HAL_STM32_F4_F7/STM32F4/timers.cpp` + +TIM7 +: Marlin/Temperature +: `lib/Marlin/Marlin/src/HAL/HAL_STM32_F4_F7/STM32F4/timers.cpp` + +TIM8 +: Burst stepping +: `lib/Marlin/Marlin/src/feature/phase_stepping/burst_stepper.cpp` + +TIM9 +: + +TIM10 +: + +TIM11 +: + +TIM12 +: Marlin/Stepper +: `lib/Marlin/Marlin/src/HAL/HAL_STM32_F4_F7/STM32F4/timers.cpp` + +TIM13 +: Phase stepping +: `lib/Marlin/Marlin/src/feature/phase_stepping/phase_stepping.cpp` + +TIM14 +: GUI - jogwheel, hwio, touch +: `src/main.cpp` diff --git a/include/buddy/phase_stepping_opts.h b/include/buddy/phase_stepping_opts.h new file mode 100644 index 0000000000..dafd6cc517 --- /dev/null +++ b/include/buddy/phase_stepping_opts.h @@ -0,0 +1,32 @@ +#pragma once +#include