Assets 13

Summary:

  • Multimaterial - version 2 (MMU2) support
  • Filament sensor engine 2.0
  • Improved power panic
  • Adjustable beeper notifications
  • Feedrate and acceleration limits improved for the MK3
  • PINDA state shown in menu (MK3)
  • Time remaining fix

Detailed description of changes (compared to 3.4.0-RC2):

Multi Material unload improved:

Filament unload now contains ramming sequence. This ensures that tip of unloaded filament has no significant "strings" and thus overal reliability of printer in multimaterial mode is improved (stringing during unload could sometimes cause false FINDa triggering or jamming).

Time remaining fix:

Fixed issues #1103 and #1120.
In case that printer shows estimated time remaining (it must be supported in gcode file) and user changes speed factor during print, estimated time became inaccurate. In this case, there is "?" character shown on status screen to inform user that estimated remaining time is accurate only for case that speed factor is not changed.

Menus fix:

In previous firmware versions (3.4.0-RC1 and 3.4.0-RC2) there was bug which caused undesired printer behaviour (clear screen at the beginning of PID calibration, fullscreen messages was sometimes returning to main menu instead of going to status screen etc.). This has been fixed.

New messages translated:

New messages was translated to supported languages. This affects especially users who will use priner together with MMU2 (multi material unit v2).

@PavelSindler PavelSindler released this Aug 30, 2018 · 66 commits to MK3 since this release

Assets 8

Summary:

  • Multimaterial - version 2 (MMU2) support
  • Stealth mode loudness reduced (MK3)
  • Fixed bugs from RC1
  • PINDA state shown in menu (MK3)

Detailed description of changes:

Multimaterial - version 2 (MMU2) support:

This firmware version (both MK3 and MK2.5) is initial version with Multimaterial v2 support. Firmware detects automaticly if mmu2 unit is connected. More information about multimaterial features will be added later. Multimaterial specific messages are just in English now. Translation of all messages will be finished in final release.

Stealth mode loudness reduced:

In previous firmware version (3.4.0-RC1), stealth mode speed was increased which led to significantly increased loudness. In current firmware version stealth mode max. feedrate limit has been reduced to 100mm/s, which leads to reduced loudness and preserves reduced print time compared to older firmware versions (3.3.1 and older).

Fixed bugs from RC1:

  • Flow factor setting fixed

  • Bed level correction menu fixed (issue #1083)

  • Wizard fix: Before first layer calibration, user is asked if there is PLA filament loaded. If not, printer turn on nozzle heater and when target temperature is reached, user is asked to load filament. In this scenario, there was bug which caused that load filament sequence could be activated more then once. This led to undesirable extruder movements (too much material extruded). This bug has been fixed.

  • Linearity correction menu readded (MK3)

  • M600 fixes: There was bug which caused reseting during filament change when printing over USB (issue #1046) and also some extra material was extruded at the end of filament change procedure which formed little blob on printed object. These two bugs have been fixed.

  • Speed factor fix (issue #1047)

@XPila XPila released this Aug 14, 2018 · 188 commits to MK3 since this release

Assets 8

Summary:

MK3 and MK2.5:

  • Filament sensor engine 2.0
  • Improved power panic
  • Adjustable beeper notifications
  • G-code M84 reenabled
  • Feedrate and acceleration limits fixed for the MK3

Detailed description of changes:

Filament sensor engine 2.0:

This release brings a major update to the filament sensor. Part of the software responsible for the analysis of the filament movement was rewritten to increase the precision and reliability of the sensor. With the new firmware, the filament runout should be always detected in time and the number of false detections drops significantly. Previously MK3 and MK2.5 shared similar values for the evaluation and it was sometimes causing issues on the MK2.5, this is now fixed.

Engine 2.0 brings also a new feature for the filament evaluation. During the filament load sequence, the filament is scanned using the IR sensor and evaluated. As soon as the filament is loaded to the extruder the printer knows, whether it can reliably control the filament flow during the print or not. In case the sensor can't read the filament movement properly, the user is informed on the printer's screen with an option to turn off the sensor.

Poor filament detection

Filament sensor precision is greatly influenced by the cleanliness of the sensor itself. The easiest way is to use a compressed air. There is a dedicated hole in the x-carriage exactly for this purpose. See the picture below to compare the clean and dirty sensor.

clean VS dirty sensor

Improved power panic:

During the power outage, MK3 saves the last position of the extruder and as soon as the power is restored, the printer reads the data and continues. In case there are more consecutive power outages, the restore sequence is interrupted and this can sometimes lead to a print failure. A similar failure of the print might occur after a very short power outage (<50 ms). New firmware release fixes both scenarios.

Adjustable beeper notifications:

Starting firmware 3.4.0 there are 4 levels of the acoustic signalization - Loud, Once, Silent and Mute. The user is able to choose between each level in the printer's menu -> Settings –> Sound. You can also change the sound settings during the print in the menu -> Tune.

Level description:
Loud - printer uses acoustic signalization for 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
Mute - printer stays muted regardless of the importance of the error

Beeper level

G-code M42 reenabled:

Due to the insufficient space in the printer's memory, the G-code M42 was previously removed from the firmware. The entire code of the firmware is now optimized and M42 returned back. You can use it to trigger or read from the pins on the board (e.g. trigger time-lapses on your camera).

Feed-rate and acceleration limits fixed for the MK3:

Until now the feedrate and acceleration values were compared to the hardcoded limits of the printer during the entire print at every movement, which caused high CPU load. New implementation checks for G-codes M201 and M203 only at the beginning of the print. If the input values are smaller than hardcoded values, no action is triggered. In case the values from G-code are bigger, the firmware replaces them with hardcoded ones.

Current limits for the MK3 in the firmware:

Stealth mode:
feed-rate 172 mm/s
acceleration 960 mm/s^2

Normal mode:
feed-rate 200 mm/s
acceleration 2500 mm/s^2

@PavelSindler PavelSindler released this Jul 16, 2018 · 490 commits to MK3 since this release

Assets 13

Summary:

MK3 and MK2.5:

  • Filament statistics fix
  • G28 fix
  • Load filament improvement
  • Setup function fix

Detailed description of changes:

Filament statistics fix:

Fixes issue #901.

G28 fix:

There was missing OK after G28 (auto home) gcode execution (issue #924) which could cause communication timeouts and also undesired mesh bed leveling was run in the end of temperature calibration. Both was caused by bug in G28 gcode. It has been fixed.

Load filament improvement:

Load filament sequence now contains movement in Z axis if current Z coordinate is lower then 20mm when loading filament starts. This will ensure that there is always enough space for cleaning the nozzle.

Setup function fix:

  • Splash screen fix
  • Factory reset -> Shipping prep. enables filament sensor

@XPila XPila released this Jul 2, 2018 · 505 commits to MK3 since this release

Assets 13

Summary:

MK3:

  • recurring crash detection limit
  • crash detection and filament runout detection improvements and bugfixes (focused on Octoprint and USB printing)
  • fixed erroneous movements during stop print
  • supports multiple languages
  • M86 gcode for safety timer
  • temperature calibration improvements
  • power panic fix
  • supports remaining time estimation provided from Slicer (support in the future versions of Slicer)

MK2.5:

  • Filament runout detection fixes and improvements (focused on Octoprint and USB printing)
  • fixed erroneous movements during stop print
  • different language variants
  • M86 gcode for safety timer
  • temperature calibration improvements
  • supports remaining time estimation provided from Slicer (support in the future versions of Slicer)

Detailed description of changes:

Crash detection and filament runout detection fixes and improvements:

Recurring crash detection limit:

Crash detection procedure has been extended. If three crash detection occurs in short time frame (less then 45 seconds between two following crash detections) print is paused and user is asked if he wants to resume print or stop print. This should overcome problems when printer is stucked in loop trying to automaticly resume printing (related to issue #815).

USB printing:

Crash detection and filament runout detection was inaccurate when printing over USB. Some gcode lines were skipped when resuming from crash detection/filament runout detection which caused discontinuity in printed object. This has been fixed in current firmware version and tested with Octoprint. For correct behaviour, lines sended over USB must be stamped with line number. Printer sends resend request with line number when resuming USB print after crash detection/filament runout detection.

During filament runout detection with Octoprint connected communiacation timeouts occured in some cases. This was caused by missing "busy: processing" messages. It has been fixed in curent firmware version (PR #831 ).

Crash detection/filament runout detection always set flag that it was previously printing from SD card even in case that crash detection/filament runout detection occured during USB printing. This led to undesired printer behaviour such as printer status line malfunction (issue #843) It has been fixed in current firmware version.

M27 - get SD status fix:

When M27 gcode is received and file from SD card is currently printed, printer sends information about filesize and byte which is currently printed. This usually serves for showing print progress. If there is no active SD card print, printer sends "Not SD printing" to host. When printing from SD card printer was returning "Not SD printing" during crash detection and filament runout detection which was undesired. For example when Octoprint sended M27 request during crash detection it received "Not SD printing" and reacted with turning off nozzle and heatbed heating.

Erroneous movements fixed:

This is related to issue #823 and could occur during crash detection/filament runout detection/stop print when printing objects with long linear segments. This has been fixed in PR #860.

Other improvements:

  • Crash detection retraction fix and Z axis movements improved
  • Crash detection fix for absolute Extruder coordinates
  • Safety timer not active during filament runout procedure

Different language versions:

There are new language variants added to MK3 firmware. Firmware currently supports these languages:

  • English
  • Czech
  • German
  • Spanish
  • Italian
  • Polish

It is necessary to use new Slic3r Prusa Edition 1.40.1-beta version or higher to flash firmware with all language variants into MK3. If you use standard firmware updater, there will be just English language present.

MK2.5 is currently just bilingual (English + secondary language) and there are different hex files for different languages and there is no need to use Slic3r for flashing MK2.5 firmware.

M86 gcode for safety timer:

Safety timer is feature which turns off nozzle and bed heaters in case that nozzle or heatbed target temperature is set to non-zero value and printer is idle for more than 30 minutes. We have added gcode which serves for setting safety timer period (in seconds) and it can also disable this feature by setting safety timer period to zero. Main reason for implementing this gcode was possibility to disable safety timer when pausing USB printing (by sending M86 S0) and then enable it again (M86 S1800) when resuming print (when USB print is paused, printer is actually in idle state, but heatbed should stay hot).

Temperature calibration improvements:

  • crash detection is always used (normal mode is forced) during temperature calibration Z movements, auto home and mesh bed leveling
  • all XY movements are always performed in safe distance from heatbed
  • Z axis homing improved
  • If XYZ calibration has not been run yet, temperature calibration is terminated and user is asked to run XYZ calibration first (because accurate position of calibration point for homing Z axis without steel sheet has to be known).

Power panic fix:

There was bug in storing/recovering short filenames during power panic. This caused that in some cases print was not resumed. It has been fixed.

Remaining time estimation support:

Current firmware version is ready to display remaining time estimation and accurate progress on printer status screen. Information about remaining time and progress will be accuratelly counted by Slic3r and inserted into gcode file. Gcode M73 is used for this. Using: M73 Pxxx Qxxx Rxxx Sxxx. P is percentage done for normal mode, R: time remaining for normal mode in minutes, Q: percentage done for stealth mode, S: time remaining for stealth mode. Current Slic3r version doesn't support it yet. In case that there are no M73 gcodes in file, printer behave as in previous release versions, i.e. showing time from print start. More information about this feature will be added after Slic3r release.

Status screen was slightly modified because of this feature. Symbol "SD" is now shown on printer status screen only during active SD print (i.e. not in idle state) together with progress in percentage. When printing over USB, there is "USB" symbol shown together with progress in percentage.

Others:

  • M860 communication timeouts fixed
  • MK2.5 with Rambo 1.0 - filament sensor function fixed

@PavelSindler PavelSindler released this Jun 27, 2018 · 507 commits to MK3 since this release

Assets 13

Summary:

MK3:

  • recurring crash detection limit
  • crash detection and filament runout detection improvements and bugfixes (focused on Octoprint and USB printing)
  • fixed erroneous movements during stop print
  • supports multiple languages
  • M86 gcode for safety timer
  • temperature calibration improvements
  • power panic fix
  • supports remaining time estimation

MK2.5:

  • Filament runout detection fixes and improvements (focused on Octoprint and USB printing)
  • fixed erroneous movements during stop print
  • different language variants
  • M86 gcode for safety timer
  • temperature calibration improvements
  • supports remaining time estimation

Detailed description of changes:

Crash detection and filament runout detection fixes and improvements:

Recurring crash detection limit:

Crash detection procedure has been extended. If three crash detection occurs in short time frame (less then 45 seconds between two following crash detections) print is paused and user is asked if he wants to resume print or stop print. This should overcome problems when printer is stucked in loop trying to automaticly resume printing (related to issue #815).

USB printing:

Crash detection and filament runout detection was inaccurate when printing over USB. Some gcode lines were skipped when resuming from crash detection/filament runout detection which caused discontinuity in printed object. This has been fixed in current firmware version and tested with Octoprint. For correct behaviour, lines sended over USB must be stamped with line number. Printer sends resend request with line number when resuming USB print after crash detection/filament runout detection.

During filament runout detection with Octoprint connected communiacation timeouts occured in some cases. This was caused by missing "busy: processing" messages. It has been fixed in curent firmware version (PR #831 ).

Crash detection/filament runout detection always set flag that it was previously printing from SD card even in case that crash detection/filament runout detection occured during USB printing. This led to undesired printer behaviour such as printer status line malfunction (issue #843) It has been fixed in current firmware version.

M27 - get SD status fix:

When M27 gcode is received and file from SD card is currently printed, printer sends information about filesize and byte which is currently printed. This usually serves for showing print progress. If there is no active SD card print, printer sends "Not SD printing" to host. When printing from SD card printer was returning "Not SD printing" during crash detection and filament runout detection which was undesired. For example when Octoprint sended M27 request during crash detection it received "Not SD printing" and reacted with turning off nozzle and heatbed heating.

Erroneous movements fixed:

This is related to issue #823 and could occur during crash detection/filament runout detection/stop print when printing objects with long linear segments. This has been fixed in PR #860.

Other improvements:

  • Crash detection retraction fix and Z axis movements improved
  • Crash detection fix for absolute Extruder coordinates
  • Safety timer not active during filament runout procedure

Different language versions:

There are new language variants added to MK3 firmware. Firmware currently supports these languages:

  • English
  • Czech
  • German
  • Spanish
  • Italian
  • Polish

It is necessary to use new Slic3r Prusa Edition 1.40.1-beta version or higher to flash firmware with all language variants into MK3. If you use standard firmware updater, there will be just English language present.

MK2.5 is currently just bilingual (English + secondary language) and there are different hex files for different languages and there is no need to use Slic3r for flashing MK2.5 firmware.

M86 gcode for safety timer:

Safety timer is feature which turns off nozzle and bed heaters in case that nozzle or heatbed target temperature is set to non-zero value and printer is idle for more than 30 minutes. We have added gcode which serves for setting safety timer period (in seconds) and it can also disable this feature by setting safety timer period to zero. Main reason for implementing this gcode was possibility to disable safety timer when pausing USB printing (by sending M86 S0) and then enable it again (M86 S1800) when resuming print (when USB print is paused, printer is actually in idle state, but heatbed should stay hot).

Temperature calibration improvements:

  • crash detection is always used (normal mode is forced) during temperature calibration Z movements, auto home and mesh bed leveling
  • all XY movements are always performed in safe distance from heatbed
  • Z axis homing improved
  • If XYZ calibration has not been run yet, temperature calibration is terminated and user is asked to run XYZ calibration first (because accurate position of calibration point for homing Z axis without steel sheet has to be known).

Power panic fix:

There was bug in storing/recovering short filenames during power panic. This caused that in some cases print was not resumed. It has been fixed.

Remaining time estimation support:

Current firmware version is ready to display remaining time estimation and accurate progress on printer status screen. Information about remaining time and progress will be accuratelly counted by Slic3r and inserted into gcode file. Gcode M73 is used for this. Using: M73 Pxxx Qxxx Rxxx Sxxx. P is percentage done for normal mode, R: time remaining for normal mode in minutes, Q: percentage done for stealth mode, S: time remaining for stealth mode. Current Slic3r version doesn't support it yet. In case that there are no M73 gcodes in file, printer behave as in previous release versions, i.e. showing time from print start. More information about this feature will be added after Slic3r release.

Status screen was slightly modified because of this feature. Symbol "SD" is now shown on printer status screen only during active SD print (i.e. not in idle state) together with progress in percentage. When printing over USB, there is "USB" symbol shown together with progress in percentage.

Others:

  • M860 communication timeouts fixed
  • MK2.5 with Rambo 1.0 - filament sensor function fixed

@XPila XPila released this May 28, 2018 · 759 commits to MK3 since this release

Assets 5

Fixed wizard:

In 3.2.0 firmware, there was bug in wizard. Last step in wizard is first layer calibration which means that test object is printed and user adjust live adjust Z to achieve perfect first layer. When first layer calibration is finished, wizard asks user if he wants to repeat first layer calibration. In case that user choosed to repeat first layer calibration, first layer calibration started, live adjust Z showed in menu keeped value set during previous calibration run, but it was not applied. Thus live adjust Z value was wrong. More information about this issue can be found here: #732 .
This issue could result in nozzle damaging steel sheet surface. Current 3.2.1 firmware fixes this issue.

Improved xyz cal. details:

Xyz cal. details menu now contains information about zero point offset.

@PavelSindler PavelSindler released this May 9, 2018 · 780 commits to MK3 since this release

Assets 5

Summary:

MK3:

  • linear advance
  • new xyz calibration
  • filament sensor function improved
  • safety timer
  • gcodes for setting temperature correction
  • extruder linearity correction
  • stealth mode for Z axis
  • Z calibration / mesh bed leveling: stall guard
  • temperature calibration improved

MK2.5:

  • linear advance
  • filament sensor function improved
  • safety timer
  • gcodes for setting temperature correction
  • Rambo 1.0 support
  • temperature calibration improved

Description of changes with respect to 3.2.0-RC2 :

Move axis in stealth mode fixed (MK3 only):

Print fan synchronization (MK3 only):

Z stall guard sensitivity decreased (MK3 only):

We had added stall guard (crash detection) for Z axis to our calibrations recently (3.2.0-RC2). It is active in case that printer measures Z coordinate where PINDA probe triggers. If the nozzle touches the heatbed before PINDA triggers, calibration process is terminated and user is asked to check if nozzle is clean.
In previous firmware version, stall guard sensitivity was too high and calibrations were falsely failing on some printers. This affected xyz calibration, Z calibration, mesh bed leveling and temperature calibration.
In current firmware version, sensitivity was decreased. This fixes issue #690 .

Extruder current value changed (MK3 only):

Extruder current was slightly modified. It is trade off between too high current which cause high stepper temperature which results in deformation of some filaments and too low current which means that extruder stepper may skip some steps.

Safety timer inactive during paused print:

We had added safety timer in 3.2.0-RC1. This feature turns off nozzle and bed heaters in case that printer is idle for more than 30 minutes. Safety timer was active also in pause print, which was undesirable because heatbed should stay hot during pause print. Safety timer is now inactive during pause print.

Others:

Initial instructions for manual temperature calibration and extruder linearity correction have been added to Prusa Firmware github wiki.

@PavelSindler PavelSindler released this Apr 27, 2018 · 801 commits to MK3 since this release

Assets 5

Description of changes with respect to 3.2.0-RC1:

XYZ calibration:

New XYZ calibration was failing to find calibration points correctly on some printers. In current firmware version calibraiton process was slightly modified to improve reliability.

Printing area and calibration points corrections:

Calibration points coordinates and printing area were corrected for both MK3 and MK2.5 printer. This ensures correct homing without steel sheet. It also ensures that printing area is not shifted nor cropped (fixes issues #653, #628).

EEPROM address conflict fix:

In previous firmware version, there was bug which origins in merging MK2.5 and MK3 branches and leads to conflict between accurate rehoming function (used for MK3 crash detection) and storing printer and motherboard type to EEPROM (issue #627). This has been fixed in current firmware version, however for correct function of accurate sensorless rehoming, users who has been running 3.2.0-RC1 firmware on MK3 printer needs to re-run selftest. This happens automaticaly after flashing new firmware.

Temperature calibration updates:

Automatic temperature calibration didn't store correct values in some cases. When starting temperature calibration with PINDA preheated to high temperature, some steps were skipped and zeros were stored to memory. To prevent this scenario, there has been added PINDA temperature check at the beginning of calibration process. If PINDA temperature is too high, printer moves printing head to certain position, turns off heaters and waits for PINDA to cool down. Another scenario where automatic temperature calibration could store wrong values to memory was when it was started with steel sheet on. To prevent this failure, additional Z axis homing has been added. This fixes issue #630.

Most of PINDA probes trigger higher with rising temperature. How there are PINDA probes with opposite temperature dependency. Thus gcode M861 has been modified to work correctly with signed values.

MK3 stepper currents corrected:

Extruder stepper current has been lowered to reduce stepper temperature. Z steppers currents have been enlarged for improved stability and reliability.

Z calibration / mesh bed leveling: stall guard (MK3 only):

Stall guard for Z axis is active during Z calibration and mesh bed leveling. In case that nozzle crashes to bed prior PINDA probe triggers, calibration process is interrupted and user is aked to check if there is debris on nozzle.

Safety timer:

Safety timer has been prolonged to 30 minutes. If safety timer turns off heaters, informative fullscreen message appears.

MK3 Selftest:

"Calibrating home" Z coordinate changed to avoid possible heatbed damage by nozzle

Others:

  • Initial MK2.5 fimrware for Rambo1.0
  • Menu updates
  • M115 update
  • M27 fix

@PavelSindler PavelSindler released this Apr 13, 2018 · 874 commits to MK3 since this release

Assets 4

We have merged MK2, MK2.5 and MK3 into one branch to be able to continue developing features for all printer versions more easily. This release is currently just for MK2.5 and MK3 printers.

Summary:

MK3:

  • linear advance
  • new xyz calibration
  • filament sensor function improved
  • safety timer
  • gcodes for setting temperature correction
  • extruder linearity correction
  • stealth mode for Z axis

MK2.5:

  • linear advance
  • filament sensor function improved
  • safety timer
  • gcodes for setting temperature correction

Detailed description of changes:

Linear advance:

In initial MK3 firmware versions (prior 3.1.1-RC5), there were stepper routine timing issues which led to communication errors on serial line and random motor kicks. This forced us to temporatily disable linear advance feature at that time.
Stepper routine has been reworked since then. Computational load is now more balanced and we have re-added improved linear advance feature in this firmware version.
More information about these changes are in PR #457 . For more information about Linear Advance please click here.

New XYZ calibration (MK3):

We have recently created new XYZ calibration and released it with latest MK2.5 firmware 3.1.4. Now we have added it also to MK3 firmwave. In this new calibration, measurement point searching algorithm is improved. Surface around points is scaned to create "images" and each measuring point is then located using pattern-matching. This can efficiently supress "false targets" caused by heating meander near measurement point. XYZ Calibration is now more reliable and also faster (~7mins).

Filament sensor function improved

In case that filament sensor is not communicating (i.e. damaged cable) it is automaticly disabled to overcome false "change filament procedure" triggers. On previous firmware version, filament sensor was sometimes disabled automaticaly even in case that is was working properly. We have improved our code to overcome this issue.

Safety timer:

To improve safety we have implemented timer which sets nozzle and heatbed target temperatures to zero in case that printer is in idle state for more than 15 minutes.

Gcodes for setting temperature correction:

Current temperature calibration doesn't work correctly with some printers. We are working on new temperature calibration version but it is not ready yet. To help people who have problems with temperature-independent first layer setting, we have merged support for two gcodes which may serve for modifying temperature calibration table manually:

M860 - Wait for PINDA thermistor to reach target temperature.
M861 - Set / Read PINDA temperature compensation offsets

Thank you @stahlfabrik for code you provided and for your observations.

Others:

  • Stealth mode for Z axis (MK3)