Ender 3 S1 (STM32F401RCT6 / V24S1_301) bricked after multiple SWD flash attempts – stuck on Creality logo, no serial response

Hardware:

  • Printer: Creality Ender-3 S1
  • Mainboard: V24S1_301
  • SoC: STM32F401RCT6 (256KB Flash)
  • Display: TJC (small flash variant)
  • Probe: CR Touch (X-31.80, Y-40.50)
  • Host: OctoPrint on Raspberry Pi Zero 2W

Original Problem:
Creality firmware V3.2.1 has a hardcoded bug: M420 S1 is called internally during G28, causing “Invalid mesh / Failed to enable Bed Leveling” errors when no valid mesh exists in EEPROM. SD card flashing was not possible – the bootloader silently rejected all binaries regardless of filename or folder placement.

Goal:
Flash mriscoc community firmware (Ender3S1-F4-20260106.bin) via SWD using ST-Link V2 Mini to permanently fix the bug.

What we tried (all via STM32CubeProgrammer + ST-Link V2 over SWD):

  • Flashed Creality V3.2.1 at 0x08000000 via Automatic Mode → boots once after ST-Link flash, but frozen Creality logo after cold boot
  • Flashed Bootloader (STM32f401RCTx_BootLoader_v1.bin) at 0x08000000 + firmware at 0x08010000 → works once after ST-Link flash, frozen after cold boot
  • Patched bootloader (byte 0x348E: 0x02 → 0x06) + firmware at 0x08010000 → same result, works once, frozen after cold boot
  • mriscoc at 0x08000000 without bootloader → no serial response at any baudrate (115200 / 250000)
  • Multiple Full chip erases + reflash attempts with V3.0.3, V3.0.4, V3.2.1, mriscoc
  • TJC display firmware updated multiple times (V3.0.4, V3.1.9 versions)
  • Option bytes verified: RDP=AA, BOR_LEV=3 (OFF), all WRP unchecked – all look normal

Current state:

  • Printer frozen on Creality logo after every cold boot
  • No serial response on 115200 or 250000 baud
  • ST-Link connects successfully (STM32F401x8/C detected, 3.21V)
  • Firmware flashes and verifies successfully via SWD every time
  • Printer runs correctly immediately after ST-Link flash (warm state), but dies on next cold boot

Key observation:
The printer only works in the warm state right after an ST-Link flash. A real power cycle (cold boot) always results in a frozen Creality logo with no serial response. This happens with every firmware version we tried.

Question:
Has anyone successfully achieved a permanent cold-boot-stable flash on this exact hardware combination (STM32F401RCT6 + V24S1_301 + TJC display)? Is there a known working bootloader or flash procedure for this chip?

Any help appreciated – we have been at this for two full days.

Resolved: a custom firmware built with mriscoc‘s configurator immediately flashed an runs. G28 command runs without error after first test. Big thanks to mriscoc for all his efforts and great tools!