Just some clarification after receiving a question about a similar problem to e-mail...
The isMoving() bug should have been solved in one of the last year's updates.
Regarding homing procedure and why machine is stopped at location not equal to zero: homing procedure is there not for positioning the machine itself to zero, but solely for the control system to know where the zero position is. Since connection between PoKeys and Mach3 does not allow high speed operation as in case of LPT port, PoKeys device does homing and probing operations by itself (as any other external motion controller). PoKeys does it this way:
- return towards home switch until switch is hit
- slowly back-off the switch until switch is released
- in the exact moment when the switch is released, the position of the machine is saved (reset) and machine is commanded to a stop. Since the velocity of the machine at this point is greater than 0, it can not be stopped instantaneously, but moves a few ticks away from home position.
So, internal position counters are precisely reset at home position although the machine stops out of it. It might be different from Mach3's own homing, but the procedure above was proved to be very reliable and accurate on different machines.
Regarding the need for the latest Mach3 version: due to bugs, there have been changes to the internal structures that Mach3 exposes to plugins. As Mach3 plugins require the exact same memory alignment as it was used when compiling the plugin, the latest Mach3 version is required for PoKeys plugin. As certain PoKeys plugin functions require the new bug-free version of Mach3, we can not simply compile it agains an older SDK as it would break the plugin functionality.