From ee81b3b7ecc8ea8f85a896d765e7846d5fdcab71 Mon Sep 17 00:00:00 2001 From: Marc Childress Date: Tue, 3 Mar 2026 02:09:28 -0600 Subject: [PATCH] config: clarify STM32F401 flash instructions for Ender 3 S1 - Warn that 64KiB bootloader offset is required; using 32KiB places firmware at wrong address causing the MCU to crash-loop while displaying the Creality splash screen (frozen starfield), which can be mistaken for Klipper running successfully - Clarify that STM32F4_UPDATE folder is required (not root directory) for STM32F401 boards - Note that the bootloader flashes all .bin files in STM32F4_UPDATE on every boot, so the SD card should be removed after flashing - Clarify that the firmware filename must be unique (not previously flashed) to ensure the bootloader applies the update Signed-off-by: Marc Childress --- config/printer-creality-ender3-s1-2021.cfg | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/config/printer-creality-ender3-s1-2021.cfg b/config/printer-creality-ender3-s1-2021.cfg index 6929b4ca0..796ddaf00 100644 --- a/config/printer-creality-ender3-s1-2021.cfg +++ b/config/printer-creality-ender3-s1-2021.cfg @@ -4,6 +4,15 @@ # STM32F103 with "28KiB bootloader" or the STM32F401 with # "64KiB bootloader" and serial (on USART1 PA10/PA9) for both. +# IMPORTANT for STM32F401: The bootloader offset MUST be set to +# "64KiB bootloader" (CONFIG_STM32_FLASH_START_10000). Using the +# "32KiB bootloader" option will place the firmware at the wrong flash +# address and the printer will appear to boot (showing the Creality +# splash screen) but Klipper will never actually run. A frozen splash +# screen or starfield is NOT a reliable indicator that Klipper is +# running -- verify by checking that klippy.log shows temperatures and +# MCU communication. + # For a direct serial connection, in "make menuconfig" select # "Enable extra low-level configuration options" and Serial # (on USART2 PA3/PA2), which is on the 10 pin IDC cable used @@ -11,10 +20,14 @@ # Flash this firmware by copying "out/klipper.bin" to a SD card and # turning on the printer with the card inserted. The filename -# must be changed to "firmware.bin" +# must be changed to something that has not been previously flashed +# (e.g. "firmware_v2.bin") to ensure the bootloader applies the update. -# With STM32F401, you might need to put "firmware.bin" in a -# folder on the SD card called "STM32F4_UPDATE" in order to flash. +# With STM32F401, the firmware file MUST be placed inside a folder +# named "STM32F4_UPDATE" at the root of the SD card (not in the root +# directory itself). The bootloader will flash every .bin file found +# in that folder on every boot, so remove the SD card after flashing +# or clear the folder to avoid repeated re-flashing. # See docs/Config_Reference.md for a description of parameters.