A firmware update isn't rocket science, but it can ruin your whole weekend if you mess it up. Most makers think it's enough to just throw a file onto the SD card and hope for the best. Spoiler: It’s not. Here’s how to really keep your printer up to date without it turning into junk afterward.
What a Firmware Update Actually Does
Firmware is the operating system of your printer. It controls every single stepper motor, every temperature sensor, and every safety feature. An update can bring new features, fix bugs, or improve performance. Sometimes, though, it can also break things that were working before. That’s why the golden rule is: If your printer is running and printing what you need, keep your hands off updates. Just because version 2.0.7 is available doesn’t mean you need it.
The firmware communicates directly with the hardware via G-codes. When you send M115, it responds with the current version. M997 initiates a firmware update on Marlin-based printers, but be careful: This only works on certain platforms like LPC176x, STM32, and STM32F1. On other boards, the command crashes or gets ignored.
Understanding the Different Update Methods
Over-The-Air Updates are the most convenient way, but also the riskiest. Your printer downloads the new firmware from the internet and installs it automatically. This usually works smoothly with Prusa, Bambu Lab, and modern Creality printers. But if the internet connection drops during the update, you’ll end up with a brick. So never start OTA updates when the Wi-Fi is unstable or thunderstorms are forecasted.
USB Updates are the classic method. For Duet boards, you need the Bossac tool in version 1.3a. The transfer speed is only 1200 baud, so plan for 10-20 minutes. First, press the erase button, wait 5 seconds, then press the reset button and wait another 15 seconds. The printer will then appear as "BOSSA Program Port" in the device manager.
SD Card Updates are the safest because there’s no connection that can drop. Most manufacturers use USB sticks or MicroSD cards with a maximum capacity of 32GB. Larger cards are often not recognized because the firmware only supports FAT32. For Elegoo printers, the folder "ELEGOO_UPDATE_DIR" must be in the root directory. For Creality K1 series, you start the update via "Settings - Info" and click on "Upload."
Critical Preparations Before Every Update
Backup is key. With M503, you can read all current settings and save them in a text file. Your bed leveling data, PID values, and Z-offset often get lost during the update. For Duet boards, you can back up the entire configuration to the SD card with M993.
Check the firmware compatibility carefully. Not every version fits your board. With Prusa printers, you can't jump directly from version 1.2.0 to 1.4.0. You need to update step by step through 1.3.0, or the update will fail. The firmware file should be about 270 kB in size. If it’s significantly smaller, you probably downloaded an HTML page instead of the binary file.
Make sure the printer runs stably. Wobbly connections, overheated boards, or faulty SD cards can lead to failed updates. For touch-screen printers like the Elegoo Neptune, you often need to update both the mainboard and the display separately. The display update requires a TF card and a 2mm Allen key to open the case.
After the Update: The Inevitable Calibrations
Every firmware update resets your calibration. Auto bed leveling and input shaping are mandatory before you start your first print. For Creality K1 printers, go to "Settings - Self-check," enable both options, and wait until the check is complete. This takes 10-15 minutes, but without this step, you’ll be printing garbage.
The Z-offset needs to be readjusted. Place a sheet of A4 paper between the nozzle and the bed and adjust until you feel significant resistance. The paper should pull out but not push in. For Elegoo printers with 121 leveling points, this process takes particularly long, but don’t skip it.
PID values for the hotend and heated bed also get lost. Start a PID autotune with M303 for the hotend and M304 for the bed. Without correct PID values, temperatures fluctuate and ruin your print quality. Save the new values with M500 in the EEPROM.
If the Update Goes Wrong: Troubleshooting
Firmware update failed is the classic issue. With Prusa printers, you’ll get error code #10534 if the firmware file is corrupted or the USB stick was removed during the update. Sometimes, it’s also because you jumped too far ahead. Go back to the previous version and update step by step.
White screen after a touch-screen update means the display update failed. For QIDI Plus3 printers, you can fix this with a MicroSD card. Save the file "800_480_PLUS" to the card, insert it with tweezers into the SD slot on the back of the display, and restart the printer.
Printer won’t start is the worst-case scenario. For Marlin-based boards, a factory reset with M502 followed by M500 often helps. For Duet boards, you can restore a backup from the SD card with M994. In the worst case, you’ll need to reflash the firmware via the bootloader.
Advanced Update Strategies for Power Users
In-Application Updates on Duet boards are elegant but require the file "iap.bin" in the /sys directory. Upload the RepRapFirmware.bin file via the web interface, and the system will automatically ask if you want to update. However, this only works from certain firmware versions onward.
Automatic Updates on Bambu Lab and newer Prusa printers check for new versions every 24 hours. You can disable this in the network settings if you want to keep control over when updates happen. This is sensible for critical prints since updates can sometimes reset settings.
Rollback Strategies are important for production environments. Always keep the previous firmware version on the SD card. For Duet boards, you can save multiple versions as "RepRapFirmware-backup.bin" and quickly switch back in case of issues.
The reality is: Firmware updates are necessary, but never risk-free. Plan them for quiet hours when you have time for troubleshooting. A functioning printer is worth more than the latest features you might never need.