#MCU Protocol error

280 messages · Page 1 of 1 (latest)

pine berry
#

Today I did install the new updates. this happened. please someone help?

earnest geode
#

"this is frequently caused by running an older version of the firmware on the mcu(s)"

#

and that's consistent with the version numbers seen in the second paragraph.

pine berry
#

I'm trying to flash the mcu on the printer. it's been a while since i'm using machine. forgot all the thing

pine berry
#

Sorry, not enough info. I'm using:

BIGTREETECH Octopus Pro V1.1
BIGTREETECH Pi V1.2
EBB SB2240 2209 CAN v1.0

please help

earnest geode
#

is the octopus pro your can interface? or is there a separate utoc or something?

#

@pine berry

pine berry
#

yes

earnest geode
#

which

pine berry
#

the CANBUS

earnest geode
#

what

#

I'm asking what provides the canbus interface

#

it might be the octopus

#

it might be some other device

pine berry
#

the octopus

earnest geode
#

I need you to tell me which

#

okay

#

cool

pine berry
#

llol sorry didn't get your question,

earnest geode
#

go here

#

it takes you through updating both boards

#

for the main board, you'll want to choose the "can-bridge mainboard" path

#

ping me if you get stuck

pine berry
#

ok. my option is Can-bridge

#

thanks. i'll try now

#

@earnest geode sorry question: yourmainboarduuid which is:

[mcu]
canbus_uuid: 4bf36eac87e5

[mcu EBBCan]
canbus_uuid: e8c320837692

#

it's in my printer.cfg

earnest geode
#

ebbcan is your toolhead

#

[mcu] is your main

pine berry
#

ok. thanks

#

it's been a year since i touch the printer. I may forgot most of the stuffs

#

ERROR:root:Flash Error
Traceback (most recent call last):
File "/home/biqu/katapult/scripts/flashtool.py", line 629, in main
loop.run_until_complete(sock.run(args.device, args.baud, fpath))
File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
return future.result()
File "/home/biqu/katapult/scripts/flashtool.py", line 530, in run
raise FlashCanError("Invalid firmware path '%s'" % (fw_path))
FlashCanError: Invalid firmware

earnest geode
# pine berry ok. thanks

obviously its too late now, but I'd second guess yourself a bit on your first move being updates: if you look over the klipper changes in the last year or so, you really won't find much that's actually beneficial to your existing (presumably functional) printer....

pine berry
#

I ran python3 ~/katapult/scripts/flashtool.py -f ~/klipper/out/klipper.bin -d /dev/serial/by-id/usb-katapult_stm32f446xx_1A001F000D50535556323420-if00

#

and it gives Flash Erro

earnest geode
#

can you show me what happened when you built the firmware?

#

(the make step in the klipper folder)

pine berry
#

here is what i did:

Last login: Sun May 4 21:39:21 2025 from 192.168.1.100
biqu@BTT-CB1:~$ cd ~/klipper
biqu@BTT-CB1:~/klipper$ make menuconfig
Loaded configuration '/home/biqu/klipper/.config'
Configuration saved to '/home/biqu/klipper/.config'
biqu@BTT-CB1:~/klipper$ sudo service klipper stop
biqu@BTT-CB1:~/klipper$ python3 ~/katapult/scripts/flashtool.py -i can0 -r -u 4bf36eac87e5
Sending bootloader jump command...
Bootloader request command sent
Flash Success
biqu@BTT-CB1:~/klipper$ ls /dev/serial/by-id/*
/dev/serial/by-id/usb-katapult_stm32f446xx_1A001F000D50535556323420-if00

earnest geode
#

you skipped a step

pine berry
#

oh?

earnest geode
#

after make menuconfig

#

there should be a make

pine berry
#

damn

#

thanks. i'll try again

earnest geode
#

should be able to just do cd ~/klipper, then make

#

and assuming it builds okay, resume from there

pine berry
#

thank you

earnest geode
#

oh, I guess the octopus ended up in katapult mode, so you might have to either reset it, or use a different flashing command

#

make flash FLASH_DEVICE=/dev/serial/by-id/usb-katapult_stm32f446xx_1A001F000D50535556323420-if00 would probably work

pine berry
#

i'll try

#

Attempting to connect to bootloader
CanBoot Connected
Protocol Version: 1.0.0
Block Size: 64 bytes
Application Start: 0x8008000
MCU type: stm32f446xx
Flashing '/home/biqu/klipper/out/klipper.bin'...

[##################################################]

Write complete: 3 pages
Verifying (block count = 544)...

[##################################################]

Verification Complete: SHA = 4B149696AA788F428DAB610C5A9AC32218A7C979
CAN Flash Success

#

is it done?

#

last command is sudo service klipper start

#

Firmware restart didn't work.

earnest geode
#

can you show me what settings you used for menuconfig?

earnest geode
#

show yours though

#

why did you use h723?

pine berry
#

it's BigTreeTech Octopus Pro v1.1 and I can't remember what model

#

here is my setting menuconfig

earnest geode
#

well you need to identify what it actually is, not just guess

pine berry
#

hmm. i'm gonna open the printer

#

brb

earnest geode
#

since when it was in katapult mode, it showed up as "/dev/serial/by-id/usb-katapult_stm32f446xx_1A001F000D50535556323420-if00", I think it's a stm32f446

#

@pine berry wait, before you go do that 😛

pine berry
#

oh wow

#

you're right

#

stm32f446

earnest geode
#

(though you're probably going to have to open the printer now anyway: you're gonna need to get at the reset button now)

pine berry
#

should I try with STM32f446 now?

earnest geode
#

yes

#

but you're going to get stuck when you go to actually flash it

#

a double tap of the reset button should put it back into katapult

pine berry
#

what reset button?

earnest geode
#

by the usb port on the octopus

pine berry
#

ok i see it

#

double tap? it while it's on or off?

earnest geode
#

on

pine berry
#

ok. now double tap done. gonna re-do the whole thing again. BRB

#

you're right the model is STM32F446ZET6

#

@earnest geodeI tried and didn't work. the error is gone. but the blue screen still there. What did I do wrong?

earnest geode
#

did it even flash successfully?

#

I need to see more of what you did before I can really comment much

#

all I see right now is klipper not communicating with something for some reason ...

pine berry
#

python3 ~/katapult/scripts/flashtool.py -i can0 -r -u yourmainboarduuid

Didn't work flash

#

when i do that

earnest geode
#

of course not

pine berry
#

python3 ~/katapult/scripts/flashtool.py -i can0 -r -u 4bf36eac87e5

this is my uuid

earnest geode
#

right, but you need a working board, in klipper before it has a uuid

#

since you went and flashed it with an incorrect firmware, that's no longer a thing you have

pine berry
#

oh wow. i need a new uuid?

earnest geode
#

no

#

it doesn't have a uuid at all right now

pine berry
#

ok please help me

earnest geode
#

its in katapult right now (hopefully)

#

from us hitting the reset earlier

#

which means it should have an id in /dev/serial/by-id

#

which means you SHOULD be able to flash it with the make flash command, same as last time

#

but you should check that it's actually there

pine berry
#

ii'm gonna try again

earnest geode
#

well start by just doing ls /dev/serial/by-id and make sure it's actually there

pine berry
#

can not access

#

cannot access '/dev/serial/by-id': No such file or directory

earnest geode
#

well you gotta get it showing up before you can do anything

#

double tap reset again?

pine berry
#

ok. let me do again. 1s

#

ok done.

earnest geode
#

and? is it there now?

pine berry
#

usb-katapult_stm32f446xx_1A001F000D50535556323420-if00

#

yes

earnest geode
#

okay, good

#

so now you should be able to flash it with the make flash FLASH_DEVICE... from before

pine berry
#

no need to make menuconfig again?

earnest geode
#

once you build the firmware with one set of settings, it should stay there until you overrwrite it with something else

pine berry
#

so do this: make flash FLASH_DEVICE=/dev/serial/by-id/usb-katapult_stm32f446xx_1A001F000D50535556323420-if00

#

?

earnest geode
#

yes

pine berry
#

*** No rule to make target 'flash'. Stop.

#

i can't do it

earnest geode
#

are you still in the klipper directory?

pine berry
#

no

earnest geode
#

all of this should be done from there

pine berry
#

well. i'm dump. didn't know

#

thanks it works

#

now it's CAN Flash Success

earnest geode
#

alright, that's promising

#

could probably try restarting klipper now, see what it has to say

pine berry
#

i see that blue screen again.

Klipper reports: STARTUP

Printer is not ready
The klippy host software is attempting to connect. Please
retry in a few moments.

earnest geode
#

alright, what is lsusb showing right now?

pine berry
#

08 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 046d:082d Logitech, Inc. HD Pro Webcam C920
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

#

not seeing my CANBUS

earnest geode
#

better take me back through this then

#

you did actually build the firmware for the 446 version, right? (at some point in the proceedings?)

#

can you show me?

#

make menuconfig, etc

pine berry
#

yes.

#

this is menu

earnest geode
#

hmmm

#

are you sure those are all the settings you were given in esoterical's guide?

#

take your time. go through it all, line by line

pine berry
#

yes. i'm pretty sure i did the same on the guide

earnest geode
#

really?

#

here are the settings for a 446 board, from esotericals guide

#

I see at least 2 that are completely different in your screenshot, vs this image from the guide

pine berry
#

i can't see that where on the guide

earnest geode
#

(might have to click regular octopus, not pro)

pine berry
#

thanks. i didn't see that

#

oh i choose the PRO. thats why

#

ok thanks

#

let me try again. thanks

#

hi,

sudo service klipper stop

then I can't do

ls /dev/serial/by-id/*

earnest geode
#

so you need to double tap reset again

#

every time you flash a garbage firmware, its going to try to return to normal operation. but of course, it'll fail, because garbage firmware

#

so each time, you need to force it back into katapult, via the double tap reset method

pine berry
#

ok. i gotta go eat. i'll try this other time. thanks again.

pine berry
#

@earnest geode

I finally success updated the mcu firmware, but still I still need update my EBBCan. Here is the error.

Which guide should I follow. TIA

earnest geode
pine berry
#

ok. i'm working on it.

#

I have BigTreeTech SB2209 and SB2240. how do I reset the board? double tap the reset button?

#

i have to put in DFU mode

earnest geode
#

...why do you need to do that?

#

@pine berry That sounds like first time flashing stuff

#

not updating

#

what are you looking at exactly?

pine berry
#

right?

earnest geode
#

that's the right page

#

but I don't think anything on that page makes any mention of putting the board into dfu mode

pine berry
#

i meant the reset button

earnest geode
#

"i have to put in DFU mode"

#

you said that

#

word for word

#

I need to understand why you think you need to put the board into dfu mode

#

because either you're badly off course, or something has gone very wrong

#

and I need to understand which

#

don't get me wrong, I intend to help you either way, but I need to understand wtf is going on

#

broadly speaking, with a canbus toolhead board, the only time you need it to be in dfu mode (which is a USB flashing channel, not canbus), is when you use it to get katapult on there in the first place

#

once you've done that (which you presumably did way back whenever you first built this) dfu should never enter the equation again

pine berry
#

i thought reset is dfu mode. thats all

earnest geode
#

okay, but I also don't understand why you think you need to reset the board

#

it was a working board, right? its firmware is just out of date

pine berry
#

ya

earnest geode
#

so you should be able to follow the instructions under

#
If you already have a functioning CAN setup, and your [mcu toolhead] canbus_uuid is in your printer.cfg, then you can force Katapult to reboot into Katapult mode by running:
#

which is all software. no messing around with hardware buttons involved

#

we only went down rabbit holes of reset buttons with the mainboard because of flashing it with the wrong firmware the first time

pine berry
#

ok. thanks for clear things out

earnest geode
pine berry
#

@earnest geodeStill having issuse updating the toolhead CANBUS.

i'm not sure my BigTreeTech SB2209 and SB2240 menucofig is correct or not. Here is screenshot:

earnest geode
#

Check your communication interface

pine berry
#

thanks. I think i have to check where the cable connected. I forgot. Let me open the printer.

and sorry I got tired last night, passed out.

earnest geode
#

I just mean, check what you have that set to

#

We know it's running canbus

#

And from esoterical's, we know what port that means it's using

#

But you have it set to some usb port 😛

pine berry
#

that's what i don't remember which port is one.

( ) CAN bus (on PA11/PA12)
( ) CAN bus (on PA11/PB9)
( ) CAN bus (on PB8/PB9)
( ) CAN bus (on PB12/PB13)
(X) CAN bus (on PD0/PD1)
( ) CAN bus (on PB0/PB1)
( ) CAN bus (on PD12/PD13)
( ) CAN bus (on PC2/PC3)

#

i tried CAN bus (on PB0/PB1) but didn't work either

earnest geode
#

What happened when you tried to flash, with the canbus setting?

pine berry
#

i didn't detect my uuid

#

sorry was it answer?

earnest geode
#

Can you show me the building and flashing steps?

earnest geode
pine berry
#

i did make menucofig

earnest geode
#

Sure, and then?

pine berry
#

then I do: python3 ~/katapult/scripts/flashtool.py -i can0 -r -u e8c320837692

earnest geode
#

Okay, but you're skipping steps!

pine berry
#

it didn't said Flash success

earnest geode
#

Important ones!

pine berry
#

oh ya sorry

#

make clean
make

#

ok I did "make" now do? python3 ~/katapult/scripts/flashtool.py -i can0 -r -u e8c320837692

#

here is what i got:

#

b'V24 '
Connecting to CAN UUID e8c320837692 on interface can0
Sending bootloader jump command...
Bootloader Request C

#

Complete

earnest geode
#

Okay, that's probably fine. Flash complete on the reset command was always basically a bug

#

I'm guessing it just got fixed at some point

#

So then what?

pine berry
#

python3 ~/katapult/scripts/flashtool.py -q

I got:

Resetting all bootloader node IDs...
Checking for Katapult nodes...
CANBus UUID Query Complete

#

didn't see the uuid

earnest geode
#

Hmm. So it didn't show up in katapult at all...

#

Is the status led on the toolhead board flashing?

pine berry
#

let me check

#

no it's not flashing

earnest geode
#

Well, might be time to try a double tap on the reset button after all

pine berry
#

ok. let me do.

#

now the RED led is flashing

#

what i do now

#

go back to step 3?

earnest geode
#

Try the flashtool -q again

#

See if it shows up now

pine berry
#

ok i did : python3 ~/katapult/scripts/flashtool.py -q

got respond:

Resetting all bootloader node IDs...
Checking for Katapult nodes...
Detected UUID: e8c320837692, Application: Katapult
CANBus UUID Query Complete

#

python3 ~/katapult/scripts/flashtool.py -i can0 -f ~/klipper/out/klipper.bin -u e8c320837692

#

I got respond:

b'V24 '
Connecting to CAN UUID e8c320837692 on interface can0
Sending bootloader jump command...
Resetting all bootloader node IDs...
Detected Klipper binary version v0.13.0-78-g1cc639807, MCU: stm32g0b1xx
Attempting to connect to bootloader
Katapult Connected
Software Version: ?
Protocol Version: 1.0.0
Block Size: 64 bytes
Application Start: 0x8002000
MCU type: stm32g0b1xx
Verifying canbus connection
Flashing '/home/biqu/klipper/out/klipper.bin'...

[##################################################]

Write complete: 16 pages
Verifying (block count = 496)...

[##################################################]

Verification Complete: SHA = 0D7E7D4621EFEA3FE9CFFD1986E6E5A5AD186BAE
Programming Complete

#

and I ran:

python3 ~/katapult/scripts/flashtool.py -i can0 -q

Resetting all bootloader node IDs...
Checking for Katapult nodes...
CANBus UUID Query Complete

#

still dont detect the uuid:

earnest geode
#

Silly question, is klipper still running?

pine berry
#

i think it's stop

#

in step 2: sudo service klipper stop

earnest geode
#

Okay

#

Can we re-check what make menuconfig looks like right now?

pine berry
earnest geode
#

That all looks sane...

pine berry
#

right.

earnest geode
#

You did do a fresh make clean & make after changing it back to canbus, right?

pine berry
#

yes

#

i can redo again if what you're asking

earnest geode
#

It's not a bad idea to step through again, and see if anything different happens.

#

But no, I wasn't hinting at that

#

I just wanted to confirm nothing had gotten missed while we were jumping around

pine berry
#

ok let me redo the whole thing again from step 1

#

ya. still error. Didn't detect the uuid when I do: python3 ~/katapult/scripts/flashtool.py -i can0 -q

#

in step 4

#

do i need to do DFU mode?

earnest geode
#

Double clicking the reset button is to put it into katapult, not dfu

#

But yes, you'll need to do that

pine berry
#

i did

#

i tried double click the reset button

#

what now

earnest geode
#

See if it somehow behaves better this time

pine berry
#

seem i can't enter DFU mode

#

nvm, usb cable is bad.

pine berry
#

yes. done

#

got it working again now

#

THanks for your time @earnest geode I'm really appricate your help

#

DFU mode help.