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 waiting for user interaction. This issue has now been fixed.
This change resolves GitHub issue #4718.
Improve LCD messages.
In some cases the LCD seems to freeze or become unresponsive. This has now been improved.
Improved Host Communication When Stopping a Print
When stopping a print via the LCD, the printer now sends the //action:cancel
command to the host (e.g., OctoPrint, PrusaLink, or PrusaConnect). This ensures that the host and printer states remain synchronized, especially improving performance with OctoPrint. While PrusaLink and PrusaConnect were already functioning well, this change enhances compatibility without introducing any issues.
Community related changes
Adjust Nozzle Change Menu for REVO
REVO hotends are designed to be swapped cold using bare hands. Now, during a REVO nozzle change, the hotend temperature is set to 0°C, eliminating the need to heat up to 280°C as required for the V6 nozzle design.
This change resolves GitHub issue #4595.
Fix issue “Insert filament” message in French and Hungarian
Replace the Set Ready
Menu Entry
The Set Ready
and Set Not Ready
menu entries can now be replaced if the host is not PrusaLink, as the action:ready
and action:notready
commands are specific to PrusaLink and are not recognized by other hosts.
#define REPLACE_SETREADY
needs to be enabled in custom build. When activated the "Set ready" will be replaced by "Print from host" which for example in OctoPrint will start the selected OctoPrint file.