-
Notifications
You must be signed in to change notification settings - Fork 581
Description
I'm using a cheap CNC with a PWM driven 300W DC spindle, and M3 SXXXX commands get it to rotate way faster than it should, which is fairly common on non-VFD controlled spindles. For example, while S12000 get it rotate at 12000 rpm (max speed), S6000 will give 11500 rpm instead of expected 6000 rpm. To really get the spindle to rotate at 6000 rpm, I need to use S750.
I'd like Candle to support an RPM to S map, i.e. a user table/csv file/setting including several S values and corresponding measured RPMs, so that SXXXX commands will be sent to the router with a mapped/interpolated value that will cause the spindle to rotate approximately at XXXX rpm. So S6000 will actually send S750 in my example.
I've considered using my mapping directly in my CAM software (currently ESTLCAM) but doing so causes it to miscalculate cutting speeds, which are key to properly set movement speeds.
As a quick and dirty solution I've hard cabled my mapping into a C function and used it in gcodeviewparse.cpp to convert the value4s on the fly.