Clear all

3.12.0 Firmware for MK2.5 and MK2.5S(+)  

Same Old Shane
Member Admin
3.12.0 Firmware for MK2.5 and MK2.5S(+)

Greetings one and all;

We are happy to announce the release of our 3.12 release for our MK2 series of printers (MK2.5 and MK2.5S(+)). Please read the updates and you will find the download links at the bottom of the post. ( apologies to those before who might have panicked over "final", final as in out of beta and release candidate and final version of 3.12.0) 


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

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

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

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

History of development

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

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

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

Protection is always active

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

Calibrate the temp model on your printer

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

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

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

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

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

Printer behaviour

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

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

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

Added Clear TM error

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

Modded printers

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

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

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

Feedback report

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

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

Nozzle change menu

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

NylonPA sheet profile added

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

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

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

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

Arc interpolation features G2/G3

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

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

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

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

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

UI improvements and fixes

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

Firmware flashing

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

Status line (M117)

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

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

Firmware version on boot

The firmware version is now displayed on the startup screen


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

  • Don't prompt "New firmware version available:" if disabled in Settings. Until now a warning was always displayed when G-code M115 with the latest firmware version (e.g. M115 U3.11.0) was sent and this value was higher than the current firmware version installed. The Settings-> HW Setup -> Check -> Firmware [None] now suppresses the message below even if the M115 is included in the G-code.

  • Starting this release the UI ignores the knob long-press action if not allowed. Thanks to @Panayiotis-git for providing the solution.
  • In case the user stops the print, the remaining time is cleared. Thanks for reporting this issue @Stego72

New build environment

The build environment for all 8-bit firmware versions was updated from Arduino IDE 1.8.5 to 1.8.19 with GCC 7.3, which saved 1+ KB of resources. This is an important change. Older Arduino IDEs and/or GCC versions may not compile the code anymore from now on.

XYZ calibration updates

A message displayed on the screen has been updated from It will take up to 12 mins. to It will take up to 24 mins. as some users reported that their printer needed more time. We added some status information during the XYZ calibration to give visual feedback that the printer is still busy.

New language scripts

The new language scripts revealed missing translations hidden in the source code but also an obsolete one. The translation and post-processing process has not only improved for the developers but also for the translators.

Updated translations

We would like to thank the community members for updating translations with new texts. In case you want to join and help translate the firmware to your language, please visit the following article Community translations.

Based on the feedback from our translators:

  • The translation “.po” files can and should now contain diacritics which will be automatically replaced.
    • This should improve the spell checks in different languages and hopefully make it easier for the translators.
    • At this moment we are still limited by the LCD screen only to show [aA-zZ] and [äöüß] characters.

Farm mode

The Farm mode is used internally on the Prusa farm and will be from now available in a separate build and only in English. We have decided to remove it from the multi-language versions to save resources for other features.

Bug fixes

  • Parts of the firmware used “Extruder fan”, while the correct name is “Hotend fan”. This is now unified across the entire code base.
  • Some SD cards caused issues, the firmware should handle them correctly from now on.
  • The long button press wasn’t supposed to be active in some locations, this has been fixed now.
  • Minor SD card issue in FARM mode fixed. Sorting and long filenames have not been shown correctly.
  • Fixed µm being shown incorrectly in languages other than English.
  • M300 S0 pause like Marlin.

Known issues

A feature detecting the filament sensor hardware version is currently not working. Printing process isn't affected, however if the filament sensor is not working properly, the printer is unable to verify it. The devs are aware of this issue and a fix will be provided soon.


Please report any bug here:

Download Link:

How to flash the firmware: (same process for the MK2 series as well as the MK3)

Shane (AKA FromPrusa)

Posted : 11/01/2023 8:48 am