Releases: prusa3d/Prusa-Firmware
3.0.11 firmware for Prusa i3 MK2
3.0.11 firmware for Prusa i3 MK2
This is final version of 3.0.11 firmware. This version fixes issues in previous version 3.0.11-RC1. For detailed desription of all features see also: https://github.com/prusa3d/Prusa-Firmware/releases/tag/v3.0.11-RC1
Summary:
- Move Z shortcut
- Improved pause print
- PID calibration menu
- PID values for bed saving
- Receiving commands via serial improved
- Temperature calibration
- Improved xyz calibration
- Encoder clicks and PT100
- Selftest bug fixed
- Heatbed preheat error
- Corrected German language messages
Description of changes with respect to 3.0.11-RC1:
Temperature calibration:
Storing temperature calibration status:
Information that temperature calibration has been successfully run is stored into calibration status,
In previous firmware version, running V2 calibration or xyz calibration after temp. calibration led to overwriting this calibration status. Temperature calibration data were then not applied and user was asked to run temperature calibration again. This is related to issue #95.
Temperature calibration status is now independent and other calibrations do not affect it.
PINDA probe preheat:
With temperature calibration activated, there is two minutes PINDA probe preheat phase at the beginning of the print. This preheat phase was missing when user was not printing from SD card (issue #90) This has been fixed.
Sending temperature information:
During temperature calibration, information about current hotend and heatbed temperatures is now send via serial. This is important when running temp. calibration from Octoprint.
Corrected messages:
Messages in German language have been overally corrected. There have been done also minor changes in Italian language (bed level correction menu).
Stop print improved:
Stopping print right at the end of heatbed/nozzle preheat phase at the beginning of print could led to crashing nozzle into heatbed. This has been fixed.
3.0.11-RC1 firmware for Prusa i3 MK2
3.0.11-RC1 firmware for Prusa i3 MK2
Summary:
- Move Z shortcut
- Improved pause print
- PID calibration menu
- PID values for bed saving
- Receiving commands via serial improved
- Temperature calibration
- Improved xyz calibration
- Encoder clicks and PT100
- Selftest bug fixed
- Heatbed preheat error
Detailed description of changes:
Move Z shortcut:
Move Z axis menu can be now invoked by pressing button for at least one second. When entering move Z axis menu by long press, current menu and current cursor position are saved. After adjusting Z coordinate and confirming with short button press, previously active menu and cursor position are restored.
Improved pause print:
Pause print procedure is now suitable for long pauses. New pause print procedure contains seting nozzle target temperature to zero, moving extruder to pause print position and turning off print fan. When nozzle cools down nozzle fan is also turned off and printer remains silent during pause. Heatbed remains heated during pause print to maintain good attachement between printed object and heatbed.
In pause position heatbed with printed object is moved foward to make printed object accessible.
When print is resumed, previous print settings (fan speed and feemultiply, nozzle target temperature) are restored. Time when the printer is paused is not counted to print time statistics.
For remote control with host software devices, it is possible to pause and resume print with dedicated gcodes:
- M601 - pause print
- M602 - resume print
PID calibration menu:
It is now possible to run extruder PID tuning directly from calibration menu. When running PID tuning from calibration menu, user can set temperature for which PID tuning will be run. For maximum simplicity, number of PID tuning cycles is set to five and is not adjustable. When running PID calibration from menu, results are automatically applied and saved to EEPROM.
PID values for bed saving:
Storing PID values to EEPROM was not implemented in previous firmware versions. This has been fixed and it is possible to run PID calibration and store the results to EEPROM using following gcodes:
- Run PID tuning: M303 E-1 S<temperature> C<cycles>
- Set Kp, Ki, and Kd: M304 P<Kp> I<Ki> D<Kd>
- Store settings to eeprom: M500
Recieving commands via serial improved
During execution of long running gcode, new commands received over serial are buffered. If buffer became full, execution of buffered commands could lead to undesirable behavior. Typical example was running PID calibration with Octoprint which periodicaly sends temperature enquiry. This has been fixed.
Temperature calibration:
PINDA probe detection distance increases with temperature. This leads to need of adjusting live adjust Z values often, expecially when printing with different materials. Main contributor to PINDA temperature shift is heat received from heatbed. New temperature calibration was implemented to decrease this temperature dependency.
To use this new feature it is necessary to run temperature calibration first. This can be done in menu Calibration -> Temp. calibration -> Calibrate. It is also possible to use G76 gcode.
Temperature calibration consist of preheating PINDA probe near the heatbed surface for different heatbed temperatures and measuring how its detection distance changes. Measured detection distance shifts are saved to EEPROM.
When new print is started, PINDA probe is preheated for two minutes near the heatbed again to achieve defined temperature. Then mesh bed leveling is run and Z axis shift counted from temperature calibration data is applied. Then live adjust Z is applied.
User can decide if he will use this new feature. It is possible to turn it on and off in Temp. calibration menu.
Improved xyz calibration:
First part of xyz calibration was slightly modified to avoid aborting calibration process with "consult the manual" message as much as possible. If the error after the first calibration phase (seraching first four points) is too high, another iteration is run. Maximum number of iterations is three. If xyz calibration fails to find first four points accurately enough in three iterations, process is aborted.
Upgrading firmware has no influence on xyz calibration results (no need to recalibrate printer when upgrading to new firmware version).
Encoder clics and PT100 temperature sensor usage:
Encoder steps for the LCD were updated to correspond to encoder physical clicks. Defines and temp table for E3D's PT100 sensor added. For more information see #31
Selftest bug fixed:
In case that nozzle thermistor was not connected properly or returned ivalid data, this error was not detected by selftest and was detected only by thermal runaway or preheat error. This has been fixed.
Heatbed preheat error:
Preheat error for heatbed was implemented. This can detect disconnected/faulty heatbed or heatbed thermistor in preheat phase.
Other changes:
- Fixed message at the beginning on xyz calibration
- Stop print disabled during mesh bed leveling
- Extrusion before unload filament added to reshape end of the filament and simplify filament unload
- Load filament modified to be faster
3.0.10 firmware for Prusa i3 MK2
3.0.10 firmware for Prusa i3 MK2
This is final version of 3.0.10 firmware. This version fixes issues in previous version 3.0.10-RC1. For detailed desription of all features see also https://github.com/prusa3d/Prusa-Firmware/releases/tag/v3.0.10-RC1
Summary:
- Loose pulleys test added
- Statistics fixed
- PID tuning fixed and saving parameters to EEPROM enabled
- Stop print function fixed
- Load filament function improved
- Stack guard added
- Xyz calibration updated
- Factory reset has new menu
- Missing "Move Z" option fixed
- Improved messages in Italian and Spanish languages
- German language added
Description of changes with respect to 3.0.10-RC1:
Loose pulleys test:
Selftest was sometimes indicating that Y pulley is loose even in case that it was not true. This has been fixed. Auto home was added at the end of selftest procedure. This leads to predictable behavior when moving axis after selftest was run.
Statistics fixed:
Total print time were not displayed correctly in some cases and number of hours displayed could be higher than 24. It has been fixed. There is no need to reset statistics data to display total print time correctly.
Languages:
Spanish messages were improved and initial version of German language was added.
Live adjust limitation
Live adjust is now limited to range from -10 mm to 0 mm. This should prevent setting live adjust values to excessive values and decrease heatbed damage probability.
Gcodes checking added
Some invalid gcodes caused undesirable printer behavior (stopping imidiately, invalid serial response). This has been fixed.
3.0.10-RC1 firmware for Prusa i3 MK2
3.0.10-RC1 firmware for Prusa i3 MK2
Summary:
- Loose pulleys test added
- Statistics fixed
- PID tuning fixed and saving parameters to EEPROM enabled
- Stop print function fixed
- Load filament function improved
- Stack guard added
- Xyz calibration updated
- Factory reset has new menu
- Missing "Move Z" option fixed
Detailed description of changes:
Loose pulleys test added:
Selftest now contains detection of loose X and Y motor pulleys. This was one of the main causes of xyz calibration errors.
Statistics fixed:
Total filament used values were wrong in some cases. It was caused by storing negative numbers into unsigned variables which led to underflow and than storing wrong number (aproximately 43 km) into EEPROM. This has been fixed and should not occure in the future, but it is necessary to reset statistics if there is suspicion that data stored in EEPROM are not correct.
PID tuning fixed and saving parameters to EEPROM enabled:
Using M301 and M304 led to unreadable serial output. Now it is fixed and it is possible to run PID tuning and store settings to EEPROM using M500.
Stop print function fixed:
Starting new print right after stoping print could lead to printing with heater or bed target temperature set to zero. Now it is fixed and it not possible to start new print before stop print sequence is finished. Status messages during stop print process has been updated to provide better information about the process.
Stopping print before homing happened and axis positions were known could led into crashing. It has been fixed and stop print sequence now contains no movements in X or Y direction unless axis positions are known.
Load filament function improved:
Load filament function was extended. In the end of loading process, user is asked if color is clear. If extruded material color is still mixed with previous filament color, it is now possible to choose "no" to easily extrude more filament.
Status messages have been updated to provide better information about the loading process.
It is now possible to use M701 for filament loading.
Stack guard added:
This feature detects if static variables are being overwritten by stack. It should prevent unpredictable behavior and improve overall reliability.
XYZ calibration updated:
- There is new automatic heater and bed cooling at the beginning of xyz calibration. User is also remainded by new message that he should control nozzle to bed distance during first calibration steps. This should minimize risk of heatbed damage.
- Bed level correction is reset at the beginning of xyz calibration
- Improved some of the final messages in xyz calibration
Factory reset menu:
New factory reset menu is accesible by holding the knob after reset. In this menu are currently four items:
- Language: resets language to english (default)
- Statistics: resets total print time and total filament used
- Shiping prep: resets Z calibration flag, prepare printer for shipping
- All data: Erases EEPROM
Factory reset menu will be extended by additional service menu functions in next releases.
Missing "Move Z" option fixed
Move Z option was missing when print was stopped. It has been fixed and moving Z axis is now treated the same way as moving X and Y axis.
Other improvements:
- Reset xyz calibration resets live adjust also
- Live adjust is not allowed during homing
- Some menu items were hidden when print is paused. It has been fixed.
- When print was paused and then stopped, some menu items remained hidden because of paused print flag remained set. It has been fixed.
- Messages in Italian language corrected
- M702 is used to unload filament
- Unloading filament status message added
3.0.8 firmware for Prusa i3 MK2
3.0.8 firmware for Prusa i3 MK2
Summary:
This version improves some inconveniences of the XYZ/Z calibration and improves the print quality.
- More descriptive user messages during the XYZ/Z calibration, some of the messages are now multi screen.
- XYZ/Z calibration does not time out.
- Bugfix of the XYZ/Z calibration: Feedrate multiplier will be maintained over the duration of the XYZ/Z calibration.
- The live adjust height will now be reset to zero after the XYZ calibration.
- Smoother prints of complex objects at higher print speeds.
- Smoother prints of diagonal lines.
Detailed description of changes:
More descriptive messages on the XYZ/Z calibration:
- Support multi screen messages in the XYZ/Z calibration - "move the Z carriages up" step.
- Support up to three lines in the XYZ/Z calibration messages.
- Added a new message "Measuring reference height of calibration point xx of 9".
- Changed the "move the Z carriages up" message to suggest rotating the knob.
- Changed the "live adjust not set" message to reference the manual chapter and section.
Smoother prints of complex objects at high print speeds:
The path planner in the firmware consumes a considerable amount of computing resources. Each time a new movement is added to the planner queue, the complete planner queue of length 15 is recalculated. If a complex object is printed, the firmware cannot keep up and the printer starts to stutter: As the print queue dries up, the printer slows down. Then the planner queue fills, the printer accelerates and the cycle repeats. We rewrote some of the time critical parts of the planner from floating point to fixed point arithmetic to reduce the path planner stutter with complex objects at high print speeds.
Smoother prints of diagonal lines.
The Marlin firmware uses a Bresenham line discretization algorithm, where the fastest axis dictates the discretization rate of the slower axes. This technique introduces a jitter in the discretization of the slower axes, which manifests itself with high frequency ringing on diagonal lines. We improved the accuracy of diagonal moves by oversampling the Bresenham line discretization up to 8x. The oversampling rate is limited by the CPU speed.
Other changes:
Removed debugging serial line output on Z calibration from the release build.
Removed the non-working pressure advance feature from the firmware code base.
Multi-screen messages are now displayed with a "next page" indicator.
MK2 firmware 3.0.6
Final version of 3.0.6 firmware for Prusa i3 MK2
Summary:
- Menu has been reorganized
- Internal improvements of the menu system
- Fixed a stack overflow
- Improvements of the Live Adjust function (please rerun the First layer calibration)
- Fixed the "Stop Print" function
- Enabled a high power mode when first booted up on a brand new RAMBo board
- Updated Spanish, Italian and Polish texts
- Toshiba FlashAir SD card support is now switchable
- "Calibrating nth point" message is shown during mesh bed levelling
- New feature: Bed leveling adjustment
- Improvements to fo fire safety
- Improved unload filament function
- Z-MIN set back to 0.15mm
Detailed description of changes:
Menu has been reorganized:
- The old Settings menu has been split to Settings and Calibration menus, where the Settings menu references the often used actions, while the Configuration menu references the rarely used actions.
- "Calibrate Z" was redefined to let the user move the X axis up to the Z end stoppers and to re-calibrate the 9 bed point reference values after the printer has been shipped or re-seated.
- New "Mesh Bed Leveling" menu item was added to the Calibration menu, doing what the "Calibrate Z" was doing before.
Internal improvements of the menu system:
- Use a shared menuData union for multiple menu screens to reduce memory allocation,
therefore reducing the risk of a stack overflow leading to crashes or an unexpected behavior.
Fixed a stack overflow:
- Fixed a stack overflow leading to an unexpected behavior or a crash when moving a machine axis from the menu multiple times. This was a bug inherited from the original Marlin firmware.
Improvements of the Live Adjust function:
- Stepper driver timing was fixed in the baby step function. The original author of the Marlin firmware used a lengthy purposeless calculation to introduce a delay, but this sequence was recognized by the compiler as having no effect, therefore removed, leading to too short pulses, possibly having the effect of skipped steps in the Z axis during the Live Adjust.
- Loading / reverting the Live Adjust offset after the 9 point bed leveling has been reworked to use the normal move planner instead of the questionable baby stepping routine.
- Bugfix of the Live Adjust menu: Show the correct value instead of zero when the Live Adjust menu is entered.
Fixed the "Stop Print" function:
- Now the printer will maintain a valid coordinate system during the print stop, so it will not crash into the end stops when moving the print head to a rest position.
Enabled a high power mode when first booted up on a brand new RAMBo board.
- Newly manufactured printers will be configured to a power mode by default.
Updated Spanish, Italian and Polish texts.
- The langtool.pl was extended to understand annotations on the maximum text length and the maximum number of lines of mutli-line texts, which ensures, that the translated texts will be displayed completely.
- The annotations were added to the English texts.
- The threshold for hiding the Live Adjust menu was increased from 0.5mm to 2mm above the bed.
Toshiba FlashAir SD card support has been made switchable:
- It is off by default. We had some feedback indicating, that some rare SD cards do not work properly with the FlashAir support.
- The "Toshiba FlashAir" status display was improved to not force IP address query on each display refresh when in the "Support" menu and to update status of the Toshiba FlashAir on SD card insert / removal.
"Calibrating nth point" message is shown during mesh bed levelling:
- Message will now be shown on the display even if initiated from a SD card G-code.
- The Z height will not be displayed on the status screen during the 9 point calibration, as this number is confusing, because it changes rapidly and it does not reflect the final Z height measured.
Bed leveling adjustment:
- Adjustability at the left / right / front / rear side to fine tune the 1st layer squish.
- The bed adjustment feature is accessible from the Calibration menu and as new L R F B codes of the G80 G-code.
- The values are entered in micrometers, the maximum allowed correction is +-50 microns. In most cases this feature is not needed at all, but in rare cases when this feature is useful, we found that a correction in the order of 30 microns is enough to make the squish even.
Improvements to fo fire safety:
- Original Marlin FW and previous Prusa3D firmwares just stopped when printer detected risky behaviour. Now it stops the print, spins up both fans at 100% power and starts beeping. Both fans can keep hotend at safe temperatures even if the hotend mosfet would malfunction and was on 100% of the time.
Improved unload filament function:
- Should keep less filament in the hotend and prevent some cases of jamming when loading new filament.
Z-MIN set back to 0.15mm. RC2 had an error.
- Properly set minimum Z cords to match the V2 calibration.
MK2 firmware 3.0.7
3.0.7 firmware for Prusa i3 MK2
Summary:
- Typos fixed
- First start flow reorganised
- Z_MIN problem fixed
- Calibration routine made safer
- Stop print routine improved
Detailed description of changes:
Typos fixed:
- We found typo in XYZ calibration output in English and Italian language which led to users confusion.
- In English language when printer had X and Y axis severally skewed, the LCD showed that X/Z axes are skewed which was wrong.
- In Italian language the problem was the same, except it showed XYZ axis skewed which is incorrect too.
First start flow reorganised:
- In previous build the user had to read Czech message that the printer is not calibrated yet and then was forced to select language. Now it's language selection first.
Z_MIN problem fixed:
- We received multiple notes that after printer homes, the Z cords were still set to 0.2 mm, which was true, but the printer was able to move lower as it supposed to.
- Now the printer homes to Z_MIN -> 0.15 mm.
- YOU WILL NEED TO RECALIBRATE YOUR PRINTER.
Calibration routine made safer:
- When the printer does mesh bed leveling process, it'll raise the Z axis before returning home from probing last point to avoid danger situations.
Stop print routine improved:
- When the user forced the printer to stop by selecting "Stop print", there was possibility that the printer lost it's calibration if the user won't reset the printer.
- Now the printer stays calibrated at all times.