Skip to content

Releases: prusa3d/Prusa-Firmware

3.14.0 Firmware for MK3, MK3S, MK3S+, MK2.5 and MK2.5S

02 Jul 06:47
b97131b
Compare
Choose a tag to compare

Summary

  • PrusaLink and Prusa Connect updates
  • PowerPanic improvements
  • Mesh Bed Leveling (MBL) improvements
  • New / Improved G-codes
  • User Interface updates
  • Community features
  • Firmware development changes

This is the stable release of firmware version 3.14.0, with a primary focus on PrusaLink and Prusa Connect. This firmware version only works with MMU2S/MMU3 firmware version 3.0.2! It is necessary to update the firmware in the MMU2S/MMU3!

PrusaLink and Prusa Connect improvements

The main focus of the firmware release was to improve the usability of the MK2.5/S and MK3/S/+ printers with PrusaLink and Prusa Connect. Please update Prusa Link to version 0.8.1 or newer to benefit from the firmware updates. See here PrusaLink 0.8.1 or PrusaLink latest release

The community member @sarusani already implemented an OctoPrint plugin Active Prusa HostTimer 🎉

Add Set Ready and Set not Ready to the LCD main menu

This feature makes it possible to set the printer in the Ready state from the LCD directly, not only from Prusa Connect. As a result, the print queue can be advanced without having to open Prusa Connect in a web browser.

Add Reprint to LCD main menu

This feature allows the user to repeat the last finished print. The Reprint menu is only shown:

  • When the SD card print finished successfully
  • When a PrusaLink/Prusa Connect print finished, and the host is connected

PowerPanic improvements

This update brings improvements to both SD-based power panic and initial support for "USB" (or RPi port) power panic when using PrusaLink/Prusa Connect on the MK3/S/+.

All of the necessary information for recovering a print is stored in the EEPROM during a power panic event so that the printer can recover on its own in the case of SD prints or the host can attempt to resume the print in the case of PrusaLink prints. In the case of PrusaLink prints, the printer will restore temperatures and pause the print, waiting for the host to start up again and reconnect. The host then sends the M79 G-code and the printer will inform the host with //action:commands about the state of the saved print:

  • In case of a short power outage with the bed less than 5 °C colder than the target temperature, it will send //action:uvlo_auto_recovery_ready to the host.
  • If the bed temperature dropped by more than 5 °C, the printer will send //action:uvlo_recovery_ready, which is similar to the SD print “Blackout occurred. Recover print?” where the user has to decide if the print still sticks to the bed and the printer should try to recover.
  • The host software needs special support for this new feature, as such for now only PrusaLink officially supports this feature.

Mesh Bed Leveling (MBL) improvements

This release also greatly improved the mesh bed leveling feature for all printers supported by this firmware. It both fixes bugs and adds new features. More details are described below.

Print area MBL

A few years ago, the community added support in the firmware for 7x7 mesh bed leveling. The advantage of the 7x7 mesh measurement was that it provided the printer with a detailed surface map, eliminating the need to interpolate (calculate) the space between points, as was necessary with the 3x3 mesh measurement. However, using the 7x7 mesh resulted in a longer measuring process, taking up to one minute (probe all 49 points).

This feature was originally a part of the Buddy firmware for the MK4/XL, but with this release, it is also available for older printers, implemented by @leptun.

It works similarly to the Buddy firmware, where PrusaSlicer informs the printer via G-codes which area of the bed contains the printed objects, but the implementation is a bit different. Whereas in the Buddy firmware, the M555 G-code is used, with the 8-bit firmware we directly tell G80 (the MBL command) the positions of the objects to save resources.

This feature requires support from PrusaSlicer, so updated startup G-codes are needed. The official Prusa profiles support this feature since PrusaSlicer 2.7.4.

Since only a reduced portion of the bed is measured, the overall mesh bed leveling process will be quicker than before, while maintaining all the advantages of 7x7 mesh bed leveling.

The feature is now linked to 7x7 MBL. So when the user enables 7x7 MBL, this feature also gets enabled automatically (if the G-code is resliced with compatible profiles). If the G-code doesn't support this feature, it will probe the entire bed just like before.

To get the best results with this feature, it is recommended to run a Z calibration to update the default mesh information in the EEPROM. The default mesh is used outside of the probed print area and also for determining bad points that need to be rechecked.

MBL bug fixes and improvements

This release also addresses some issues that were discovered during the development of the Print area MBL. As a result, the amount of points that need to be rechecked is reduced. This was especially problematic for beds where the Z origin was lower than measured bed points.

Another improvement to the G80 G-code is the new M parameter which allows the user to enable or disable MBL magnet compensation from the G-code startup script. Thanks @sarusani!

New / Improved G-codes

  • Improve Sheet G-code M850 to report and set the active steel sheet. Thanks @vintagepc!
  • M913 active by default to report TMC driver current settings
  • M914 and M915 with the parameter Q will report Mode [Normal | Silent]
  • M709 MMU enable, disable, soft reset, hard reset and erase MMU eeprom
  • M125 to set pause custom positions
  • M420 same as G81 to print out Mesh data for external analysis.
  • M79 is a new G-code to “ping” the printer from the host. This G-code enables few features and menus as the printer “knows” that the host is ready to receive instructions.
  • The range of M75 to M78 was added for host software to be able to start, pause, resume and stop the print statistics timers.
  • Add custom printer name to EEPROM. At this moment the printer name can only be set by direct EEPROM manipulation using D3 commands and is limited to 17 characters. In the future, it could be improved by implementing M531 or M550 G-codes.

User Interface updates

This release adds new features to the UI and fixes bugs found in previous releases.

LCD diacritics support

With this release, it is now possible to display diacritics on the old hd44780-based display. This feature was implemented by @leptun.
This was quite challenging from a technical standpoint due to many limitations imposed by the LCD. This is due to the fact that characters can only be 5x8 pixels (making it harder to draw diacritics that can be discernible), there can only be 8 distinct custom characters at once on the screen (each diacritic is a custom character) and is also not possible to modify the default font to better align it with the diacritics.

In any case, For most messages, these limitations do not cause any issues. Should there ever be more than 8 different custom characters on the screen at once, only the first 8 will be displayed properly, the others using "alternate" forms that look similar enough.
Please note that this does not mean that diacritics in filenames on the SD card are supported at the moment and will most likely never be supported due to limitations across the entire firmware. Only messages in the UI support diacritics, including the sheet names.

Thanks to the community members below for offering their time to review, update and approve the community and stock translations:
🇵🇱 @arekm
🇫🇷 @Ilovemyhous @ErwanAliasr1
🇭🇷 @Prime1910
🇭🇺 @AttilaSVK
🇳🇴 @trondkla
🇷🇴 @leptun and @Hauzman
🇸🇰 @ingbrzy and @shatter136
🇸🇪 @Painkiller56

image
image
For more examples, see the end of the release notes.

UX improvements

There have been some updates done to the UI such that menus are only shown when it makes sense:

  • During the PowerPanic recovery we need to ensure that the printer recovers correctly, so most LCD menus are blocked, except:
    • Stop print in case the recovery isn’t possible and the user decides to cancel the PP recovery
    • Statistics
    • Fail Stats
    • Support
  • Reprint is only shown when: (Kudos to @jfestrada for the idea and initial Pull Request)
    • SD card print finished correctly
    • PrusaLink/Connect print finished correctly and the host is connected
      • The host needs to send M79 to ensure that it can receive instructions from the printer.
  • Resume
    • Is hidden while resuming
    • With host prints only shown when the host is available, see comment above.
  • Autoload filament / Load filament / Unload filament are shown
    • Depending on the state of FSensor de- /active
    • Depending on whether filament is detected or not
  • Add Unload filament option during color change from LCD or M600 G-code
  • Add Auto home to the Tune menu while the printer is paused.
    • If a user needs to intervene with the extruder or bed during a pause, the X and Y axes may lose the pause/restore position. The Auto home will home X and Y, this should only be used when the extruder or bed has been moved. As each homing may result in slightly different positions it's not ensured that ...
Read more

3.13.3 Firmware for MK3, MK3S, MK3S+, MK2.5 and MK2.5S

05 Mar 14:04
ba6e103
Compare
Choose a tag to compare

Summary

  • Fixed Ghost layer shifts
  • Improved XYZ calibration
  • Prevents false positive “File incomplete. Continue Anyway?” messages.

This is the stable release of firmware version 3.13.3, with a primary focus on fixing the ghost layer shifts found in the previous firmware release.

We would like to apologize that it took so long to find the issue/bug and fix it.

Please, read the change log v3.13.2...v3.13.3 and Milestone FW 3.13.3

This firmware version only works correctly with MMU2S/MMU3 firmware version 3.0.2! It is necessary to update the firmware in the MMU2S/MMU3!

Fixed Ghost layer shifts

Short summary: In firmware version 3.13.2, the XY axis currents were incorrectly configured and they were not switched to running currents after homing. This is now fixed.

Detailed overview:
We received several reports on Ghost layer shifts from the community, but we couldn’t reproduce these issues on any of our internal 3D printers.

Eventually, we found a printer on which we could reproduce this issue. However, it wasn’t consistent. Sometimes, the printer worked just fine and the Ghost layer shifts appeared randomly. This is why the fix took longer to prepare. We had to analyze the issue from multiple perspectives and kept testing various approaches. Although we received a number of reports from the community, we couldn’t find a single common denominator. For example, some reports claimed that the only stable firmware was as far as 3.11.0, while others claimed that the system is still stable on FW 3.13.1, etc. Moreover, most final releases contain hundreds of changes/commits which makes it even harder to find the needle in the haystack.

Eventually, we found out that we needed to focus on FW 3.13.2 because with FW 3.13.1 we have not seen this happening. The changes between FW 3.13.1 and FW 3.13.2 still have 227 commits and 114 change files but compared to FW 3.11.0 → FW 3.13.2 with 2125 commits and changed 805 files, this was an “easy” task to find the cause.

Homing needs lower currents to reliably find the home positions.
The lower currents on the XY axis caused Ghost layer shifts in some printers. These currents are necessary for precise homing, therefore, they need to be switched to regular currents for proper operation. We have identified and fixed the cause in this release.

Improved XYZ calibration

After the 4th point of XYZ calibration of the bed, the X gantry raises up and waits for user interaction to place the sheet back on the bed to continue with the MBL. When there was something under the sheet or nozzle, the previous versions have pushed the nozzle into the sheet or bed.

Now the printer firmware moves the Z axis less aggressively downwards and checks if the PINDA triggers. It also detects obstacles on the bed and displays an error before starting to search the MBL points.
When the sheet is empty, there is no substantial debris on the nozzle and the PINDA is working correctly, the nozzle shouldn’t be pushed into the sheet anymore.

False positive “File incomplete. Continue Anyway?” messages prevented.

Newer PrusaSlicer versions create larger G-code files than previous versions. This exceeds the limits of the Prusa 8-bit firmware checking for M84. We increased the value from 20000 to 30720 so even large G-code files shouldn’t cause false trigger.

3.13.2 Firmware for MK3, MK3S, MK3S+, MK2.5 and MK2.5S

26 Oct 17:56
7aff0db
Compare
Choose a tag to compare

Attention: Following community feedback, we have identified potential issues during printing with this firmware release 3.13.2 (mostly layer shifts). As a precaution, we have removed the firmware files. A new firmware version, addressing this bug, is currently undergoing testing. If you experience print issues, please downgrade to the previous release 3.13.1.

Summary

  • Power Panic improvements
  • MMU firmware improvements
  • Submitted by the Prusa community
  • User interface improvements
  • Other Improvements
  • Bug fixes

This is the stable release of firmware version 3.13.2, with a primary focus on Power Panic, Multi-material, and several other improvements. While most of the features and fixes mentioned below were already included in the 3.13.2-RC1 release, we recommend updating to this firmware version.

Power Panic improvements

The primary focus of this release is to improve the Power Panic behavior, especially after the introduction of the new MMU3 firmware and the error states reported on the LCD of the printer.

Multi-material prints tend to be very long, so any sort of power failure can put the quality of the print at stake.

Any function that needs user interaction will pause the printer and move the hotend away from the print itself. This action prevents the hotend from "scorching" the print and creating blobs. It also creates space to investigate the reported issue or perform the requested action. Previously, the positions were saved to RAM, but these were lost during a power failure or a reset of the printer. This means the printer would try to continue with the print, but at the wrong height and wrong position. This caused mid-air extrusions, the creation of blobs, and sometimes missing extrusions.

This issue has now been resolved. All values in RAM (volatile) are saved to EEPROM (permanent) during a power panic which ensures a better power panic recovery during the MMU prints.

Power Panic recovery was tested for:

  • Paused print ✔️
  • MMU Error codes ✔️
  • After a crash ✔️
  • Filament runout ✔️
  • Filament change ✔️

Note: Power panic works only with SD card prints!

MMU firmware improvements

Based on the feedback from the community, this release brings new features allowing you to adjust parameters like idler sensitivity or bowden length.

Added Tune menu for IDLER|SELECTOR CANNOT HOME

MMU2S users have reported that, despite careful hardware inspection, some units struggle to home the Idler reliably. Although MMU Firmware 3.0.0 has already offered an option to adjust the Idler's homing sensitivity by modifying the StallGuard threshold, some users have encountered difficulties changing this value.

Therefore, in case the MMU reports any of the “Idler and/or Selector cannot home” errors, there is a new option displayed on the screen called "Tune" which allows to set the threshold value in a user-friendly way. Please note that the allowed range of values has been limited to prevent users from accidentally setting extreme values.

Bowden length register added

With the MMU FW 3.0.1, it is possible to set a custom front PTFE tube length (default length: 360 mm). This has been implemented at the request of our community members who pointed out that there are various configurations for the filament setup and there's a need to set a longer PTFE tube length. We limited the length to 1000 mm since longer tubes might introduce additional issues - we strongly recommend keeping the tube shorter rather than at the maximum allowable length.

This new register can be used to tweak the fast loading and unloading distance in case of non-standard installations. The register is persistent in the MMU's EEPROM. Unlike the previous generation of FW 1.0.x, the register now reflects the actual real length of the tube, not including any additional distances to the pulley or drive gears.

Note: If you choose to increase the PTFE length for your custom setup, you must verify whether the unloaded filaments fit inside the provided buffer. If they do not, you will need to construct your own buffer with sufficient space.

MMU USB product string updated

In the new firmware version 3.0.0 or later, which now supports both MMU2S and MMU3, the USB product string has been updated to "Original Prusa MMU unit 🐑." This change does not impact any of the MMU's functions.

Submitted by the Prusa community

We have implemented several improvements submitted by the active users from the Prusa Community. Many thanks to everyone involved.

Enable/Disable FSensor using G-codes

This release brings support for enabling and disabling filament sensor (FSensor) using G-codes M405/M406 submitted by @Commod0re

Support for M118 G-code

The M118 G-code was submitted by @RoboMagus see here. The M118 G-code allows the sending of a message (Serial print) to hosts like OctoPrint and PrusaLink to trigger actions, etc. See the pull request for more information.

Improved G-code M914 & M915 control (stealth mode)

In addition to enabling M914 and 915 by default, these codes have been expanded to allow for more flexible control of the current printing mode via G-code (such as enabling crash detection selectively during portions of a print).

By default, changes issued are temporary (lost on printer reset), but by supplying the 'P' parameter, the change can be saved to EEPROM and made persistent. Alternatively, supplying the R parameter will revert any current temporary changes in favor of the saved value. Finally, the menu has been updated to provide visual feedback when a temporary override is in place via G-code
Tune_Mode_M915

User interface improvements

Jump to 200°C/50°C in Temperature menu

This release brings a new behavior when users manually set the temperature in the LCD Menu -> Settings -> Temperature menu. Previously, both nozzle (hotend) and heatbed temperatures started at 0 °C, and users had to rotate the knob clockwise to increase the temperature incrementally by 1 °C until the target temperature was reached.

However, since most filaments require printing temperatures above 200/50 °C (nozzle/heatbed), we have made an adjustment. Now, starting at 0 °C, a single clockwise rotation will increase the nozzle temperature to 200°C instead of just 1 °C. The same change applies to setting the heatbed temperature (0 °C to 50 °C). This modification allows users to reach their target temperature more quickly.

Similar behavior is applied to the print fan; when turning the knob clockwise from 0, the speed is set to 127, which corresponds to 50% of the RPM range.

If you prefer to revert to the original behavior, simply rotate the knob counterclockwise first, and then you can use it in the same way as before.

Language Update information shown in the first row

A minor change was introduced to avoid overwriting the version number during a language update.
FW3132_language_update

Other improvements

Simplified variant names

In the source code, we shortened the variant names to the minimum needed, as all Original Prusa MK2.5/S and MK3/S/+

  • use 1.75mm filament
  • use E3d v6 style hotends
  • All MK3/S/+ use the same controller board
  • Exceptions are
    • MK2.5/S may have a RAMbo10a or a RAMbo13a board which have different pinouts
    • 3rd party modification

Code optimization

We optimized the source code and freed up some space for future features.

Update development tools

The development/compiling tools cmake and PF-build.sh have been updated.
More information about the build is now shown in the LCD Support menu:
More_LCD_Support_information

Bug fixes

  • Fixed a false FINDA runout event at the start of an MMU print on MK3S printers #4332 (Kudos goes to @mmoraes80, @sruggier and @Braddg for helping us narrow down the problem and verify the fix)
  • Fixed an issue with Preheat heating for longer than intended #4338 (Kudos to @linzwatt for reporting the issue and to @sarusani for fixing it)
  • Fixed an issue where some users could not run first layer calibration because the LCD was stuck rendering the same fullscreen message repeatedly (Kudos to @sarusani for helping us test and fix this)
  • Fixed an issue where a print could be started while the printer is still loading or unloading filament, triggering a firmware crash. #3564
  • Previously in FW 3.13.2-RC1 reported FAN check issue has been fixed.

3.13.2-RC1 Firmware for MK3, MK3S, MK3S+, MK2.5 and MK2.5S

12 Sep 10:05
024178b
Compare
Choose a tag to compare

Summary

  • Power Panic improvements
  • Submitted by the Prusa community
    • En-/disable Fil. sensor
    • Added M118 G-code (Octoprint/Prusalink)
  • Improved M914 & M915control for stealth mode
  • User interface improvements
    • Jump to 200°C/50°C in Temperature menu
    • Language Update information shown in the first row
  • MMU improvements
    • Added a Tune menu for IDLER|SELECTOR CANNOT HOME
    • Bowden length register added
    • MMU USB product string updated
  • Other features
    • Simplified variant names
    • Code optimization
    • Bug fixes
  • Known issue
    • Fan check

This is the first release candidate of firmware 3.13.2 focused on Power Panic and several other improvements.

Power Panic improvements

The main focus of this release is to improve the Power Panic behavior especially after we introduced the new MMU3 firmware and the Error states reported on the LCD of the printer.

Multi-material prints tend to be very long, so any sort of power failure can put the quality of the print at stake.

Any function that needs user interaction will pause the printer and move the hotend away from the print itself. This prevents the hotend from “scorching” the print and creating blobs. It also creates space to investigate the reported issue or perform the requested action. Previously, the positions were saved to the RAM, but these were lost during a power failure or a reset of the printer. This means the printer would try to continue with the print BUT at the wrong height and wrong position. This caused mid-air extrusions, the creation of blobs, and caused missing extrusions.

This has now been solved - All RAM values are saved to EEPROM during a power panic which ensures a better power panic recovery during MMU prints.

Power Panic recovery tested for:

  • Paused print ✔️
  • MMU Error codes ✔️
  • After a crash ✔️
  • Filament runout ✔️
  • Filament change ✔️

Power panic works only with SD card prints!

En-/disable Fil. sensor

En-/disable Fil. sensor with gcodes M405/M406 submitted by @Commod0re

Add M118 gcode

The M118 gcode was submitted by @RoboMagus see here. The M118 G-code allows the sending of a message (Serial print) to hosts like OctoPrint and PrusaLink to trigger actions, etc. See the pull request for more information.

Improved G-code M914 & M915 control for stealth mode

In addition to enabling M914 and 915 by default, these codes have been expanded to allow for more flexible control of the current printing mode via G-code (such as enabling crash detection selectively during portions of a print).

By default, changes issued are temporary (lost on printer reset), but by supplying the ‘P’ parameter, the change can be saved to EEPROM and made persistent. Alternatively, supplying the R parameter will revert any current temporary changes in favor of the saved value. Finally, the menu has been updated to provide visual feedback when a temporary override is in place via G-code
Tune_Mode_M915

Jump to 200°C/50°C in Temperature menu

We are introducing a new shortcut. With a single clockwise turn in the LCD Settings -> Temperature menu, the temperatures will jump to 200 °C (hotend) and 50 °C (heatbed). The part cooling fan will be set to 127 (or 50 %) when turning clockwise from 0.

If needed, you can revert to the original way by rotating the knob counter-clockwise first, then you can use it the same way as before.

Language Update information shown in the first row

A minor change was introduced to avoid overwriting the version number during a language update.
Update_language_FW3132RC1

Added Tune menu for IDLER|SELECTOR CANNOT HOME

MMU2S users reported that even after careful checking of their hardware, some units just cannot home the Idler reliably. Even though in the MMU FW 3.0.0 there has always been an option to tweak the Idler’s homing sensitivity (StallGuard threshold), some users had trouble with it.

Therefore, in case the MMU reports any of the Idler and/or Selector cannot home errors, there is a new option on the LCD called “Tune” which enables setting of the threshold value in a user-friendly way. Please note that the allowed range of values has been limited to prevent users from accidentally setting extreme values.

Bowden length register added

With the MMU FW 3.0.1, it is possible to set custom PTFE tube length. This has been implemented at the request of our community members who pointed out that there are various configurations for the filament setup and there’s a need to set a longer PTFE tube length. We limited the length to 1000 mm since longer tubes might introduce additional issues - we strongly recommend keeping the tube shorter rather than at the maximum allowable length.

This new register can be used to tweak the fast loading and unloading distance in case of non-standard installations. The register is persistent in the MMU’s EEPROM.
Unlike the previous generation of FW 1.0.x, the register now reflects the actual real length of the tube, not including any additional distances to the pulley or drive gears.

MMU USB product string updated

Since the new FW generation supports both MMU2S and MMU3, the USB product string has been changed to “Original Prusa MMU unit 🐑”. Please note that on some operating systems, this string is irrelevant and completely hidden from the user.

Other

Simplified variant names

In the source code, we shortened the variant names to the minimum needed, as all Original Prusa MK2.5/S and MK3/S/+

  • use 1.75mm filament
  • use E3d v6 style hotends
  • All MK3/S/+ use the same controller board
  • Exceptions are
    • MK2.5/S may have a RAMbo10a or a RAMbo13a board which have different pinouts
    • 3rd party modification

Code optimization

We optimized the source code and freed up some space for future features.

Bug fixes

  • Fixed a false FINDA runout event at the start of an MMU print on MK3S printers #4332 (Kudos goes to @mmoraes80, @sruggier and @Braddg for helping us narrow down the problem and verify the fix)
  • Fixed an issue with Preheat heating for longer than intended #4338 (Kudos to @linzwatt for reporting the issue and to @sarusani for fixing it)
  • Fixed an issue where some users could not run first layer calibration because the LCD was stuck rendering the same fullscreen message repeatedly (Kudos to @sarusani for helping us test and fix this)
  • Fixed an issue where a print could be started while the printer is still loading or unloading filament, triggering a firmware crash. #3564

Know issue

Fan check

Currently, fan checks are not working reliably when returning from a paused print due to a fan error. If the fan gets blocked again after pressing resume, the printer may not show Stop print anymore and user needs to reset the printer. Also the Calibration menu is shown in the Tune menu while the printer tries to Resume the print from fan check issue.

3.13.1 Firmware for MK3, MK3S, MK3S+, MK2.5 and MK2.5S

04 Sep 05:06
044a9a4
Compare
Choose a tag to compare

Summary

  • XYZ calibration fixed

This is the stable release of firmware 3.13.1 addressing an issue discovered by the community and verified by our internal testing. If your printer has not experienced the problem described below, you can skip this update.

XYZ calibration fixed

Some printers encountered a problem during XYZ calibration where the Z-axis failed to lift correctly. This led to insufficient clearance for installing the steel sheet and, in some cases, resulted in the nozzle crashing into the heatbed. We have identified and fixed this issue in this release. This also resolves #4304.

Thanks to the community members reporting this issue: @jeepac, @D-an-W, @sdh2, @sarusani, @Patrick-Schmitt, @bigsmalloverall, @naldarn and @jwall87

3.13.0 Firmware for MK3, MK3S, MK3S+, MK2.5 and MK2.5S

27 Jul 19:25
e58a902
Compare
Choose a tag to compare

Summary

  • MMU3 firmware support
  • Features by the Prusa community
    • E3D Revo support
    • Meatpack support
    • Do not preheat the heatbed on load/unload
    • Features and translations
  • Support for G-Code M850
  • First Layer Calibration - nozzle diameter
  • PrusaLink improvements
  • Build environment with cmake
  • Known issues

This is the final release of the firmware 3.13.0 focused on adding support for MMU3, extending the thermal model with support for Revo nozzle and several other improvements.

MMU3 firmware support (MK3S+)

The firmware for the MMU3 unit is completely new (rewritten from scratch). A detailed description of the architecture, automatic procedures, registers and many more will be described in the upcoming dev diary.

MMU3 firmware compatibility

It is important to distinguish between two types of firmware. One firmware is designed for the MMU (2S or 3) unit, the other one is for the printer. Due to major changes, both firmwares must be updated and can't be combined with any previous releases.

Compatibility:

  • 3.12.2 + 1.0.6 (firmware combination valid until this release)
  • 3.13.0 + 3.0.0 (firmware combination starting this release)

Running a combination of older 3.12.2 with newer 3.0.0 or newer 3.13.0 with older 1.0.6 will not work correctly due to major changes in both firmwares for the MMU (2S or 3) unit and the printer.

Combinations of older hardware like MMU2S with MK3S or MK2.5S with the latest firmware (3.13.0 and 3.0.0) should work and will be soon explained in the article about MMU3 firmware compatibility at help.prusa3d.com.

Features and improvements

The MMU3 firmware brings multiple improvements across the board. In case of an issue the firmware will try to solve the problem on its own before pausing the print and waiting for user interaction. The auto-retry feature solves a lot of minor issues with filament sensors.

All issues/errors are shown on the LCD screen. A short title shows the issue and a web link prusa.io/04xxx code for more information. Showing the FINDA, Filament sensor, tool operation and temperature helps to identify issues. Last line shows actions the user can select and selecting the double downward arrow shows more detailed offline information about the issue.

There is a continuous two-way serial communication between the printer and MMU which improves the printer “knowing” what state the MMU is. Since the printer firmware and MMU firmware need to be able to communicate, the firmware versions are checked and need to be in a compatible combination.

The MMU is by default disabled and has to be enabled in LCD menu Settings -> MMU [ON|OFF]. After a Factory reset the Wizard will run without the MMU. If you want the Wizard to test the MMU as well:

  • don't start the Wizard after the Factory reset
  • activate the MMU in Settings -> MMU first
  • run the LCD `Calibration -> Wizard

Features by the Prusa community

We would like to thank the community for their support and additions to the code base. Thanks to their effort, this release adds more new features. Please note, that these features are maintained by its creators, therefore any suggestion for an improvement or bug should be reported directly to them.

The same should be done for languages translated by the community. Only in case the person responsible for translating the given language does not respond for a longer period, contact Prusa.

We would like to apologize for the delay in adding the community pull requests to the main firmware branch. We had reached the capacity of the resources on the Einsy board and needed first to create space for new lines of code.

Community E3D Revo support (MK3/MK3S/MK3S+)

Thanks to community members and E3D, we were able to provide a source code base for the community and other 3rd party hotends. As a result, if your printer is modified with E3D Revo hotend, it should be now capable of passing the thermal model calibration process and react correctly to any thermal related issues.

Kudos to users @alexiri, @kromeninja, @ulab, @JWvP, @snafu1282, @matthiazzz, @sdh2, @davejhilton, @D-an-W, @MaroonOut09 and others helping to solve the issues #4105 and #3636.

Please flash the E3DREVO_.hex files on your modified printer. You can find these in the e3d_REVO_.zip file. Read the instructions how to add a new 3rd party hotend.

Community Meatpack support

Thanks to @scottmudge providing this well prepared and detailed pull request. For more information and questions, please see here and here.

Community Do not heat bed on load/unload

Thanks to @Panayiotis-git for this pull request. It speeds up some operations where the heating of the bed isn't needed. For more information and questions, see here. By default this feature is disabled with the Bed being heated as in previous firmware. It can be changed in LCD menu Settings -> Hbed on load [YES|NO]

Support for G-code M850

A support for G-code M850 to read and modify sheet labels and offsets. For more information see the pull request.

First Layer Calibration - nozzle diameters

Thanks to @GilesBathgate, the Prusa firmware built-in First layer calibration (FLC) now works for multiple nozzle sizes. Please ensure that you have the correct nozzle size selected in LCD menu Settings -> HW setup -> Nozzle d. [0.25|0.40|0.60|0.80] with 0.40 as default.

PrusaLink improvements

PrusaLink was improved for this release. To learn how to use PrusaLink on your Prusa i3 MK2.5/S and MK3/S/+ please checkout here. For more information about the project visit its GitHub repository.

Build environment with cmake

With the next release we will switch completely to build the firmware using cmake. The build is already prepared and can be used. It can be used in FW 3.13.0. For more information visit.

The build with Arduino IDE is still possible but no longer supported and it will be removed in a future firmware release.

Known issues

During final testing of the FW 3.13.0 and MMU3 3.0.0 developers discovered a rare issue, which we will address in a future release. In case the MMU print stops with an error and needs user interaction a power panic will cause issues to recover from the power panic.

3.12.2 Firmware for MK3, MK3S, MK3S+, MK2.5 and MK2.5S

02 Mar 10:51
a6eeb55
Compare
Choose a tag to compare

Summary

  • Thermal model updates
  • Update on E3D Revo
  • Self Test message fixed
  • FLC procedure updated
  • List of pull requests

This is the final release of firmware 3.12.2 focused mainly on thermal model-related improvements.

Thermal model updates (MK3/MK3S/MK3S+)

Autotune/Calibration temperature

Fixed the thermal model autotune/calibration temperature value to allow real print temperatures.
Before the G-code M310 A215 F1 failed.

Check Power and Capacitance values

Power and Capacitance parameters are now checked whether they are greater than zero.

Fixed incorrect sending of ERROR: via serial

In the previous firmware release, OctoPrint would send an M112 emergency G-code and “kill” the print during a thermal model anomaly. This is now fixed. Thanks to our OctoPrint community for reporting this issue.

Consistent TM wording

During the thermal model development, the terminology shifted in meaning. We decided to use this term to have clear and consistent wording for the thermal model.

  • The LCD calibration menu Temp model cal. is now Thermal model cal.
  • Messages related to the thermal model have also changed
    We added a page at prusa.io/tm-cal (also shown during the TM calibration step in the wizard). Please read this Prusa help article for more information.

Update on E3D Revo (MK3/MK3S/MK3S+)

We would like to thank all of the community members who provided their TM calibration logs with the E3D REVO! This really helped to improve the TM development for PTC/REVO hotends.

E3D and Prusa Research have also started a task force to work on the Thermal Model for PTC/Revo hotends.

Self test message fixed

The Self test OK message was incorrectly set as an “alert” message and blocked actual alerts from being shown correctly. This has been solved.

FLC procedure updated

The message Is filament loaded? during the Wizard doesn’t timeout anymore and has to be confirmed to prevent First Layer Calibration (FLC) to continue without filament loaded.

List of pull requests

See here for more information

3.12.1 Firmware for MK3, MK3S, MK3S+, MK2.5 and MK2.5S

25 Jan 08:33
87118c1
Compare
Choose a tag to compare

Summary

  • Thermal model - important info
  • Restore correct RPM for fans
  • Set the calibration state when running M310 A
  • Non-responding MMU2S fixed
  • Max Z-coordinate during Nozzle Change
  • Beeping after Factory reset fixed
  • Message selection fix
  • Known issues

This is the final release of firmware 3.12.1 focused on bug fixes and small improvements.

Thermal model - important info! (MK3/MK3S/MK3S+)

The previous firmware release (3.12.0) introduced an important enhancement to the printer’s overall safety - the Thermal Model which continuously monitors the printer and raises an error if there’s something wrong. While upgrading the firmware, a calibration procedure is enforced to ensure this feature works correctly.

If you have the stock printer and the display shows “thermal anomaly detected” messages during the print, it’s a serious issue - do not take it lightly. Please, inspect the printer and check for any possible issues. Downgrading the firmware will get you rid of the messages, but the underlying HW issue will still remain.

In case you are running 3rd-party parts like the Revo hotend, the thermal model will report errors because it needs to be trained on a large set of samples. We welcome anyone who’s willing to help us with testing. Please provide log files in GitHub issue. For now, you can disable the Thermal Model if you’re running the Revo and you’re certain that your printer is working fine. Connect to your Printer via Pronterface and send G-code M310 S0 followed by M500 - then you can continue using the firmware with third-party parts.

Restore the correct RPM for fans (MK3/MK3S/MK3S+)

In case of a Thermal model error, both fans spin at full speed to cool down the nozzle as fast as possible. In firmware 3.12.0 the fans kept spinning at 100 % RPM even after the TM error was cleared. This has been fixed now and the fan speeds are regulated based on the current temperatures.

Thanks to our community members @gregsaun, @Aldebaran91, @arekm, @matthew-humphrey reporting the issue.

Set the calibration state when running M310 A (MK3/MK3S/MK3S+)

Calibrating the Thermal model using the G-code command M310 A F0 didn’t set the TM calibration state correctly. This is now fixed and calibration is stored as expected.

Kudos to our community members @arekm, @FrHePo and @gregsaun for reporting this issue.

Non responding MMU2S fixed

Firmware 3.12.0 accidentally introduced a bug, where the MMU2S unit might stop responding in case of an error. For more details, see issue #3742. This is now fixed and the unit will work as expected.

We would like to thank our community members @RPospisil, @ursius2020, @E-Extrude, @Hauzman, @Mirarkitty and @3dprintandpaint for reporting this bug and retesting the fix.

Max Z-coordinate during Nozzle Change

If the “Nozzle Change” feature is used, the printer will raise the extruder to its max Z-coordinate value making the nozzle exchange easier.

This change was done based on the request from our community member @laskr1999.

Beeping after Factory reset fixed (MK2.5/MK2.5S)

Some users have reported that MK2.5 and MK2.5S printers keep on beeping after the Factory reset is performed. This release fixes the issue.

Kudos @cjshaker for reporting this issue.

Minor message selection fix

When the user tried to re-run the wizard they got a message if they wanted to delete previous wizard data and run the wizard again. The button meanings in this screen have been accidentally swapped (“No” was actually starting the wizard). That is now fixed, re-running the Wizard now continues correctly selecting “Yes”.

Known issues

  • Accidental reset of the printer during temp calibration will cause Wizard to be run on the next boot.
  • Pausing MMU prints while the MMU is performing the filament change may cause FW crashes.

3.12.1-RC1 Firmware for MK3, MK3S, MK3S+, MK2.5 and MK2.5S

17 Jan 16:56
54a3c83
Compare
Choose a tag to compare

Summary

  • Restore correct RPM for fans
  • Set the calibration state when running M310 A
  • Non responding MMU2S fixed
  • Max Z-coordinate during Nozzle Change
  • MK2.5 beeping after Factory reset

This is the first release candidate of firmware 3.12.1 focused on bug fixes and small improvements.

Restore correct RPM for fans

In case of a Temp model error both fans spin at full speed to cool down the nozzle as fast as possible. In firmware 3.12.0 the fans kept spinning at 100 % RPM even after the TM error was cleared. This has been fixed now and the fan speeds are regulated based on the current temperatures.

Thanks to our community members @gregsaun, @Aldebaran91, @arekm, @matthew-humphrey reporting the issue.

Set the calibration state when running M310 A

Calibrating the Thermal model using the G-code command M310 A F0 didn’t set the TM calibration state correctly. This is now fixed and calibration stored as expected.

Kudos to our community members @arekm, @FrHePo and @gregsaun for reporting this issue.

Non responding MMU2S fixed

Firmware 3.12.0 accidentally introduced a bug, where the MMU2S unit might stop responding in case of an error. For more details, see issue #3742. This is now fixed and the unit will work as expected.

We would like to thank our community members @RPospisil, @ursius2020, @E-Extrude, @Hauzman, @Mirarkitty and @3dprintandpaint for reporting this bug and retesting the fix.

Max Z-coordinate during Nozzle Change

In case the “Nozzle Change” feature is used, the printer will raise the extruder to its max Z-coordinate value making the nozzle exchange easier.

This change was done based on the request from our community member @laskr1999.

MK2.5 beeping after Factory reset

Some users have reported that MK2.5 and MK2.5S printers keep on beeping after the Factory reset is performed. This release fixes the issue.

Kudos @cjshaker for reporting this issue.

3.12.0 Firmware for MK3, MK3S, MK3S+, MK2.5 and MK2.5S

11 Jan 08:04
fdadc93
Compare
Choose a tag to compare

Summary

  • New thermal model protection
  • Nozzle change menu
  • NylonPA sheet profile added
  • Arc interpolation features G2/G3
  • UI improvements and fixes
  • New build environment
  • New language scripts
  • XYZ calibration updates
  • New language scripts
  • Updated translations
  • Farm mode
  • Bug fixes
  • Known issues

This is the final release of firmware 3.12.0. This changelog is a summary of the previous releases 3.12-beta1, 3.12-RC1 and 3.12-RC2. The main focus is on the new thermal model feature for improved safety.

ATTENTION: Please note the thermal model requires calibration, which takes about 12 minutes to complete. It is recommended to perform the calibration in order for the feature to work properly.

New thermal model protection (MK3/MK3S/MK3S+)

History of development

For the past several months, we’ve been hard at work to bring all thermal-related safety features to a whole new level. The 3.12-BETA firmware was the first public release of the new Thermal model protection.

The firmware is now capable of detecting unexpected heating issues of any sort and stopping heating quickly (in 10-12 seconds) to avoid potential damage to your 3D printer. This encompasses cabling issues, an incorrectly working heater block, thermistor faults and external factors too (draft, blobs forming on the extruder, etc.).

Check our detailed dev diary blog article explaining all the details behind this new feature.

Protection is always active

The thermal model protection increases the overall security of the heating system and starting firmware 3.12.0, will be turned on by default. Since every printer is slightly different it is necessary to calibrate the printer first.

Calibrate the temp model on your printer

In case the printer is updated from any firmware prior to 3.12.0, or a factory reset is performed, the thermal calibration is considered invalid and must be executed again! If this process is skipped by the user, the printer will beep and possibly pause more often.

Temp model calibration is available in the LCD menu Calibration -> Temp model cal. as well in the initial setup Wizard.

  • The calibration takes approximately 12 minutes and for the duration, you can’t give the printer any other commands.
  • During the calibration the LCD status line shows which step it is going through at the moment.
  • As soon as you see ”Original Prusa MK3S” on LCD, it is finished.

Please re-run the temp model calibration to ensure the best performance and minimize the temp model warnings,

  • when you change:
    • the nozzle
    • heater block
    • the heater cartridge
    • the hotend thermistor
    • the print fan
    • fan shroud
    • complete hotend assembly
  • When you add a silicone sock
  • When you move the printer to a different environment (enclosure, etc.).

Printer behaviour

While preheating:
In case the algorithm detects any issue, the printer starts beeping. If the problem persists for about 10 seconds, the heating is stopped and the message “Thermal anomaly” is displayed. The printer continues beeping (calls for user attention).

While printing:
Similar to preheating, a discrepancy between the model and thermistor readings causes the printer to first beep and display “Thermal anomaly” and after about 10 seconds, the print is paused. The nozzle is turned off and the printer continues beeping.

Please note, that once a “Thermal anomaly” is detected the printer “locks” itself to prevent any possible damage and it is necessary to perform certain actions. See more information below.

Added Clear TM error

To “unlock” the printer in case a “Thermal anomaly” is detected, there is a new option in the menu LCD menu -> Clear TM error to temporarily clear/acknowledge the issue. As this is only a “temporary” solution proper calibration is recommended. In case the temp model calibration doesn't solve this, please contact Prusa support or open a GitHub issue.

Modded printers

In case your printer is equipped with third-party components (heating or cooling), the thermal model might not be working properly. The developers are trying to expand support, but a large amount of data is needed to calibrate the model properly. Internally we have tested and analyzed over 150 000 OEM heaters and thermistors.

We are aware that third-party nozzle E3D REVO is not working correctly and we have an active GitHub issue where users reported their values. At this moment we don’t have enough data to analyze these, so please if you are a REVO user share your log files there.

Turning the thermal model protection off is not recommended, however, at your own risk it can be disabled via the serial line by sending G-code M310 S0 followed by M500 to make it permanent.

Feedback report

Please report positive feedback on the thermal model (with an ✔️ at the end of the release notes). In case you run into issues, start a New issue

  • The report should contain at least following informations
    • Reproducible: Yes/No
    • Printer model: MK3/S/+ stock or modified
    • Modifications: Example E3D Revo or Copper block or different Fan shroud (with link)
    • If a specific print causes issues. Please attach the printed model
    • Try to add a serial log of the print failing.

Nozzle change menu

We added the necessary Nozzle change menu option under Settings -> HW Setup which disables the temp model temporarily. Please read Changing or replacing the nozzle (MK2.5S/MK3S/MK3S+) before you start. Please also keep in mind that changing the nozzle will need the first layer adjusted, as you will never be able to tighten the nozzle at exactly the same height as the previous one. We made this change thanks to the feedback from our community testers (see #3719).

NylonPA sheet profile added

The list of sheet profiles is now extended with the “NylonPA” option. Please note that this is just a name of the profile and there is no difference to other stock profiles (Smooth1, Texture1,...).

Since the list of profiles is limited, the “NylonPA” is replacing the current profile “Satin2”. In order to see this change, a Factory reset is required. Before you do so, please write down the “Live Adjust Z” values for all the calibrated sheets.

Once a Factory reset is performed, the default list is:

  • Smooth1
  • Smooth2
  • Texture1
  • Texture2
  • Satin
  • NylonPA
  • Custom1
  • Custom2

Arc interpolation features G2/G3

Until now, whenever the printer was supposed to “draw” the shape of an arc, the internal logic of the firmware interpreted and printed it as a segmented line. In most cases, this will be unnoticed and the line will look rounded, but in some scenarios, this algorithm wasn't working properly.

Community member @FormerLurker proposed a solution, which was tested internally by our testing department and they confirmed it works as expected. The printer is now capable of printing a smooth arc without any noticeable edges. This firmware release incorporates this pull request #2657 and we would like to thank FormerLurker for his amazing work.

In case you want to learn more about this feature, please visit #2657.

Additionally, this release also fixes long-standing issues regarding G2/G3 moves. The following things now work properly when executing G2/G3 commands:

  • Pause/resume from the LCD or G-code
  • Crash detection
  • Filament runout
  • Power Panic
  • Fan errors

UI improvements and fixes

There are multiple fixes and improvements across the user interface aiming to improve the overall experience.

Firmware flashing

While flashing the firmware with PrusaSlicer there are two parts. The first part is, flashing the firmware into the CPU memory, and the second part is flashing languages in the external (xflash) memory. Starting with this firmware the second part is now displaying an extra LCD message Upgrading xflash Do not disconnect!.

Status line (M117)

This firmware release improves behavior when the M117 message was in some scenarios permanently overwritten with system messages (for example when M117 was immediately followed by the M601 / G4).

Please note that your M117 message should be kept within 20 characters, any excess characters will be truncated. We would like to thank @RodKimmell @GWdd @daBernd for reporting the issue.

Firmware version on boot

The firmware version is now displayed on the startup screen

Fixes

  • The “back arrow” sign was added to the Preheat menu.

  • Don't prompt "New firmware version available:" if disabled in Settings. Until now a warning was always displayed when G-code M115 with the latest firmware version (e.g. M115 U3.11.0) was sent and this value was higher than the current firmware versio...
Read more