3.1.1-HP firmware for Prusa i3 MK3 + Hyperfine Bed Leveling + PINDA-Fix
3.1.1 firmware for Prusa i3 MK3 + Hyperfine Bed Leveling + PINDA-Fix
Disclaimer: This is a modified firmware based on Prusa firmware MK3 v3.1.1 release. We are not responsible for any damage/issue this modification may cause . It is the users choice which firmware she/he installs.
UPDATE 05. February 2018
Prusa changed the official 3.1.1 release on the 05. February 2018 from build 197 to 201. This includes the pull request prusa3d#462
Due to the official release change, I decided also to update this release.
Notice that you may need to redo specific changes which has been written to YOUR EEPROM with M500 gcode, like PID tuning, E-steps, etc.
Before you update to this firmware make a copy of your EEPROM settings using gcode M503 and compare it to the results after updating
End of UPDATE
Summary:
- Filament sensor reliability improvements
- Print reliability improved
- More detailed fail stats
- Fan error pauses print
- Long pause/print fan error improved
- Hyperfine Bed Leveling (mod by @jeffjordan and PJR, implemented by @3d-gussner)
- PINDA2 Calibration Tuning Fix (by @TheZeroBeast)
Release notes for previous firmware version can be found here:
https://github.com/prusa3d/Prusa-Firmware/releases/tag/v3.1.1-RC5
Summary of previous releases can be found here:
https://www.prusa3d.com/drivers/
Detailed description of changes:
Filament sensor reliability improvements
Filament sensor function was optimized, which leads to lower number of false detections.
Print reliability improved
Extruder resolution has been changed to 32 microsteps and stepper routine timing has been optimized.
This ensures that stepper movements are fluent even with high feedrates and printing over serial is reliable. Lower microstep resolution has no negative effect on print quality.
Linear advance feature is still disabled in current firmware version.
Users who saved parameters on previous firmware versions to EEPROM using M500 or by running PID calibration are informed on printer startup that default setting were loaded. This ensures that correct microstep resolution and extruder steps/mm will be used. If "default settings were loaded" message occurs on printer starup, it is recommended to re-run PID calibration or redo custom changes which were stored by M500 on previous firmware versions.
More detailed fail stats
In previous firmware versions, there was just one fail stats menu which contained statistics about power failures, filament runouts and detected crashes. We have split these statistics into "Last print" and "Total" menus.
We have also split detected crashes and now we have separate statistics for X and Y axis.
Fan error pauses print
If fan error occures when printing over serial line using Octoprint, print is paused using action commands (http://docs.octoprint.org/en/master/features/action_commands.html). This should be helpful in cases that fan is blocked by some obstacle and user can remove the obstacle and continue printing. In previous firmware versions connection between printer and Octoprint were lost during fan error and it was not possible to continue printing.
Long pause/print fan error improved
If long pause or print fan error occured during rehoming (for example during crash detection), there was wrong Z coordinate used when resuming paused print (or SD card print paused by fan error). This has been fixed and in current firmware version pause print is postponed until rehoming is finished.
Other
- Menu options aligned with encoder clicks/positions
- Invalid unknown gcodes reported on serial
- Preheat temperatures updated
- Added temperature calibration warnings which inform user about all necessary conditions
- Firmware version check fix
- M600 unload current lowered to avoid damage of filament sensor
Hyperfine Bed Tuning
All the credit for the Hyperfine bed tuning goes to @Jeff-Jordan or JeffJordan and PJR who are incredible active, innovative, helpful and nice persons and can be found quite often in the Prusa forums !!! Also a big THANKS to @robrps who ported this idea to github!
- If you have any issues/problems with my modifications please let me know via the issues section.
- If you have questions or problems with Hyperfine bed tuning please use the Prusa Forum Topic Hyperfine bed leveling?
The Hyperfine Bed leveling/correction is an advanced 'Bed level correct' version of the original Prusa code, which allows to manually adjust Left/Right/Front/Rear bed heights. Next to the default Left/Right/Front/Rear it now allows to adjust the four corner points FrontLeft/FrontRight/RearRight/RearLeft.
Best explanation can be found here by JeffJordan https://shop.prusa3d.com/forum/prusa-i3-kit-building-calibrating-first-print-main-f6/hyperfine-bed-leveling--t4330-s110.html#p41311
If you use different material here my Hyperfine_Calibration.STL files.
To slice them them correctly in Slic3rPE you need:
- Add... 'center_HyperCal.stl'
- Double click on HyperCal.stl
- Load part... and choose all other stl files from a_HyperCal.stl to h_HyperCal.stl or just one for the corner you need.
You also can slice these with PrusaControl: - Go to 'File' and 'Import multipart model file'
- Choose all files
Helpful Hyperfine Bed Leveling commands:
G80 = Meshbed leveling
G81 = This will report out the interpolated Z values for a 7 x 7 array that composes the mesh bed. It needs G80 run before
Advanced gcodes:
M45 V20 = Run XYZ-Calibration in verbose mode and lot of information
G80 V20 = Run Meshbed leveling in verbose mode and lot of information
PINDA2 Calibration Tuning Fix
All the credit for PINDAv2 Calibration Tuning fix goes to @TheZeroBeast
Please read for maore information:
prusa3d#439 and prusa3d#421
Helpful PINDAv2 G-code commands:
G75 and D8 = Read PINDA temperature offset values
G76 = Run PINDAv2 temperature calibration