Spindle speed and M3

Has anyone tackled spindle speeds?

The post process, I see “M84 S12000”. But my spindle is controlled with PWM, 0-255, where 255 is around 12000 RPM. I could put the spindle speed in Fusion to 255, but that would mess up the feed calculations.

Is this something tackled in the Marlin firmware perhaps where I say 12,000 RPM translates to a value of 255 PWM? I have not seen anything in guffy’s post processor.

I don’t personally have a spindle, but I have a guess on how this works based on the comments in the configuration_Adv.h file. First there is this section:

 /**
   * Speed / Power can be set ('M3 S') and displayed in terms of:
   *  - PWM255  (S0 - S255)
   *  - PERCENT (S0 - S100)
   *  - RPM     (S0 - S50000)  Best for use with a spindle
   */
  #define CUTTER_POWER_UNIT PWM255

This implies to me that you select one of three ways that the S parameter can be interpreted at the time you compile Marlin. The above code is pulled from the V1 maintained Rambo firmware, so in that particular version, the S parameter is expected in the range of 0 to 255. If all you have is a spindle, my guess is that you would want to change the line to:

#define CUTTER_POWER_UNIT RPM

A bit below this define, there are two other defines that may play a role in how the RPM parameter is intrepreted:

#define SPEED_POWER_MIN            5000    // (RPM)
#define SPEED_POWER_MAX           30000    // (RPM) SuperPID router controller 0 - 30,000 RPM

My guess is that Marlin uses these to map the spindle speed into the PWM value output on the pin. Any ‘S’ value below 5000 in the g-code gets mapped to 0, and any ‘S’ value a above 30000 gets mapped to 255.

That’s awesome, thanks! I got it fixed up. Not sure on the lower end speed of the 500w spindle or how it maps but I think this will do nicely :slight_smile:

There have been recent posts in the forums that @tjones99 found a bug in the RPM method. Check the Control Spindle RPM through RAMPS topic for the gory details. I don’t know whether the fix he describes has been incorporated into the Marlin codebase yet.

(edit to give credit where credit is due)

1 Like

Thanks for the plug, but can’t take credit for that, @tjones99 found and fixed it. My thread is more about the hardware of connecting the RAMPS to the spindle’s PSU.