Releases: prusa3d/Prusa-Firmware-Buddy
4.3.4 Firmware for Original Prusa MINI/MINI+
Summary
- Support for PrusaSlicer 2.4
- Time Zones extended
- Satin sheet profiles added
This is the final release of firmware 4.3.4 focused primarily on extending the support for the upcoming PrusaSlicer 2.4. There are also some other improvements requested by the community. Compared to the previous version 4.3.4-RC, there are no changes.
Support for PrusaSlicer 2.4
The PrusaSlicer 2.4 is currently in the beta stage and you can read more about its new features here. Some of the changes introduced in version 2.4 have a direct impact on the firmware and in order to work correctly, the developers had to make some adjustments.
Starting with version 2.4, the G-codes have a larger allocation for the context information, which is located at the end of the G-code. Previously, it was enough to read the last 10 KB, however now it is necessary to extend the search for the last 20 KB (similar to the MK3 family). Thanks to this adjustment the printer is now able to correctly read the type of the filament, its usage and display it correctly on the print preview screen.
Time Zones extended
Starting with firmware 4.1.0 the printer is able to connect with the NTP servers and get the UTC time (assuming it is connected to the internet). The user then sets the correct Time Zone of the printer's location with respect to the UTC. Once all is set, the printer is able to provide the exact time in which the running print will be finished.
The list of the Time Zones was extended for this release and enables setting the difference to +14 (the previous limit was +12). This extension allows community members in New Zealand and surrounding Pacific islands to set the time correctly.
Satin sheet profiles added
In case the MINI or MINI+ are used with multiple types of steel print sheets, it is recommended to use the feature “Print sheet profiles”, which enables the user to store individual values of “Live adjust Z” for each steel sheet.
The factory list previously included profiles for Smooth and Textured sheets. This release extends this list with profiles for Satin sheets. However, please note that this is just about the names of the profiles. The factory settings for each profile are the same regardless of the name. The profiles Custom1 and Custom2 will be renamed Satin1 and Satin2.
In order to rename the profiles, a factory reset must be performed. Before this operation is performed, it is recommended to write down the current “Live adjust Z” value and use it later during recalibration.
4.3.4-RC Firmware for Original Prusa MINI/MINI+
Summary
- Support for PrusaSlicer 2.4
- Time Zones extended
- Satin sheet profiles added
The main focus of this release is on extending the support for the upcoming PrusaSlicer 2.4. There are also some other improvements requested by the community.
Support for PrusaSlicer 2.4
The PrusaSlicer 2.4 is currently in the beta stage and you can read more about its new features here. Some of the changes introduced in version 2.4 have a direct impact on the firmware and in order to work correctly, the developers had to make some adjustments.
Starting with version 2.4, the G-codes have a larger allocation for the context information, which is located at the end of the G-code. Previously, it was enough to read the last 10 KB, however now it is necessary to extend the search for the last 20 KB (similar to the MK3 family). Thanks to this adjustment the printer is now able to correctly read the type of the filament, its usage and display it correctly on the print preview screen.
Time Zones extended
Starting with firmware 4.1.0 the printer is able to connect with the NTP servers and get the UTC time (assuming it is connected to the internet). The user then sets the correct Time Zone of the printer's location with respect to the UTC. Once all is set, the printer is able to provide the exact time in which the running print will be finished.
The list of the Time Zones was extended for this release and enables setting the difference to +14 (the previous limit was +12). This extension allows community members in New Zealand and surrounding Pacific islands to set the time correctly.
Satin sheet profiles added
In case the MINI or MINI+ are used with multiple types of steel print sheets, it is recommended to use the feature “Print sheet profiles”, which enables the user to store individual values of “Live adjust Z” for each steel sheet.
The factory list previously included profiles for Smooth and Textured sheets. This release extends this list with profiles for Satin sheets. However, please note that this is just about the names of the profiles. The factory settings for each profile are the same regardless of the name. The profiles Custom1 and Custom2 will be renamed Satin1 and Satin2.
In order to rename the profiles, a factory reset must be performed. Before this operation is performed, it is recommended to write down the current “Live adjust Z” value and use it later during recalibration.
4.3.3 Firmware for Original Prusa MINI/MINI+
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.
4.3.3-RC Firmware for Original Prusa MINI/MINI+
Summary
- Support for custom extruders
- Nozzle pressurizing improved
- Extended print statistics (Odometer)
- BSOD caused by a broken thermistor fixed
This is the first public release candidate of the upcoming firmware 4.3.3. Based on the request from the community, the developers are introducing several new features.
Compared to the previous release 4.3.2, there are 34 commits in 8 merge requests and a significant amount of testing time.
Support for custom extruders
Based on the requests from the community this firmware release enables users to install and tweak settings for a custom extruder on the MINI and MINI+. Previously this was only possible with custom firmware.
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 have some 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 a MK3S+ a new “Experimental” submenu will appear on the screen, where you can tweak 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 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.
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 for the user to remove 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.
Extended print statistics (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.
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 will be 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 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.
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 crashes 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.
4.3.2 Firmware for Original Prusa MINI/MINI+
Summary
- Upgraded USB drivers
- Upgraded Newlib library
- FatFs library upgrade
- Saving of self-test results
- Fixed bugs
This is the final release of firmware 4.3.2. This changelog is a summary of the previous releases (beta1, RC1 and RC2). The main focus is on bug fixes related to the USB Flash drivers and performance-related optimizations.
Upgraded USB drivers
We’re constantly updating and optimizing the MINI+ firmware to further improve its performance and reliability. In this release, the developers focused on the USB driver responsible for handling all the data transfers from the connected USB flash drive (e.g., mounting drives, reading G-codes, ...). We received several reports that certain USB drives weren't working properly.
Together with the chipset manufacturer (STM company), developers have tested and deployed a new version of the USB driver. As a result, the Buddy board should now be able to communicate even with the problematic USB drives. Previously, when the drive wasn't properly recognized by the printer, the only option was to reinsert it. This is not necessary anymore, the system will handle it on its own.
Note that these fixes do not address a scenario when certain USB drives are not correctly detected by the bootloader. For example, while attempting to flash a new firmware.
Upgraded Newlib library
This firmware release brings an important upgrade to the Newlib library. The standard library is replaced with a more optimized Newlib-nano version. Also, the standard “printf” family functions are replaced with a different implementation.
This change results in several improvements and memory savings. Compared to the previous firmware 4.3.1:
- 98 kB of FLASH memory is saved
- 4 kB of RAM is saved (3 kB on heap/static allocations, 1 kB on stack)
- makes the printf() family functions fully reentrant and thread-safe (the previous implementation did not allow formatting of floats in ISRs)
Multiple tests revealed no negative effects related to these changes in the MINI+ firmware project. The measurements of RAM usage were done with release builds with metrics enabled while printing.
FatFs library upgrade
This build brings an upgrade of the FatFs library, which is supposed to fix synchronization issues of accessing the file system.
FatFs library has been upgraded from R0.12c to the latest version of R0.14b. The most important change is the fix of synchronization issues related to accessing the FAT file system. Please see the release notes of the FatFs library for details, where the synchronization fix is also discussed.
This also fixed several reported situations of BSOD after the removal of the USB drive from the MINI and MINI+.
Moreover, to improve the quality of testing of the USB drivers and file system fixes, we designed an automated device that simulates various edge cases while inserting and/or removing a USB drive. The testing device helped us to verify that the fix works as expected.
Saving of self-test results
The upgrade of the FatFs library also brings back the possibility of saving results of self-tests onto the USB drive (if present), which has been removed in previous versions due to random file system-related problems.
If you intend to use this feature, make sure there is a USB flash drive (FAT32) connected to the printer before the self-test is performed. Once the test is finished, a log file is saved onto the flash drive. Examples of use are provided in the release notes for firmware 4.3.0-RC1
Fixed bugs
Filament runout during serial print
When the print has been previously initiated from the serial line (e.g., OctoPrint) and a filament runout occurred, the printer did not react accordingly and the Change filament (M600) sequence was not initiated. Now, this behavior is fixed and even when the print is initiated by the serial interface, the Filament runout initiates the local Change filament sequence on the printer.
Extra head movements after the print ends
In rare cases, when the printer finishes the print, the print head performs additional random movements (repeated mesh bed leveling, additional purge line, etc.). From the reports, it seemed that this bug first occurred in firmware 4.1.0.
The developers have identified the issue caused by a long comment line in the G-code file (generated by PrusaSlicer merging all custom codes into one comment line), which is longer than the expected 95 characters. The characters exceeding the number 95 in this line were incorrectly parsed - text starting with the 96th character has been analyzed as a part of actual G-Code. In some cases, it may have contained G-Code commands, which have been interpreted and executed. The analysis was complicated due to users adding different Custom codes.
All concerned cases issued in Github are fixed now:
#864
#733
4.3.2-RC2 Firmware for Original Prusa MINI/MINI+
Summary
- FatFs library upgrade
- Saving of self-test results
This is the second release candidate of the upcoming firmware 4.3.2. The current focus is on bug fixes related to the USB Flash drivers.
FatFs library upgrade
Compared to the previous release RC1, this build brings an upgrade of the FatFs library, which is supposed to fix synchronization issues of accessing the file system.
FatFs library has been upgraded from R0.12c to the latest version of R0.14b. The most important change is the fix of synchronization issues related to accessing the FAT file system. Please see the release notes of the FatFs library for details, where the synchronization fix is also discussed.
This also fixed several reported situations of BSOD after the removal of the USB drive from the MINI and MINI+.
Moreover, to improve the quality of testing of the USB drivers and file system fixes, we designed an automated device that simulates various edge cases while inserting and/or removing a USB drive. The testing device helped us to verify that the fix works as expected.
Please let us know if you still encounter problems with the USB drives.
Saving of self-test results
The upgrade of the FatFs library also brings back the possibility of saving results of self-tests onto the USB drive (if present), which has been removed in previous versions due to random file system-related problems.
4.3.2-RC1 Firmware for Original Prusa MINI/MINI+
Summary
- Upgraded Newlib library
- Upgraded USB drivers
- Fixed bugs
- Known errors
This is the first release candidate of the upcoming firmware 4.3.2 with new features and several bug fixes.
Upgraded Newlib library
This firmware release brings an important upgrade to the Newlib library. The standard library is replaced with a more optimized Newlib-nano version. Also, the standard “printf” family functions are replaced with a different implementation.
This change results in several improvements and memory savings. Compared to the previous firmware 4.3.1:
- 98 kB of FLASH memory is saved
- 4 kB of RAM is saved (3 kB on heap/static allocations, 1 kB on stack)
- makes the printf() family functions fully reentrant and thread-safe (the previous implementation did not allow formatting of floats in ISRs)
Multiple tests revealed no negative effects related to these changes in the MINI+ firmware project. The measurements of RAM usage were done with release builds with metrics enabled while printing.
Upgraded USB drivers
In cooperation with the manufacturer ST, the developers have implemented the latest USB drivers available for the chipset running on the Buddy board. This update should increase the system stability and resolve several issues. See the section “Fixed bugs” for more information.
Fixed bugs
USB flash drive detection fixed
In some cases, selected USB drives were not correctly detected by the firmware while the printer was booting up. Even if correctly connected to the USB port, the printer ignored their presence and the user was not able to access the data.
The only solution was to remove the drive and reinsert it back. This is now fixed thanks to the new USB stack. Note that this fix does not address a scenario when certain USB drives are not correctly detected by the bootloader.
USB drive malfunction fixed
The new USB stack also fixes issues with certain USB drives, which were malfunctioning in specific situations.
Pronterface causes BSOD on 4.3.2-beta1
During the testing of the firmware 4.3.2-beta1, the developers have identified a BSOD error when trying to connect host software (e.g. Pronterface, OctoPrint) to the printer via a serial Micro USB port. This failure is now corrected and successfully tested.
Filament runout during serial print
When the print has been previously initiated from the serial line (e.g., OctoPrint) and a filament runout occurred, the printer did not react accordingly and the Change filament (M600) sequence was not initiated. Now, this behavior is fixed and even when the print is initiated by the serial interface, the Filament runout initiates the local Change filament sequence on the printer.
Extra head movements after the print ends
In rare cases, when the printer finishes the print, the print head performs additional random movements (repeated mesh bed leveling, additional purge line, etc.). From the reports, it seemed that this bug first occurred in firmware 4.1.0.
The developers have identified the issue caused by a long comment line in the G-code file (generated by PrusaSlicer merging all custom codes into one comment line), which is longer than the expected 95 characters. The characters exceeding the number 95 in this line were incorrectly parsed - text starting with the 96th character has been analyzed as a part of actual G-Code. In some cases, it may have contained G-Code commands, which have been interpreted and executed. The analysis was complicated due to users adding different Custom codes.
All concerned cases issued in Github are fixed now:
#864
#733
Known errors
Random BSOD after removal/eject USB drive
In some very rare scenarios, a BSOD occurs while inserting/removing the USB flash drive. It is very difficult to replicate not knowing the all circumstances under which the issue has happened. We are still investigating and executing a deep root cause analysis. This issue is planned to be fixed before the final release of firmware 4.3.2.
4.3.2-beta1 Firmware for Original Prusa MINI/MINI+
Summary
- USB driver updated
This is an early development release of the upcoming firmware 4.3.2 dedicated to experienced users. This build passed internal testing, but it is important to note that some bugs might still be present.
USB driver updated
We’re constantly updating and optimizing the MINI+ firmware to further improve its performance and reliability. This time, the developers focused on the USB driver responsible for handling all the data transfers from the connected USB flash drive (e.g., reading G-codes). We received several reports that certain USB drives weren't working properly.
Together with the chipset manufacturer (STM company), developers have tested and deployed a new version of the USB driver. As a result, the Buddy board should now be able to communicate even with the problematic USB drives.
Should you still have issues with your USB drive, please report it in the Buddy Repository.
4.3.1 Firmware for Original Prusa MINI/MINI+
Summary
- X-axis error during Wizard fixed
- Safety timer not activated fixed
This is a bug fix release of the previous final version 4.3.0, where two bugs were discovered. There are no changes between firmware 4.3.1-RC1 released last week and this final release of firmware 4.3.1.
X-axis error during Wizard fixed
We have received a few user reports stating that in rare cases, the initial Wizard or XYZ calibration failed while performing the X-axis check. As a result, the print head with leveling sensor (M.I.N.D.A. / SuperPINDA) remained parked outside the heatbed perimeter and later, when performing Z-axis check, the leveling sensor was unable to trigger the heatbed.
This is now fixed. If the X-axis check fails, the user is informed and the test of the axes is canceled. In such a case please ensure that the print head can move freely along the entire X-axis length and make sure you are following the regular maintenance, see the Handbook for more information.
Safety timer not activated fixed
During internal testing, we have discovered that in some scenarios the Safety timer feature wasn't activated correctly and the printer kept the hotend temperature while waiting for the user to confirm a system dialogue. It is important to note, that the printer can still operate safely. This is now fixed and all scenarios were tested multiple times to ensure that the trigger of the Safety timer is correct.
4.3.1-RC1 Firmware for Original Prusa MINI/MINI+
Summary
- X-axis error during Wizard fixed
- Safety timer not activated fixed
This is a bug fix release of the previous version 4.3.0, where two bugs were discovered.
X-axis error during Wizard fixed
We have received a few user reports stating that in rare cases, the initial Wizard or XYZ calibration failed while performing the X-axis check. As a result, the print head with leveling sensor (M.I.N.D.A. / SuperPINDA) remained parked outside the heatbed perimeter and later, when performing Z-axis check, the leveling sensor was unable to trigger the heatbed.
This is now fixed. If the X-axis check fails, the user is informed and the test of the axes is canceled. In such a case please ensure that the print head can move freely along the entire X-axis length and make sure you are following the regular maintenance, see the Handbook for more information.
Safety timer not activated fixed
During internal testing, we have discovered that in some scenarios the Safety timer feature wasn't activated correctly and the printer kept the hotend temperature while waiting for the user to confirm a system dialogue. It is important to note, that the printer can still operate safely. This is now fixed and all scenarios were tested multiple times to ensure that the trigger of the Safety timer is correct.