Mesh bed leveling and bl touch



  • I got my bl touch working ( Much Thanks to all that helped!!!) and am homing z to a sensor not bl touch. I have to clear bl touch alarm and restart mesh leveling(see bed g) but other than that issue, everything appears to work correctly and i am getting a height map. Problem is, after mesh leveling, i can print along leading edge ok but rest of bed is hit and miss. sometimes 1st layer is so high it literally prints in mid air on 1 spot of bed and spot on on other areas. Is this because the deviation is too great? I get the impression it is not compensating for the bed but not sure how to tell if it is being applied. config and height map included… after probe completes, console reports map saved and i see it on the sd card so am wondering if something is still off and why home z is so inconsistent with mesh leveling? To be 100% clear it is not off by a consistent height so this is not an offset issue as near as i can tell.

    ; Configuration file for Duet WiFi (firmware version 1.17)
    ; generated by RepRapFirmware Configuration Tool on Thu Feb 23 2017 12:18:06 GMT-0500 (Eastern Standard Time)

    ; General preferences
    M111 S0 ; Debugging off
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves
    M555 P1 ; Set firmware compatibility to look like RepRapFirmare
    M208 X0 Y0 Z0 S1 ; Set axis minima
    M208 X280 Y280 Z450 S0 ; Set axis maxima

    ; Endstops
    M574 X1 Y2 Z1 S0 ; Define active low and unused microswitches

    ; BLTouch
    M307 H3 A-1 C-1 D-1
    M558 P5 X-22 Y-9 Z4.05 H3 F200 T5000
    G31 X-22 Y-9 Z1.1

    M584 X0 Y1:4 Z2 E3

    ; Drives
    M569 P0 S0 ; Drive 0 goes forwards - X
    M569 P1 S0 ; Drive 1 goes Backwards - Y
    M569 P2 S0 ; Drive 2 goes Backwards - Z
    M569 P3 S1 ; Drive 3 goes forwards - E0
    M569 P4 S1 ; Drive 4 goes forwards - Y

    M350 X32 Y32 Z32 E32 I1 ; Configure microstepping with interpolation
    M92 X320 Y320 Z1610 E340.5 ; Set steps per mm
    M566 X600 Y600 Z600 E120 ; Set maximum instantaneous speed changes (mm/min)
    M203 X6000 Y6000 Z1000 E1200 ; Set maximum speeds (mm/min)
    M201 X500 Y500 Z500 E500 ; Set accelerations (mm/s^2)
    M906 X1500 Y1500 Z1500 E1500 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Heaters
    M143 S260 ; Set maximum heater temperature to 260C
    M301 H0 S1.00 P10 I0.1 D200 T0.4 W180 B30 ; Use PID on bed heater (may require further tuning)
    M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1

    ; Tools
    M563 P0 D0 H1 ; Define tool 0
    G10 P0 X0 Y0 ; Set tool 0 axis offsets
    G10 P0 R100 S200 ; Set initial tool 0 active and standby temperatures to 0C

    ; Network
    M550 PFrankNPrinter ; Set machine name
    M552 P0.0.0.0 S1 ; Enable network and acquire dynamic address via DHCP

    ; Fans
    M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H-1 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P2 S1 I0 F500 H-1 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned off

    Deployprobe.g

    M280 P3 S10 I1 ;deploy probe

    #Retractprobe.g
    M280 P3 S90 I1 ; retract probe

    ; bed.g
    ; called to perform automatic bed compensation via G32

    G28 ; Home All

    ;----------- Mesh Level ------------------

    M561 ; Clear any bed transform
    M557 X10:260 Y10:240 S25 ; Define grid
    M401 ; Deploy probe
    G29 ; Start mesh level
    M280 P3 S60 I1 ; Clear Alarm
    G29 ; Start mesh level
    M402 ; Retract probe

    G1 X150 Y60 Z20 F3000 ; Dock position

    RepRapFirmware height map file v1 mean error 0.08 deviation 0.19
    xmin xmax ymin ymax radius spacing xnum ynum
    10 260 10 240 -1 25 11 10
    0.685 0.511 0.425 0.333 0.248 0.18 0.128 0.068 0.004 -0.045 0
    0.512 0.457 0.37 0.286 0.207 0.131 0.065 0.011 -0.039 -0.067 0
    0.446 0.384 0.303 0.249 0.145 0.075 0.055 -0.03 -0.083 -0.107 0
    0.397 0.316 0.273 0.17 0.12 0.053 -0.014 -0.029 -0.117 -0.15 0
    0.332 0.261 0.207 0.126 0.075 0.009 -0.051 -0.042 -0.111 -0.178 0
    0.291 0.226 0.155 0.096 0.025 -0.002 -0.067 -0.111 -0.144 -0.177 0
    0.276 0.212 0.152 0.1 0.018 -0.024 -0.011 -0.107 -0.128 -0.176 0
    0.235 0.2 0.121 0.064 0.001 -0.043 -0.102 -0.122 -0.173 -0.178 0
    0.233 0.178 0.122 0.063 0.021 -0.05 -0.093 -0.117 -0.147 -0.167 0
    0.182 0.142 0.105 0.043 -0.011 -0.053 -0.098 -0.121 -0.16 -0.096 0


  • administrators

    Does the BLT give consistent results if you probe the bed more than once?



  • not sure i follow, are you saying run mesh twice and compare?



  • ran mesh again from cold boot. using mesh button on touch screen btw. results look almost identical on 2nd pass. it does report height map saved at end of process but do i need to add command to save it so it is applied? I know it exists but havent used it since it says "height map saved" when mesh process completes.

    1st run this morning

    RepRapFirmware height map file v1 mean error 0.08 deviation 0.19
    xmin xmax ymin ymax radius spacing xnum ynum
    10 260 10 240 -1 25 11 10
    0.685 0.511 0.425 0.333 0.248 0.18 0.128 0.068 0.004 -0.045 0
    0.512 0.457 0.37 0.286 0.207 0.131 0.065 0.011 -0.039 -0.067 0
    0.446 0.384 0.303 0.249 0.145 0.075 0.055 -0.03 -0.083 -0.107 0
    0.397 0.316 0.273 0.17 0.12 0.053 -0.014 -0.029 -0.117 -0.15 0
    0.332 0.261 0.207 0.126 0.075 0.009 -0.051 -0.042 -0.111 -0.178 0
    0.291 0.226 0.155 0.096 0.025 -0.002 -0.067 -0.111 -0.144 -0.177 0
    0.276 0.212 0.152 0.1 0.018 -0.024 -0.011 -0.107 -0.128 -0.176 0
    0.235 0.2 0.121 0.064 0.001 -0.043 -0.102 -0.122 -0.173 -0.178 0
    0.233 0.178 0.122 0.063 0.021 -0.05 -0.093 -0.117 -0.147 -0.167 0
    0.182 0.142 0.105 0.043 -0.011 -0.053 -0.098 -0.121 -0.16 -0.096 0

    2nd run from cold boot

    RepRapFirmware height map file v1 mean error 0.08 deviation 0.19
    xmin xmax ymin ymax radius spacing xnum ynum
    10 260 10 240 -1 25 11 10
    0.685 0.511 0.425 0.333 0.248 0.18 0.128 0.068 0.004 -0.045 0
    0.512 0.457 0.37 0.286 0.207 0.131 0.065 0.011 -0.039 -0.067 0
    0.446 0.384 0.303 0.249 0.145 0.075 0.055 -0.03 -0.083 -0.107 0
    0.397 0.316 0.273 0.17 0.12 0.053 -0.014 -0.029 -0.117 -0.15 0
    0.332 0.261 0.207 0.126 0.075 0.009 -0.051 -0.042 -0.111 -0.178 0
    0.291 0.226 0.155 0.096 0.025 -0.002 -0.067 -0.111 -0.144 -0.177 0
    0.276 0.212 0.152 0.1 0.018 -0.024 -0.011 -0.107 -0.128 -0.176 0
    0.235 0.2 0.121 0.064 0.001 -0.043 -0.102 -0.122 -0.173 -0.178 0
    0.233 0.178 0.122 0.063 0.021 -0.05 -0.093 -0.117 -0.147 -0.167 0
    0.182 0.142 0.105 0.043 -0.011 -0.053 -0.098 -0.121 -0.16 -0.096 0


  • administrators

    Those look absolutely identical, unless there is a difference that I have missed. I think it's unlikely that they come from different probings, but not impossible. If you have a browser connected then a timestamp will be recorded on the file, which you can see in the System Editor page of DWC.



  • Sorry about that! i was pretty sure those were different runs but may have been cut and paste error.i did it again just to be sure and different results below. i am not good at reading these yet but .2 layer height with deviations .224 can't be good…

    RepRapFirmware height map file v1 mean error -0.07 deviation 0.10
    xmin xmax ymin ymax radius spacing xnum ynum
    10 260 10 240 -1 25 11 10
    0.31 0.158 0.089 0.019 -0.04 -0.081 -0.123 -0.152 -0.173 -0.191 0
    0.18 0.138 0.057 0.004 -0.064 -0.108 -0.139 -0.17 -0.188 -0.191 0
    0.138 0.079 0.029 -0.014 -0.081 -0.131 -0.137 -0.182 -0.19 -0.208 0
    0.088 0.031 -0.007 -0.061 -0.11 -0.143 -0.182 -0.167 -0.214 -0.224 0
    0.06 0.004 -0.047 -0.089 -0.132 -0.156 -0.182 -0.149 -0.202 -0.222 0
    0.037 -0.006 -0.055 -0.092 -0.124 -0.145 -0.175 -0.192 -0.203 -0.201 0
    0.034 -0.006 -0.032 -0.073 -0.112 -0.134 -0.099 -0.153 -0.149 -0.17 0
    0.02 0.002 -0.04 -0.063 -0.102 -0.106 -0.132 -0.138 -0.14 -0.139 0
    0.03 -0.009 -0.041 -0.058 -0.072 -0.096 -0.094 -0.083 -0.069 -0.066 0
    0.03 0.019 -0.014 -0.026 -0.055 -0.054 -0.045 -0.027 -0.015 0.061 0



  • same thing again this morning, ran mesh level and sent batch of 6 parts to printer 3 of the parts 1st layers were perfect but 4th part printed in mid air and bombed. Nozzle was at least .2mm off the bed. I broke up print job, redid mesh level and sent single part to printer. 1st layer was total crap, just dots and piles of plastic all over print area. This makes no sense to me as i have to manually bed level and print with 8 loop skirt to make sure bed is level. i was getting better results doing it manually…



  • I am wondering if i need to add the save command for the height map? After mesh leveling is complete, i get a console msg stating height map saved so i dont think i need it but want to be sure.

    ; bed.g
    ; called to perform automatic bed compensation via G32

    G28 ; Home All

    ;–--------- Mesh Level ------------------

    M561 ; Clear any bed transform
    M557 X10:260 Y10:240 S25 ; Define grid
    M401 ; Deploy probe
    G29 ; Start mesh level
    M280 P3 S60 I1 ; Clear Alarm
    G29 ; Start mesh level
    M402 ; Retract probe

    G1 X150 Y60 Z20 F3000 ; Dock position


  • administrators

    After successful probing, the height map is automatically saved to heightmap.csv unless you specified another file, and automatically loaded.

    The two height maps you posted show significant differences, in particular a significant Z offset between them. This could mean that you have an inconsistent Z homing trigger height. Are you doing Z homing with an endstop switch or with the Z probe? If you are doing it with the Z probe, are you moving the probe to the centre of the bed before doing the G30 command? If you are homing with a switch, make sure that you do not re-home the printer after doing bed probing and before the print starts.



  • I have an FT5 so dual z motors on lead screws. (in series on board) I use a sensor for homing z. If I am reading the script correctly, i home all then start mesh level so i think i am ok as far as process goes. I do not home Z after. I think my bed gets crooked somehow and as previously mentioned am working on a single motor z upgrade that will tie both lead screws to same belt and hopefully put an end to all this. On a side note, i did a print job this morning with 6 small parts. skirt printed perfect and 1st layer on the 1st 2 parts was perfect but ph moved to 3rd part and started printing in mid air a full mm or more above deck (inside of skirt that printed fine). I fear it is not just an inconsistent Z sensor (already replaced 3 times )but movement issue movements not equal on both sides all the time. Is that possible? I thought that was only an issue when motors were off and something gets moved. Z runs on 2 small belts which are tight so doubt they are slipping. i did change my z offset this morning so here is the latest with another fresh map. Hopefully you will see something i clearly am not but yup i agree something is up with either z movement or homing, maybe both…ugh

    ; BLTouch
    M307 H3 A-1 C-1 D-1
    M558 P5 X-22 Y-9 Z4.05 H3 F200 T5000
    G31 X-22 Y-9 Z1.1

    RepRapFirmware height map file v1 mean error 0.08 deviation 0.19
    xmin xmax ymin ymax radius spacing xnum ynum
    10 260 10 240 -1 25 11 10
    0.685 0.511 0.425 0.333 0.248 0.18 0.128 0.068 0.004 -0.045 0
    0.512 0.457 0.37 0.286 0.207 0.131 0.065 0.011 -0.039 -0.067 0
    0.446 0.384 0.303 0.249 0.145 0.075 0.055 -0.03 -0.083 -0.107 0
    0.397 0.316 0.273 0.17 0.12 0.053 -0.014 -0.029 -0.117 -0.15 0
    0.332 0.261 0.207 0.126 0.075 0.009 -0.051 -0.042 -0.111 -0.178 0
    0.291 0.226 0.155 0.096 0.025 -0.002 -0.067 -0.111 -0.144 -0.177 0
    0.276 0.212 0.152 0.1 0.018 -0.024 -0.011 -0.107 -0.128 -0.176 0
    0.235 0.2 0.121 0.064 0.001 -0.043 -0.102 -0.122 -0.173 -0.178 0
    0.233 0.178 0.122 0.063 0.021 -0.05 -0.093 -0.117 -0.147 -0.167 0
    0.182 0.142 0.105 0.043 -0.011 -0.053 -0.098 -0.121 -0.16 -0.096 0


  • administrators

    It could well be that your Z motors have been getting out of sync. However, i am planning to implement bed levelling using multiple Z motors very soon, so there may be no need to change to a single Z motor. To use this facility you will need to connect each Z motor to a different driver output. Not a problem if your E1 motor output is spare.



  • Outstanding news. and as always outstanding support! I know there is a thread for dual z end sensors (FT5 forum and mks board from factory) Any point in that with the upcoming change for dual motor support? i might be bias but, your solution sounds much better than that.. What about linking the z lead screws with a 2nd belt? would that be a good idea to keep thing level or would dual motor mesh be better? I guess what i am asking is, can it get out of alignment while running? If so, i suppose that would be a hardware issue, right? I can live with manual bed leveling for a little longer no worries.

    on a side note, i have been trying to pay it forward and help when i can in the forums but good lord there are some serious brains on here (besides you) and i am still just a newbie so…. 🙂



  • i forgot, I have dual Y motors too so e1 is in use already… i guess it is time to look into an expansion board 😞


  • administrators

    @FrankNPrinter:

    I guess what i am asking is, can it get out of alignment while running? If so, i suppose that would be a hardware issue, right?

    It's common for multiple Z motors to get out of sync when you power off and on again, because each motor has to jump to the nearest multiple of 4 full steps that matches the current, and the motors may jump in opposite directions. I have some firmware work planned to reduce the likelihood of this too. However, they should not get out of step during printing.



  • Good Morning and good to know thanks! i figured as long as power was applied motors would maintain position but with a few spectacular jams in the early days, have seen it tilt the bed under power. Maybe over torque when bed hits PH? I may have some insight into my bl touch failing at start of mesh. my Z home sensor is on the left middle of the bed but 1st probe point is front right corner. it appears for 1st probe, it tries to trigger z home sensor, is that right? is there a way to move the 1st probe point to a different spot?(sorry about all the 101 questions, still learning )maybe closer to z home sensor. as it is now, it homes all then deploys probe but on 1st trigger bltouch errors out. i am wondering if that is because it triggers before z end sensor does. It drives the print head into the bed 1 time then errors. script clears alarm and it runs correctly on 2nd pass.. short version is, does bltouch look for z home on 1st trigger point? 🙂



  • I am sure you recall, i had a hell of a time getting bltouch working so was and am reluctant to trust it. I am worried about the issue where PH hits bed at start of probe sequence. Probe is triggering before this happens but appears to be ignored 1st time at least until z home lights up. without out end stop sensor, i fear what would happen… It is pretty scary to watch entire PH mount flex and it appears to stop when z end stop triggers which is well after ph hits bed... manual level is pretty close at start so no idea why it appears to be off by about 1 to 2mm when probing starts other than possible dual z motors getting offset at startup somehow.

    BTW, Great idea on the Y and Z motor swap. Can't believe i did not think of that already!... I was planning on going to single z motor so i can eventually get dual PH running. As it is now, i would have to add expansion board. I was considering a single Y motor mod too. Moving Y to Z would be a very simple change. Only question i have is, am i giving anything up by going to 1 motor on Z. seems like torque is not an issue as new motors appear more than strong enough. z is in series any way so power should be the same with just 1 motor right? (both share 1.5 amps now so single at 1.5 should be about same) all mine are .9 degree 2 amp max ( nema 17 17hm19-2004s)so decent upgrade from stock and may be strong enough for this.

    What i am wondering is, does the 1st probe point look for z sensor trigger? seems like they would not be related as probe could be substituted for sensor but might explain this odd behavior.

    I tend to lean towards hardware solutions over software whenever possible but in this instance, that may not be the best way to go...



  • @CaLviNx:

    @FrankNPrinter:

    Good Morning and good to know thanks! i figured as long as power was applied motors would maintain position but with a few spectacular jams in the early days, have seen it tilt the bed under power. Maybe over torque when bed hits PH? I may have some insight into my bl touch failing at start of mesh. my Z home sensor is on the left middle of the bed but 1st probe point is front right corner. it appears for 1st probe, it tries to trigger z home sensor, is that right? is there a way to move the 1st probe point to a different spot?(sorry about all the 101 questions, still learning )maybe closer to z home sensor. as it is now, it homes all then deploys probe but on 1st trigger bltouch errors out. i am wondering if that is because it triggers before z end sensor does. It drives the print head into the bed 1 time then errors. script clears alarm and it runs correctly on 2nd pass.. short version is, does bltouch look for z home on 1st trigger point? 🙂

    Can I ask why you are using both a switch and the probe when the probe can be used for homing purposes ?

    If you see the quote from the wiki below you can make the z probe land anywhere on the bed you want for homing the z axis

    Homing Z using a Z probe
    Z homing is normally done using the Z probe. Here is a typical homez.g file:

    G91 ; relative mode
    G1 Z4 F200 ; raise head 4mm to ensure it is above the Z probe trigger height
    G90 ; back to absolute mode
    G1 X100 Y100 F2000 ; put head over the centre of the bed, or wherever you want to probe
    G30 ; lower head, stop when probe triggered and set Z to trigger height
    Adjust the X and Y coordinates in the second G1 command according to where you want to probe when Z homing. You need to have set up the Z probe type, trigger height and threshold as described earlier.

    i would need to add a deploy probe to this right? still kicking it around and will play with that this weekend. MUCH APPRECIATED!



  • Thanks again for sharing Calvinx! I will definitely give that a try this weekend! Last time i tried it, it left a rut in the pei sheet about 6 inches long from head crash and move so yikes lol hand will be on power button whole time 🙂



  • yup, lessons learned… but mine is not quite as dramatic as yours is LOL


  • administrators

    @CaLviNx:

    @dc42:

    I am planning to implement bed levelling using multiple Z motors very soon, so there may be no need to change to a single Z motor. To use this facility you will need to connect each Z motor to a different driver output. Not a problem if your E1 motor output is spare.

    David

    You have just thrown up a question with this statement, if you remember I asked about motor connectors in relation to driver numbers in another thread which you clarified.

    In relation to my FT-5 build it would be nice to use the coming feature to level the bed, as the FT-5 uses dual Y motors, would it be feasible im this case to transfer the twin Y motors to the Duets twin Z output connectors and then put the x2 independent Z motors into the Y & E1 connectors and remap everything to allow me to implement the upcoming levelling feature ?

    Yes you can swap the Y and Z motor connectors over using M584 X0 Y2 Z1 E3:4. Or with the Z motors connected separately to the Y and E1 outputs, M584 X0 Y2 Z1:4 E3.

    Regarding your bltouch issues, unless you are deploying it when it is too low so that it triggers immediately, I suspect it is faulty. But I've never used a bltouch so perhaps there is some other explanation.


Locked
 

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