synthetos / TinyG

Affordable Industrial Grade Motion Control
https://github.com/synthetos/TinyG/wiki
891 stars 293 forks source link

Power management behaviors #28

Open aldenhart opened 11 years ago

aldenhart commented 11 years ago

I have reverse polarity set for my x and z axis (“$1po=1″, “$3po=1″), and always-on power management for all my motors (“$1pm=0″, “$2pm=0″, “$3pm=0″).

If I’m at (0,0,0) in mm mode, send “g0x10y10z10″ then “g0x0y0z0″, this will start sending current to all motors (3 green lights).

If I send “g0z1″ (small positive z move), it makes the move but current stops flowing to motor 3. If I then send “g0z0″ (small negative z move), it makes the move and current continues to flow after the move. The same behavior exists for my x axis (current stops flowing after small positive x moves).

I cannot reproduce that behavior on my y axis. If I turn off the reverse polarity (“$1po=0″, “$3po=0″), I cannot reproduce the behavior.

In the non-failure case, it seems like there’s a small lag between finishing the move, and current flowing continuously, where current does not flow (the light turns off momentarily after finishing a move, then turns back on again).

v6, build 338.12 ($$: http://pastebin.com/EJDGARRf)

mikest commented 11 years ago

I took a crack at changing around how the power mode settings work. In https://github.com/otherlab/TinyG/commit/4137ac800a0f6922a7724230c003161549fae7f5

from this bug, it seems like i might need to make a change?

i power on all axis when doing any motion, but it sounds I should have a timer that only turns off power after a few seconds of no motion on any axis, as opposed to toggling it on and off.

aldenhart commented 11 years ago

TODO: Allow movement on any axis to enable power to all (non-disabled) axes. Put a release timer in place to remove power after a settable interval that may extend to minutes. ALso make power management setting take effect immediately - see Issue #26