any way to detect unwanted rotation?



  • We were fighting weird Z position for days on one machine to find out that Z was dropping on us when Z motor go into idle and is not capable of holding the Z at it's set 30% of power. Now we solved the problem by upping the Z motor current but few questions are raised here (duet2ethernet board):

    1. is there a way to setup idle current for different axes differently (for e.g. XY to be 30% and Z to be 90 or 100% ?)

    2. is there a way to detect this movement? So axis is is in "holding mode" and motor start rotating by external force; can TMC detect this



    1. AFAIK currently there is just a single idle % for all axes, if you change just one, all will update and it doesn't accept muliple values ala In:n:n:n:n

    2. I don't think the TMC drivers can effectively use the stall detection from stand still, at least not the current range, or at least that was the conclusion when I asked a while back.

    Can you adjust the actual motor current instead of the idle current instead?

    could perhaps attach an encoder and use a trigger, but not sure you can easily disable the trigger automatically when an axis is in idle mode.



  • Hi,

    What hardware are you using on your Z axis?

    Frederick



  • @arhi

    I'm not 100% sure but using multiple M906 commands might work. e.g.

    M906 X1800 Y1800 I20

    M906 Z1800 I90



  • @deckingman said in any way to detect unwanted rotation?:

    multiple M906 commands might work. e.g.

    nah, tried it

    @bearer said in any way to detect unwanted rotation?:

    if you change just one, all will update



  • @bearer Oh well, it was worth a shot. So any M906 Inn applies that percentage holding current to all axes, regardless of which (if any) axes are specified? That seems a little odd.

    @arhi This sounds like a request for the firmware wish list.



  • @deckingman said in any way to detect unwanted rotation?:

    So any M906 Inn applies that percentage holding current to all axes, regardless of which (if any) axes are specified? That seems a little odd.

    thats indeed what it looked like when i tested it

    6/19/2020, 8:49:25 PM	M906 X1000 Y1000 Z1000 E1000 I30
    6/19/2020, 8:49:32 PM	M906
                            Motor current (mA) - X:1000, Y:1000, Z:1000, E:1000:1000:1000:1000:1000, idle factor 30%
    6/19/2020, 8:49:44 PM	M906 X1000 I40
    6/19/2020, 8:49:48 PM	M906
                            Motor current (mA) - X:1000, Y:1000, Z:1000, E:1000:1000:1000:1000:1000, idle factor 40%```


  • @bearer @arhi

    How's this for a crazy thought. Set idle hold current to 100% and use M913 instead. You can set that per axis. So, maybe you could have two macros that uses M913 to set the current per axis. One macro would set the current percentage equivalent to idle hold, and the other would restore it to 100%. You call the first one from the end of config.g and at the end of every print or homing file. The second one would need to be called before every print (and possibly homing file although reducing the current for homing is no bad thing).



  • I was wondering if an individual axis would enter idle mode or not; is the problem only relevant between prints when all axis would be idle?



  • @fcwilt said in any way to detect unwanted rotation?:

    Hi,

    What hardware are you using on your Z axis?

    two times T8x8 lead screw each with some nema17 motor driven separately.

    When you turn the machine off the whole Z slowly drops down (the basic hardware is wanhao D9 500x500 version but it is heavily changed)



  • @bearer said in any way to detect unwanted rotation?:

    1. AFAIK currently there is just a single idle % for all axes

    Yes, it is the result of my tests too

    1. I don't think the TMC drivers can effectively use the stall detection from stand still, at least not the current range, or at least that was the conclusion when I asked a while back.

    😞 too bad
    I was hoping I can use this to figure out when the "drop" happens so that I know if current settings is enough or not

    Can you adjust the actual motor current instead of the idle current instead?

    In order to get idle current to hold the Z safely, the running current is way too much over the spec of the motor

    could perhaps attach an encoder and use a trigger, but not sure you can easily disable the trigger automatically when an axis is in idle mode.

    Temporarily we solved the problem by I100 so no motors go to idle ever.

    Final solution - we ordered T10x2 acme threaded screws, that will hold the Z even without any current applied to motors but there's few weeks delivery time so I wanted to see if there's a way to handle this in the meantime



  • @arhi This sounds like a request for the firmware wish list.

    TBH I think dc has more than enough stuff on his plate attm without "unnecesary" features. At the end of the day this is poorly designed mechanics, the T8x8 is just not able to hold the Z axis on it's own (mostly 'cause we made it heavy by adding half a meter of steel linear rail there + a big heavy X-carriage ... we had issues with original mosquito the screws were melting petg and it was falling out so we added a 3mm steel plate between mosquito and the extruder so we can screw mosquito in to the steel plate so it does not drops any more ... all that with a nice beafy maglev blowing 100% trough the heatsink) ... we also replaced the plastic part that was holding belts as the heat from the fan blowing trough mosquito heatsink was making petg "soft" and the belts were slipping... 2 huge blowers etc etc etc .. and the Z became heavy ... works awesome, no ringing etc.. but drops down) ... I had similar problem on my ender5, the original T8x8 was dropping down like a stone when I added glass on my bed so I replaced with T8x2 and now it works like a charm, but PRC won't ship to Serbia any more (or, they actually do, but minimal shipping cost is over 60eur) so we had to source leadscrew locally and 10mm is smallest we found so we ordered 10x2, should work even better than 8x2 but we need to wait a week or two before it arrives... and I wanted to see if there's anything "easy" we can do till we replace the screws



  • @bearer said in any way to detect unwanted rotation?:

    I was wondering if an individual axis would enter idle mode or not; is the problem only relevant between prints when all axis would be idle?

    from what we experienced Z will go into idle many times during print .. if we turn on Z-hop the Z stay ok, but with Z-hop off we have Z issues, and if you print something off center one side will drop more than the other.. very weird issues happen we were going crazy, could not setup Z height properly for days, destroyed (Rather expensive 500x500) pei sheet .. took me a while to suggest idle current might be the problem



  • @arhi said in any way to detect unwanted rotation?:

    but PRC won't ship to Serbia any more

    temporary covid-19 measures methinks, regular air mail is partly suspended. I also only get courier options for most deliveries, with matching prices.

    Back on topic, I don't think individual idle settings is a "unnecesary" feature request with the ridiculous expandability of the Duet3 there will be bound to be more use cases for this; and Duet3D can choose to put it at the bottom or ignore it as they see fit.

    ofc a new screw sounds like a good idea in any case.



  • I agree that this should go on the wish list. It may be very low priority but if it isn't brought to DC's attention, it will never get implemented. Duet supports pretty much any kinematics, and there are some pretty crazy ones out there which might benefit from having different idle hold percentages for different axes.



  • @bearer said in any way to detect unwanted rotation?:

    @arhi said in any way to detect unwanted rotation?:

    but PRC won't ship to Serbia any more

    temporary covid-19 measures methinks, regular air mail is partly suspended. I also only get courier options for most deliveries, with matching prices.

    Something else completely I'm afraid. It started before covid, our post office was in strike for months and were not delivering packages so they have ton's of packages in the post office (they call it "wall of china"). We are talking about packages that are 5-6 months "arrived to destination country" but "not delivered" so huge amount of disputes was probably the main reason. This site is showing that attm we are on "90 day suspension", they are updating that from time to time so we'll see if/when they lift the suspension; but that strike costed us a lot 😞 Worse of all, from what I heard post workers didn't get anything at the end 😞

    Back on topic, I don't think individual idle settings is a "unnecesary" feature request with the ridiculous expandability of the Duet3 there will be bound to be more use cases for this; and Duet3D can choose to put it at the bottom or ignore it as they see fit.

    Yes, with the updated duet2 (I read somewhere new duet2 with sam5 is arriving) and with duet3 and all the upgrades... makes sense to have idle per motor. I don't know if the idle current is set by the RRF or it is a settings for a driver and drivers sets it automatically?



  • @deckingman said in any way to detect unwanted rotation?:

    but if it isn't brought to DC's attention, it will never get implemented

    done


Log in to reply