I have found a work-around, but wondering if anyone can point me to a 
better solution.

I'm building a second CNC machine (another EMCO F1 with steppers), 
using the same type of Sound Logic breakout board I used for my first 
machine.  However, I didn't use the charge-pump circuit on that first 
machine, and this time I did.

The symptoms are that EMC, using a stepconf-generated configuration, 
won't bring iocontrol.user-enable-out high if EMC is started when the 
controller is on and the controller estop is inactive.  I finally 
found this work-around 
(http://www.linuxcnc.org/irc/irc.freenode.net:6667/emc/2009-04-22.txt 
at 20:15:13), which is to activate the estop on the controller, then 
click on estop in EMC, then release the controller estop.  This 
somehow resets EMC's internal state.  It works very reliably.

One thing I did was to run stepconf with two different 
configurations--one with an external (that is, controller) estop, and 
one without.  The one without an external estop runs fine--generates 
the charge pump signal and so on when the EMC estop is toggled, and 
so on.  The only differences are in the <nameOfMill>.hal file (all 
the other files look the same):

With estop:

net estop-ext <= parport.0.pin-10-in-not
...
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in


without (external) estop:

net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in

So this puzzles me--why does the second one work?  user-enable-out is 
acting fine there, but not in the first case.

I put up two halmeters, one on user-enable-out and one on 
emc-enable-in, and could watch the two cases.  Using 
(iocontrol.0.emc-enable-in, iocontrol.0.user-enable-out) as a 
shorthand, this is what happens for the external estop case:

Start up EMC, controller is already on, controller estop is inactive: (1,0)
Activate estop on controller:  (0, 0)
Click on EMC estop:  (0, 1)  (note--user-enable-out is finally on, 
the charge pump is now active)
Take controller estop inactive:  (1, 1)  and the machine is usable.


I went back and checked--my older EMC (2.2.8) exhibits the same 
behavior, but it was never a problem because I don't use a charge 
pump.

I tried to find out more about what might be causing EMC to output 
iocontrol.user-enable-out low, but couldn't find anything in the docs.

So, one option is to live with the work-around.  Another is to not 
use the charge-pump.  But is there something else I can try?  Am I 
even looking at this the right way?

Thanks.

--Dale

------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to