Releases: prusa3d/Prusa-Firmware
3.14.0 Firmware for MK3, MK3S, MK3S+, MK2.5 and MK2.5S
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 settingsM914
andM915
with the parameterQ
will report Mode [Normal | Silent]M709
MMU enable, disable, soft reset, hard reset and erase MMU eepromM125
to set pause custom positionsM420
same asG81
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
toM78
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 implementingM531
orM550
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
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 recoveryStatistics
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.
- The host needs to send
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 orM600
G-code - Add
Auto home
to theTune
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 ...
- 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
3.13.3 Firmware for MK3, MK3S, MK3S+, MK2.5 and MK2.5S
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
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
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.
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:
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
Summary
- Power Panic improvements
- Submitted by the Prusa community
- En-/disable Fil. sensor
- Added
M118
G-code (Octoprint/Prusalink)
- Improved
M914 & M915
control 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
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.
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
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
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
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
P
ower and C
apacitance 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 nowThermal 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
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
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.
3.12.0 Firmware for MK3, MK3S, MK3S+, MK2.5 and MK2.5S
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...