OK, further testing has helped me narrow the problem down.
If I start Mach4, and hit either of the Spindle CW or Spindle CCW buttons, the appropriate relay is selected but I get no PWM. If I go to MDI and issue a spindle command (M03 S24000 for example), everything works perfectly. I get exactly the right PWM, the spindle spins to 24K CW. From this point on, ALL buttons and sliders work perfect. The On/Off CW/CCW and speed slider adjusts the spindle exactly how it's supposed to! It's only when Mach4 starts up and before issuing an MDI command manually that PWM will not work. I checked into the screenset (using wxRouter) and I see that the CW button calling a lua script called "StartCW()" which I assume is an internal script.
I am doing my best learning about screensets and Lua scripts, but it seems like when Mach4 starts, some variable isn't passed into the Lua script to give it a value for the PWM/Speed? I'll continue learning about this, but if anyone has an idea on what might be missing on startup, I'd appreciate any pointers.
Thanks!
James