I am facing the same issue as described here, which has not been resolved.
My menuconfig settings are:
STM32F103
28KiB bootloader
Serial (on USART1 PA10/PA9)
I can flash Marlin/mriscoc without issues but with klipper the printer is stuck on the Creality splash screen and wont connect. My understanding is that the display should get past the splash screen and be a black screen instead.
Any help would be appreciated in getting this going.
I would not call it a common problem, rather the opposite considering how popular the Ender models are and given the fact that there are a mere handful of such problem reports among 41,000 posts here.
You might have tried everything from here, but I spend 3 hours doing the same, so here’s a checklist for the 4.2.2 board. Also leaving some steps here for future visitors.
Is your board 4.2.2? Make sure to see that on your own board.
In make menuconfig:
Enable extra low level configuration options
Microcontroller: STM32
STM32F103
!! Do not tick the “Only 10Kib”
You can disable or leave enabled the “Disable SWD”
Bootloader offset: 28KiB
Clock reference: 8Mhz (it’s not 16 as some other forum posts may say)
Communication interface USART1 (It’s not USB. If you look up the schematics, the usb is connecting a serial-to-usb chip to the USART1.
Baud 250000
GPIO pins to disable: leave empty unless you need this. (Not yet confirmed, but will try to use this to control the hotend fan later and have put “!PA14” for the moment, but this is not guaranteed to be working as intended for the moment. Nevertheless, the firmware works)
Do not use the scripts/flash-sdcard.sh script. It doesn’t work.
Do not use the scripts/flash_usb.py script. It just doesn’t work (for me at least).
Run make
Make sure you find the firmware bin file. It’s in out/klipper.bin. ls -l to see that it is the one modified in the last few minutes… at the time you ran make.
Get an SD card. Hopefully it’s around 8GB. Mine is 8GB.
Format it (preferably on linux) re-create an MBR partition table
Create a single partition that is fat32. Experiment with sizes. Could work with partition as big as the card or something smaller like 4GB partition if your card is big.
With an empty partition, just put the firmware file on the card. Experiment with names. The bootloader ignores the last filename that was flashed. Try FIRMWARE.BIN, FIRMWARE1.BIN, etc
For troubleshooting:
Is the device visible in lsusb and is also visible in /dev/serial/by-id but it does not react and klipper cannot communicate with it? Make sure you are not setting make menucoinfig interface to USB or some other USART. If you are using something other than the USB cable, then you actually need to select another USART and not USART1.