Hello Guest it is July 20, 2026, 06:43:25 AM

Author Topic: Custom motion plugin: Home()/Purge() never called + Motor Tuning graph broken on  (Read 42 times)

0 Members and 1 Guest are viewing this topic.

Offline mtl

*
  •  1 1
Hi all,

I've written a custom external motion device plugin (USB/serial connected, our own hardware) based on the official BlankMovement SDK template. The following is confirmed working:

- JogOn/JogOff are called correctly, and we drive real motion via Engine->Axis[a].Jogging
- Notify() receives real events (EX_SPINON, EX_MOTORTUNED, etc.)
- Our device is continuously, actively connected and communicating (verified via constant serial traffic)

Two things are NOT working:

1. Home() and Purge() are NEVER called - not via a real click on "Ref All Home", not via programmatically simulating DoButton(22-25), and not by setting Engine->Homing / Engine->AutoHome to true ourselves.

2. The Motor Tuning screen draws a normalized (0-1) graph and won't accept entered values, but ONLY for axes that are Enabled on the Motor Outputs screen. For a disabled axis, the screen behaves completely normally.

Question: Is there an undocumented step/flag/sequence in InitControl/PostInitControl/Update that we're missing, which is required for Mach3 to treat a plugin as a "fully authorized" real motion device for Home and Motor Tuning purposes? The SmoothStepper FAQ mentions this is related to "continuous communication with the board," but we already have that - and these two features still don't work.

Additional question: Beyond this specific issue - the official BlankMovement SDK template is just a skeleton and doesn't include a full working example where Home/Jog/Motor Tuning genuinely work end to end. Does anyone know of a publicly available, fully working open-source example plugin? A reference like that would have prevented this kind of "undocumented requirement" issue from the start.

Thanks in advance for any pointers.