4.3.0-RC1 Firmware for Original Prusa MINI/MINI+ IS OUT  

Page 1 / 2
  RSS
Same Old Shane
(@same-old-shane)
Admin

Greetings all;

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
  • Zmin = 181 mm

Heating selftest

Just like the axes test, the heating selftest is also part of the Wizard and can be launched separately through LCD Menu -> Calibration -> Test heaters. The heating selftest is separated into two phases:

  1. Starting temperature stabilization
    In this phase, the temperatures of both the nozzle and the heatbed are set to 40 °C. The printer waits until the target temperature is reached. The selftest works together with the heating control module. It sets a target temperature and once the temperature is reached and the module sends the confirmation, the selftest evaluates, whether the time required was within the limits. The time for the nozzle and the heatbed to reach 40 °C may be different.

  2. Heating phase
    Once the 40 °C heating test is completed, the target temperature for the nozzle and the heatbed is set to 290 °C and 110 °C respectively. These temperatures are outside the working range of the MINI on purpose to ensure that the printer will always run the heaters at full 100 % during the entire run of the test. Once the target temperatures are set and the heating process begins, two timers are started. The nozzle timer is set to 42 seconds and the heatbed timer is set to 60 seconds. Once the time runs out, the firmware evaluates the temperatures. The nozzle should be between 130 and 190 °C, while the heatbed should be between 50 °C and 65 °C. If the temperatures are within the required range, the test is considered successful. In the opposite case, the test is considered unsuccessful and user assistance is needed.

Note: Please, always run this test with a steel print sheet on the heatbed, otherwise, the heatbed might warm up too quickly and result in a failed test.

Fan selftest with RPM monitoring

The fan test is part of the Wizard and can be also launched through Calibration -> Test Fans. As described in the previous chapters, the functionality of the test has been significantly improved. The results in a wide RPM-range are more precise and can be saved to a USB drive.

The following table contains checked speed limits for individual fans at corresponding PWM values:

PWM % Print fan min. RPM Print fan max. RPM Hotend fan min. RPM Hotend fan max. RPM
20 150 1950 2350 3750
40 1250 3950 4750 5850
60 2350 5050 5950 7050
80 3250 5950 6850 8050
100 3850 6650 7650 8950

The fan selftest is considered successful when the RPM values are in allowed tolerance at all PWM values. If the test is unsuccessful, you can check the file on the USB drive to see where exactly the error occurred. We would greatly appreciate it if you could share your fan test results with us, so we can further improve the performance of the selftest.

First layer calibration updated (no longer bound to GUI)

Thanks to the GUI and WUI refactoring (see below), the First layer calibration process is no longer bound to GUI. In older versions, the entire calibration logic (movements, waiting, heating) was generated in the GUI, which in turn controlled a Marlin thread through a set of G-codes. Now, the instructions are executed in a Marlin thread directly and the GUI receives notifications about the changes. This will allow the implementation of First layer calibration for different nozzle diameters and to change the calibration object shape in the future.

First layer calibration can be also called using G26 G-Code.

Improved filament change process

Firmware 4.3-RC1 features an improved filament change process - e.g. during a multicolor print (known as ColorPrint). Previously, when the printer paused for manual filament change, there was no option to recover from an unsuccessful filament unload. With FW 4.3-RC1, the user is asked after a filament unload, whether the process finishes successfully (“Was the filament unload successful?”). In case the user selects “NO”, the on-screen message suggests to open the idler and remove the filament manually. Once the issue is fixed, a new strand of filament can be loaded and the print continues.

Sound notification changes

  • Added support for sounds playing in loop, which are stopped only by a user action
  • Added a new sound for the change filament process - WaitingSound
  • The volume now goes up to 11! (It is one louder)

Improved localization management

Firmware 4.3-RC1 brings an important change to how the localization files are implemented. Compared to the old method, the new process allows to process a .po file during the firmware build process. The related unit tests went through a similar upgrade, allowing them to check the results independently.

The process of implementing and testing a new translation is now simplified significantly. When you edit texts in a .po file, you can then just build the firmware and load the .BBF file into your 3D printer. We recommend to run unit tests after building the FW to check the generated localization files.

GUI and WUI (Web User Interface) refactoring

We made major changes in the code for better optimization and future-proofing. The goal of the refactoring was to:

  • Implement a more secure class and API hierarchy to increase the effectiveness of future development.
  • Migrate the printer control logic from the GUI to Marlin-API. This change will allow users to control many features of the printer (e.g. Wizard) through the web-based user interface. These features will be implemented in future firmware releases.
  • Improve the layout of various screens for a better user experience and easier navigation.
  • Fix bugs

The refactoring of the Web User Interface brings improved handling of the INI file used for LAN configuration.

Compared to the old version:

  • Every item in the INI file (type, address, mask,...) is optional and the printer can read the data even if some of the items are missing.
  • If any of the items in the INI file contain an incorrect IP address, the item is ignored.
  • Only uppercase letters are allowed for the “type” item (e.g. type=STATIC or type=DHCP). An item containing lowercase letters is ignored.

Examples:

  • Static IP configuration
    [lan_ip4]
    type=STATIC
    hostname=X (hostname, 20 characters maximum, set by the user)
    address=X.X.X.X (static IP address, set by the user)
    mask=X.X.X.X (netmask, set by the user)
    gateway=X.X.X.X (default gateway, set by the user)

  • Dynamic IP address configuration (IP provided by DHCP)
    [lan_ip4]
    type=DHCP
    hostname=X (hostname, 20 characters maximum, set by the user)

Prusa Connect upgraded

Prusa Connect Local has a separate language settings feature and the configuration remains saved even after a web page reload. To change the Prusa Connect interface language, connect your MINI/MINI+ to the local area network and enter its IP address into your web browser. In the top right corner, use the drop-down menu to pick the language of your choice. If you reload the page, the language setting remains saved.

Bug Fixes:

  • BSOD when displaying filenames with special characters -> filenames containing special characters were either incorrectly displayed or caused a BSOD. This is now fixed - incorrect characters are replaced with an asterisk. However, we recommend NOT TO USE special characters at all
  • BSOD after watchdog reset -> After the printer was restarted due to a watchdog reset, an incorrect BSOD flag could cause another BSOD to be shown. This is now fixed, the printer first restarts to ensure that all the running processes (e.g. heating) are cancelled and the system is at safe state. Once the restart is finished the error message is displayed.
  • Stop button behavior during MBL fixed -> If you selected the STOP button during the Mesh Bed Leveling routine at the start of the print, the print head parked, however, then it continued to finish the MBL and proceeded to printing. In this firmware version, the print head will finish MBL and park (the print is then stopped).
  • M851 ignored in G-Code -> Setting the initial Z-offset for print sheets of different thickness using a G-code is not implemented. Instead, the new “Sheet profiles” function enables users to configure various print sheets and switch between the profiles quikly

Download the new firmware from our github

https://github.com/prusa3d/Prusa-Firmware-Buddy/releases/tag/v4.3.0-RC1

Shane (AKA FromPrusa)...
Posted : 12/12/2020 10:19 am
Lupin
(@lupin)
Trusted Member

This is great. Just installed 4.3.0 RC1 and printer is now running FLC so that I can store the value for  textured sheet. Also, the First layer calibration has changed slightly. Now it starts from the front immediately after it has cleaned the nozzle and the pattern end to the back row. Now when the calibration is finished, the work is already in front and the result is easily accessible. Nice change.

Posted : 15/12/2020 7:53 pm
Lupin
(@lupin)
Trusted Member

Web GUI does not show which sheet is in use although the printer has one selected (can be seen in the printers console under settings). This is not a bug, it is a missing feature.

Posted : 15/12/2020 8:04 pm
Zoltan
(@zoltan)
Moderator

@lupin

If you read carefully the release notes - when you have activated only one sheet, you will not have a chance to select among them and you will not get on the main screen the selected sheet name - activate more sheets and then you will be able to select and see the name. 😉 

Reset or non-calibrated sheets will not show up in the selection menu.

even an old man can learn new things 🙂
Standard I3 mk3s, FW 3.10.0 RC2, no closed box, sketchup , fusion 360, PrusaSlicer, Windows 10
PRUSA MINI FW 4.3.1 technical background...
Posted : 17/12/2020 9:23 am
Zoltan
(@zoltan)
Moderator
Posted by: @lupin

Web GUI does not show which sheet is in use although the printer has one selected (can be seen in the printers console under settings). This is not a bug, it is a missing feature.

Yes correct not implemented yet

even an old man can learn new things 🙂
Standard I3 mk3s, FW 3.10.0 RC2, no closed box, sketchup , fusion 360, PrusaSlicer, Windows 10
PRUSA MINI FW 4.3.1 technical background...
Posted : 17/12/2020 9:24 am
Lupin
(@lupin)
Trusted Member

@zoltan

There's now a feature request (Issue # 1188) about this. No rush. 🙂 

Posted : 20/12/2020 6:26 pm
shags72
(@shags72)
Eminent Member

Ok please forgive my noobness but this is beta correct? Not for the noob? I'd really like the sheet profiles. Thanks!

Posted : 25/12/2020 4:01 am
Zoltan
(@zoltan)
Moderator

@shags72

you can flash in your printer, but is recomended for more experienced users, because is a version for testing, not a final one.

even an old man can learn new things 🙂
Standard I3 mk3s, FW 3.10.0 RC2, no closed box, sketchup , fusion 360, PrusaSlicer, Windows 10
PRUSA MINI FW 4.3.1 technical background...
Posted : 25/12/2020 9:58 am
Lupin
(@lupin)
Trusted Member

So far I have not noticed any trouble with the 4.3.0. RC1. The longest job I have run with it took just under 6 hours (All In One 3D Printer test). No problems from the firmware.

Posted : 25/12/2020 7:58 pm
couf
 couf
(@couf)
New Member

Is it possible to use 4.3.0-RC1 without breaking the appendix on Buddy board (without loss of warranty)?

Posted : 26/12/2020 11:48 am
Zoltan
(@zoltan)
Moderator

Sure it is.

even an old man can learn new things 🙂
Standard I3 mk3s, FW 3.10.0 RC2, no closed box, sketchup , fusion 360, PrusaSlicer, Windows 10
PRUSA MINI FW 4.3.1 technical background...
Posted : 26/12/2020 5:16 pm
couf liked
Cece
 Cece
(@cece)
Active Member
Goodmorning everyone.
I am using your relay and must say that I am very happy, the only problem I find is that when I turn on the mini,
I have to do a complete test, as it does not memorize the position of the axes when it is turned off .
Thanks for your attention and sorry for my bad English.

Cece
This post was modified 5 months ago by Cece
Posted : 26/12/2020 7:25 pm
Zoltan
(@zoltan)
Moderator

@cece

you do not need to do a test evrytime.  

Even the printer would remember its last position, when you switch it of, you can just by accident move any of the axes and as the printer is off, there is no way to register this move. So when you start print, the printer must make sure it starts from defined position so  it is executing the homing and further standard is to execute mesh bed leveling, to make sure the sheet is correctly settled.

even an old man can learn new things 🙂
Standard I3 mk3s, FW 3.10.0 RC2, no closed box, sketchup , fusion 360, PrusaSlicer, Windows 10
PRUSA MINI FW 4.3.1 technical background...
Posted : 27/12/2020 4:30 pm
Lupin
(@lupin)
Trusted Member

@cece (@zoltan)

No need to run self test. As Zoltan said, printer MUST ensure its position by homing as it is possible to move any of the axis when the power is off, and in that case printer does not know where it is. Naturally it is possible to build the printer so that there is absolute position reference available all the time. This kind of positional reference would be extremely costly (a magnitude or two more money for to position system than for the printer otherwise). That's why nearly every equipment using positional reference, even the big multimilion CNC-machines, use relative references in some form.

 

Posted : 27/12/2020 6:55 pm
Cece
 Cece
(@cece)
Active Member

@zoltan

Thank you for your answer.
Basically, I turn off the mini, and when I turn it back on, I have to run a complete test, otherwise, despite the fact that the Y axis is in the middle, it sees it as if it were up.
I point out that I turn off the mini and turn it on again without touching any axis.
I noticed that when I turn it back on it also loses the static IP that I had set, and I have to reload it.
Thanks
 
Posted : 27/12/2020 7:17 pm
Lupin
(@lupin)
Trusted Member

@cece

Despite what's the co-ordinate reading on your display, have you tried to run auto-home instead of the self test?

Auto-home is like light weight test in sense that it does just locates the axial positions instead of running all the loops, like parking with different speeds (or smashing x & y to the limits at different speeds from the sounds of it), let alone those heater tests.

I usually just don't care of the readings on the display after I power it up. I just clean the sheet, and print. Mini will auto-home itself at first, then run the auto level, wait for heaters to warm up and print.

Posted : 01/01/2021 8:58 pm
Cece liked
Cece
 Cece
(@cece)
Active Member

@lupin

Thank you very much, I will try to auto-home.
 
Posted : 02/01/2021 9:32 am
Lupin
(@lupin)
Trusted Member

@cece

Please report back how it went. I'm a noobie myself, so any feedback is appreciated.

Posted : 02/01/2021 1:03 pm
JHenley01
(@jhenley01)
Active Member

Are we ever gonna get WiFi on this thing? It's been over a year now.

Posted : 04/01/2021 10:48 am
Cece
 Cece
(@cece)
Active Member

@lupin

 
hi, I tried your advice this morning.
Everything perfect, it took a moment to be ready for printing.
Thank you very much
 
 
This post was modified 4 months ago by Cece
Posted : 04/01/2021 9:31 pm
Lupin liked
Page 1 / 2
Share:

Please Login or Register