Marlin 1.1.4 With 3DTouch / BLTouch for i3 Pro B
Posted: Mon Jul 17, 2017 2:14 am
Hi folks,
-------
Download : -------
Configured Marlin 1.1.4 (latest to date) to work with Geeetech Prusa i3 Pro B, with 3DTouch probe mounted... Comment probe section in Configuration.h if you don't need BLTouch...
- -
Still configuring probe so cables not guided ^^ You will need to only adjust Z offset corresponding to your printer after flashing firmware from Arduino IDE to get your probe adjusted. Just initialize firmware with M502 then M500 to discard old EEPROM Settings... Save back your steps and other settings on paper before flashing ^^
Auto level probing is set with 4 points near bed corners... Bed sizes are defined for standard Geeetech model mounted like described in manual. Mounted my bed fixed with nuts cause we are probing, so no more springs in the way... Try to be leveled with a spirit level, will help to get nice prints because gravity is a joker...
Issue G-Code : M851 Z[My offset like -1.4 for ex.] followed by M500 to save in EEPROM... I recommend to test and print some lines to really adjust correctly and definitively the offset between the hot-end and the probe (mounted with printed part from Geeetech)...
You can tune your probe with screw adjustments to get the most accurate settings from it... But this is a very long process. Don't forget to oil correctly all Z axis moving parts to get the smoothest movements and use M48 repeatability test to get the smallest deviation possible (near <= 0.01mm). I don't need to explain that your bed surface need to be also well cleaned...
Procedure to do this (probe in up position, turn your screwdriver very gently):
- unscrew the top screw until probe flash alarm.
- Reset alarm (G-Code : M280 P0 S160)
- Screw until the light pops on (this is your near best starting point to fine tune next)
- Launch M48 repeatability test procedure
- fine tune the screw until Z bed position is the most near 0 and your derivation <= 0.01mm (less is better)
I glued with a glue gun the probe's screw after getting the best results for 4 consecutive tests (probing 4x4 times), I am almost sure it won't budge... I am below 0.01mm deviation, so this is excellent.
Here, after 2 hours of settings (this is a patience game), I can get this :
- -
When using Cura, here is my starting G-Code sequence :
M851 Z-1.67 ; Set Z Offset (tuned for auto-leveling) <-- I can adjust Z-Offset on the fly here
M500 ; Store in EEPROM for future uses
G21 ; set units to millimeters
G90 ; use absolute positioning
M82 ; absolute extrusion mode
M104 S{material_print_temperature} ; set extruder temp
M140 S{material_bed_temperature} ; set bed temp
M190 S{material_bed_temperature} ; wait for bed temp
M109 S{material_print_temperature} ; wait for extruder temp
G28 ; home all
G29 ; AutoLevel 3DTouch (BLTouch)
G1 X0 F12000.0 ; Set X
G1 Y0.0 F12000.0 ; go outside print area
G1 Z0 F12000.0 ; Reach Bed
G92 E0.0 ; reset extruder distance position
G1 X60.0 E8.0 F1000.0 ; intro line <-- Print line to clean the hot-end
G1 X100.0 E18.5 F1000.0 ; intro line <-- Finish print line to clean and feed the hot-end
G92 E0.0 ; reset extruder distance position
Avoid use of G28 after G29 command or your leveling values will be resetted...
I Corrected source code to avoid errors, so working with latest Arduino IDE 1.8.3...
Also corrected temps failures from firmware for bed and nozzle for this printer, there was sometime too much control for temps and stock power supply is not one of the most powerful to keep our temps in a range that was in Marlin tolerance...
Here it is :
N.B. : SOURCE CODE IS CONFIGURED FOR LATEST GT2560 Rev A+ Board (the one with direct 3 pins probe connectors on the board). If you are using older boards with soldered probe, revert #define SERVO0_PIN variable to 32 in code...
* Default Axis Steps Per Unit (steps/mm)
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
#define DEFAULT_AXIS_STEPS_PER_UNIT { 81.5, 81.5, 2577.46, 94 }
I defined steps with these values for my printer, so adjust them to your needs if you want... (you can do this from LCD panel) With these values, my printer prints ABS within 0.05mm precision in all directions ^^ Here I have printed a test of my bottle neck design for any soda bottle cap like Pepsi (perfectly sealed with water inside ^^) on a 4cm square plate = 0.02 drift without sanding finish :
-
Pepsi cap screwed I don't use languages other than English because LCD screen only support JAPANESE extended characters and accents are not well supported.
MP me if you encounter any bug...
Remember, printing fast is not a good idea if you want well finished parts... Adjust jerk and printing speeds respectively to 0.1mm/s and between 30-40mm/s gives me very good results... So you cannot mix high speed printing with good results... Patience is mandatory to get nice printed parts ^^
Enjoy...
-------
Download : -------
Configured Marlin 1.1.4 (latest to date) to work with Geeetech Prusa i3 Pro B, with 3DTouch probe mounted... Comment probe section in Configuration.h if you don't need BLTouch...
- -
Still configuring probe so cables not guided ^^ You will need to only adjust Z offset corresponding to your printer after flashing firmware from Arduino IDE to get your probe adjusted. Just initialize firmware with M502 then M500 to discard old EEPROM Settings... Save back your steps and other settings on paper before flashing ^^
Auto level probing is set with 4 points near bed corners... Bed sizes are defined for standard Geeetech model mounted like described in manual. Mounted my bed fixed with nuts cause we are probing, so no more springs in the way... Try to be leveled with a spirit level, will help to get nice prints because gravity is a joker...
Issue G-Code : M851 Z[My offset like -1.4 for ex.] followed by M500 to save in EEPROM... I recommend to test and print some lines to really adjust correctly and definitively the offset between the hot-end and the probe (mounted with printed part from Geeetech)...
You can tune your probe with screw adjustments to get the most accurate settings from it... But this is a very long process. Don't forget to oil correctly all Z axis moving parts to get the smoothest movements and use M48 repeatability test to get the smallest deviation possible (near <= 0.01mm). I don't need to explain that your bed surface need to be also well cleaned...
Procedure to do this (probe in up position, turn your screwdriver very gently):
- unscrew the top screw until probe flash alarm.
- Reset alarm (G-Code : M280 P0 S160)
- Screw until the light pops on (this is your near best starting point to fine tune next)
- Launch M48 repeatability test procedure
- fine tune the screw until Z bed position is the most near 0 and your derivation <= 0.01mm (less is better)
I glued with a glue gun the probe's screw after getting the best results for 4 consecutive tests (probing 4x4 times), I am almost sure it won't budge... I am below 0.01mm deviation, so this is excellent.
Here, after 2 hours of settings (this is a patience game), I can get this :
- -
When using Cura, here is my starting G-Code sequence :
M851 Z-1.67 ; Set Z Offset (tuned for auto-leveling) <-- I can adjust Z-Offset on the fly here
M500 ; Store in EEPROM for future uses
G21 ; set units to millimeters
G90 ; use absolute positioning
M82 ; absolute extrusion mode
M104 S{material_print_temperature} ; set extruder temp
M140 S{material_bed_temperature} ; set bed temp
M190 S{material_bed_temperature} ; wait for bed temp
M109 S{material_print_temperature} ; wait for extruder temp
G28 ; home all
G29 ; AutoLevel 3DTouch (BLTouch)
G1 X0 F12000.0 ; Set X
G1 Y0.0 F12000.0 ; go outside print area
G1 Z0 F12000.0 ; Reach Bed
G92 E0.0 ; reset extruder distance position
G1 X60.0 E8.0 F1000.0 ; intro line <-- Print line to clean the hot-end
G1 X100.0 E18.5 F1000.0 ; intro line <-- Finish print line to clean and feed the hot-end
G92 E0.0 ; reset extruder distance position
Avoid use of G28 after G29 command or your leveling values will be resetted...
I Corrected source code to avoid errors, so working with latest Arduino IDE 1.8.3...
Also corrected temps failures from firmware for bed and nozzle for this printer, there was sometime too much control for temps and stock power supply is not one of the most powerful to keep our temps in a range that was in Marlin tolerance...
Here it is :
N.B. : SOURCE CODE IS CONFIGURED FOR LATEST GT2560 Rev A+ Board (the one with direct 3 pins probe connectors on the board). If you are using older boards with soldered probe, revert #define SERVO0_PIN variable to 32 in code...
* Default Axis Steps Per Unit (steps/mm)
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
#define DEFAULT_AXIS_STEPS_PER_UNIT { 81.5, 81.5, 2577.46, 94 }
I defined steps with these values for my printer, so adjust them to your needs if you want... (you can do this from LCD panel) With these values, my printer prints ABS within 0.05mm precision in all directions ^^ Here I have printed a test of my bottle neck design for any soda bottle cap like Pepsi (perfectly sealed with water inside ^^) on a 4cm square plate = 0.02 drift without sanding finish :
-
Pepsi cap screwed I don't use languages other than English because LCD screen only support JAPANESE extended characters and accents are not well supported.
MP me if you encounter any bug...
Remember, printing fast is not a good idea if you want well finished parts... Adjust jerk and printing speeds respectively to 0.1mm/s and between 30-40mm/s gives me very good results... So you cannot mix high speed printing with good results... Patience is mandatory to get nice printed parts ^^
Enjoy...