Skip to content

Releases: prusa3d/Prusa-Firmware-Buddy

4.3.0-RC1 Firmware for Original Prusa MINI/MINI+

11 Dec 19:13
1e225d4
Compare
Choose a tag to compare

Summary

  • QR Error codes
  • Print sheet profiles
  • New fan management
  • Improved selftest and wizard
  • First layer calibration updated
  • Improved filament change process
  • Sound notification changes
  • Improved localization management
  • GUI and WUI (Web User Interface) refactoring
  • Prusa Connect upgraded
  • Bug fixes

This is the first release candidate of the upcoming firmware 4.3.0. There are major changes to the code, user interface, new features, and multiple improvements across the entire firmware.

  • Over 600 commits to the firmware
  • 250 pull requests (4 from the community members)

We would like to thank users @ftrofin, @JeffersGlass, @cpinamtz and @carlin57 for their contribution to this release

QR Error codes

We always strive to improve the user experience and the QR Error codes are the next evolution step. Until now, if the printer experienced an error, a short description was displayed on the screen and the user had to open either the Handbook or search the Prusa knowledgebase for a solution.

With this firmware release, the printer will display more information: the name of the error followed by a brief description and a QR code. Take your phone, scan the code, and get immediately redirected to an article, which will in detail explain, what happened to your printer and how to fix the problem.

Each error code comes with a short URL containing a code. This is useful in case you can't scan the QR code. Open help.prusa3d.com, type in the error code (e.g. #12201), or use the displayed short link, and get access to the required article. Moreover, all the articles are translated into seven languages.

Error_example_12201

How is each code created? Let's use error #12201 again as an example. The code consists of five numbers with the following pattern: XXYZZ.

  • XX -> ID of the printer based on the USB PID (for MINI/MINI+ it is “12”)
  • Y -> the category of the error (2 is used for the temperature errors category)
  • ZZ -> specific error code (01 is used for the heatbed heating failure)

More information about the types of printers, categories, and a full list of the error codes can be found in the following GitHub repository.

The URL link embedded in the QR code may contain an optional “device hash” (this can be enabled/disabled in the Settings). Including this information enables us to check, whether you are running the latest version of firmware and if not, we will inform you at the top of the article. The information provided in the URL is stored in our database to help us better understand, which errors are the most common and how many errors each printer experienced.

Example of the URL in the QR code: https://help.prusa3d.com/en/12201/OI6HB7H6/410

  • en -> a language of the landing page with the article
  • 12201 -> the unique error code sequence
  • OI6HB7H6 -> device hash
  • 410 -> firmware version in your 3D printer

Error_example_12201

An example of the error page with the printer running outdated firmware

The device hash cannot be used to recover anything sensitive like a serial number and isn’t used for anything else than the QR codes feature therefore there are absolutely no security concerns. This feature is turned ON by default. In case you don't want to use this enhanced feature, you can switch it off in the printer's menu by setting the “Device hash in QR” to OFF.

Once you turn it off, the QR code URL will contain only the following: https://help.prusa3d.com/en/12201/

Print sheet profiles

Just like the MK3S+, the MINI and MINI+ also have a magnetic heatbed, which holds a steel print sheet. However, due to the different thicknesses of various sheets (textured vs smooth PEI), each sheet requires individual First layer calibration. Starting with this release, we are adding a useful new feature, which will store the settings for up to 8 sheets. You can then easily switch between the sheets (profiles) and the printer will load the stored values.

There is a new section of the settings menu called “HW Setup”, which will allow you to individually “calibrate” each sheet and some other parameters (see below). To set up the individual sheet profiles, please head to the Settings -> HW Setup -> Steel Sheets

With each sheet profile, you can perform the following actions:

  • Select -> confirms the selection of the sheet, which will then become the default
  • First layer calibration -> takes you through the first layer calibration process. This calibration must be performed with each sheet you plan to use
  • Reset -> sets the values back to the factory defaults

As soon as two or more profiles are configured, you will be able to quick-toggle between them directly from the Settings menu and the currently selected print sheet is also displayed on the main menu screen between the speed and selected material. Steel sheets without calibration are not displayed in the quick-toggle menu item. When upgrading the firmware to version 4.3.0-RC1, the existing Z offset value from First Layer Calibration is copied to the first steel sheet. This does not apply to the downgrading process and the printer’s Z-height offset must be recalibrated.

Compared to the MK3S+ implementation, this firmware does not currently support renaming the sheet profiles to a custom name. We will bring this feature in one of the upcoming releases - if you have any requests regarding this feature, let us know.

New fan management

Improved RPM measurement for PWM-enabled fans

A new unique method was implemented to provide improved measurements and adjustments of the cooling fans’ RPM. This method enables to precisely control fans with 3 wires (power supply, ground, tachometer signal) even when the PWM (Pulse Width Modulation) is applied. In some scenarios, the PWM prevents the electronics from obtaining exact RPM data - this is now solved.

To explain this function a little further, the firmware is not using the standard method, where the fan was spinned up to its maximum speed for a certain time period, to measure the RPM. The new method is more sophisticated, measuring the leading and trailing edges of the tachometer signal while the PWM is at value 1 (tachometer signal is not affected). The following formula is then applied:

FanManagementEquation

Once the measurement is finished, the amount of impulses of the tachometer signal is converted to the RPM. A more detailed description of this algorithm will be available at our knowledge base site.

States of the fan

Keeping the fan spinning in lower RPM requires a small value of the PWM compared to the PWM needed to spin the fan up. The fan speed regulation is therefore split into multiple phases to ensure reliable performance in the entire RPM range. To spin the fan up, the printer is using phase “Start”, which is setting PWM temporarily at 100 % until the max speed and then sets the required RPM by lowering the value of the PWM.

Setting the RPM manually

The RPM of the fan is adjusted using a PWM factor, which can be changed in LCD Menu -> Settings->Temperature->Print Fan. In the current release, due to a historical reason (MK3) the firmware is displaying the direct PWM value (0-255), in the future release, this will be changed to the more user-friendly range of 0-100 %. The speed of the print fan can be also set using a G-code command M106 Sxxx, where the xxx is a value in the range 1-255.

To stop the print fan completely, there are multiple ways, the user can set the PWM to 0 or start a Cooldown procedure (LCD Menu -> Preheat -> Cooldown). Advanced users can again use the G-code command, this time M107.

Displaying current RPM

Information about the current speed of the fan (RPM) can be found in LCD Menu -> Info -> System info. Firmware is displaying RPM for both print fan and hotend fan.

Improved selftest and Wizard

The code running the Wizard was completely rewritten including the First layer calibration. The following features were added:

  • Selftest of X, Y, Z axes
  • Selftest of heating up
  • Selftest of fans

After the selftest is finished a final confirmation screen is displayed. If any part of the printer failed to meet the testing criteria, the printer displays overall results to quickly evaluate what went wrong.

Note for experienced users: If a USB drive is connected to the printer during the selftest, all the selftest results are stored on the drive in a form of a text file for evaluation. This is an experimental feature for development purposes, which might not be working correctly in some scenarios. You can share and discuss the measured data by creating a GitHub issue.

Selftest of X, Y, Z axes

The test of all axes is a part of the Selftest (LCD Menu -> Calibration -> Selftest) and can be also run independently Calibration ->Test XYZ-Axis. To evaluate each axis, the printer is utilizing the Trinamic Drivers TMC 2209, specifically the function Stallguard, which works as a virtual endstop.
The test is run on each axis in both directions at multiple speeds while reading the Stallguard values:

  • X, Y-axis -> 50, 60, 75 and 100 mm/s
  • Z-axis -> 20 mm/s

Together the printer runs 18 measurements (16 for X, Y and 2 for Z). As soon as the test is finished, the printer compares the measured length of each axis compared to the minimal length stored in the firmware.

  • Xmin = 178 mm
  • Ymin = 179 mm
    ...
Read more

4.2.1 Firmware for Original Prusa MINI

31 Aug 15:25
7b0157b
Compare
Choose a tag to compare

This is a bug fix release recommended to all Prusa MINI owners.

Summary

  • Random BSOD fixed

Random BSOD fixed

Some users have reported an issue with a random blue screen of death (BSOD), causing the printer to halt. The problem was with synchronization of the inter-task messages from a message queue, which were occasionally incorrectly processed. Most of the reported BSODs occurred in the webServerTask responsible for running the web user interface. However, it was later found out it wasn't the fault of the webServerTask itself, the same error could have happened with other services as well, even regardless of the printer being connected to the Ethernet (LAN network).

There are several firmware versions, which can be possibly affected (4.0.5, 4.1.0 and 4.2.0) and it is recommended to update them to this latest release 4.2.1.

Side-note: The developers started to work on it as soon as this BSOD issue was reported. However, finding and reproducing this error was very complicated and took almost an entire week as most of the company's printers were unaffected even after several days of non-stop printing.

4.2.0 Firmware for Original Prusa MINI

05 Aug 15:07
Compare
Choose a tag to compare

This is the final release of the firmware. This changelog is a summary of the previous release (RC1) with a few additional changes introduced in this release.

Summary

  • Firmware localized into 7 languages
  • New sound volume option
  • Pause print from USB (M601) fixed
  • Printer beeping in silent mode fixed

Detailed description

Firmware localized into 7 languages

Until now, the firmware for the Original Prusa MINI was available only in the English language. With this release, we are adding support for more languages. Apart from English, users can now also select:

  • Czech
  • German
  • Spanish
  • French
  • Italian
  • Polish

Compared to the previous generations of the Original Prusa i3 printers, the MINI is able to change the language instantly. Also, thanks to a better LCD screen, diacritical marks are now supported. The entire firmware uses UTF-8 texts.

Language-MINI

There are two ways to change the language:

  • Via a prompt when the printer starts for the first time. This is a typical example of new printers leaving the factory, and also if the firmware is updated to version 4.2.0. Once the language is set, the user won't be asked again, even after updating to higher versions than the 4.2.0.
  • The other option is to change the language manually. Go to LCD Menu - Settings - Language and pick the desired language. As mentioned earlier, the change is instant.

Known issues:

  • Error texts in the “red screens” remain untranslated, this part of the firmware is currently undergoing a major update, planned for the upcoming release

New sound volume option

The previous firmware release 4.1.0 introduced sound profiles (Loud, Once, Silent and Assist) known from the Original Prusa i3 family. In this release, we are expanding this feature even further. Not only are you able to change different sound modes, but also the volume.

If the user finds the warnings too loud or too quiet, it’s possible to adjust the volume on a scale from 0 to 10 through Settings - Sound volume. The default value is 5.

Pause print from USB (M601) fixed

The latest stable firmware 4.1.0 ignores the M601 G-code, which is supposed to pause the running print. This function is useful, for example, when you plan to embed magnets into the object during the print.

This issue is now fixed while printing a G-code generated in PrusaSlicer from a USB drive. Note that M601 is currently not working for OctoPrint and Pronterface, it will be addressed in the future firmware release.

Printer beeping in silent mode fixed

In case the printer was switched to silent mode, but the filament sensor was present and activated, the printer kept beeping when the filament was absent (e.g. filament runout). This is now fixed and the printer remains silent even when the filament runs out.

4.2.0-RC1 Firmware for Original Prusa MINI

23 Jul 17:32
1d5f335
Compare
Choose a tag to compare

Summary

  • Firmware localized into 7 languages
  • Printer beeping in silent mode fixed

Detailed description

Firmware localized into 7 languages

Until now, the firmware for the Original Prusa MINI was available only in the English language. With this release, we are adding support for more languages. Apart from English, users can now also select:

  • Czech
  • German
  • Spanish
  • French
  • Italian
  • Polish

Compared to the previous generations of the Original Prusa i3 printers, the MINI is able to change the language instantly. Also, thanks to a better LCD screen, there will be support for diacritical marks in the final release of the firmware. The entire firmware uses UTF-8 texts.

There are two ways how languages can be selected:

  • Via a prompt when the printer starts for the first time. This is a typical example of new printers leaving the factory and also if the firmware is updated to version 4.2.0. Once the language is set, the user won't be asked again, even after updating to higher versions than the 4.2.0.
  • The other option is to change language manually. Go to LCD Menu - Settings - Language and pick the desired language. As mentioned earlier, the change is instant.

select lang wizard DE selftest DE
Examples of the user interface in German language

Integration of the languages is still in progress, diacritical signs will arrive in the final release. If you encounter any issues, please let us know.

Known issues:

  • Some parts of the NTP server are not translated (e.g. Today, tomorrow, days of the week)
  • On the Selftest screen, the text is wrapped incorrectly in all languages

Printer beeping in silent mode fixed

In case the printer was switched to silent mode, but the filament sensor was present and activated, the printer kept beeping when the filament was absent (e.g. filament runout). This is now fixed and the printer remains silent even when the filament runs out.

4.1.0 Firmware for Original Prusa MINI

07 Jul 16:32
9c2fd5a
Compare
Choose a tag to compare

This is the final release of the firmware. This changelog is a summary of the previous release (RC1) with a few additional bug fixes introduced in this release.

Summary

  • Improved behavior after USB drive removal
  • Marlin Card Reader replaced
  • Printer acoustic signalization
  • Support for NTP servers
  • Filament load/unload procedure adjusted
  • Preheat function improved
  • Tune menu extended
  • File browser improved
  • Horizontal scrolling text function added
  • Octoprint screen further improved
  • OctoPrint vs filament change
  • Watchdog dump feature
  • Safety measures for filament load/unload
  • Reworked temperature regulation
  • Faster print head heat-up process
  • Correct remaining time estimation for non-default speeds
  • Short G-codes not printed completely
  • Splashscreen fixed
  • Bug fixes

Detailed description

Improved behavior after USB drive removal

If the USB drive was accidentally removed or randomly disconnected during the print, the printer failed to continue. Now, the printer parks the print head in the rear right corner of the heatbed, enters the “Pause” state and awaits user input. The user should re-insert the USB driver, then press the “Resume” button. The printer then returns to the last G-code coordinate before the interruption and if the USB drive with the G-code is correctly recognized, the printer continues with the print. Otherwise, the print head is again parked in the rear right corner.

Disclaimer: Even though the printer is capable of resuming the print after the USB drive is disconnected, it is recommended to keep the drive plugged in throughout the entire print. Disconnecting the USB drive and rewriting or adjusting the printed file might lead to unpredictable results.

Marlin Card Reader replaced

The Marlin Card Reader implementation is directly connected to the accidental USB drive removal behavior. We have modified the Marlin Card Reader with our own code and implemented it in the MINI firmware. Its main feature was to treat USB flash drives as SD cards. However, in case of any error during the print (e.g. unintentional USB drive removal) it sometimes ended up with a critical error leading to a failed print, in rare cases even caused a Watchdog reset.

The new implementation uses a FatFs library, which is a generic FAT/exFAT filesystem module for small embedded systems and replaces the previous “Marlin Card Reader” entirely. The USB drive is now treated properly and most of the crash scenarios are also fixed in this update.

Printer acoustic signalization

Firmware 4.1.0 brings 4 levels of the acoustic signalization - Loud, Once, Silent and Assist. The user is able to choose between each level in the printer's menu Settings > Sound Mode. You can also change the sound settings during the print in the Tune menu.

Level description:

  • Loud - printer uses acoustic signalization to notify the users of a failure or if confirmation is needed
  • Once - this level is similar to Loud, but all beeps are played only once
  • Silent - most of the beeps are muted, the user is informed only in case of a serious error
  • Assist - a mode for visually impaired users, the printer plays a different sound while scrolling through the menu and at the end of the menu.

sound mode

Support for the NTP servers

Starting this release the printer is able to get the current time using the NTP servers. This feature requires an active connection to the internet and brings a great addition to the running print.

An offline printer reads the duration of the print from the G-code and displays the remaining time on the screen. However, when the printer is online and acquires the current time, it adds the time from the G-code needed to complete the print and on the screen displays the estimated time when the print will be finished.

Note that the NTP servers aren't able to retrieve the time zone your printer is in. In order to see the correct time, please head to the Settings > TZ UTC (+/-) and set the number of hours, which will be either added or subtracted from the NTP server time.

For example, our offices in Prague are UTC+2h, therefore the time zone settings have to be adjusted by +2 hours.

Filament load/unload procedure adjusted

Previously, in order to load the filament, the printer needed to be fully preheated. As soon as the desired temperature was reached, the printer asked the user to load the filament through the extruder gears. From there, the filament was loaded all the way to the print head and extruded out of the nozzle. In case of any issue during the loading procedure, the user was unable to repeat the action or cancel it.

Filament load

Starting this release the overall logic driving the filament load is changed. The user is able to load the filament into the extruder gears (on the Z-axis) before the hotend is fully heated up and as soon as the temperature is reached, the printer automatically loads the filament all the way through the print head to the nozzle including the purge procedure at the very end.

load filament color check

After the filament loading procedure is finished, the printer will ask whether the color of the filament flowing out of the nozzle is correct. The following options are displayed:

  • YES - filament loading procedure is considered finished, the printer returns to the previous menu
  • NO - the filament is pushed again through the hotend again
  • RETRY - the entire procedure returns to the beginning and awaits user confirmation about correctly loaded filament

Filament unload

Changes were also applied to the filament unload procedure, which is slightly more complicated than the loading. The printer now handles the filament unload procedure more carefully in order to achieve better results with almost no stringing and to avoid the creation of bumps near the tip of the filament strand. This improves the life expectancy of the PTFE tube inside the hotend and also the Bowden connecting the print head to the extruder. This new approach also avoids grinding of the filament while it passes through the extruder gears.

This method is also used during a color-change (M600). The previous method could sometimes cause jams and might have led to print failures. The print head is now always parked in the front of the printer to allow for easier access.

If you still experience stringing or grinding of filament, please let us know using the Issues section on the GitHub. Include information about your filament (type/brand etc.).

Temperature fluctuations fixed

During the phase of the fast filament load/unload (happening between the extruder and print head) the temperature fluctuated significantly. The issue was identified in the incorrect setting of the PID regulation.

The most common cause was the fast loading sequence responsible for moving the filament between the extruder and the print head into the nozzle, which affected the PID_EXTRUSION_SCALING parameter. Once the sequence started, the printer immediately expected the filament to be already in the nozzle, increasing the temperature, but since there wasn't any material at the moment to use the extra heat, the overall temperature rose up, sometimes even by 10 °C. The incorrect assumption was done also during the unload procedure, causing the temperature to drop about 5 °C from the target.

The solution we applied to solve this issue was to temporarily disable the PID_EXTRUSION_SCALING parameter during the filament load and unload procedure leading to the stabilization of the temperature.

Preheat function improved

Several optimizations were made to the preheat function in order to shorten the overall time before the actual print is started. Now, regardless of the target print temperature as soon as the temperature of 170 °C is reached, the printer will allow for:

  • the filament to be loaded to the print head
  • the mesh bed leveling (MBL) to be performed

Preheat function improved

Also, the lower temperature in the print head prevents the filament from dripping down onto the heatbed. Once the MBL procedure finishes successfully, the printer proceeds to heat up the hotend to reach the target temperature and starts the print.

Preheat scenario (PLA used as an example):

  • The user selects “Preheat” from the menu and then the material (PLA) they intend to load. The print head starts to preheat to target temperature (215 °C), but stops at 170 °C.
  • As soon as the temperature of 170 °C is reached, the number on the screen starts to flash green, informing the user that the printer is ready to load the filament.
  • For advanced users - the printer is also ready to perform the Mesh Bed Levelling, if this is specifically set in the G-code

Print scenario (PLA used as an example):

  • The user selects “Print” from the menu, the material (PLA) is already loaded. The print head starts to heat up or cool down to reach the temperature of 170 °C. However, the printer knows (and displays) that the target temperature is 215 °C.
  • The heatbed is heated up to the final temperature, in our case 60 °C
  • As soon as the temperature of 170 °C in the print head is reached, the printer performs the MBL procedure.
  • Once MBL is successfully finished, the printer continues to heat up the print head to the target temperature and starts the print.

Tune menu extended

Some parts of the printer’s menu are not accessible during the print for safety reasons. As a result, some important information might not be avai...

Read more

4.1.0-RC1 Firmware for Original Prusa MINI

19 Jun 15:22
2f6d64d
Compare
Choose a tag to compare

Summary

  • Improved behavior after USB drive removal
  • Marlin Card Reader replaced
  • Printer acoustic signalization
  • Filament load/unload procedure adjusted
  • Preheat function improved
  • Tune menu extended
  • File browser improved
  • Horizontal scrolling text
  • Octoprint screen improved
  • Watchdog dump feature
  • Support for NTP servers
  • Safety measures for filament load/unload
  • Reworked temperature regulation
  • Bug fixes

Detailed description

Improved behavior after USB drive removal

If the USB drive was accidentally removed or randomly disconnected during the print, the printer failed to continue. Now, the printer parks the print head in the rear right corner of the heatbed, enters the “Pause” state and awaits user input. The user should re-insert the USB driver, then press the “Resume” button. The printer then returns to the last G-code coordinate before the interruption and if the USB drive with the G-code is correctly recognized, the printer continues with the print. Otherwise, the print head is again parked in the rear right corner.

Disclaimer: Even though the printer is capable of resuming the print after the USB drive is disconnected, it is recommended to keep the drive plugged in throughout the entire print. Disconnecting the USB drive and rewriting or adjusting the printed file might lead to unpredictable results.

Marlin Card Reader replaced

The Marlin Card Reader implementation is directly connected to the accidental USB drive removal behavior. We have modified the Marlin Card Reader with our own code and implemented it in the MINI firmware. Its main feature was to treat USB flash drives as SD cards. However, in case of any error during the print (e.g. unintentional USB drive removal) it sometimes ended up with a critical error leading to a failed print, in rare cases even caused a Watchdog reset.

The new implementation uses a FatFs library, which is a generic FAT/exFAT filesystem module for small embedded systems and replaces the previous “Marlin Card Reader” entirely. The USB drive is now treated properly and most of the crash scenarios are also fixed in this update.

Printer acoustic signalization

Firmware 4.1.0 brings 4 levels of the acoustic signalization - Loud, Once, Silent and Assist. The user is able to choose between each level in the printer's menu Settings > Sound Mode. You can also change the sound settings during the print in the Tune menu.

Level description:

  • Loud - printer uses acoustic signalization to notify the users of a failure or if confirmation is needed
  • Once - this level is similar to Loud, but all beeps are played only once
  • Silent - most of the beeps are muted, the user is informed only in case of a serious error
  • Assist - a mode for visually impaired users, the printer plays a different sound while scrolling through the menu and at the end of the menu.

sound mode

Filament load/unload procedure adjusted

Previously, in order to load the filament, the printer needed to be fully preheated. As soon as the desired temperature was reached, the printer asked the user to load the filament through the extruder gears. From there, the filament was loaded all the way to the print head and extruded out of the nozzle. In case of any issue during the loading procedure, the user was unable to repeat the action or cancel it.

Filament load

Starting this release the overall logic driving the filament load is changed. The user is able to load the filament into the extruder gears (on the Z-axis) before the hotend is fully heated up and as soon as the temperature is reached, the printer automatically loads the filament all the way through the print head to the nozzle including the purge procedure at the very end.

load filament color check

After the filament loading procedure is finished, the printer will ask whether the color of the filament flowing out of the nozzle is correct. The following options are displayed:

  • YES - filament loading procedure is considered finished, the printer returns to the previous menu
  • NO - the filament is pushed again through the hotend again
  • RETRY - the entire procedure returns to the beginning and awaits user confirmation about correctly loaded filament

Filament unload

Changes were also applied to the filament unload procedure, which is slightly more complicated than the loading. The printer now handles the filament unload procedure more carefully in order to achieve better results with almost no stringing and to avoid the creation of bumps near the tip of the filament strand. This improves the life expectancy of the PTFE tube inside the hotend and also the Bowden connecting the print head to the extruder. This new approach also avoids grinding of the filament while it passes through the extruder gears.

This method is also used during a color-change (M600). The previous method could sometimes cause jams and might have led to print failures. The print head is now always parked in the front of the printer to allow for easier access.

If you still experience stringing or grinding of filament, please let us know using the Issues section on the GitHub. Include information about your filament (type/brand etc.).

Preheat function improved

Several optimizations were made to the preheat function in order to shorten the overall time before the actual print is started. Now, regardless of the target print temperature as soon as the temperature of 170 °C is reached, the printer will allow for:

  • the filament to be loaded to the print head
  • the mesh bed leveling (MBL) to be performed

Also, the lower temperature in the print head prevents the filament from dripping down onto the heatbed. Once the MBL procedure finishes successfully, the printer proceeds to heat up the hotend to reach the target temperature and starts the print.

Preheat scenario (PLA used as an example):

  • The user selects “Preheat” from the menu and then the material (PLA) they intend to load. The print head starts to preheat to target temperature (215 °C), but stops at 170 °C.
  • As soon as the temperature of 170 °C is reached, the number on the screen starts to flash green, informing the user that the printer is ready to load the filament.
  • For advanced users - the printer is also ready to perform the Mesh Bed Levelling, if this is specifically set in the G-code

Print scenario (PLA used as an example):

  • The user selects “Print” from the menu, the material (PLA) is already loaded. The print head starts to heat up or cool down to reach the temperature of 170 °C. However, the printer knows (and displays) that the target temperature is 215 °C.
  • The heatbed is heated up to the final temperature, in our case 60 °C
  • As soon as the temperature of 170 °C in the print head is reached, the printer performs the MBL procedure.
  • Once MBL is successfully finished, the printer continues to heat up the print head to the target temperature and starts the print.

Tune menu extended

Some parts of the printer’s menu are not accessible during the print for safety reasons. As a result, some important information might not be available to the user. From this release forward, the Tune menu is extended with “LAN settings”, “Version Info” and “Sound mode” submenus.

Thanks to this change, the IP address can be obtained even during the print and the user is able to monitor the progress using the Prusa Connect web interface. Similarly, the printer can be quickly muted for overnight prints.

File browser improvements

In case the G-codes were stored on the USB drive in various subdirectories, the user was able to list through the files and see the preview, but when the “Back” button was pressed, the printer incorrectly returned to the root directory. Now, the printer closes the preview, stays in the given subdirectory keeping the scroll and cursor position, thus enabling the user to continue previewing other G-code files in the same directory.

Also, the previous firmware releases sometimes experienced issues if the files were stored in multiple subdirectories. In this release, the total length limit of the path is raised to approximately 103 characters, which implies 103/(8+3) levels. The whole path is internally represented as DOS short file name 8.3 format.

Horizontal scrolling text

This function is now available for the MINI and well known from the MK3/MK3S printers enabling to read file names, which are longer than the width of the screen. If the cursor stays on the name the text will start to scroll to reveal the entire length.

Octoprint screen improved

Previously, when a remote print over OctoPrint was started, the printer locked the screen and displayed an “Octoprint” dialog. There were only two options available, open the “Tune” menu in case of adjustments needed during the print or reset (reboot) the printer using the hardware button if the print was failing.

However, not every failing print must be addressed by rebooting the printer, sometimes the print can be saved and for this reason in this release, this functionality is further improved with new options next to the “Tune” menu:

  • Tune - standard adjustments to the running print
  • Pause - a command is sent to the Octoprint server to pause the print
  • Disconnect - a command is sent to the Octoprint server to disconnect from the printer. This also cancels the running print.

We would appreciate any feedback regarding the Octoprint integration, please let us know using the GitHub or forum.

Watchdog dump feature

This feature is an extension of the *“Crash Dum...

Read more

4.0.5 Firmware for Original Prusa MINI

06 Apr 12:39
16928c5
Compare
Choose a tag to compare

This is the final release of the firmware. This changelog is a summary of the previous release (RC1) with a few additional bug fixes introduced in this release.

Summary

  • New EEPROM implementation
  • Prusa Connect Local (WebUI)
  • Stop print function fixed
  • Remote print - OctoPrint
  • Adjustment to Mesh Bed Levelling
  • The new color scheme for active button
  • Improved movement near the axis end
  • Revised file sorting
  • Adjustments to e-steps
  • Improved Z-axis self-test
  • Random screen freezing fixed

Detailed description

New EEPROM implementation

Due to historical reasons, the previous firmware releases were using two EEPROM implementations - one provided by stock Marlin, the other for Prusa-specific persistent data. However, this implementation was causing synchronization issues and it was decided to unify both EEPROMs into one. As a result, the support for Marlin's EEPROM is now disabled and upon the reboot, all the Marlin settings are always set to the default values.

Any specific adjustment of those values should be part of the G-code. The only variables from Marlin allowed to be stored in the EEPROM are the Live Adjust Z and PID calibration. The EEPROM further contains Ethernet settings, the filament type and the information, whether the Wizard was successfully finished.

Each variable is now saved independently, unlike in Marlin, where saving one variable resulted in an update to all other variables. The data integrity is now guaranteed by the CRC32. If an error during the check is detected, the EEPROM is set back to the factory defaults, thus the printer has to be calibrated again.

The old and new implementations of the EEPROM are compatible, but only in case of an upgrade. If the user decides for a downgrade from the 4.0.5 to an older firmware a factory reset is recommended.

Prusa Connect Local (Web UI)

Starting with this release, there is a brand new web interface called Prusa Connect Local, designed to provide remote monitoring capabilities. The current version provides an overview of the following:

  • Name of the printed G-code
  • The temperature of the heatbed and nozzle
  • Type of the loaded material
  • Current print speed
  • The current height of the Z-axis
  • Printing / Remaining time

prusa_connect_local

The final release includes several minor bug fixes to the web interface. There are more features to come and the web interface will be further updated in the upcoming releases.

Stop print function fixed

The Stop print function was sometimes using incorrect coordinates while parking the print head or the heatbed, this resulted in multiple attempts to reach the end of the axis and chattering sound. This issue occurred mostly while printing large objects and the printer had to travel longer distances. This is now fixed.

Remote print - OctoPrint

When you start a remote print over OctoPrint, the printer becomes locked and a dialog is displayed on the screen. This is for safety reasons. The only available option is the Tune menu. To access other functions during the remote print, please use the OctoPrint app or web interface. However, in a critical situation, the user is still able to reboot the printer using the hardware button situated under the screen.

remote_printing_with_button

There is a known issue with the filament runout detection or filament change in the G-code (M600). In both scenarios, the print is cancelled. The developers are investigating this issue and it will be addressed with several other improvements in the upcoming release.

Adjustment to Mesh Bed Levelling

In some scenarios, we have observed improper readings during Mesh Bed Levelling (MBL). This can be caused for example by a slightly misaligned print steel sheet. To address this issue and possible errors in the future, the outer edges for the MBL were moved 5 mm towards the center of the heatbed, only the edge closest to the tower (Z-axis) was left intact. The printing area remains unchanged.

A new color scheme for active button

In order to improve the clarity of dialog windows, the color scheme of the actively selected buttons was changed to an orange background and black font. A typical example is the YES/NO dialog.

buttons
Old and new color scheme

Improved movement near the axis end

In the case of the print head or the heatbed being too close to the edge of its axis, the printer sometimes incorrectly detected the current position and continued the movement with a higher power, forcing the motor to skip a step. The algorithm responsible for the detection of the end of the axis was improved to prevent these situations.

Revised file sorting

The file sorting algorithm was improved to handle the files on the USB drive based on the time of the last change. Since every operating system (Windows, macOS, Linux) handles this differently, the printer compares the following times (file creation time and file modification time) and selects the most recent one.

The new sorting algorithm also handles specific situations like:

  • Extracting an old G-code from a ZIP archive
  • Updating an existing G-code file directly on the USB drive

Adjustments to e-steps

Based on the internal testing it was discovered that there is a slight under-extrusion during the print. To compensate for this behavior, the e-steps value was adjusted by 2.5 %.

Improved Z-axis self-test

In some scenarios, the self-test procedure of the Z-axis could have failed. The issue was discovered in incorrect synchronization of the actual printer coordinates obtained during the Auto Home procedure and the software end stops. The synchronization is now fixed and the software end stops were disabled in order to provide stable and reliable self-test.

Random screen freezing fixed

In very rare scenarios the screen or the knob froze and stopped responding to the user's input. The developers were able to reproduce this issue in the initial Wizard, the preheat menu and during the filament unload. This is now fixed.

4.0.5-RC1 Firmware for Original Prusa MINI

20 Mar 15:40
9702ced
Compare
Choose a tag to compare

Summary

  • New EEPROM implementation
  • Prusa Connect Local (WebUI)
  • Stop print function fixed
  • Remote print - OctoPrint
  • Adjustment to Mesh Bed Levelling
  • New color scheme for active button
  • Improved movement near the axis end
  • Revised file sorting
  • Adjustments to e-steps

Detailed description

New EEPROM implementation

Due to historical reasons, the previous firmware releases were using two EEPROM implementations - one provided by stock Marlin, the other for Prusa-specific persistent data. However, this implementation was causing synchronization issues and it was decided to unify both EEPROMs into one. As a result, the support for Marlin's EEPROM is now disabled and upon the reboot, all the Marlin settings are always set to the default values.

Any specific adjustment of those values should be part of the G-code. The only variables from Marlin allowed to be stored in the EEPROM are the Live Adjust Z and PID calibration. The EEPROM further contains Ethernet settings, the filament type and the information, whether the Wizard was successfully finished.

Each variable is now saved independently, unlike in Marlin, where saving one variable resulted in an update to all other variables. The data integrity is now guaranteed by the CRC32. If an error during the check is detected, the EEPROM is set back to the factory defaults, thus the printer has to be calibrated again.

The old and new implementations of the EEPROM are compatible, but only in case of an upgrade. If the user decides for a downgrade from the 4.0.5 to an older firmware a factory reset is recommended.

Prusa Connect Local (Web UI)

Starting with this release, there is a brand new web interface called Prusa Connect Local, designed to provide remote monitoring capabilities. The current version provides an overview of the following:

  • Name of the printed G-code
  • Temperature of the heatbed and nozzle
  • Type of the loaded material
  • Current print speed
  • Current height of the Z-axis
  • Printing / Remaining time

prusa_connect_local

There are more features to come and the web interface will be further updated in the upcoming releases.

Stop print function fixed

The Stop print function was sometimes using incorrect coordinates while parking the print head or the heatbed, this resulted in multiple attempts to reach the end of the axis and chattering sound. This issue occurred mostly while printing large objects and the printer had to travel longer distances. This is now fixed.

Remote print - OctoPrint

When you start a remote print over the popular app OctoPrint, the printer becomes locked and a dialog is displayed on the screen. This is for safety reasons. To control the printer (e.g. temperature adjustment) during the remote print, please use the OctoPrint app or web interface. However, in a critical situation, the user is still able to reboot the printer using the hardware button situated under the screen.

remote printing

Note: The "Live Adjust Z" adjustment during the print is now not available while using the OctoPrint. It will be addressed in the final release.

Adjustment to Mesh Bed Levelling

In some scenarios, we have observed improper readings during Mesh Bed Levelling (MBL). This can be caused for example by a slightly misaligned print steel sheet. To address this issue and possible errors in the future, the outer edges for the MBL were moved 5 mm towards the center of the heatbed. The printing area remains unchanged.

A new color scheme for active button

In order to improve the clarity of dialog windows, the color scheme of the actively selected buttons was changed to an orange background and black font. A typical example is the YES/NO dialog.

buttons
Old and new color scheme

Improved movement near the axis end

In the case of the print head or the heatbed being too close to the edge of its axis, the printer sometimes incorrectly detected the current position and continued the movement with a higher power, forcing the motor to skip a step. The algorithm responsible for the detection of the end of the axis was improved to prevent these situations.

Revised file sorting

The file sorting algorithm was improved to handle the files on the USB drive based on the time of the last change. Since every operating system (Windows, macOS, Linux) handles this differently, the printer compares the following times (file creation time and file modification time) and selects the most recent one.

The new sorting algorithm also handles specific situations like:

  • Extracting an old G-code from a ZIP archive
  • Updating an existing G-code file directly on the USB drive

Adjustments to e-steps

Based on the internal testing it was discovered that there is a slight under-extrusion during the print. To compensate for this behavior, the e-steps value was adjusted by 2.5 %.

4.0.4 Firmware for Original Prusa MINI

04 Mar 15:52
c41ffcb
Compare
Choose a tag to compare

Summary:

  • Jerk speeds fixed

Detailed description

Jerk speeds fixed

This version of the firmware fixes rare scenarios of improper jerk speeds when Marlin does not accept the value stored in the emulated EEPROM.

4.0.3 Firmware for Original Prusa MINI

19 Feb 11:36
6a14bf0
Compare
Choose a tag to compare

Summary:

  • Fixed mounting of USB drives
  • Support for an MK3S encoder
  • Mesh Bed Levelling fixed
  • Fixed loaded filament information
  • Active heating for canceled prints fixed
  • Automatic filament sensor detection
  • Improved filament changes (M600)
  • First layer calibration tweak
  • Optimized on-screen messages
  • Fixed random moves after a USB drive is removed
  • Flow adjustment no longer ignored
  • Repeatable purge
  • Crash Dump feature
  • Classic Jerk fix
  • USB CDC fix
  • More detailed error screen
  • Earlier filament load
  • Heatbed temperature limit
  • Ethernet instability

Detailed description

WARNING: This version of the firmware might in rare scenarios set improper jerk speeds when Marlin does not accept the value stored in the emulated EEPROM. It is recommended to upgrade to newer version 4.0.4

This is the final release, which is mostly identical to the previous release 4.0.3-RC1. Fixed mounting of USB drives and support for the new LCD encoder are among the main features of this release. The developers have also changed the compiling system to a newer, more robust one.

Changes with respect to the 4.0.3-RC1 version are the addition of the “Heatbed temperature limit” and “Ethernet instability”.

Fixed mounting of USB drives

During the internal testing, it was discovered that some USB drives aren't properly detected if they are inserted after the printer already finished booting into the system. Once the mounting procedure failed, the system was unable to mount any other flash drive. In cooperation with the chipset producer, we have updated the USB core libraries and the mounting issues are now solved.

Support for an MK3S encoder

As explained in this article, we have encountered a slightly larger than the average fail rate of the LCD encoder, which is used to navigate through the user interface. The new revision of the LCD board is now equipped with the same encoder used on the MK3S. The old and new encoders differ, which means the firmware can now automatically detect the type of the encoder on the startup, so there is no need for user intervention.

Mesh Bed Levelling fixed

In the previous release, when mesh bed levelling procedure failed (e.g. due to an incorrectly placed steel sheet) the printer didn't show the correct error message. In the current release, the printer will display a “Mesh bed levelling failed” message on the screen with two options to either “Retry” or “Cancel” the procedure.

Fixed loaded filament information

This feature introduced with the MINI is used to store information about the currently loaded filament in order to provide faster unloading times. However, in some scenarios, the printer didn't save the value correctly - this is now fixed. Also, in certain situations, the printer is no longer asking for the preheat temperature. For example, when the next print is going to use PLA and PLA filament is already loaded.

Active heating for a canceled print fixed

If the print was first paused and then canceled, the printer partly ignored the last action and continued with heating up both hotend and heatbed. This now fixed and the printer cools down.

Automatic filament sensor detection

The MINI is now able to detect not only that the filament was loaded through the sensor, but also that the sensor is connected to the printer.

Improved filament changes (M600)

The code responsible for the execution of the G-code M600 (filament change) was improved to provide a more stable and reliable behavior.

First layer calibration tweak

The end of the calibration pattern (the rectangular shape) was adjusted. The printer lays down the perimeters first and then proceeds to the infill.

Optimized on-screen messages

The management system responsible for displaying the messages on the printer's screen was updated to prevent overlapping messages, which sometimes caused the screen to flicker.

Fixed random moves after the USB drive is removed

If the USB drive was removed after the print had finished, the printer performed several “random” moves in an attempt to perform a re-homing procedure. This is now fixed.

Flow adjustment no longer ignored

Until now any adjustment to the “Flow” parameter in the printer's menu was ignored. This bug is fixed in this release.

Repeatable purge

Due to the technical difficulties, the printer was unable to repeat the purge procedure, if the filament wasn't loaded all the way through the print head to the nozzle. The current release fixes this issue and offers multiple consecutive purges to load the filament properly.

Crash Dump feature

The advanced 32bit SoC running the Buddy board enables logging the system events. In the case of a system crash, the information is written in the SPI flash. After the printer is restarted, users can download the Crash Dump file onto a USB drive and provide it to the support team/developers for debugging purposes.

To download the Crash Dump file, insert a USB drive into the printer first and then head to “Settings -> Save Crash Dump”.

Classic Jerk fix

During the merge of the latest Marlin code to our firmware, the “Junction Deviation” was enabled instead of a “Classic Jerk”. This release fixes it by switching back to the “Classic Jerk”.

USB CDC fix

The printer is now using the correct VID / PID descriptors and texts including a serial number, while connected over the Micro USB cable.

More detailed error screen

Error screens are undergoing a major redesign. This firmware lays down the foundation for the future version, which will provide a brief description of the issue with a link to an article explaining the solution for the error.

Earlier filament load

This is also a work in progress. The next firmware release will enable the filament to be loaded as soon as the current temperature is 10 °C below the target temperature. This makes the filament loading procedure faster.

Heatbed temperature limit

The maximum temperature limit for the heatbed is now set to 100 °C.

Ethernet instability

In some scenarios, the Ethernet connection of the MINI 3D printer can be overloaded with requests, which may lead to a system crash. The fix will be available in the next version of the firmware along with a new web interface. In the meantime, we have decided to block the Ethernet networking service in order to ensure a safer experience.