Tuesday, January 18, 2022

[3D Printer Series] Updating Octoprint/Klipper for Python 3

 After upgrading/resurrecting my Sapphire Plus with a new cast aluminum build plate, 750 AC silicone bed heater, SSR, relay board, magnetic textured PEI build surface, I was prompted to update OctoPrint since it was going to stop supporting Python 3. Unfortunately, if you use OctoPrint w/ Klipper the update steps are a lot more involved than explained.

After you update your Raspberry Pi, you basically have to reinstall Klipper as well and installing Klipper on the Sapphire has a lot of special steps that are unique to the Robin Nano 1.2 board that we use. 

You need to follow the klipper install guide: https://www.klipper3d.org/Installation.html , but during the make menuconfig section you need to match this:



Then the make command failed for me. Previously, when running one of the earlier scripts I got a message that looked more like a warning than a true error: 
 InRelease' changed its 'Suite' value from 'stable' to 'oldstable' N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
This turned out to be important and you need to run: sudo apt update --allow-releaseinfo-change

Which then allows you to update all the packages. The subsequent errors to make can be resolved by installing the missing packages using apt-get install <package>

Once make can run successfully, you still need to run (do not attempt to flash the mcu):

./scripts/update_mks_robin.py ./out/klipper.bin ./out/Robin_nano35.bin

Then you can use something like Filezilla to SFTP the Robin_nano35.bin file to your computer and then onto a microSD card to put in the Robin nano. If the LCD screen never goes blank, you will likely have to repeat the process starting from make, but before you do run:

make clean

If the screen does go blank, it means the update succeeded so you should remove the SD card and restart the MCU

No comments: