Fixing the Prusa MINTEMP Error with Custom Firmware
Last week I switched to a new nozzle on my Prusa MK3S 3D Printer and made the mistake of not watching the first layer of the print. This led to a large blob of PLA sticking to my heat block. In my attempts to remove it, I severely damaged the thermistor wires resulting in the MINTEMP error. I went through all the recommended troubleshooting steps and even soldered the wires back together but nothing fixed it.
I promptly ordered a replacement Prusa-specific thermistor and swapped it in but surprisingly it still did not fix the MINTEMP error. This is when I discovered that I had accidentally fried the extruder thermistor port on the Prusa Einsy board when I was cleaning the hotend :(
I was extremely frustrated and thought I’d be forced to replace the entire Einsy board (expensive and time-consuming). But then I realized that Prusa uses open source firmware and that maybe I could change which port is used for the extruder thermistor by flashing my printer with my own custom firmware. Looking on the Einsy board itself I discovered there was an available port that I could probably use instead of the damaged one as shown below:
I grabbed the latest Prusa firmware and looked through it to see if I could figure out where this port was defined. In
pins_Einsy_1_0.h there is a clear definition of
TEMP_0_PIN and I believe if I changed it to a
1, this might just do the trick. I also read some semi-related posts on Prusa’s forums that suggested that this could potentially work.
Specifically what I did was download and unzip the firmware and make a change in
Prusa-Firmware-MK3/Prusa-Firmware-MK3/Firmware/pins_Einsy_1_0.h to adjust the port used for the extruder thermistor. I changed line 62 from this:
#define TEMP_0_PIN 0 //A0
#define TEMP_0_PIN 1 //A0, CHANGED FROM 0 to 1!!
After making the change, I still had a lot to learn about how to compile the Prusa firmware and flash it on my printer. There are many steps required but I found this video to be extremely helpful. After following the steps from the video I was able to successfully compile my own Prusa firmware using Arduino IDE and then flash it using Prusa Slicer. The flashing process only took a couple of minutes and I was thrilled when my printer started up without showing the MINTEMP error. Yahoo!
If you happen to have an MK3S with this same problem, you are welcome to try the firmware I already compiled (you download it here). WARNING: Use at your own risk! This is an unofficial firmware.
It’s important to remember that 3D Printing is a tinkerer’s hobby. Even though Prusa makes it incredibly easy most of the time, it still requires at least some tinkering to keep your printer in working order. You need to embrace this and not let it discourage you. Treat every problem you encounter as an opportunity to learn something new.
I also highly recommend using a silicone sock to keep your heatblock clean and prevent blobs of filament from melting onto your hotend. This probably could have prevented this entire ordeal. I started using these E3D socks and have been happy with them so far. I also ended up replacing my entire hotend because of the damage caused to the previous one. I went with the E3D Prusa V6 which has been performing very well.
Lastly, it’s always important to watch the first layer for any print (either directly or remotely). Don’t be lazy like I was. Being diligent about this might just prevent a major issue that could cause serious damage to your printer.
I compiled the latest stable firmware (3.13.1 RC1) for the Prusa MK3S with the switched port fix for the extruder thermistor. I made the same change which involved swapping out the value of
pins_Einsy_1_0.h. Compiling was actually much easier to do this time using the latest process with CMake as described here. The previous method I used with the Arduino IDE has been deprecated.
You can download this custom firmware yourself if you’ve run into the same issue and want an updated version. WARNING: Use at your own risk! This is an unofficial firmware.