Releases: prusa3d/Prusa-Firmware
v3.14.1
Summary
- Add filament presence check at start of print
- Region Mesh Bed Levelling fixes
- Show filament color/name during
M600
- Fix safety timer not handled correctly
- Delay Z-Axis on Autoload
- Replace hard coded crash z lift value with Pause Z lift value.
- Send host actions on filament runout
- Lower
MIN_Z_FOR_UNLOAD
from 50mm to 20mm - Add "load filament" if autoload is disabled
- Abort nozzle change if filament is loaded
- PowerPanic related changes
- Reduce ambient shutdown to 80 °C
- Added
utils/build.py
to be able to compile the firmware - MMU related changes
- Minor fixes
- Community related changes
This is the stable release of firmware version 3.14.1, introducing multiple fixes and improvements across the firmware. We would like to thank all the community contributors who participated in this release. Your help is greatly appreciated!
This firmware version only works with MMU2S/MMU3 firmware version 3.0.3! Learn how to update the firmware of the MMU2S/MMU3. Please update Prusa Link to version 0.8.1 or newer. For more information visit: PrusaLink latest release
Add filament presence check at start of print
This release extends pre-print checks with filament presence detection. This pull request aims to resolve issues where a user starts a print with no filament loaded. You can change the behavior in LCD menu Settings -> HW Setup -> Checks -> Filament [Warn | Strict | None] with Warn
as a default.
This change resolves GitHub issues: #4725, #4380, #4719
Region Mesh Bed Levelling fixes
This fix addresses some of the problems discovered after release 3.14.0 regarding Mesh Bed Levelling (MBL).
- Improved handling of calibration data: To reduce issues with MBL data stored in EEPROM from older firmware versions, the mesh strictness has been relaxed to pre-3.14.0 levels for 3x3 MBL.
- Improved handling of X-axis gantry misalignment: During MBL, the number of X-axis gantry misalignment retries has been reduced from 2 to 1. On the second failure, users are now prompted to run Z calibration.
- When exiting the MBL settings menu with 7x7 MBL, the user is asked if they want to run Z calibration for best results, which can be easily bypassed.
- The printer now consistently informs the user to place the steel sheet on the bed for Z calibration.
This change resolves GitHub issues: #4775, #4723, #4713
Show filament color/name during M600
This release introduces a new C
parameter for the M600
command that defines the filament color/name to be displayed at the “Insert filament” and “Loading filament” messages. The filament color/name must be enclosed in double quotes and the maximal length is limited to 20 characters. Longer strings will be cut to length of 20 characters.
The new syntax is:
M600 X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal] C"[filament name to show during loading]"
For example, the command:
M600 C"Electric Blue"
Thanks @Panayiotis-git for this Pull Request and patience.
Fix safety timer not handled correctly
During filament load, unload, or change, if the safety timer turns off the heaters, the printer will now try to restore the requested temperature before continuing with the load, unload or change filament procedure.
Delay Z-Axis on Autoload
Delay z-axis movement when the operator's hand is close to the printhead.
The basic idea is to wait with z-axis movement until the user removes his hand from the printhead.
Instead of moving as soon as the filament sensor is triggered, the filament is first grabbed by "fast load" and after that the z-axis is moved up.
This change resolves GitHub issue: #4115
Adjustable Z-lift value
In the event of a crash, the printer previously raised the Z-axis by 10 mm. However, some community users pointed out that 10 mm may not be sufficient and requested the ability to adjust the Z-lift height.
With the new update, users can now set a custom Z-lift height using the M125 Z<value>
command. This specified height will be used whenever a crash occurs.
This change resolves GitHub issue: #3419
Send host actions on filament runout
The printer now sends the message //action:notification Filament runout detected!
to notify the host.
This change resolves GitHub issue: #805
Lower MIN_Z_FOR_UNLOAD from 50mm to 20mm
Previously, during filament load/unload, the extruder would move up by 50 mm along the Z-axis. This ensured sufficient space between the nozzle and the printed object to catch any oozing filament. However, this height caused issues for some users with enclosures. To address this, the parameter `MIN_Z_FOR_UNLOAD has now been set to 20 mm, aligning with the value used in the Buddy firmware.
This change resolves GitHub issue: #4700
Add "load filament" if autoload is disabled
Load filament
option is now shown in the menu, when autoload is disabled.
This change resolves GitHub issue: #4752
Abort nozzle change if filament is loaded
Starting a nozzle change while filament is still loaded can lead to issues, including clogs. Users have reported problems when they forget to unload the filament first or step away during the process. To prevent this, the printer now blocks nozzle changes if filament is loaded, prompting the user to unload it first. Once the filament is removed, the nozzle change option must be selected again to proceed.
This change resolves GitHub issue: #4703
PowerPanic related changes
Add Extrude mintemp save and restore during power panic
Until now, the extruder mintemp settings were not saved during a power panic event and therefore could not be restored afterward. While setting the extruder mintemp may be an edge case, the printer now saves these settings and restores them in the event of a power panic.
This change resolves GitHub issue: #3008
Add max acceleration mm per s2, feedrates and jerk save and restore during power panic
Similar to the extruder mintemp settings, these parameters were previously not saved during a power panic and therefore could not be restored. Now, the printer saves and restores these settings as well in the event of a power panic.
This change resolves GitHub issue: #2456
Reduce ambient shutdown to 80 C
The ambient temperature threshold has been adjusted from 100°C to 80°C to enhance printer safety. Improperly secured or loose power IN terminals can increase power draw, leading to elevated readings on the ambient sensor. Even in an enclosure, the 80°C threshold remains well within safe limits when cables are properly secured.
Added utils/build.py
to be able to compile the firmware
The build.py
script has been added to the repository to simplify the firmware compilation process. This tool is especially helpful for beginners, making it easier to build the firmware without needing advanced knowledge of the build process.
Add Eject Option To Filament Load Message
A third option, "eject," has been added to the "Filament extruding & with correct color?" message. This option helps you straighten or cut the filament for proper loading if the filament fails to load correctly. It also allows you to switch the filament easily if the color or type is not as desired.
This change resolves GitHub issue: #4643
MMU related changes
Fix MMU unload issue
In case of a Fan error the Tune menu is now available. The user can decide to disable the “Fan check” feature and solve the issue.
Improve unload handling when print is aborted
- Don't allow re-heating the nozzle or the MMU to unload the filament if the print was aborted by a temperature error.
- Allow MMU to unload filament if there is no temperature error, and there is no fan error when Fan check is enabled.
- When Fan check is disabled, the MMU may unload if there is no temperature error.
Skip filament unload/load after Shipping factory reset when MMU is enabled.
If you ordered an assembled printer with an attached MMU unit, the printer underwent a factory reset during the packing process at Prusa’s HQ. Previously, during the initial setup, the printer would prompt for filament unloading, which was intended for printers without an MMU unit. Now, this step is skipped if the MMU is detected.
Minor fixes
Fix autoreport M115
The auto report line is fixed in this release, for details check the pull request #4663. To learn more about G-code `M115, visit https://marlinfw.org/docs/gcode/M115.html
Fix MK2.5/S CMake build
The CMake build for MK2.5 and MK2.5S was broken and did not work correctly. The developers have fixed and thoroughly tested it to ensure everything now works as expected.
Fix String Substitution in "Dirty" DEV Builds
A user reported an issue with string substitution when building the firmware in the DEV flavor with uncommitted changes (dirty state). This is now fixed.
This change resolves GitHub issue: #4709
Fix Knob Clicks in Manual Fan Check (Fix rare issue in manual fan check where prior knob clicks are not consumed)
A rare issue was identified where prior knob clicks were not properly ignored during the manual fan check. The developers have identified the cause and resolved the problem.
Fix mFilamentPrompt menu timeout
A regression introduced in version 3.13.0 caused the printer to time out after 30 seconds during filament unload, instead of w...
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.