Still a problem with CAN bridge and FIRMWARE_RESTART command

Hello, I’ve updated to CAN bridge mode and I see I have a problem with FIRMWARE_RESTART. Firmware version: v0.12.0-8, BTT Octopus plus Fly Mellow SB2040 CAN toolhead. I use canboot mode in 2040 toolhead (no canboot in main board).
my mcu configuration:

[mcu]
canbus_uuid: 0692bed3a983

[mcu SB2040]
canbus_uuid: 40120b79508a

I realized that the problem is with resetting of main MCU. It works on second attempt (sometimes). I played with the python code and found that adding a delay after reset of main CPU solves the problem (not sure if it is proper solution, probably just a workaround only):

file mcu.py:

++ import time
.
.
.
    def _firmware_restart(self, force=False):
        if self._is_mcu_bridge and not force:
            return
        if self._restart_method == 'rpi_usb':
            self._restart_rpi_usb()
        elif self._restart_method == 'command':
            self._restart_via_command()
        elif self._restart_method == 'cheetah':
            self._restart_cheetah()
        else:
            self._restart_arduino()
++      time.sleep(1)

Please put your code snippets as Preformatted Text.

Format

The indentations are all lost - if there have been some

OK, done…

1 Like

Do you have allow-hotplug can0 set at /etc/network/interfaces.d/can0 or auto can0?
The latter is wrong for a klipper mcu can bridge setup and is a pretty common misconfig.

My content of /etc/network/interfaces.d/can0 :

allow-hotplug can0
iface can0 can static
    bitrate 1000000
    up ifconfig $IFACE txqueuelen 128

That is correctly configured.

I have an SB2040 toolhead and have for years and don’t have this issue… Wonder if its a BTT Octopus issue (wouldn’t surprise me).

Do you mean hardware issue of BTT Octopus? I doubt. I have it for some years and problem appeared after I loaded CAN bridge mode klipper firmware into it. Just to be sure: do you have the same main mcu hardware (BTT Octopus) and do you use can bridge mode?

I don’t know why I didn’t read CAN Bridge, but still, it’s weird that the SB2040 is affected. The messages should be the same.

My setup is:
Pi → Fly UtoC 3 → CAN Toolheads

Disregard, I apparently can’t read at all

I realized that the problem is with resetting of main MCU