Bed compensation test?



  • Hi all,

    Yesterday I sent a gcode to print to my tornado-Duet system. I have an IR sensor as a probe and I use the bed compensation on my initial gcode. The first layer was so nice, I had to share it with some buddies over whatsapp... Ultimately the print fail and today I woke up to a mess of hairy plastic. The piece was somehow pushed off the pinter although my surface is quite adherent.
    This afternoon, I cleaned the mess, the bed, cleaned the nozzle (outer side) and I sent the piece again to print... First layer fail. I tried to calculate the Z trigger distance again and the value I got wasn't much different as the one I already had. I run the bed compensation again and again, it failed. Watching closely, I saw how on some parts of the bed the nozzle was too high. I watched the Z-motors and I saw no indication of them moving to compensate for irregularities...

    Some questions:

    -what could have caused the system to miserably fail from one day to the next?

    • How can I be sure that the printer is compensation for bed irregularities?

    I'm sure some will think that precisely the surface the piece is to blame, but the piece was exactly on the same place as yesterday, when the piece started magnificent...

    Anyhow, I'm looking forward for a constructive chat

    Thanks



  • Can you post an image of your heightmap?
    What is the bed surface?



  • @phaedrux said in Bed compensation test?:

    Can you post an image of your heightmap?
    What is the bed surface?

    The surface I'm using is a GFK, glass fiber. I add a coat of Plastik 70, which I found to be the best thing to help adhesion. Much better that specific products, actually.

    0_1552677448807_Screenshot_2019-03-15 Tevo Tornado.png The



  • Well, today I put some time into it. I checked that the bed was structure-wise as level as it could be and I recalibrated everything from zero. I don't know why but the Z-trigger distance has changed from 1.48 to 1.25. I checked it twice. I followed the instructions laid here to calibrate the Z-trigger height and save it into the firmware. When calibrating, the nozzle grips a piece of paper as indicated... However, when I send a Benchy to test, the nozzle is way to high. I used babystepping to sink the nozzle down and I had to up as low as -0.50 I stopped the print and I modified the gcode to incorporate the following line:

    G31 Z1.70 ;adjust Z-trigger 1.25+0.45

    Now the printer is delivering a Benchy as the plastic once again hits the surface. I looked very closely and I see the Z motors moving a bit to compensate, so that part of the problem seems to be sorted out.

    The question remains... why I cannot get the first layer to stick? Why do I have to use a workaround.

    Just a couple of days ago the first layer was perfectly without any babystepping or anything else...

    BTW the initial Gcode of my prints is the following:

    G28 ; home all axes
    G29 S1 ;use mesh grid to compensate
    G1 Z5 F5000; Lift Nozzle



  • It's not unusual to have to make a small adjustment to the trigger height using baby stepping. Some of this can be explained by the fact that when starting the print both the bed and the hotend are at temperature and have expanded slightly. So if you didn't have your bed and nozzle at printing temp when measuring the trigger height it would be a little off.

    There's also the fact that probes aren't 100% reliable and repeatable. You can mitigate for this a bit by using some of the additional parameters for M558.

    https://duet3d.dozuki.com/Wiki/Gcode#Section_M558_Set_Z_probe_type

    Rnnn Z probe recovery time after triggering, default zero (seconds) (RepRapFirmware 1.17 and later)
    Annn Maximum number of times to probe each point, default 1
    Snnn Tolerance when probing multiple times, default 0.03mm
    Bn If 1, turn off bed heater while probing, default (B0) leaves heater on. (RepRapFirmware 1.21 and later)

    M558 P9 H3 F100 T6000 A10 R0.5 S0.003 B1

    A10 means that it will probe twice, and if the results of the two probes aren't within the S0.003 value, it will probe again until at least two consecutive values are. So you can make the probe results more or less strict by adjusting the S value. This can lead to up to 10 probe attempts as denoted by A10. This can add time, but it's not much. If after 10 probes it hasn't got a match, it will take the average.

    The A and S parameters control multiple probing. Probing is repeated until two consecutive probe attempts produce results that differ by no more than the S parameter; then the average of those two results is used. However, if the number of attempts specified by the A parameter is reached without getting two consecutive results within tolerance of each other, no further probe attempts are made and the average result of all the attempts is used.

    R introduces a brief pause to allow the printer to settle which can help accuracy.

    B can disable the heaters during probe moves to eliminate electrical interference.

    When measuring the trigger height I take 10 readings and use the median or average value, whichever looks the most stable. Then a test print to see how it went, and baby stepping to fine tune it. And the baby stepped value worked back into the G31 Z trigger height value.



  • @phaedrux said in Bed compensation test?:

    M558 P9 H3 F100 T6000 A10 R0.5 S0.003 B1

    Are 0.003 not too low?
    I ask, beacuse the default is 0.03 in the doku



  • @thwe it can be as high or as low as you need it to be. If it is set too low you'll end up probing the max of the A value every time. In my case, usually it probes twice, but occasionally it will probe 3 or 4 times. So for my BLTouch 0.003 seems to be alright. For me, 0.03 was too forgiving since my probe results could vary each time.



  • @phaedrux said in Bed compensation test?:

    it can be as high or as low as you need it to be. If it is set too low you'll end up probing the max of the A value every time. In my case, usually it probes twice, but occasionally it will probe 3 or 4 times. So for my BLTouch 0.003 seems to be alright. For me, 0.03 was too forgiving since my probe results could vary each time

    ah, thanks for the tip. at the moment I have S0.01, I will play with smaller values 👍



  • @thwe I assume that it maxes out at three significant digits as that's the resolution reported by the G30 S-1, but I'm not certain.



  • Holly Molly @Phaedrux thanks a lot for your comprehensible answer and the time you took...

    Both nozzle and bed were at working temperature when measuring the Z-trigger height, but the sensor can have obviously systematic errors nonetheless. I will try to adjust those parameters.

    I was aware that the probes are not 100% precise ore repeatable, but I thought 0.5 mm of error with babystepping was way too much, isn't it?

    I'll report back asap...


  • administrators

    @FelixH, how do you home Z? If you are homing Z using the IR sensor, where on the bed do you do that? The centre of the bed is usually best. It's a good idea to use a point that is also one of the points on the mesh used for bed compensation.



  • @dc42 I modified the corresponding .h file (I don´t remember which one it is) so that the Z homing takes place on the center of the bed.

    Yesterday I was able to print a Benchy again. But after following all the indications, I still had to put the nozzle down with babystepping by 0.300 mm


  • administrators

    @felixh said in Bed compensation test?:

    @dc42 I modified the corresponding .h file (I don´t remember which one it is) so that the Z homing takes place on the center of the bed.

    Yesterday I was able to print a Benchy again. But after following all the indications, I still had to put the nozzle down with babystepping by 0.300 mm

    If you home Z and then send G1 X0 Y0 Z0 with no babystepping active, does it put the nozzle right on the bed surface?



  • @FelixH

    HI
    please check your system folder if a "resurrect" file is there. Delete and try again to print...

    Cheers



  • @dc42 said in Bed compensation test?:

    G1 X0 Y0 Z0

    If I do a homing on X150 Y150, followed by a G1 Z0, the nozzle lands at a height of 0.15mm. When I send a G1 X0 Y0 Z0, it lands at 0.30mm from the bed. I´m using feeler gauges (I think they are called that).

    @Hornetrider there is no "resurrect" folder...


  • administrators

    @felixh said in Bed compensation test?:

    If I do a homing on X150 Y150, followed by a G1 Z0, the nozzle lands at a height of 0.15mm.

    That indicates that your G31 Z parameter is not right. It should land at 0mm.

    When I send a G1 X0 Y0 Z0, it lands at 0.30mm from the bed. I´m using feeler gauges (I think they are called that).

    Did you definitely load a height map before that, either by running G29 S0 to probe again, or G29 S1 to load the existing height map?

    You mentioned Z motors (plural). Are you taking steps to correct them if they get out of sync?



  • @dc42 said in Bed compensation test?:

    @felixh said in Bed compensation test?:

    If I do a homing on X150 Y150, followed by a G1 Z0, the nozzle lands at a height of 0.15mm.

    That indicates that your G31 Z parameter is not right. It should land at 0mm.

    When I send a G1 X0 Y0 Z0, it lands at 0.30mm from the bed. I´m using feeler gauges (I think they are called that).

    Did you definitely load a height map before that, either by running G29 S0 to probe again, or G29 S1 to load the existing height map?

    You mentioned Z motors (plural). Are you taking steps to correct them if they get out of sync?

    I did not load the map before doing the test. I will try again.
    I check both sides of the x axis to check they are at the same height. Perfection is difficult, but they are in the range of 0.05mm max



  • @dc42 Loading the bed map, homing Z and going to Z0 leaves the nozzle touching the surface. On X0 Y0 Z0 leaves the nozzle 0.20mm above the surface


  • administrators

    @felixh said in Bed compensation test?:

    @dc42 Loading the bed map, homing Z and going to Z0 leaves the nozzle touching the surface. On X0 Y0 Z0 leaves the nozzle 0.20mm above the surface

    Three possibilities:

    1. Height map is not being used because loading it failed. Run m122 and look for "Bed compensation in use:".

    2. Height map is wrong because something has moved. Try running bed probing again, then do the same test.

    3. Height map is inaccurate because the IR sensor doesn't work well with your bed surface. Try measuring the sensor trigger height at various points and see how consistent it is.



  • will do, and report back

    Thanks


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.