Clear all

5.1.0 Firmware for Original Prusa XL Multi Tool so out!  

Same Old Shane
Member Admin
5.1.0 Firmware for Original Prusa XL Multi Tool so out!

Hello all;
We are pleased to announce our release of the final release version of our 5.1.0 firmware. The following updates, changes and features can be found below. Please make sure to download the correct version of the firmware for your machine on our github page or from the main launch page of your printer located on our site. 


Here’s a quick overview:

  • Firmware update instructions, preparation for OTA updates
  • Printing speed boost with Input Shaper and Pressure Advance (XL and MINI)
  • Major updates to network code; Instant Printing feature
  • Major updates to Prusa Connect and network communication
  • Introducing new efficient open-source Binary G-code format
  • New useful pre-print screen for XL Multi-Tool printers
  • Cancel object directly from printer’s menu
  • Octoprint support information
  • Additional improvements and tweaks
  • QOI image thumbnails instead of PNG to save space
  • Fixes and changes

This is the stable release of firmware 5.1.0 with Input Shaper for the Original Prusa XL and MINI, featuring major changes and improvements to the code and user interface. This release is recommended to all users.

If you are not using alpha/beta releases, upgrading from previous versions will give you plenty of new options and features to dig into. We’re covering everything important in these release notes, including changes introduced in alpha/beta releases.

Firmware update instructions + new bootloader (XL, MK4/MK3.9, MINI)

In the case of MK4 and XL, download the firmware file below, copy it onto a USB drive, and insert it into the printer. During the boot, the printer will check for the firmware file and ask you to confirm the update.

In the case of the MINI/MINI+ printer make sure you are running either the previous 5.1.0-alpha2 or at least firmware 4.4.1. Once the 4.4.1 update is installed, proceed to flashing the 5.1.0 firmware. The upgrade might take longer than usual.

While flashing this firmware release, the printer’s bootloader will be updated as well. The new bootloader improves support for OTA (over-the-air) updates from Prusa Connect. Also, the graphics of the bootloader now matches the rest of the UI.

Input Shaper and Pressure Advance for faster printing comes to XL and MINI

After the MK4/MK3.9 models, we’re now adding Input Shaper and Pressure Advance to the Original Prusa XL (all versions) and MINI! This is a major upgrade that noticeably boosts printing speeds and we strongly recommend updating the firmware. The Input Shaper functionality for XL and MINI was available in previous firmware releases but this is the first stable release with this feature.

Input Shaper is a feature designed to reduce ringing (also known as ghosting) by canceling resonance vibrations. It analyzes the printer’s movements and applies a filter to the input signals. Thanks to faster travel speed and acceleration, it can also minimize stringing. It also enables much faster printing.

Pressure Advance is another important addition to the firmware’s set of features. This function aims to improve the quality of printed parts by compensating for the pressure changes in the nozzle during printing. Pressure Advance together with Input Shaper enables the printing of better-looking models, reducing ringing, overshoots and issues with inconsistent filament extrusion. They also enable faster printing.

Precise stepping is a new implementation of the stepper routine, that allows precise timing of motor steps. It was a necessary prerequisite for both Input shaper and Pressure advance.

Please keep in mind that you need to slice your models with the newest PrusaSlicer IS-enabled profiles. We also recommend updating to the latest version of PrusaSlicer. Older G-codes are compatible but won’t be printed faster!!

Original Prusa XL - Current Input Shaper limitations

In this firmware release, the Crash Detection feature is temporarily disabled on the Original Prusa XL because overly tight belts may trigger a false crash detection. We’re currently working on improvements in belt tension tuning. It will likely be accompanied by a new belt tuning app profile.

Major update of the network code and Instant Printing feature

We have made major improvements to the network code to increase the speed of network printing. No longer do you need to copy files onto a USB drive and walk to the printer. You can keep the USB in the printer and send files via Prusa Connect.

With G-code streaming support, you can start the print without downloading the entire file to the printer beforehand. Instead, only a small portion of the file is downloaded, allowing the print job to start almost immediately. The remaining G-code is automatically downloaded while the print is in progress. In most cases, the print starts within seconds.

You can also add a physical printer in PrusaSlicer and use it to send the sliced file via Prusa Connect (G-code streaming enabled) and start the print job from there with just two mouse clicks. However, If you add you printer via PrusaLink the G-code streaming / Instant Printing features is not supported.

We are also introducing a new G-code format, a binary G-code, which is more space-efficient (more on that later).


Last, but not least, we have further optimized the USB writing speeds.

Major updates for Prusa Connect and network communications

The Prusa Connect wizard has been updated and now shows the number of attempts to establish a connection. In case it fails, it displays an error message and a link to relevant troubleshooting articles.

We’re also introducing a new, easier way to connect your printer to your wireless network through PrusaSlicer. Initiate the Wi-Fi setup wizard on the printer and let the system create and empty configuration file on the USB drive. Then, take the USB drive, plug it into your PC and start PrusaSlicer. The software will show a message offering you an automatic population of the configuration file values. This will transfer your current Wi-Fi login from your PC to the configuration file on the USB.

Prusa Connect now correctly synchronizes the contents of the USB drive, so you can view the files remotely via your web browser. Prusa Connect transfers have been vastly improved with the introduction of the G-code streaming and smaller binary G-code file format. The system can also alert you in case there’s an issue preventing you from printing - e.g., if the filament in the G-code does not match the currently loaded filament (this is called “attention state” in Prusa Connect). As was mentioned earlier, network transfers can recover from power and/or network failures, except for some rare cases.

In case of a fatal network failure, the print is paused once it detects that the G-code is no longer being streamed. When the connection is not about to be restored anytime soon, you can manually resume the print. Take the USB drive from the printer, plug it into your PC and replace the partially downloaded .gcode file (shown as a folder) with the regular complete .gcode file. When you plug the USB drive back into the printer, the system will recognize the file and find exactly the part of the code where the print stopped and the print job will be resumed.

Last, but not least, Prusa Connect now allows you to flash your printer firmware remotely. You need to have your 3D printer added to Connect and then you can download and transfer the firmware file to your printer. Connect will then invoke the firmware flashing procedure.

New Binary G-code

G-code files are easy to read and interpret, but their downside is that the data is not saved efficiently and the file size is often very large. Compression of the file is problematic because the printers usually run on limited hardware and they may not have enough memory and/or CPU power to decompress it. Several solutions to the problem were proposed by members of the community, such as MeatPack encoding (utilizing the fact that the character set of a typical G-code is very limited) or the heatshrink compression algorithm (designed to have very small memory requirements).

We are proposing a new standard for a binary G-code format for encoding and compressing ASCII G-code files (see the specification). The format is flexible and the encoding and compression of individual blocks is variable. We also provide a libbgcode library which contains the routines to convert ASCII G-codes to binary and vice versa. The library is written in C++ and the repository includes bindings for Python.

Regarding the comparison of ASCII vs binary G-code sizes, the result depends on the contents of the G-code. Our testing shows that using binary G-code reduces the size by about 70 % on average. Using arc fitting (described above) at the same time can reduce the size even further. The following chart shows the comparison for 10 randomly selected 3MF projects:


The support for the new .bgcode file format was implemented in PrusaSlicer, including its export, loading configs, and previewing G-code or file associations. Exporting binary G-code can be enabled in Print Settings->Output options->Export as binary G-code. An option to convert ASCII G-code to binary (or the opposite) has been added to the File menu.

To print a binary G-code, it has to be supported by the firmware of the printer. For Original Prusa MINI, MK4 and XL printers, the first stable firmware release that supports this feature is 5.1.0, older stable firmware versions will not see the .bgcode files.

We would like to thank Scott Vokes (@atomicobject) for his work on heatshrink and
Scott Mudge (@scottmudge) for developing and maintaining MeatPack.

QOI instead of PNG (XL, MK4, MINI)

Until this release, the thumbnails for G-code were in PNG format, which was rather resource-heavy. We have decided to switch to another format called QOI, which is way less demanding, and we can utilize the freed-up resources to bring more features in future releases.

The only downside of removing the support for PNG is that all the G-codes sliced until now, won't have a visible thumbnail on firmware 5.1.0 or newer. For now, the only solution is to reslice the G-code in PrusaSlicer 2.7.0 or newer.

Pre-print screen (XL with 2-5 toolheads)

This is a huge update for all XL Multi-Tool owners that greatly improves the printing experience!

When you slice a multi-material object, the resulting G-code carries information about how individual materials/extruders are assigned to various parts of the object. Usually, you need to take note of this setup and make sure that PrusaSlicer settings and the actual materials loaded in the XL are in sync.

Now, we’re introducing a new screen that makes this so much easier. Plus, it allows you to set up the Spool Join function (for depleting leftover filaments) in a few clicks.

This new screen allows you to remap the extruders/materials to different slots. For example, you can switch extruders one and three if you find out that the loaded colors do not match the layout in the G-code. This also makes, e.g., sharing G-codes much easier, because you’re not limited by the “hardwired” material configuration inside the G-code, but you can modify the assigned materials in this screen.

Spool Join is also a function worth mentioning. By using the pre-print screen, you can assign multiple filaments to a single print job so you can easily consume all the remaining filament on multiple spools.

The printer has built-in safety checks to process the G-code before the print and compare the information contained in it with the printer’s configuration to prevent it from printing incompatible print files. The printer will display a notification in case there’s a conflict (e.g., different nozzle diameter, etc.).

UI tweaks and updates

Various print-related screens have been updated to show more information. The print progress screen features a new layout, the print end screen now displays more statistics - total print time, material consumption, and the prime tower material consumption. The printing screen now displays more information - next to the percentual progress info.

Cancel Object

We’re introducing a new option to cancel the printing of an object directly from the printer’s menu - only the selected object will be skipped while the other objects on the print bed will continue to be printed. This is extremely handy in case something goes wrong and, e.g., an object detaches from the heatbed. Thanks to this functionality, you don’t need to cancel the entire print, but you can simply choose to skip the object and continue with the rest.

During a running print, select the Cancel Object menu item, then select from the list of objects the one that should be skipped. You can, of course, use this function multiple times if necessary.

Since in many cases, the objects are instances and their names might be confusing (e.g., Instance 1, Instance 2, Instance 3), it could become difficult to recognize which name belongs to which object. This is why we also added the “Cancel Current Object” action. Wait for the nozzle to get to the object you want to skip and select Cancel Current Object. The system will automatically recognize the correct part of the G-code and disable it. Using Cancel Current Object is the recommended method.

In case you selected an incorrect object, you can always use the menu actions to continue printing it.

Improved Octoprint support

With the 5.1.0 firmware release, we’re introducing improved Octoprint support.

To make sure everything works correctly, you need to update the Octoprint profile with the following G-codes (in the GCODE Scripts section):

  • After print job is cancelled: M604
  • After print job is paused: M601
  • Before print job is resumed: M602

Please keep in mind that support for Octoprint has several limitations at the present:

  • Crash detection and Power Panic are not supported
  • The heat absorption screen on the XL is not displayed and it’s not possible to skip it
  • Multi-Tool XL is not supported at the moment
  • Binary G-Codes are not supported

Further improvements and tweaks:

  • Selftest has been unified across MK4, MK3.9 and XL platforms
  • Selftest now skips the nozzle heater test in case the fan test failed
  • The fan test in Selftest has been improved - now it starts at max RPM and gradually decreases the speed
  • Selftest no longer creates log files
  • New robust RNG for Prusa Connect
  • New robust code for Mesh Bed Leveling and Loadcell sensor readings
  • Added the option to set the printer’s status as "ready" for Prusa Connect directly from the printer menu


  • “Negative step time” BSOD has been fixed
  • Adjusted texts on the MINI to fit the screen
  • Power panic no longer triggers a watchdog reset
  • Fixed footer settings migration between 4.7.0 and 4.7.2

Download link;

          How to flash the firmware;

          Please report any bug here:

Shane (AKA FromPrusa)

Posted : 25/11/2023 1:37 pm
Extra Fox
Estimable Member
RE: 5.1.0 Firmware for Original Prusa XL Multi Tool so out!

Is this new firmware cursed?

My latest prints since installing it have gone through the following cycle.

  1. Heat nozzle.
  2. Heat soak.
  3. Clean nozzle.
  4. Bed touch off.
  5. Park head.
  6. Turn off nozzle.
  7. Throw a nozzle preheat error.

Everything was working fine previously.


Posted : 25/11/2023 11:04 pm
Extra Fox
Estimable Member
RE: 5.1.0 Firmware for Original Prusa XL Multi Tool so out!

Well, it turns out the wiring to my thermistor has a break.

I've never touched them, so they're as the factory set them. This is the first time I've even removed a hot end from this machine, and now, it is only because I need better access to the wires to test them.

What on earth possessed Prusa to go with such a thin gauge wire?


Posted : 26/11/2023 12:29 am
Estimable Member
RE: 5.1.0 Firmware for Original Prusa XL Multi Tool so out!

Did you use that scrubber brush object that so many people are blindly using? It could easily have been too high.

Posted : 13/12/2023 10:39 pm
Acht liked