BL Touch Terrible Accuracy - Downgrade Firmware
-
This post is deleted! -
EDIT: I wrote the first post from my phone ... this is hopefully more clear and concise.
I had release 2.02 on my Ender 3 Pro with Duet Maestro and had great result with my BL Touch. Out of 99 probes, my bed mesh had Maximum Deviations -0.048 / 0.011 mm, Mean Error -0.016 mm, and RMS Error 0.012 mm.
I upgraded this week to 2.05.1 2020-02-09b1 and now "Home Z" rather than 1-2 probes often probes 5+ times and randomly fails with inconsistent readings. Interestingly, when I run "Auto Probe Trigger Height Assist" macro from GitHub, it probes the center of the bed 10 times in a row, and the probe values slowly grow further and further from the first probe value. This makes me believe there's something going on with Z axis but I've no binding, rod slippage, and I've the same stepper motor values in config.g so I'm not sure what to make of this. Finally, if I try bed mesh leveling, it fails before making it across the first row because of inconsistent readings.
Another interesting fact is that when I upgraded the firmware, my BL Touch macros stopped working. After hours of searching online I found I had to change P7 commands to P64 commands. My BL Touch has always been connected to the Z Probe port and I've not changed any other code so I'm not sure what happened here. Could this change have impacted voltage/resistance in a way which results in inconsistent readings? FWIW - the sensor does not have it's resistor cut and is mounted firmly.
I’m happy to run any tests you’d like to try and get to the bottom of what’s going on here but wondered if it’s possible to downgrade firmware back to 2.02 to see if it makes any difference??
-
@bugsysiegals said in BL Touch Terrible Accuracy - Downgrade Firmware:
I’m happy to run any tests you’d like to try and get to the bottom of what’s going on here but wondered if it’s possible to downgrade firmware back to 2.02 to see if it makes any difference??
Yes.
Find the release you want at https://github.com/dc42/RepRapFirmware, download it, and install it via the "system" tab "upload system files", just like you did the upgrade.
Of course, you will have to reverse the P7 and P64 changes to your config.g
-
FWIW - I'm re-reading the firmware update instructions and it says, "Important! When upgrading from 1.x or 2.x firmware to 3.x you will need to make substantial changes to your config.g file".
For Z probe I see ...
-
You must declare the input pin used by the Z probe (and the modulation/programming pin, if needed) in your M558 command.
-
If you are using a BLTouch (or use M280 and/or M42 for any other reason), you must create a GPIO port for it using M950 and change your M280 commands in deployprobe.g and retractprobe.g to address that port".
I'd not added anything to my config.g and have left it as it was below. Was something here supposed to change? I also have no M950 command defined. Could either of these be related to the inconsistent Z values?
- M558 P9 H5 F120 T6000 ; Set Z probe type to bltouch and the dive height + speeds
-
-
@bugsysiegals not relevant for you, as you upgraded to RRF 2.05.1, NOT RRF 3.
Ian
-
@bugsysiegals, I've gone throuigh the upgrade notes for RRF2 at https://github.com/dc42/RepRapFirmware/blob/dev/WHATS_NEW.md for releases 2.03 to 2.05.1 inclusive, and I didn't see anything that would affect BLTouch accuracy. I suggest you check those notes too in case there is anything in them that applies to your configuration.
Does the speed of probing moves appear to be the same as before?
Things that are known to affect BLTouch probing accuracy:
- Probing too fast
- On some machines, probing with heaters (in particular the bed heater) turned on. You can use the B1 parameter in the M558 command to turn heaters off temporarily during probing.
-
@droftarts Ahh, yes, I see that now .. SMH .. thanks!
-
@dc42 I'd briefly read them but didn't see anything pertaining to why the probe would change from P7 to P64 so I'll have to read a bit slower. I do have bed and nozzles heated but I had them on previously so I'm not sure why I'd have this sudden change. That said, I'll try with the bed off as the Ender 3 does have that magnetic pad which may flex a bit when warm.
I'll post my output of 10 probes before I revert back to old firmware.
Regarding the firmware rollback, the firmware page wiki is a bit confusing as it relates to which files specifically should be copied for Duet 2 Maestro. I see 20 assets for firmware 2.02. I don't need the 2 source files, believe I read DuetWifiServer is not for Maestro, and not sure about the CombinedFirmware, RADDS, or Symbols. Is this as simple as uploading RepRapFirmware.bin (2.02) to downgrade and uploading DuetMaestroFirmware.bin (2.05.1) to upgrade followed by M997 S0 to apply the firmware? Do I need any of these other files?
-
Before downgrading firmware can you post your config.g and homing files so we might get an idea of why the behaviour has changed?
The easiest way to flash a particular firmware is to just upload the entire packaged zip file for that release.
For instance, for 2.02 you'd use:
https://github.com/dc42/RepRapFirmware/releases/download/2.02/Duet2Firmware-2.02b.zipFor 2.05 you'd use: https://github.com/dc42/RepRapFirmware/releases/download/2.05/Duet2Firmware-2.05.zip
Usually it's only the main full releases that have a zip file included. For point releases you'd just upload the bin file for your board. And maybe the DWC zip file if it has been updated as well.
Don't extract it, just upload it through the web interface. It should detect the file and update whatever needs updating. This should work both forwards and backwards in version provided it's a version 2.0+ release.
-
I'm actually using some of my original code, perhaps your code, and code I just generated through the RepRap configuration tool.
I've not made any firmware changes as I've done some testing and gotten much better results...
I ran 10 separate tests, 9 probes within each test, using the same firmware (2.05.1), on a cold printer bed, and measured standard deviations per group, assuming STDEV.P Excel function is the right function, which resulted in 0.005, 0.044, 0.014, 0.008, 0.006, 0.006, 0.009, 0.004, 0.020, 0.004 as seen in the image.
Two of the groups with the largest variations exhibit the effect I mentioned where the numbers continue to get lower and lower from the first probe value. Any thoughts why this would be?
There was a small amount of binding on the Z axis near the bottom and top, which I assume could cause some missed steps, especially if the voltage is turned down, so I decided to resolve it. I removed the lead screw and the gantry was able to move up and down without any binding. I then loosened and re-tightened the inside wheels on both sides of the gantry to allow for the least resistance while still keeping the triangular units (Ender 3 Pro) from being sloppy. I then hand fed the lead screw down towards the motor lead screw mount and noticed it wasn't perfectly aligned with the mounting hole so I shimmed the motor until I could hand twist the lead screw down into the motor mount hole without any resistance and for perfect fit. The gantry now moves up and down without any hint of binding except near the absolute top where I'd printed a custom lead screw mount.
With these changes to the Z axis, I've repeated these tests and have even better results with only the first test being not so good. These tests resulted in standard deviations per group of 0.030, 0.003, 0.005, 0.003, 0.005, 0.004, 0.004, 0.004, 0.003, and 0.002 as seen in the image. The test which was the worst exhibited the same downward trending as the first group.
homez.g homey.g homex.g homeall.g config-override.g config.g 0_Auto Probe Trigger Height Assist.g
-
FWIW - I tried to bring the links below the chart but it's telling me it's flagged as spam by Akismet...
-
@bugsysiegals said in BL Touch Terrible Accuracy - Downgrade Firmware:
0.030, 0.003, 0.005, 0.003, 0.005, 0.004, 0.004, 0.004, 0.003, and 0.002
That's much better.
You may be able to improve it still with a couple tweaks
M558 P9 H5 F60 T6000 A10 S0.03 B1 R0.5 ; BLTouch Z probe settings G31 P25 X-45.4 Y-12.0 Z1.8
That's M558 F60 and G31 P25
And if you want to force even tighter tolerance, you can reduce the S0.03 to S0.003 which may cause it to reprobe a few times at each point but you'll get better consistency.
-
I spent the morning running more tests. I enabled the code which lowers motor voltage and did the first 10 just lowering it for the homing part of the code and then adding it to the probing sequence. As you can see the results are much worse. There seems to be worse variation after running M999 but not always so I'm not sure the reset is causing the issue. While some of the overall standard deviations for a group aren't bad, there are some large min/max differences within each group ... is this normal?
Instead of lowering voltage, is there a way to slow down the G30 S-1 probing? Is that done by lowering the F value in M558?
Also, can you save the trigger height returned from G30 S-1 to the config-override.g file? I tried M500 but it didn't work. I thought it would be a nice addition at the back end of the bed leveling script. Thanks for writing that by the way!!
-
@bugsysiegals said in BL Touch Terrible Accuracy - Downgrade Firmware:
Instead of lowering voltage, is there a way to slow down the G30 S-1 probing?
That's what the dive speed does in M558 F60
Can you save the trigger height it returns to the config-override.g file so you don't have to manually do that? It would be nice to add to the bed leveling script.
Yes you can use G30 S-3 which saves the trigger height to config override with M500 P31
https://duet3d.dozuki.com/Wiki/Gcode#Section_G30_Single_Z_Probe
https://duet3d.dozuki.com/Wiki/Gcode#Section_M500_Store_parameters -
I ran the mesh grid, G29, twice and it's terrible. In fact, it says, "Warning: the height map has a substantial Z offset. Suggest use Z-probe to establish Z=0 datum, then re-probe the mesh. 110 points probed, min error -0.464, max error 0.031, mean -0.296, deviation 0.098".
I'm on a flat mirror and just washed both sides and made sure the stock bed has nothing on it. I also did the bed leveling test and all corners grab the paper at exactly the same Z value. I can't believe how inconsistent this is. I will have to try the settings you mentioned.
-
I ended up commenting out the code for the BL Touch, brought the nozzle down until it just grips the paper, and then brought the original end stop up until it just clicked and registered as triggered under Machine-Specific tab; however, I'm getting a window popping up for manual bed probing ... I don't see this in the what's new and don't recall this before ... is this a new feature that should be done every time homing Z with the end stop?
Actually I just realized I'd not commented out the BL Touch code in homez.g. That said, would having the manual bed leveling window popup 3 times to do a few adjustments add any additional offset to the end stop and add some value or should it just be commented out?
; used for BL Touch
;M558 F600 A1 ; dive fast once
;G30 ; home Z, using values from G31 in config.g
;M558 F120 A10 ; slow second dive with more accuracy
;G30 ; home Z, using values from G31 in config.g
;G1 Z10 F200 ; move Z up to Z=10 -
@bugsysiegals said in BL Touch Terrible Accuracy - Downgrade Firmware:
I'm getting a window popping up for manual bed probing ... I don't see this in the what's new and don't recall this before ... is this a new feature that should be done every time homing Z with the end stop?
When you commented out the M558 in your config.g the firmware defaults to manual probing (M558 P0) when you call for a probe (G30, G29) that's the pop up with jog buttons.