OctoPrint / OctoPrint-FirmwareUpdater

OctoPrint plugin for flashing pre-compiled firmware images to a 3D printer.
https://plugins.octoprint.org/plugins/firmwareupdater/
GNU Affero General Public License v3.0
351 stars 76 forks source link

Board reset fails after successful BFT #359

Closed ali1234 closed 2 months ago

ali1234 commented 2 months ago

Hardware Setup Ender 3 with BigTreeTech SKR E3 Mini DIP V1.0 OctoPrint version : 1.10.1 OctoPi version : 0.18.0 Marlin version: 2.1.2.3

Describe the problem After successful Marlin BFT, the board crashes instead of resetting.

Log Files plugin_firmwareupdater_console.log octoprint.log

Additional context The firmware file is successfully transferred to the SD card. Only resetting does not work, with or without "alternate reset" selected. The printer's display says "Resetting..." but then it does not reset. It just stays like that forever and does not respond to controls.

After manually power cycling the printer, it will correctly install the firmware from the SD card, but then Octoprint cannot reconnect to it. It stays stuck at "State: Opening serial connection" forever. This is not a Linux kernel issue: restarting the Octoprint service with sudo service octoprint restart is enough to make it connect properly to the printer.

benlye commented 2 months ago

I'm wondering if some other plugin is interfering with the port. Can you disable your other OctoPrint plugins and then try a firmware update? PortLister is probably the one I would start with.

Post the OctoPrint log.

ali1234 commented 2 months ago

There is no change with all other plugins disabled.

octoprint.log

benlye commented 2 months ago

OK. Was worth a try.

What happens if you issue M997 in the OctoPrint terminal? The board should reset...

ali1234 commented 2 months ago

The same thing: the printer freezes with "Resetting..." on the display.

benlye commented 2 months ago

Then it seems like there's something else going on with your setup. If you can solve the problem with M997 outside of the updater plugin, the plugin should begin to work.

My assumption is that something else on your Pi is blocking the port and you'll have to do some digging to try to find out what.

ali1234 commented 2 months ago

So failing to reset seems to be a bug in Marlin, and getting stuck at "State: Opening serial connection" seems to be an Octoprint bug. I worked out that just clicking "disconnect" and then "reconnect" is enough, after power cycling the printer to un-crash it, at least when portlister is disabled. The port is not blocked, Octoprint just gets stuck because the printer doesn't respond to any commands when it is crashed. The Pi is running OctoPi and the only other software on it is webcamd.

ali1234 commented 2 months ago

It turned out to be the SD card - ironically the one supplied with the SKR E3 DIP. The SD card supplied with the Ender 3 works fine.

github-actions[bot] commented 2 months ago

This issue has been automatically locked because there was no further activity after it was closed. Please open a new issue for any related problems.