How To Back Up Printer's Firmware

Has anyone ever backed up the firmware on their printer? If so, how did you do it. Why? Well, let’s say you want to play with some of the settings, or perhaps test out other versions of firmware, but don’t want to lose everything you’ve configured in the firmware – i.e. you want to be able to easily restore the current firmware.

Did you check for Octoprint plugins to do it?

Not specifically, but a general search of the Internet didn’t come up with any hits related to OctoPrint.

The OctoPrint plugin, Marlin EEPROM Editor, sounds like it will do what you want.

Cheers

Thanks @Alan, that may indeed be exactly what I’m looking for, and it’s another point for OcroPrint.

I have spent a lot of time on this - coming from a computer background. When I used Marlin, I would back up the source folder which is somewhat large and contains a lot of files. Then you need to back up your Raspberry Pi. One was is to make a copy of the microSD card using something like Win32 Disk Imager. This will allow the creation of an IMG file that can be saved.
I’m now using Klipper / Fluidd which moves all of the backups needed to the Raspberry Pi, I still make an IMG file, but almost all of the information that is needed to be saved is in a couple of text configuration files.

There seem to be quite a few of us here that come from IT backgrounds. :wink:

I wasn’t worried about backing up the Pi. As you say, it’s pretty simple really. My concern was backing up the actual firmware on the control board. Marlin 2.x is great in that it allows for the altering and storing of parameter values right on the menu screen. Unfortunately, there is no mechanism built into Marlin (that I know of) to back up those changes to, for example, an SD card. The Marlin EEPROM Editor mentioned by @Alan seems to be an answer. I installed it and did a couple of backups. I cannot call it a solution yet because I haven’t tried a restore.

That said, like you, I’m experimenting with Klipper with Fluidd. I’ve been watching videos on YT from nero 3DP. He has some interesting takes on things, although I think some of them come directly from the Klipper documentation. For example, the idea that extruder calibration should be done cold, and with no nozzle in the path – Flow should be used to compensate for nozzle pressure, thermal differences, and filament variances. Also, bed tramming should be done cold using paper – Z Offset should be used to dial in nozzle clearance.

I like the Fluidd interface. I especially like the fact that the printer.cfg file can be modified right in the interface. A simple restart of Klipper and the changes are in effect. And, as you say, backup is easy, because there is really nothing in the printer’s firmware except interface software. I look at it much like an OS driver, in that the driver acts as an intermediary between a piece of hardware and the rest of the OS. No parameters are stored on the control board. I also like that the printer.cfg file seems to be the only configuration file required, making it the single place to go, which is nice.

As a programmer IT guy (yeah, OK, a nerd), I really would like to see the process of installing Klipper simplified. A lot more predone firmware packages would eliminate the need for the make menuconfig stuff. It’s not that it’s hard for IT people; it’s just that it seems silly for it to be done over and over by hundreds of thousands or millions of people, and it can be daunting for non-IT people.

I’ve already noticed that Klipper seems to run my printer’s stepper motors more smoothly. Homing the axes with the BL Touch is very, very smooth. The mesh bed tramming is quick and smooth as well. I have not yet printed anything; I’m at the point of calibrating the Z Offset, Pressure Advance, and Input Shaper. I’m looking at accelerometers on Amazon.

All 5 of my printers are running Klipper / Fluidd. I watched the same video you did by Nero3d, and saw the areas that he glossed over or skipped. I created a document to go with his video Install Klipper by woodwaker - Thingiverse. I was pretty good at editing and changing Marlin, but it was time consuming to change one small entry, recompile, reload to the printer, test and figure you were off and repeat the process. I can change an offset value and test in about a minute with Klipper. It also has some features that are really helpful in calibrating the printer. The use of an acceloremter (ADXL345) is really interesting. Here is a link to the manual method. Resonance Compensation - Klipper documentation Here is the method using the ADXL board Measuring Resonances - Klipper documentation The boards are about $5 each on Amazon, the wiring is probably the hardest part.

Yesterday, I saved every page of the Klipper documentation as PDFs on my server.

I did something similar. Let me know if you pursue Klipper. I am using two different setups, fluiddpi-rpi-lite for my Ender 5s suing a BTT SKr Mini E2 V3 and V-coreos for my Rat Rig. Both are very similar, but the V-coreos was built with a lot of optional printers, and boards in mind. It has a lot of configuration files that are in different folders and are called from the main printer.cfg. I sort of like it once I figured it out. The fluiddpi must be built for the board you are going to use and all of the configuration is typically done in the printer.cfg.

The biggest weakness that I ran into with Klipper was filament runout - M600 command. I use it often to change filament on a specific layer. It took me over a month to get a working macro that I was happy with. I put it on Thingiverse also.

Why would you need an accelerometer for 3d printing? I know I’m showing my ignorance but I thought it was something to flip around your cellular screen or something similar.

On a 3D printer, an accelerometer can be used to identify the printer’s harmonics. From your past experience I’m sure you know that pretty much everything has harmonics: i.e. sympathetic vibrations. Those vibrations can cause the hotend to move a bit erratically in the X and Y directions. I recently learned that this is a major cause of ringing: you know, the echoes/shadows of lines/holes/etc in prints, like this:

[IMG2=JSON]{“data-align”:“none”,“data-size”:“full”,“src”:“https://i.all3dp.com/cdn-cgi/image/fit=cover,w=360,gravity=0.5x0.5,format=auto/wp-content/uploads/2018/08/26133042/a-ringing-test-model-orcinus-thingiverse-180826.jpg”}[/IMG2]
ringing on the right. no ringing on the left

After identifying the harmonics of the X and Y axes, software like Klipper can use the values to help cancel out the vibrations. That can help eliminate the ringing/echoes/shadows in prints.

I’m impressed. Thanks for your excellent explanation.

@Ender5r will M503 work for what your after? Here’s a video showing it’s use and more tips and tricks

@Gramps, I don’t think so. If all elso failed, I guess having a report of the settings would be better than nothing. I could re-enter them manually, although that would suk. What I was really looking for was more like a computer image backup. You know, backup in 1 step and restore much the same way.