Problems with Btt Manta M8P bootloader

Hey guys,

I am at the moment in the process of setting up a Btt Manta M8p with a cb1 and two Btt ebb42 CAN BUS boards.
Everything works fine, except that the Manta doesn’t save its firmware anymore. I have flashed it directly via SD card and via “make flash FLASH_DEVICE=0483:df11”.
If i use “make flash” it works until restart, thats when i get the message “errorno 19 no such device found”.
If i save the firmware.bin to the SD card it also doesn’t change it to .cur, so i’m guessing the bootloader simply doesn’t work. No damage to the port, tried it with second SD in FAT32 format, no difference.
Strange is, it worked before i tried installing CAN-BUS, no problem.

Has anyone encountered the same problems ?
Any help would be greatly appreciated, i’m sitting at this problem for two days already and am about to give up.

Greetings,
Phil
klippy.log (182.5 KB)

Note: this will put Klipper firmware in place at the application offset so the stock bootloader will stay in place.
Put the Manta into DFU mode.

  • Press and hold the boot button.
  • While holding the boot button, click the reset button, wait a couple of seconds then release the boot button.
  • Check for DFU by running this command
    lsusb
  • Look for STM and DFU in the output, if found continue.
  • cd ~/klipper
  • make menuconfig
  • Change settings as needed.
  • Q Y
  • make
  • sudo dfu-util -a 0 -D ~/klipper/out/klipper.bin --dfuse-address 0x08002000:leave -d 0483:df11

See if the firmware stays after powering down then back on.

Hi,

i tried it, but it doesn’t change. I flash the manta, everything works until i firmware-restart and the manta looses its firmware again. I get the values from the thermistors (also from the other CAN devices), can power up the heatbed etc… But its all gone again when rebooting.

Greetings,
Phil

Sounds like you need to contact BTT support.

What you’re describing sounds like the bootloader has been trashed and you’ll need to follow the instructions @NAPCAL provided but I would like you to try a different programming statement at the end:

sudo dfu-util -a 0 -D ~/klipper/out/klipper.bin --dfuse-address 0x08000000:force:mass-erase -d 0483:df11

rather than the one given to you @NAPCAL.

This statement will erase ALL OF the SMT32’s Flash before starting programming (and will sit for a few seconds while this is happening) and put the Klipper firmware at the start of the STM32’s Flash (where the bootloader used to reside) so that it starts executing when the STM32 reboots.

You will have to press the reset button after executing this command and before restarting Klipper as the STM32 will stay in DFU Mode.

I’m hypothesizing that the original Bootloader code (which should be at 0x8000000) has been damaged and writing Klipper Firmware to 0x8002000 with the “leave” option restarts execution at 0x8002000 and every thing works fine. But when you reset execution tries to start at 0x8000000 which has the bad Bootloader code. Yes, this will overwrite the bootloader code but it’s not like it’s working now and you should still have DFU mode.

One other point and please excuse my ignorance, but when I read your original post and look at your klippy.log, I only see two mcu statements:

[mcu]
canbus_uuid = ca80e9052a14

&

[mcu canEBB]
canbus_uuid = 51279b4eb876

You said you have “two Btt ebb42 CAN BUS boards” - shouldn’t there be three mcu statements with the different canbus UUIDs?

2 Likes

Hi,

the reason there is only one EBB can configured is that i deleted the other config for debugging reasons, but it shows up with its one UUID etc…
Yeah i was guessing its the bootloader, but since i’m pretty ignorant at fixing something like that, i figured i would ask for help here.
And your solution worked !
Thank you very much !!!
I have read many threads about the same problem, but noone had an answer. I hope this helps other people having the same problem.

1 Like