Spindle Warm Up Program?

Is anyone running a warm up program for their spindle? In a production/industrial setting, I always have used one so curious if anyone is doing so for their 1F spindle upgrades.

@PwnCNC any thoughts on this? I’m using your kit and digging it.

Hey Jace,

in my spindle’s manual (a 6,000–24,000 rpm 2.2 kW water-cooled spindle), it says:

10.2 Spindle run-in

A cold spindle must always be run in thoroughly before it is put into operation in order to gently bring the bearings up to operating temperature. The stated run-in times are to be doubled if the spindle has not been used for more than a week, is brand new, or the bearing has been changed.

When running in, the speed should be set to the minimum (6000 rpm) and maintained for at least 1 minute. The speed can then be increased in steps of 6000 rpm and must be maintained for a further minute each time. The speed is gradually increased until the desired operating speed is reached.


Super helpful! Thanks!!
I’ll write a program for that.


Any luck on writing that program?

I would be interested as well

Hey Dan,

for a 6 000–24 000 rpm spindle this would be:

S6000 M3
G4 P60
G4 P60
G4 P60
G4 P60

spindle_warmup.ngc (67 Bytes)


I am using a Masso controller, but wrote simple routines to warm/oil up my CNC linear motion components, and also one to warm up my spindle.

You can modify the gcode as needed…

CNC warm up routine FINAL - no spindle - G code NC file.NC (588 Bytes)

Here is a short YT video I made showing it working … https://youtu.be/T9MNBNa1yeo

SPINDLE warm up routine FINAL - G code NC file.NC (236 Bytes)

1 Like

Is there too cold of a temp for a spindle? Before I made my chiller my HY would get warm to the touch (just a 3 gallon bucket of water and .2 gpm flow) after a half hour or so. Now I bumped the flow up to .35 gpm and if I turn the fan on low the spindle doesn’t even slightly change temp.

In the winter my basement is mid 60sF. Ran the spindle for 3 hours with the fan on medium and I think it was actually cooler than the surrounding air. For the next cut (2 hours) I had the fan set to low and I don’t think it got any warmer. The final cut was done without the fan and it warmed up a couple of degrees above the air temp, barely enough to feel it by hand.

The HY was just a starting out spindle with the idea of replacing it down the road with something nicer. I don’t care too much if I damage the bearings on it but would if it was an expensive German unit.

I’m going to make a basic rotary and need to machine some aluminum. So I’ll be running the spindle a lot slower than I normally would. I don’t think getting too hot will be an issue with my chiller. I just need to figure out how much power it’ll be down to calculate the correct feed and speed.

Hey Alex,

in the manual of my spindle, the manufacturer only writes about a maximum temperature (during operation), not a minimum. Coolant has to be kept under 30 °C (86 °F) at the output of the spindle and the spindle shall be stopped and alarm at 40 °C (104 °F).

Regarding storage of the (non-operating) spindle, it says to store it between -5 °C (23 °F) and +50 °C (122 °F) and at an air humidity of <15%.

The spindle coolant I use contains so much ethylene glycol (“antifreeze”) that it won’t freeze.

{t}°F = {t}°C · 5/9 + 32

1 Like

When I got my Shopbot (Desktop) several years ago, they recommended a 10 minute spindle warm-up routine. So I did a 6000, 8,0000, 10,000, 15,000, 24,000 spin up to get it warmed up and settled in. Two minutes at each speed increment. The slow ramping from min to mid speeds followed by bigger jumps once it was warming is easier on the bearings (or so they said). It’s a 2 1/2 times longer than yours but I just fire it up and then go about getting my end mills, joypad, etc out and ready for use. By the time everything’s ready, the spindle is all warmed up.

I’ve used the same program ever since.


Thank you for the quick response, now how do I make this work?
Can I make the cnc automatically do this when i turn on the machine?
Can I assign the warm up to a button on the masso?

Please forgive me in advance, my computer skills are lacking aside from checking emails and joining this forum so please do not be afraid to dumb it down for me I will not take offense

Hey Dan,

you can click the download link (spindle_warmup.ngc) in my above post, save the file on your computer, put the file on a USB stick and upload it to the CNC controller. On the buildbotics-derived Onefinity Controller of the Original and PRO Series, you can also have a SMB share somewhere in your local network with g-code files, or when connected from a remote computer, simply upload it from the computer you are on. I don’t know what options the MASSO has to do such things. Maybe you can also program a macro in your Controller, in this case you would enter the code into the macro field, but I don’t know the MASSO as I don’t have one (nor do I plan to buy one). On the buildbotics-derived Onefinity Controller of the Original and PRO Series, Onefinity works on a firmware update that supports macros so you could simply have a “spindle warmup” macro button. What you can do on the MASSO G3, is to have an autoload.nc program that is run when you power the controller on, you could put the g-code there. In this case I would add a line at the beginning that says…

M0 (msg, Run the spindle warmup program?)

…which would make appear a popup window and wait until you first click the “okay” button. The MASSO Documentation page mentioned above also describes assigning g-code programs to real hardware buttons that you can attach at input terminals of the controller, this way you could implement a “spindle warmup” button.


Once the latest version of the BB firmware is stable it’ll have macros that you can run. You could easily assign the program as one of the macros so it’ll be almost no effort to run it.

Both you all, (Aiph5u & Dr-Al), are awesome just some more questions for an illiterate computer guy and somewhat newbie to the CNC world.

How do I set up macros in the MASSO G3

You both mentioned it but how do I make a button or have the MASSO ask me to warm up the spindle?

Does anyone else have an idea or dumbed down version that someone like myself can easily follow and understand?

Step 1…….
Step 2……
See figure 3

Hey Dan,

Maybe someone who has a Masso G3 (I don’t) should do that. But I can help you by suggesting you should simply follow the links to Masso Documentation I provided.

a. The pushbutton version is a little more complicated as you will have to deal with cables and screw terminals: The Masso allows attaching simple electric pushbuttons, each to one of 6 available “Autoload G-code input” terminals on the Masso G3 Controller, which is described here with a simple circuit diagram, and then assign a *.ngc g-code program to it, which is described under “Loading gcode file on Input signal going high” on this page. See also this forum page or this page where someone created a control board with buttons. The .ngc program file would contain the code above.

→ You can create a .ngc program with a text editor of your choice (like Notepad), by typing the code I posted above into the text editor and save it as “spindle_warmup.txt” and then rename “spindle_warmup.txt” to “spindle_warmup.ngc”, and voilà, you have g-code file that your machine can execute. You can put it on a USB drive, connect it to the Masso Controller and select the program to execute it.

To let it execute automatically by a specific pushbutton that you attached to the machine, you would have to first rename it to “autoload1.nc” or “autoload6.nc”, depending on which of the six available inputs you assign your button. If it is called this way it is found on the USB pen drive and will be selected by the corresponding button that you connected to the controller.

b. Under “Automatically loading gcode file on power up or when connecting USB pen drive” on the same page of Masso documentation, they say you can also rename your “spindle_warmup.txt” file to “autoload.nc” and put it on a USB pen drive, and it will be executed as soon as you connect the USB stick to the Masso G3. That is the simpliest solution.