Jump to content

Klipper Updates - why do I do this to myself!?


TitusADuxass

Recommended Posts

Greetings All,

So, I got back after 3 weeks of sunshine in Croatia, BiH & Macedonia. Three weeks of no printing, I took my V0 with me but never got around to using it.

Anyway back to the topic, I updated to the latest version of Orca slicer. I thought that a klipper update might also be necessary as I haven't updated for a long time and there was a Beacon update available.

Yes you guessed right, the v2.4 no longer works!

SSHing in and querying Can0 returns no such device, all devices (M8P, O2 Toolboard & Beacon) are listed when I run ls /dev/serial/by-id

Do I have to jump through all the hoops again or is there an easier way to recover the system?

Link to comment
Share on other sites

The last Klipper upgrade did cause some issues, like the AFC-lite would not work. the AFC discord has some information. they also launched an upgrade that resolved the issue with AFC. the quick was to return to step Klipper back to an earlier version.  there are several fixes available on the Discords. Hope this helps. <><

  • Like 1
Link to comment
Share on other sites

My wife would go crazy, if I take my 3D printer on vacation 🤣. Anyway, I remember I had a similar thing once and this was the time where I switched using Katapult because it allows you, once installed to update Klipper just using the command line. There is a very useful tutorial for all components how to do that but unfortunately it's in German, however, I think Google Translate will do the job. 

Probably start here: https://drklipper.de/doku.php?id=klipper_faq:klipper_0_auf_100:btt_cb2_manta_m8p_bridge_sb2209

  • Like 1
Link to comment
Share on other sites

You are not the only one suffering issues with Klipper update. I made  same mistake,updated the klipper to latest version and guess what issues with Voron 2.4 stopping mid print,no responding from klipper screen,moonraker connection lost. 

Basically cant connect to the moonraker to see what the hell is going on. Only solution to reboot the printer then it works few prints fine and disaster strikes again. 

Issue started after klipper update that went without any issues. Klipper  rebooted and printer was online no errors. 

First print after update and toolhead just stopped mid print,touch screen is powered but in frozen state,no respond from the touch screen interface. 
Moonraker connection disconnected,when i try to connect to mainsail,it doesn't respond. Trying to connect to rpi4b via ssh no luck. 
Only reboot fix this issues for short time. Looking at the klippy logs during a print,toolhead stopped and all data collection just stopped no errors. 
If i roll back the logs then maisail / klipper reboot in to error state. After firmware restart no errors...So yea I don't know what the hell is wrong with me and this klipper.
Just updated fully working printer and now its at my desk waiting for diagnostics..Updates are meant to add new futures and fix bugs in the systems not brake working configurations.
Voron 2.4R2 

Octopus pro 1.1 board

TMC 2209

RPI4B with active cooling

Latest Klipper/mooraker files

Update:

Decided to order new USB A to USB-C double shielded cable and a new sdcard and test if anything changes.
At least i can rule out possible issues with cable or sd card being responsible for  MCU comunication issues and then go from there..

Edited by SamppaD
Update
  • Like 1
Link to comment
Share on other sites

Not sure if this is same issue. I recently installed updates on my system and after reset it could not find my mcu. When I checked CAN network using 

ip -s -d link show can0

it said state DOWN

 I ran

sudo ip link set can0 up type can bitrate 1000000

everything worked fine after that.  Im thinking an update disabled can network and it just needs to be reset manually

  • Like 1
Link to comment
Share on other sites

3 minutes ago, agger96 said:

Not sure if this is same issue. I recently installed updates on my system and after reset it could not find my mcu. When I checked CAN network using 

ip -s -d link show can0

it said state DOWN

 I ran

sudo ip link set can0 up type can bitrate 1000000

everything worked fine after that.  Im thinking an update disabled can network and it just needs to be reset manually

I'll give that a whirl first.

Link to comment
Share on other sites

38 minutes ago, Repman said:

Sorry, can not help you in this issue.

But what it is always a good idea to make a backup of the pi SD-card before changing something.

A good helping script to perform the backup is the pi shrink script:

https://github.com/Drewsif/PiShrink

You could look in my github to find out how it works: https://github.com/reparator/RaspberryPi-Image-Backup

I don't have an SD card, I'm running CB2not a Pi.

Link to comment
Share on other sites

Updating Klipper these days requires a few steps, especially when using CAN topology and/or multiple MCUs for ERCF, AMS etc. Each MCU need to run the same version of Klipper or unknown issues can occur.

For a while I used to run all the commands manually, copying firmware binaries etc. After a few times, entering the wrong parameter in one of the easiest ways to fall in the Linux/Klipper Rabbit hole and chasing your tail for days! Most of the time, it's faster to start with a "clean" Pi as long as you have saved the config directory from your printer!

To help and avoid Murphy's Law, I have created one bash script that runs all the commands I will usually run for updating all Klipper MCU  related packages/firmware. You do not have to use Katapult, but after the first time updating Klipper on CAN MCUs is much, much easier.

There are some brilliant code written for updating Klipper with building "smarts" but always, your mileage may vary as no two systems are the same and I don't feel debugging complex code anymore; therefore I have created a simple bash script that just runs the repeatable commands for the updates. Of course, your printer has to be fully operational for this script to work.

I have put some more details in a previous FDM post. To make a long story, short, the idea of the scripts is you rename the Klipper ".config" created after each Klipper MCU to something like "config_USB", "config_EBB", comfig_ERCF" so when you re-run the "menuconfig" command for the next MCU it will not overwrite the previous MCU configuration but create a new one. At the end, you will have several renamed ".config" files for each MCU that the script re-call and run for the new Klipper version; see script from above link.

 

If you have a running system, I can help modify this script for your printer. After that, for every Klipper update, you only have to run the Klipper UPDATE from the Mainsale MACHINE page and then from a ssh window the linux script command "~/auto_config.sh".

 

 

  • Like 1
Link to comment
Share on other sites

3 hours ago, NikosSprocket said:

If you have a running system, I can help modify this script for your printer. After that, for every Klipper update, you only have to run the Klipper UPDATE from the Mainsale MACHINE page and then from a ssh window the linux script command "~/auto_config.sh".

I like the sound of this, but it is a little confusing.

What do you mean by a running system? My v2.4 "runs" but not together.

After reading your post, I suspect that one problem is that the klipper version on the Orbiter 2 Toolboard is different to the one on the Manta M8P. 

The other problem is the loss of the Can0 on the M8P.

I quickly ran through the first page of Esoterical's setup 

 

Make sure the systemd-networkd service is enabled by running

sudo systemctl enable systemd-networkd

then start the service with:

sudo systemctl start systemd-networkd

I got the masking error and did what he recommended.

run sudo systemctl unmask systemd-networkd

run sudo systemctl start systemd-networkd again

 

and it appeared to be working.

 

For clarification - the setup is: 

Manta M8P v2.0

CB2

Beacon

Orbiter 2 Toolboard (via the supplied USB comm device).

It would be great to have a script that works for all of my printers as they all use the same toolboards and BTT boards.

Link to comment
Share on other sites

16 hours ago, Repman said:

A good helping script to perform the backup is the pi shrink script:

https://github.com/Drewsif/PiShrink

You could look in my github to find out how it works: https://github.com/reparator/RaspberryPi-Image-Backup

I had already made a copy of the config files before I commited to the change.

I have looked at your script - that's way too complicated for me!

Link to comment
Share on other sites

I'm sorry that I don't have a solution for you. I'm following because I run the same hardware, except for the tool head, on my V2.4. It seems that the last few updates are breaking things! The last update I did disabled the Beacon probe. Now this one, you can't get CAN IDs.

  • Like 1
Link to comment
Share on other sites

Hi. Just noticed that klipper update was available so I  updated Klipper in hope that will solve issues that i have. 
Well update went fine but klipper touch screen is displaying image up side down. 
Good job Klipper developers 10 points achieved 🙂
If anyone has this issue after restart middle switch at the bottom of the tft50pi klipper screen press it it will rotate image 180 degree.

  • Like 1
Link to comment
Share on other sites

Interestingly enough, I powered-up my updated Voron after the latest Klipper update and it was not happy; CAN interface was DOWN!

After digging around, I found out that Pi/Debian Image packaging does not install anymore the ifupdown package and that will break manufacturer's installation processes. As all my MCUs and U2C boards are originated from BTT I follow their installation recommendations. Well, with Debian version 12.x and up, these installations will fail to bring can0 interface UP.

I wrote a little how-to at Debianb Bookwarm 12.x Missing ifupdown package. I hope it can help too.

FYI: The Esoterical CAN Guide is being updated for the new Debian OS so if you are doing a "clean" install you may work with that and then jump back to the manufactorers manuals for flashing/updating CAN interfaces.

Edited by NikosSprocket
  • Like 3
Link to comment
Share on other sites

On 10/6/2025 at 10:03 AM, Repman said:

Sorry, can not help you in this issue.

But what it is always a good idea to make a backup of the pi SD-card before changing something.

A good helping script to perform the backup is the pi shrink script:

https://github.com/Drewsif/PiShrink

You could look in my github to find out how it works: https://github.com/reparator/RaspberryPi-Image-Backup

That's pretty cool and one day I would like to check the PiShrink code.

About dd; personally I avoid it as it's raw device reader/writer without performing any checksums nor error corrections to the written blocks. If one block has one error, the whole dd image will be useless. Please, don't take this the wrong way, I just have spent hours dealing with dd data tapes and trying to extract the "good" data after a catastrophic system failure.

Today, we can "burn" a Mainsail image, copy the printer_data/config/ files, make some system edits and lights, action!

Cheers,

Nikos

Link to comment
Share on other sites

I posted my last responses in the incorrect thread - sorry.

Anyway to summarise - I have all MCUs running the same version of klipper.

But I still have the original error message - 

 

MCU 'mcu' shutdown: Timer too close

 

And having looked at the klipper log, it is down to the Beacpon (it's the entry in klipper log).

There's a huge amount of data in the log file. I won't post it here, but here's the top part - 

beacon: loaded fnorm=5129780.95 temp=20.05 amfg=0.907 from nvm
beacon: built tempco model version 1 {'amfg': 0.9067685605279543, 'tcc': -5.776959116755578e-06, 'tcfl': -0.0006535968200513998, 'tctl': 0.0020124779713568196, 'fmin': 5129780.950024724, 'fmin_temp': 20.04865837097168}
Enabling Beacon accelerometer
Selected Beacon accelerometer scale 16g
Sending MCU 'beacon' printer configuration...
Configured MCU 'beacon' (0 moves)
Starting heater checks for extruder
Write g-code response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/gcode.py", line 458, in _respond_raw
    os.write(self.fd, (msg+"\n").encode())
BlockingIOError: [Errno 11] Resource temporarily unavailable
Stats 2297.1: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000065 bytes_write=3489 bytes_read=7636 bytes_retransmit=9 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...