Skip to content

Releases: prusa3d/Prusa-Firmware

v3.14.1

28 Nov 12:42
74a577b
Compare
Choose a tag to compare

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"

Thu Aug 22 06:45:23 2024

Thu Aug 22 06:45:26 2024

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...

Read more

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

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

Summary

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

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

PrusaLink and Prusa Connect improvements

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

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

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

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

Add Reprint to LCD main menu

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

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

PowerPanic improvements

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

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

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

Mesh Bed Leveling (MBL) improvements

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

Print area MBL

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

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

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

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

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

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

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

MBL bug fixes and improvements

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

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

New / Improved G-codes

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

User Interface updates

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

LCD diacritics support

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

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

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

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

UX improvements

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

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

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

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

Summary

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

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

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

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

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

Fixed Ghost layer shifts

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

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

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

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

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

Improved XYZ calibration

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

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

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

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

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

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

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

Summary

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

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

Power Panic improvements

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

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

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

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

Power Panic recovery was tested for:

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

Note: Power panic works only with SD card prints!

MMU firmware improvements

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

Added Tune menu for IDLER|SELECTOR CANNOT HOME

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

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

Bowden length register added

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

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

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

MMU USB product string updated

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

Submitted by the Prusa community

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

Enable/Disable FSensor using G-codes

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

Support for M118 G-code

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

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

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

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

User interface improvements

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

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

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

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

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

Language Update information shown in the first row

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

Other improvements

Simplified variant names

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

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

Code optimization

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

Update development tools

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

Bug fixes

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

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

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

Summary

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

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

Power Panic improvements

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

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

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

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

Power Panic recovery tested for:

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

Power panic works only with SD card prints!

En-/disable Fil. sensor

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

Add M118 gcode

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

Improved G-code M914 & M915 control for stealth mode

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

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

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

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

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

Language Update information shown in the first row

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

Added Tune menu for IDLER|SELECTOR CANNOT HOME

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

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

Bowden length register added

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

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

MMU USB product string updated

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

Other

Simplified variant names

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

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

Code optimization

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

Bug fixes

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

Know issue

Fan check

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

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

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

Summary

  • XYZ calibration fixed

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

XYZ calibration fixed

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

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

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

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

Summary

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

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

MMU3 firmware support (MK3S+)

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

MMU3 firmware compatibility

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

Compatibility:

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

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

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

Features and improvements

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

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

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

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

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

Features by the Prusa community

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

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

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

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

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

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

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

Community Meatpack support

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

Community Do not heat bed on load/unload

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

Support for G-code M850

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

First Layer Calibration - nozzle diameters

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

PrusaLink improvements

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

Build environment with cmake

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

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

Known issues

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

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

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

Summary

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

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

Thermal model updates (MK3/MK3S/MK3S+)

Autotune/Calibration temperature

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

Check Power and Capacitance values

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

Fixed incorrect sending of ERROR: via serial

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

Consistent TM wording

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

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

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

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

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

Self test message fixed

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

FLC procedure updated

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

List of pull requests

See here for more information

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

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

Summary

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

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

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

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

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

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

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

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

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

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

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

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

Non responding MMU2S fixed

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

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

Max Z-coordinate during Nozzle Change

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

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

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

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

Kudos @cjshaker for reporting this issue.

Minor message selection fix

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

Known issues

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

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

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

Summary

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

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

Restore correct RPM for fans

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

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

Set the calibration state when running M310 A

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

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

Non responding MMU2S fixed

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

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

Max Z-coordinate during Nozzle Change

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

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

MK2.5 beeping after Factory reset

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

Kudos @cjshaker for reporting this issue.