4.3.3 Firmware for Original Prusa MINI/MINI+ Final Release
Greetings everyone. We are happy to announce the 4.3.3 firmware for the Prusa MINI and MINI+ in its final release.
Summary
- Support for custom extruders
- Thermal regulation for custom extruders
- Extended print statistics
- Nozzle pressurizing improved
- Translations updated
- BSOD caused by a broken thermistor fixed
- Print timer fixed
This is the final release of firmware 4.3.3. This changelog is a summary of the previous release candidate 4.3.3-RC with additional changes introduced in this release. The main focus was to add features requested by the community, provide improved print statistics and fix certain bugs.
Compared to the previous release 4.3.2, there are 48 commits in 13 merge requests.
Support for custom extruders
We received requests from our community members to add configuration options for custom extruders. This release brings new functionality enabling the users to tune settings for a custom extruder on the MINI and MINI+. Previously, this was only possible with custom firmwares.
Installing a custom extruder is a significant change to the entire printer and might require multiple adjustments afterward. Therefore we recommend using this feature only in case you already have experience in this field.
To adjust settings for your custom extruder, go to LCD Menu -> Settings -> HW settings -> then long-press the knob. Similarly to the MK3S+, a new “Experimental” submenu will appear on the screen, where you can adjust the following:
- Save and return - while exiting this dialogue any adjusted value will be automatically saved
- Z-axis length - here you can adjust the length of the Z-axis based on your needs. In case you want to increase its length significantly, don't forget you might get limited by the cables.
- Default Z length - the system will fall back to its default value, which is 185 mm.
- Extruder steps per unit - different extruders might require different stepping
- Default steps per unit - the system will set the factory value, which is 325
- Extruder direction - there are two choices of spin, “Prusa” and the second is obviously “Wrong” 😉
- Default directions - set the direction back to the default (Prusa)
Once parameters are adjusted, click on “Save and return”, the printer will ask you whether you want to save the changes to the EEPROM and then restarts itself. When the printer boots up again, the changes are applied across the system. This was done to ensure that even with adjusted parameters the printer will be still able to perform First Layer Calibration, Live Adjust Z and, of course, print.
Thermal regulation for custom extruders
Due to the support of custom extruders, we received requests from the community to enable Marlin PID in the firmware. We have performed multiple tests using different materials to verify the “Prusa” thermal regulation works correctly on both stock and custom extruders. The results below show clearly that the current algorithm (a feed-forward driving + PID tuning of the steady state) is capable of correct thermal regulation in all tested scenarios including the sudden start of a cooling fan.
Test results for custom extruder:
Material: PLA
Temperature: target 215 °C, max 216 °C, min 213.9 °C
Material: ASA
Temperature: target 260 °C, max 263.1° C, min 258.9° C
Material: FLEX
Temperature: target 240 °C, max 241.6° C, min 238.4° C
Material: POLYCARBONATE
Temperature: target 275 °C, max 279° C, min 273.3° C
Also, the implementation of two regulating algorithms and switching between them creates a risk of a bug or failure, which can possibly lead to printer damage. Moreover, based on the results the default Marlin PID performs worse in some scenarios (e.g. when the cooling fan is suddenly started). Since the provided algorithm works as expected even for custom extruders, we have decided to keep it unchanged.
Extended print statistics (previously Odometer)
Another frequent request by our community is implemented in this firmware release. The printer now stores information not only about the filament used and print time but also about the distance traveled at each axis (X, Y, Z), which is displayed in meters.
For the final release, the developers have changed the name from Odometer to Statistics to match the terminology used in Prusa printers. Also, the graphics of this submenu were adjusted to fit the overall design of the user interface.
This feature opens the door for multiple features, some of them will be introduced in the upcoming releases. For example:
- Planned printer maintenance - once the bearings or other components reach a certain threshold, the printer will inform the user and provide instructions on how to clean, maintain or replace selected parts.
- Storing print statistics to a server - once the printer is connected to the upcoming Prusa Connect service, it will send the statistics and enable easier management of larger farms.
- Becoming a 3D printing grandmaster - the printer is capable of storing a print time of 9999 days 99 hours. The first user to reach this value on a final release without any tricks will become a grandmaster of 3D printing.
All print data is stored in the EEPROM. To optimize the number of writes to the memory, only finished or stopped prints are saved. In the case of a watchdog reset mid-print, the data is not stored
Nozzle pressurizing improved
In some scenarios, after a filament change, the printer created a blob imprinted in the object. Removing this surface irregularity was hard once the filament solidified and for this reason, the developers have improved the algorithm responsible for the filament change. It is based on the one used in the MK3S+.
Once the proper filament change is confirmed by the user by selecting “Color correct”, the printer starts to pressurize the nozzle to achieve even filament distribution. This results in a thin string of filament being pushed out of the nozzle. It is necessary that the user removes this string with pliers or another tool before the nozzle reaches back to the printed object. It is important to note that the NOZZLE IS VERY HOT at this point, thus removing the string by fingers will inevitably result in burns.
This behavior is now used by default every time a filament change is triggered during the print by command M600. If the printer is stationary and load/unload/filament change is selected manually by the user, then the nozzle pressurizing is not activated.
Translations updated
Due to the new features introduced in this release, all languages were updated. The only exception is the experimental menu, which remains untranslated, as it includes advanced settings and requires the user to be proficient in English. This update also solves issue #1575.
BSOD caused by a broken thermistor fixed
The developers have identified an incorrect printer behavior in a situation when the print is run remotely using Octoprint and the thermistor either gets broken or is accidentally removed from the Buddy board.
Instead of properly displaying the red screen (THERMAL RUNAWAY/MINTEMP), the printer crashed to BSOD or the Watchdog reset screen. This is now fixed and this might also resolve other situations, where the printer is showing the Watchdog reset.
Print timer fixed
The developers have accidentally introduced a bug into the previous release 4.3.3-RC. In some scenarios the system didn't stop counting the elapsed time, even after the print was already finished. This is now fixed while printing from the USB flash drive.
Note that while printing over the serial line (e.g. Octoprint/Pronterface), the system does not run the timer at all as it is difficult to determine the exact start and finish of the print in general.
Supported printer:
Original Prusa MINI
Original Prusa MINI+
Download Link:
https://github.com/prusa3d/Prusa-Firmware-Buddy/releases/tag/v4.3.3
How to flash the firmware on MINI:
Copy the firmware file (.bbf) onto the USB drive with FAT32 formatting Insert the flash drive in the MINI's USB port Turn the printer ON (or reboot it) A new screen will appear Confirm you want to flash the firmware
Please report any bug here:
github.com/prusa3d/Prusa-Firmware-Buddy/issues
As always, we wish you happy printing and look forward to your feedback!
Shane (AKA FromPrusa)
Thank you guys
Great! By officially supporting Bondtech upgrade, Mini is now where I wanted it to be -not to mention other improvements made in this firmware.
Hey, Mr. Josef... get guys some beer 🍺
[Mini+] [MK3S+BEAR]
WOOOO!
Loving that the e-Steps issue with the Bondtech Dual Drive looks like it's now been resolved.
Will the extended printer stats be made available to OctoPrint? I've a few ideas that I'd like to use them for in Home Assistant.
Howdy
Support for custom extruders
This is so awesome, thank you! 🙂
Cool!
I am very happy with the increasingly developed firmware.
Only when will this wretched wi-fi service come out?
And can also add support for other hotends?
sheet change after update did not change z-offset
longer story:
printer hat the textured sheet on and was set to "Textur1" (last prints, a week ago turned out fine, value was 990)
I did the firmware upgrade. 4.3.2 to 4.3.3 (no beta versions involved)
I wanted to give it a test drive so I sliced a nice bunny figure, loaded a PLA filament, changed the sheet to the smooth one and set the printer to "Smooth1"
after the print was done I noticed that it was very hard to get the skirt and the support off the sheet. also the bottom of the bunny was as smooth as can be.
I checked the z value: still 990
afaik it was around 700-800 with the smooth sheet but since the printer can store those values I no longer keep track of them.
I turned it down while still on Smooth1, switched back to Textur1, and we are back to 990
then again Smooth1 and this time it held the value.
I'm not completely sure that my observation is 100% correct because was not in "bug finding mode" (i.e. documenting everything) but it may be a good idea to write down your z values for all configured sheets and check them after the upgrade.
invert filament sensor
How can I invert the filament sensor logic for my MKS like extruder?
Pin::State::high | low is no longer used filament_sensor.cpp
Great news!
I suppose that using the "Wrong" extruder direction settings there is no need to invert the cables when using the Bondtech extruder. I'm right?
Great news!
I suppose that using the "Wrong" extruder direction settings there is no need to invert the cables when using the Bondtech extruder. I'm right?
Yes, you're right. And those who already have Bondtech extruder installed (+/- wires switched), they can just keep "Prusa" setting for Direction -or they can switch wires back and set "Wrong" setting.
[Mini+] [MK3S+BEAR]
Updated Bondtech Extruder Update Guide
Bondtech has updated their upgrade instructions for use with the 4.3.3 firmware. This includes setting "Extruder dir" to wrong instead of swapping stepper motor wires.
Link to the upgrade guide: https://support.bondtech.se/Guide/01.+Feeder+Upgrade+Kit/59
Great news!
I suppose that using the "Wrong" extruder direction settings there is no need to invert the cables when using the Bondtech extruder. I'm right?
invert filament sensor logic
Hello, has anyone an idea how to invert the filament sensor logic in the firmware?
How can I invert the filament sensor logic for my MKS like extruder?
Pin::State::high | low is no longer used filament_sensor.cpp
Bondtech heatbreak?
”Thermal regulation for custom extruders”
does that mean that you could install a bondtech heatbreak, and run it without gcode hacks or custom firmware?
does that mean that you could install a bondtech heatbreak, and run it without gcode hacks or custom firmware?
Yes, I understood it that way. Which makes sense, because it seems (Bondtech) heatbreak doesn't influence existing temperature regulation much.
[Mini+] [MK3S+BEAR]
nope...
does that mean that you could install a bondtech heatbreak, and run it without gcode hacks or custom firmware?
Yes, I understood it that way. Which makes sense, because it seems (Bondtech) heatbreak doesn't influence existing temperature regulation much.
Unfortunately, you are wrong, unfortunately from what is written and from the presented graphs they did not do anything about the bondtech heatbreak. They found that they did not know the difference and that nothing had to be touched ...Since the bondtech itself says that you need to change the settings, you should rather have to, but I don't know, I can't find out who is smarter.You still need to use the code.
Unfortunately, you are wrong, unfortunately from what is written and from the presented graphs they did not do anything about the bondtech heatbreak. They found that they did not know the difference and that nothing had to be touched ...Since the bondtech itself says that you need to change the settings, you should rather have to, but I don't know, I can't find out who is smarter.You still need to use the code.
I haven't used Prusa PID on Bondtech heatbreak, so I can't say how much difference that would make (if at all). The thing is, PID is only "correct" at the tuned temperature and we can only have one PID value at a time. That is, if we use different temperature (PLA, PETG, ASA...), then PID is already only (good enough) approximation. In short: the only way to use "perfect" PID is, if we change PID every time we change filament type -and "PID Autotune" serves that purpose.
In that sense, Bondtech PID is not better or worse than Prusa PID, because it depends on temperature that we use. Who knows, maybe Bondtech PID is better if we print ASA, but worse if we print PLA -Bondtech doesn't say at what temperature PID was tuned.
I would say, as long printing temperature doesn't fluctuate more than, say, +/- 2°C (at any temperature we choose), everything is fine.
[Mini+] [MK3S+BEAR]
Prusa heating model vs. Marlin's PID
Unfortunately, you are wrong, unfortunately from what is written and from the presented graphs they did not do anything about the bondtech heatbreak. They found that they did not know the difference and that nothing had to be touched ...Since the bondtech itself says that you need to change the settings, you should rather have to, but I don't know, I can't find out who is smarter.You still need to use the code.
Just my 3 bits of information to PID:
-We are using a modified feed forward temperature management algorithm. It has basically two parts - the first part sets roughly the amount of heating PWM for a given target temperature + operating conditions (e.g. fan on/off). Then it uses PID regulation to tune and keep stable/close to the target temperature.
- And yes - we have tested the Bondtech extruder with our modified feed forward heating algorithm and it performed very well including situations when a fan was turned on. So we decided there was no need to add the possibility of runtime switching among our feed forward temp model and Marlin's classical PID (moreover it would have been quite difficult to implement and test properly).
- Obviously, Bondtech recommend tuning the PID (if it was in use) for their extruder. It has different mechanics, heating properties etc. But again - we tested that and you can check the graphs in FW 4.3.3 release notes how stable it was with our feed forward temp model.
Nice
Thank you for the reply 🙂
I was not sure about the heating issue because I’m not that knowledgeable about how extruder and heatbreak work together in relation to the temperature regulation. The release notes talk about ”extruders”, and since it’s a separate component from the hotend, that caused the confusion for me.
But reading all this, I can safely assume I could upgrade to a Bondtech heatbreak (using the default Mini extruder), and not worry about that PID-stuff 🙂
I have no particular need to do the upgrade, other than I just have the part and I’d like to upgrade it for the sake of it X)
RE: Waste of energy!!
I want to know why my bed has to heat up to unload filament...and why it doesn't kick a cool down after it unloads.
RE: 4.3.3 Firmware for Original Prusa MINI/MINI+ Final Release
@bigbadwren
It's simple for me 😎 If You change filament You want to print and the bed will be ready sooner 😊
RE: 4.3.3 Firmware for Original Prusa MINI/MINI+ Final Release
Anyone had an un-comannded filament change half way though a print?
Found the printer beeping with a perfect execution of a filament change and request to re-insert as you would expect if you had requested it.
Quite odd.