Stuck at SD Card Update due to MCU Type mismatch

Basic Information:

Printer Model: Sovol 7S+
MCU / Printerboard: STM32F103
klippy.log

Describe your issue:

Hi, I’ve run into issues as I needed to update the MCU. I’m getting a MCU mismatch error “SPIFlashError: MCU Type mismatch: Build MCU = lpc1768, Connected MCU = stm32f103xe” Although it feels like I’ve followed the instruction. Anyone knows what I am doing wrong?
Thanks for your help
I’ve followed this instruction:

sudo service klipper stop
cd ~/klipper
git pull
make clean
make menuconfig
make
./scripts/flash-sdcard.sh /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 btt-skr-v1.3
sudo service klipper start

And set the menuconfig as following

[*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32)  --->
    Processor model (STM32F103)  --->
[ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
[ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
    Bootloader offset (28KiB bootloader)  --->
    Clock Reference (8 MHz crystal)  --->
    Communication interface (Serial (on USART1 PA10/PA9))  --->
(250000) Baud rate for serial port
()  GPIO pins to set at micro-controller startup
mks@mkspi:~/klipper$ ./scripts/flash-sdcard.sh /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 btt-skr-v1.3
Flashing /home/mks/klipper/out/klipper.bin to /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
Checking FatFS CFFI Build...
Connecting to MCU....Connected

SD Card Flash Error: MCU Type mismatch: Build MCU = lpc1768, Connected MCU = stm32f103xe
Traceback (most recent call last):
  File "/home/mks/klipper/scripts/spi_flash/spi_flash.py", line 1647, in main
    spiflash.run()
  File "/home/mks/klipper/scripts/spi_flash/spi_flash.py", line 1584, in run
    self.run_reactor_task(self.run_reset_upload)
  File "/home/mks/klipper/scripts/spi_flash/spi_flash.py", line 1570, in run_reactor_task
    k_reactor.run()
  File "/home/mks/klipper/klippy/reactor.py", line 292, in run
    g_next.switch()
  File "/home/mks/klipper/klippy/reactor.py", line 340, in _dispatch_loop
    timeout = self._check_timers(eventtime, busy)
  File "/home/mks/klipper/klippy/reactor.py", line 158, in _check_timers
    t.waketime = waketime = t.callback(eventtime)
  File "/home/mks/klipper/klippy/reactor.py", line 48, in invoke
    res = self.callback(eventtime)
  File "/home/mks/klipper/scripts/spi_flash/spi_flash.py", line 1518, in run_reset_upload
    self.mcu_conn.connect()
  File "/home/mks/klipper/scripts/spi_flash/spi_flash.py", line 1210, in connect
    % (build_mcu_type, mcu_type))
SPIFlashError: MCU Type mismatch: Build MCU = lpc1768, Connected MCU = stm32f103xe

You provided btt-skr-v1.3 as board information to the command. btt-skr-v1.3 is a
lpc1768 board, so I’m not sure what you expect.

Ah. That explains a lot. Somehow I thought I have to copy paste that from the one online. Sry
Do you know where I can find my own board?
-l lists the board names but how and where can I identify mine without disassembling the printer?

Edit:
The board states MKS KLIPAD50 V1.1
This one in not listed in the -l
I guess I have to make my own board definition? Is there an additional database somewhere or is this the only way. Not sure how to fill out the spie_bus cs_pin and so on.

This should be your printerboard Sovol SV07 Plus STM32 Silent Mainboard with TMC 2209 Driver

I found the sources link for your printer here
https://www.reddit.com/r/Sovol/comments/161rcc4/comment/k3zjat5/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

https://drive.google.com/drive/folders/1C6pYe3R7gaXGrz8XPOCsynxWfd5OKpAX

In armbian-update.deb is a data.tar zipped.

In data.tar you’ll find the printer.cfg under .\home\mks\printer_data\config\

Good luck, hcet14

As far as my understanding goes:

  • Not every board supports this method
  • To even try you will need the MCU pins to which the SD card slot is connected to
  • For boards where the manufacturer does not release this information (i.e. no schematic available) this can be anything between tedious and impossible to find out.

As an alternative you could use the katapult bootloader as this will allow flashing any board with the make flash command so that no SD card is even needed in the board.

?
Did you read my post above?

I did and unless I’m missing something found it unrelated to this topic here.

I don’t understand that sentence. Could you try to explain it to a stupid like me?
Thanks.

@patofrivia’s question is how to use the SDCard updates feature with his board.

Your input does not answer this question or is even related to it.

Found a way to update by running:

cd ~/klipper/
make menuconfig

# In the menu, set "Microcontroller Architecture" to "Linux process," then save and exit.

sudo service klipper stop
make flash
sudo service klipper start

This just updates the Klipper version for the Linux process/virtual MCU but not an actual MCU.

In addition to @LifeOfBrian:
Be careful with this printer. As far as I can tell it uses a modified Klipper version and Sovol does not respect Klipper’s license and has not made public its modifications.

So, flashing a new firmware that is not officially released by Sovol might lead to unwanted effects up to a non working printer.
Unless you know exactly what you are doing, you are likely stuck with the firmware that is released by Sovol.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.