Our 3D printers have been known as highly reliable machines for a long time. We did our best to pack the MK3S+ full of important safety features that can save you a lot of headaches. There’s power loss recovery, crash detection and a whole lot of thermal safety routines – Mintemp/Maxtemp, Thermal runaway, fan monitoring and preheat checks just to name a few. They are designed to quickly recognize possible issues with your machine and stop operation to prevent damage.
For the past several months, we’ve been hard at work to bring all these thermal-related safety features to a whole new level. The recent 3.12-BETA firmware (only for the MK3/S/+) is the first public release of the new Thermal model protection. This is a great opportunity to give you a really deep dive into the entire system that keeps your 3D printer safe.
It also offers better operation in case of false alarms – for instance, previously, a sudden draft of cold air could stop your print with a MINTEMP error without any chance to recover. The new protection system always allows you to inspect the printer and attempt to finish the print (however, increased user attention is strongly recommended).
We discussed the new firmware in our Prusa Live podcast:
Detection of thermal anomalies
With the new Thermal model protection, we’re aiming to detect unexpected heating issues of any sort and stop 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.).
This is all based on an internal simulation of the hotend, meaning that the firmware constantly checks whether the thermistor readings are following a specific pattern in the thermal model. In case anything seems off, the printer reacts within seconds and displays a THERMAL ANOMALY warning which goes away in case the readings go back to expected numbers within 5 seconds. In case the anomaly stays, the printer turns off the heating and activates a warning sound to notify the user. In other words, this is a great addition to already existing thermal protection systems that have been in the printer from the start.
Please keep in mind that the printer knows only that something is wrong, i.e., when the system is not performing as expected. It is up to the user to inspect the printer and check for issues.
Works on all MK3/S/+ 3D printers
So, the firmware can compare the values from the internal thermal model with real values and when a conflict between these values is detected, the printer is stopped and an error is displayed.
Now, some of you might ask: what if my MK3S+ is located inside an enclosure or is modded/customized? This surely impacts the thermal model, right? The answer is simple: thermal model protection is not universal. It’s based on average default numbers from our production, but it is custom-tuned for each individual printer after the firmware is installed. So even if you have an older printer, the routine can still recognize potential issues immediately because it doesn’t take your current machine’s values as the default (=perfect) state.
A newly implemented automatic routine needs to fine-tune the values of your machine to complete the configuration. It takes about 15 minutes and the printer is thoroughly checked by running heat-up and cooldown cycles. Then, your printer profile is saved into the EEPROM memory and is ready to use. And yes, this is great news for anyone who already modified the MK3/S/+ by installing third-party components: the thermal protection model will work on your machine, too, although there may be some exceptions – especially since this is a beta release. Keep in mind that if you often switch components in your machine (heater blocks, hotends, fans, silicone socks), the Thermal Anomaly error may appear more often because replacing these parts will change the thermal characteristics of your printer and you may need to recalibrate the numbers.
Under the hood
Needless to say, the beta firmware releases are always meant for advanced users. To test the new functions, you will need to connect your printer to your PC via a USB cable and use Pronterface to initiate the calibration sequence by sending the correct G-Codes. Right now, the procedure can be started by sending a new M310 A F0 instruction. After calibration, M310 S1 is used to enable the model checking and the new calibration settings can be saved using M500. For full instructions, please see the changelog. Full integration into the LCD Menu will come in later releases. You can test the functionality of the calibrated model by setting the nozzle temperature to 210 °C and then putting a wet q-tip directly onto the nozzle – within 10 seconds, a warning message should appear on the display.
One thing to keep in mind: we’re using the temperature sensor on the Einsy board as a proxy – so if you place the electronics outside an enclosure and keep the printer inside, the thermal model may not work as expected. For these scenarios, a special M310 T G-Code has been implemented, allowing you to adjust the temperature difference. Before you start the thermal calibration process, though, it is recommended to perform the PID calibration to ensure everything is working well.
And here’s a bit of interesting trivia. When we ran internal tests and measurements during the development of the new firmware, we noticed some curious things. In the pictures below, you can see the difference between a standard nozzle and heater block (upper picture) and a heater block with a silicone sock (lower picture). Check the right side of the graph – you can see that PID regulation is smoother on the machine with a silicone sock. We’re not saying you should immediately install a silicone sock on the hotend because everything works perfectly well even without it. This is just to show what our measurements revealed.
Now, when you know how the correct thermal characteristics should look on an MK3S+, you can take a look at another reading – and you will clearly see that something is wrong here. See the picture below:
See the janky reading on the left? The power is almost constantly at 100 percent, yet the nozzle struggles to reach a steady 230 °C. At one point, the temperature suddenly shoots to over 250 °C with the PID immediately killing power. The sudden jump from 210 to 250 degrees Celsius is suspicious because it’s hardly possible that a standard heater block could heat up by 40 degrees so quickly – hence the issue lies most likely in the thermistor. This behavior is exactly what the new thermal model protection is designed to catch.
Theoretically, if you had an EINSY board that is very specifically damaged (like intermittent electrical contact issues due to thermal and mechanical stress, including very subtle issues such as cracked solder pads or cracked ferrite beads) and it would still behave in a seemingly normal way, not triggering any Mintemp/Maxtemp errors, the new thermal protection would still catch it – even though it’s one in a million chance.
By the way, this entire code takes up 5 kB in the RAM and we had to move stuff around quite a bit to fit it in the very limited space!
Reduced danger of blobs
The new firmware can do another useful thing: because it constantly monitors the heat block and compares the values with the internal thermal model, it can quickly detect anomalies in cooling as well. So, when your print detaches from the heatbed and starts melting around the nozzle, it can trigger the THERMAL ANOMALY error, too. If the situation persists for several seconds, heating is disabled and the print is stopped. This way, the firmware can stop the printer before a large blob forms around the nozzle. And this is no theory – we witnessed this exact situation as it happened on our print farm.
Of course, it doesn’t mean that blobs will be completely eliminated from now on. What we’re saying is that we can quickly detect blobs shortly after they begin to grow – which is usually early enough to spare you a lot of work with removing the plastic monstrosity wrapped around the extruder.
Beta is out now
We have just released the 3.12-BETA version of the new firmware after intensive internal testing (see the changelog) and we would be really happy if you decide to try the beta and share your experience with us.
As usual, we don’t recommend installing the beta version in a production environment, as some small bugs may still be present. However, the thermal model protection is performing well in our testing environment and we’ll be ready to release the final version soon. So stay tuned for more updates!