Occasional hotend crashes into bed during mesh calibration



  • Hi,
    So, slightly similar to https://forum.duet3d.com/topic/7365/hotend-crashing-into-bed-during-auto-calibration, but I have P1 already set, and it is not always this issue happens..

    I have Duet 2 ethernet, v2.02 fw, Cartisian 1m3 printer, with IR sensor (with SMDs) near hotend... occasionally when doing mesh calibration the sensor does not trigger on the Duet, whilst the LED does light up on the IR board - I have revised also https://miscsolutions.wordpress.com/mini-height-sensor-board/, "Troubleshooting, LED turns on/off to indicate triggering, but the printer firmware does not recognise whether or not it is triggered", but it is not clear how I may correct pullup resister values if they would be too high, as I am getting the expected 4 flashes on power up, and am using a Duet anyway...

    To add complication, although this has been a very occasion issue with PLA (no heated chamber), curiously, when pressing "Auto Bed Compensation" it generally failed at the same point, if it failed (probing stops as no trigger detected, head rams against bed to -4, when my axis limit is -1!), but when using "Run Mesh Grid Compensation" it fails less often, and generally at a different point! As far as I can observe, "Auto" runs a Home first, whilst "Run mesh" does not, it just starts (as long as machine was already homed).. both give a height map once/when finished.

    I would also like to learn how to configure a "backup" endstop - the Z-endstop works fine, is magnetic, so when the probe fails to trigger no damage is done to the endstop, but I would like that, if the probe fails, the Z-endstop trigger stops any further Z move, as, this morning, when doing a G30 in the center of the bed, a one-off probe that up until now has always worked first time, today did fail, and went a lot more than -4mm, bending the heatbreak a lot... either that or that the machine respects the axis min of Z-1 that is in my config when doing a Z probe...

    And now to make things worse (but possibly can id the issue as well?)! :
    This printer is (supposedly) ready for ABS, being contained in a metal box all the motors and rails, however when set to only 60ºC the heated chamber, the bed height now varies just over 2mm higher, and the bed surface itself suffers some bending, to the extent that it is now necessary to do a new grid compensation, however now the issue is much more repetitive, so much that cannot finish a complete probe - until I remember that troubleshooting, and also that resisters increase resistance with heat, and that the Duet is in a place where it is also heating up (not so much, somewhat) - and placing a fan directed at Duet now permits finishing the Bed Compensation - but does not get rid of completely the issue as still occasionally fails - with todays spectacular fail of the G30!

    So.. if this issue is from a pullup resister on the Duet being borderline slightly too high (?), I remember that for Duet 0.6/0.85 there was a way of indicating the thermistor resister value - any way this can be indicated in the config? Or any idea what else could be the issue here?
    And how can I enforce axis min so that they are not exceeded? Or perform a stop when the Z-endstop is triggered to avoid such exaggerated bed movements in negative..?

    Any opinions would be appreciated!

    Thanks!
    config.g



  • I realise that with the z-probe I was not using the z-endstop - I have now changed back this behaviour and home now does x,y & z, but I have also moved the z-endstop up to about +3mm, so z-home sets Z to +3mm, to avoid the hotend hitting the bed even when there is any change in height with the machine heated up...

    So another quick question: Now that Z0 is known after homing to endstop, will the machine respect my axis min of -1mm when doing Z-probe?
    Obviously I am pretty nervous about testing this on the machine... !


  • Moderator

    @andymidtf said in Occasional hotend crashes into bed during mesh calibration:

    As far as I can observe, "Auto" runs a Home first, whilst "Run mesh" does not, it just starts (as long as machine was already homed).. both give a height map once/when finished.

    auto is likely running G32, which is bed.g, which you should check to see how it's written. It probably has a G28 to home followed by G29 to run mesh compensation. Where as "run mesh grid" is just calling G29.

    @andymidtf said in Occasional hotend crashes into bed during mesh calibration:

    v2.02 fw,

    It may be a good idea to update your firmware to 2.05.1 and DWC 2.0.7 so that you have the benefit of any of the many bug fixes since then. It will make troubleshooting any remaining issues easier.

    When doing a homing routine or a mesh grid routine etc it is a good idea to reduce the motor current so that in case of a crash, the motor will stall before any real damage can occur. This would remove the need for a backup endstop, which is possible, but you would have to configure it as an emergency stop.

    Is the Duet inside the heater enclosure? It would be preferable to have the Duet outside if that's the case.

    @andymidtf said in Occasional hotend crashes into bed during mesh calibration:

    either that or that the machine respects the axis min of Z-1 that is in my config when doing a Z probe...

    It can't respect that during a homing move because it's in the process of trying to identify where Z0 is. If the probe doesn't trigger, it can't know that it's pushing into the bed. We must solve the problem of the probe not triggering.

    @andymidtf said in Occasional hotend crashes into bed during mesh calibration:

    I realise that with the z-probe I was not using the z-endstop - I have now changed back this behaviour and home now does x,y & z, but I have also moved the z-endstop up to about +3mm, so z-home sets Z to +3mm, to avoid the hotend hitting the bed even when there is any change in height with the machine heated up...

    Please post your config.g

    @andymidtf said in Occasional hotend crashes into bed during mesh calibration:

    Now that Z0 is known after homing to endstop, will the machine respect my axis min of -1mm when doing Z-probe?

    No, for the reason stated above. G30 is a seeking move. It will travel until it triggers. If it doesn't trigger, it will keep traveling. The issue of the probe must be resolved.



  • @Phaedrux said in Occasional hotend crashes into bed during mesh calibration:

    auto is likely running G32, which is bed.g, which you should check to see how it's written. It probably has a G28 to home followed by G29 to run mesh compensation. Where as "run mesh grid" is just calling G29.

    OK! yes, my bed.g is G28 followed by G29

    It may be a good idea to update your firmware to 2.05.1 and DWC 2.0.7 so that you have the benefit of any of the many bug fixes since then. It will make troubleshooting any remaining issues easier.

    I will update now...

    When doing a homing routine or a mesh grid routine etc it is a good idea to reduce the motor current so that in case of a crash, the motor will stall before any real damage can occur. This would remove the need for a backup endstop, which is possible, but you would have to configure it as an emergency stop.

    I am running all NEMA 23 from the external driver board, via their own drivers, so cannot reduce current via software... at the moment the dual Z motors are at 1.9A - I have just done a test reducing to 1.0A, but the right motor then cannot raise the weight of the bed - at 1.5A the bed seems to move fine, but also seems to have enough power to do damage... 😕
    Ideally I would like the z-endstop as a backup endstop, I don't mind that it is an emergency stop, it would be better like that than the damage it is making now - perfect situation (if the only option is as an emergency stop) would be to be able to use the z-endstop to do a normal home, then use as emergency endstop if the bed passes -1mm during the z-probe... right now I have the z-endstop at +3mm, so absolutely no contact with the bed even if the heated chamber causes the bed surface to bow up (but am presently changing for an aluminium bed anyway)

    Is the Duet inside the heater enclosure? It would be preferable to have the Duet outside if that's the case.

    it is in a space "in between" the heated area and the outside of the machine, so it gets heat from the inner surface.. but I have just installed a permanent fan in the access door, so it is always getting cold air from outside - MCU is running at 36ºC now, when without the fan it was at about 55ºC

    @andymidtf said in Occasional hotend crashes into bed during mesh calibration:

    either that or that the machine respects the axis min of Z-1 that is in my config when doing a Z probe...

    It can't respect that during a homing move because it's in the process of trying to identify where Z0 is. If the probe doesn't trigger, it can't know that it's pushing into the bed. We must solve the problem of the probe not triggering.

    I was hoping that, as a normal home had been done just before, the G29 or G30 would be aware of Z0, and therefore could be able to respect Z-1 as its limit to search for the bed... but totally agree that have to solve the problem with the probe...

    Please post your config.g

    had posted at the end of first post 😉

    No, for the reason stated above. G30 is a seeking move. It will travel until it triggers. If it doesn't trigger, it will keep traveling. The issue of the probe must be resolved.

    nor G29? some way of not resetting zero before making the probe?

    ...

    A question that may help find the max current for the z-motors that would push the bed but do least damage: I think I can use RRF3 on a Duet2 ethernet? would the M574 Z1 S4 P"zstop" work with the external driver boardand RRF3? At the moment I am using 1.5A as 1.0A won't push the bed up...(and the external drivers don't have anything in between) In theory I could use the Z-motors direct from the Duet (2.4A = 1.2A per motor..?), if the bed can move with this current then I could possibly take advantage of motor stalling instead of/ as well as the z-probe, or as the emergency stop (even better! as could use normal home as well)

    thanks!


  • Moderator

    @andymidtf said in Occasional hotend crashes into bed during mesh calibration:

    I am running all NEMA 23 from the external driver board, via their own drivers, so cannot reduce current via software... at the moment the dual Z motors are at 1.9A - I have just done a test reducing to 1.0A, but the right motor then cannot raise the weight of the bed - at 1.5A the bed seems to move fine, but also seems to have enough power to do damage...

    Ah, I see. That is a different situation entirely. All the more reason to have a properly functional probe. Having an endstop setup as a fallback E stop makes more sense in your situation.

    https://duet3d.dozuki.com/Wiki/Connecting_an_Emergency_Stop

    This may give you some ideas.

    @andymidtf said in Occasional hotend crashes into bed during mesh calibration:

    MCU is running at 36ºC now, when without the fan it was at about 55ºC

    That's much better. Have you also calibrated the CPU temp sensor to ensure your reading is accurate? https://duet3d.dozuki.com/Wiki/Calibrating_the_CPU_temperature

    @andymidtf said in Occasional hotend crashes into bed during mesh calibration:

    I was hoping that, as a normal home had been done just before, the G29 or G30 would be aware of Z0, and therefore could be able to respect Z-1 as its limit to search for the bed

    That may not be a bad idea, but it would be a rather unusual situation for most cases. Typically the probe would be homing the Z axis from an unknown state. It would be very unusual for a user to have the axis homed before probing (Delta printers aside). This would make for a good suggestion in the firmware wishlist section. However, now that conditional Gcode is available in RRF3, you could probably arrange something to modify the probing behaviour when the machine is already homed, but that still wouldn't change the behaviour of G30.

    @andymidtf said in Occasional hotend crashes into bed during mesh calibration:

    nor G29? some way of not resetting zero before making the probe?

    I'm not sure what you mean here. G29 is just a series of G30 probe moves using the M557 grid to define the points to probe.

    @andymidtf said in Occasional hotend crashes into bed during mesh calibration:

    At the moment I am using 1.5A

    Yes those could be driven directly by the Duet since they are well within the 2.4A limit. That could make stall detection a viable option, though it does have it's own limitations and must be tuned carefully. Even so, it is a risky method of homing unless you can ensure that the motor current is low enough to not do damage in a failure situation. And if you can do that, it would likely be better to use the normal probe.



  • @Phaedrux
    Sorry for the delay, don't come to this machine unless is failing (again!)... 😉

    So just a couple of things; the z-probe issue in the end was bad wiring - the cable chains where the cables pass thru have apparently ended up wearing out the cable, as I had finally noticed that the issue was mostly present in the same (approx) area of the Y axis... I tried a new cable running outside the cable chain and problem is gone, probe runs perfectly now.. put the new cable inside the cable chain and all continues to work fine now!

    And, about the delta requiering home before probe, how does RRF do that which I would like to do on cartisian?


  • Moderator

    @andymidtf said in Occasional hotend crashes into bed during mesh calibration:

    And, about the delta requiering home before probe, how does RRF do that which I would like to do on cartisian?

    On a delta the towers will home to the max position and then establish the bed position Z0 with a probe. You probably already do the same for a cartesian since the XY position is already homed before moving to the center of the bed to do a G30. So I'm not exactly sure what you mean.


Log in to reply