MK3: 3.1.3-HP firmware for Prusa i3 MK3 + Hyperfine Bed Leveling + PINDA-Fix
Pre-releaseMK3: 3.1.3 firmware for Prusa i3 MK3 + Hyperfine Bed Leveling + PINDA-Fix
Disclaimer: This is a modified firmware based on Prusa firmware MK3 v3.1.3 release. We are not responsible for any damage/issue this modification may cause . It is the users choice which firmware she/he installs. PLEASE read the Notes carefully otherwise your printer might behave strange.
UPDATE 04. April 2018
- Fixed EEPROM space being used twice
- Attempt to enable D codes for all FW_DEV_VERSIONS
!!! As Prusa added new features which are stored in the EEPROM you HAVE TO do some things before updating from 3.1.1-HP to 3.1.3-HP or from 3.1.1-HP to original Prusa 3.1.3 firmware to get stable results!!!
- Please write down you Hyperfine Bed Leveling values from your printer
- Reset these values to 0 (zero) BEFORE you update any firmware
- Update the firmware to 3.1.3-HP
- Add your Hyperfine Bed Leveling values back to your printer
If you are new to this firmware and had stock firmware before then you don't need to follow these steps above.
I'll try to explain why you have to do that:
As bed leveling values has to be stored in the EEPROM i write them to unused space in the actual firmware. This also done by Prusa, so by them adding new features which need EEPROM space their and my used EEPROM space overlaps and this needs attention. I move the Hyperfine Bed Leveling always at the end of the actual firmware and so we have to reset the values before and write them back after the firmware update.
I hope one day Prusa will add Hyperfine Bed Leveling to the stock firmware, last time 3 requests didn't make it.
Summary:
This is final version of 3.1.3 firmware for MK3. Here the changes from the previous version 3.1.1-HP MK3 firmware:
Please read changes done by Prusa since:
- https://github.com/prusa3d/Prusa-Firmware/releases/tag/v3.1.3
- https://github.com/prusa3d/Prusa-Firmware/releases/tag/v3.1.3_RC1
- https://github.com/prusa3d/Prusa-Firmware/releases/tag/v3.1.2
- https://github.com/prusa3d/Prusa-Firmware/releases/tag/v3.1.2-RC1
plus
- Hyperfine Bed Leveling (mod by @jeffjordan and PJR, implemented by @3d-gussner)
- PINDA2 Calibration Tuning Fix (by @TheZeroBeast)
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