The problem with the homing report is the destruction of data. When the home position is found, the machine position count is set to zero (or whatever the HOME_OFFSET value is). So, the old home position is destroyed by that operation. To stay with the canonical encoder definition as it is, you would have to store the position JUST before the home operation completed. I think you could make a custom HAL component that recorded the machine position every servo cycle. Whenever it saw ENCODER_INDEX transition from true to false, it would save the value recorded from the previous cycle. This would be the position one millisecond (at the default SERVO_THREAD rate) before the home position was found. I think this would give you a pretty consistent way of checking for drift of the home position. On the first home whe EMC is started, it would show the distance traveled from where the machine was to the home position. On later homing operations, the value should be very close to zero, assuming the approach to the home switch is slow. (Maybe watching ENCODER_INDEX only works where the index pulse is being used, how does the position count get set for stepgen, for instance? I'm only familiar with servo-like interfaces.....)
I think this will work if there's a signal that tells you the home operation is happening NOW, and doesn't require any change to EMC2 itself. You would monitor this with HalMeter or the show hal signals menu. Jon ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users