BL-touch trigger height inconsistent
I just installed my BL-touch version 3 and trying to set the trigger height. Following the routine:
1. Make sure there is no filament stuck to the nozzle (you may want to do this test with the nozzle hot) 2. Cancel any existing bed compensation by sending M561 3. Send M208 S1 Z-3 to temporarily allow Z moves down to Z=-3mm. This is to ensure that you can lower the nozzle all the way to the bed in step 5. 4. Command the print head to the XY coordinates you want to probe 5. Command the print head down in small steps until the nozzle just touches the bed or just grips a sheet of paper. You may need to send M564 S0 to allow movement lower than where the firmware thinks Z=0 is. You may also wish to create a macro to lower the head by e.g. 0.02mm to get greater accuracy (G91 followed by G1 Z-0.02). 6. Send G92 Z0 to define that height as Z=0 7. Command the nozzle up 5mm (G1 Z5) 8. Send G30 S-1 to probe the bed without resetting the Z=0 position 9. Read off the Z height from the web interface. That is the trigger height. 10. Repeat the previous two steps a couple of times to make sure you are getting a consistent result 11. Repeat steps 4-10 for the other XY positions you want to check When you have established what the trigger height is, set the Z parameter og the G31 command in config.g to that value.
At step 7 and 8 I am getting inconsistent results as the screenshot showing. The results increasing gradually.
Here is my config.g
; Configuration file for Duet WiFi (firmware version 1.20 or newer) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool on Sun Jun 17 2018 17:38:29 GMT+0100 (BST) ; General preferences G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M555 P0 ; Set firmware compatibility to look like native output M593 F40 ; cancel ringing at 40Hz ;M572 D3 S0.01 ; Pressure advance M667 S1 ; Select CoreXY mode ; Network M550 PBLV MGN Cube ; Set machine name M552 S1 ; Enable network ;*** Access point is configured manually via M587 M586 P0 S1 ; Enable HTTP M586 P1 S0 ; Disable FTP M586 P2 S0 ; Disable Telnet ; Drives M569 P0 S1 ; Drive 0 goes forwards (X) M569 P1 S1 ; Drive 1 goes forwards (Y) M569 P7 S1 ; Drive 3 goes forwards (Z1) M569 P8 S1 ; Drive 4 goes forwards (Z2) M569 P9 S1 ; Drive 6 goes forwards (Z3) M569 P3 S0 ; Drive 9 goes forwards (E0) M584 X0 Y1 E3 Z7:8:9 ; Drive 0-X 1-Y 6-9-Z(Duex5-Drive6-9) 3-E M671 X524:252:-22 Y162:513:162 S5 ; leadscrews at rear left, front middle and rear right ;M593 F35 ; cancel ringing at 30Hz M350 Z16 E16 I0 ; Configure microstepping without interpolation M350 X256 Y256 I1 ; Configure microstepping with interpolation M92 X2599 Y2599 Z403 E2645 ; Set steps per mm M566 X1200 Y1200 Z500 E40 ; Set maximum instantaneous speed changes (mm/min) M203 X20000 Y20000 Z1200 E1000 ; Set maximum speeds (mm/min) M201 X2000 Y2000 Z100 E120 ; Set accelerations (mm/s^2) M906 X1200 Y1200 Z900 E500 I30 ; Set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X10 Y65 Z0 S1 ; Set axis minima M208 X490 Y500 Z500 S0 ; Set axis maxima M564 H0 ; Allow movement of axes that have not been homed ; Endstops M574 X1 Y1 S3 ; Set endstops controlled by motor load detection ; Z-Probe M574 Z1 S2 ; Set endstops controlled by probe M558 P9 B1 A2 S2.00 X0 Y0 Z1 H5 F120 T60000 ; BLTouch G31 P50 X-32 Y0 Z1.95 ; Set Z probe trigger value, offset and trigger height M557 X85:400 Y80:400 S40 ; Define mesh grid ; Heaters M307 H3 A-1 C-1 D-1 M307 H0 A100.8 C241.3 D1.8 B0 ; Disable bang-bang mode for the bed heater and set PWM limit M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0 M143 H0 S120 ; Set temperature limit for heater 0 to 120C M307 H1 A365.5 C148.8 D3.4 B0 ; M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1 M143 H1 S280 ; Set temperature limit for heater 1 to 280C ; Fans M106 P0 S0 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on M106 P6 S1 M106 P7 S1 ; Tools M563 P0 D0 H1 ; Define tool 0 G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C ; Automatic saving after power loss is not enabled ; Custom settings are not configured ; Miscellaneous T0 ; Select first tool
Only bed heater is running during the procedure.
First layer is never right. Using babystepping, needs anything from -0.2 to +0.2.
Any thoughts what could be wrong? Thanks!
PaulHew last edited by
@Ckostikas No, you have done nothing wrong and there is nothing wrong.
I have taken the 13 readings you have given and your average is 1.958
this is your current G31 P50 X-32 Y0 Z1.95 - You need another digit at the end!
G31 P50 X-32 Y0 Z1.958
I normally setup my Z for PLA, then add a Z offsett for PET-G in the slicer.
@Ckostikas It's more readable if you cut and paste the text from the console, rather than do a screen grab!
As the height is consistently increasing, here's a few things to consider:
- Is the bed being heated at the same time? If it's increasing temperature, it may be moving.
- You already have B1 in your M558 command, to turn off heaters during probing. If heaters are on, particularly the bed, it can produce magnetic currents that affect the BLTouch. However, if you're doing lots of probe points, the bed may be cooling off, and moving. Check temperature of bed is staying constant during probing.
- Set the R parameter, in M558, to set Z probe recovery time. Try R0.75.
- Remove the X, Y and Z parameters, they are obsolete.
- Reduce probing speed until you don't get any measurement errors. Start with F60, test, then increase if it's stable.
- You can use the A parameter to increase the number of times it probes, until it achieves the tolerance set by the S parameter. You currently have A2 S2, so it's trying twice, and aiming for 2mm accuracy! Try A10 S0.003. Again, reduce this once accuracy has improved with the other measures.
So, ultimately, try something like
M558 P9 B1 A10 S0.003 H5 F60 T60000 R0.75to start with, see if repeatability is better. You may even have to reduce motor jerk (M566 Z500 feels very high, mine is Z12) and acceleration (M201 Z100 also feels high, mine is Z20), as they may be causing movement to be too fast for the BLTouch to react.
See https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_M558_Set_Z_probe_type for full details on M558.
From what you say I get the point that this applies to bed compensation G29, am I right?
The issue that I am having is whilst trying to set the trigger height using a steady point and G30 S-1 command. Is it also applicable to this?
@Ckostikas It's defining how the probe works, so it's applicable to the accuracy of ALL your probing. You need to find settings for the probe that are repeatable and accurate. This means tuning it to an acceptable level, and that depends largely on your machine.
Can you redo your consistency test with the bed off and cold and using the M558 posted by Ian above?
Fiddling around for two days, changing all parameters as per your saying did nothing.
Swapped the BL-touch with one from my other printer did the job! The one having the issues operating flawlessly on the other printer...go figure.
Thanks for all advices!
The one having the issues operating flawlessly on the other printer...go figure.
@Phaedrux nope, it is version 2 the other one.