Operating Guide7 min readCNC operators and shop managers

CNC Spindle Warm-Up G-Code Script

Why cold-starting a high-speed spindle at 24000 RPM destroys bearings. Copy-ready G-code warm-up scripts, thermal equilibrium principles, and daily operating discipline for ceramic and steel bearing ATC spindles.

Warm-upG-codeBearing lifeThermal

On a cold winter morning, starting your ATC spindle at 24000 RPM without warm-up is the fastest way to damage its bearings. The sequences below provide ready-to-use G-code warm-up scripts and explains the thermal physics that make them essential.

Why cold-starting a spindle is destructive

After sitting idle overnight, the bearing grease has settled under gravity and cooled to ambient temperature. The spindle shaft, bearing rings, and housing are all at different temperatures and have not yet expanded to their running dimensions. Starting at full speed under these conditions is engineering negligence.

Grease distribution problem

When a spindle sits idle, bearing grease settles to the bottom of the bearing cavity under gravity. The balls in the upper portion of the bearing may be running with insufficient lubrication film for the first several minutes. At 24000 RPM, a single ball running dry for even 10 seconds can generate enough frictional heat to degrade the grease locally and initiate surface damage on the ball or raceway.

Thermal expansion mismatch

The spindle shaft, bearing inner rings, outer rings, and housing are made of different materials (steel shaft, ceramic or steel balls, steel races, cast iron or aluminum housing) with different thermal expansion coefficients. At room temperature, the bearing preload is higher than the design running value. As the spindle warms up, the components expand at different rates, and the preload settles to its intended value. Running at full load before this equilibrium is reached means the bearing is operating with incorrect preload — increased friction, higher temperature, shorter life. For a deeper comparison of how bearing material choice affects warm-up behavior, see our steel vs. ceramic bearing guide. Once warm-up is complete, verify bearing health with a spindle runout measurement.

The thermal equilibrium staircase

A proper warm-up is a stepwise progression through speed bands, not a linear ramp. Each step allows the spindle to stabilize thermally before advancing to the next speed.

1. 6,000 RPM — 10 minutes

Gradually distribute bearing grease from its cold, settled state. At this speed, the grease is warming and softening but has not yet reached full churning temperature. The bearing temperature rise should be < 10°C above ambient.

2. 12,000 RPM — 5 minutes

Continue grease distribution and begin thermal expansion of the spindle shaft and bearing inner rings. The shaft grows axially and radially, establishing the designed preload condition. Temperature rise should be gradual — no sudden jumps.

3. 18,000 RPM — 5 minutes

Approach thermal equilibrium. The stator winding temperature is stabilizing. The bearing outer ring is expanding into the housing, and the preload is settling to its running value. Monitor for unusual noise — this speed reveals bearing issues that are silent at lower RPM.

4. 24,000 RPM — 3 minutes

Final verification. If the spindle runs smoothly at max RPM with no abnormal vibration or temperature spike, it is ready for production. If unusual noise or vibration appears, return to 12000 RPM for 5 more minutes before re-testing.

Copy-ready G-code warm-up scripts

Three scripts for three scenarios: standard cold start, same-day restart, and cold-weather operation. Copy these into your controller and assign them to a dedicated button or M-code.

Standard 4-stage warm-up (for spindles rated 24000 RPM)

O1001 (ATC Spindle Warm-up Program — 24000 RPM rated)
(Cold start: execute after machine power-on, before any cutting)
M03 S6000       (Stage 1: 6000 RPM)
G04 X600.       (Dwell 10 minutes)
S12000          (Stage 2: 12000 RPM)
G04 X300.       (Dwell 5 minutes)
S18000          (Stage 3: 18000 RPM)
G04 X300.       (Dwell 5 minutes)
S24000          (Stage 4: 24000 RPM)
G04 X180.       (Dwell 3 minutes)
M05             (Warm-up complete — spindle ready for production)
M30

This is the baseline warm-up suitable for any BT30 or HSK40E spindle rated at 24000 RPM. Total cycle time: 23 minutes. For spindles rated at 12000 RPM, modify the final stage to S12000 and reduce dwells proportionally.

Fast warm-up (for same-day restarts, machine was running within last 2 hours)

O1002 (ATC Spindle Fast Warm-up — same-day restart)
(Use only if spindle was running within the last 2 hours)
M03 S8000
G04 X180.       (Dwell 3 minutes)
S16000
G04 X120.       (Dwell 2 minutes)
S24000
G04 X60.        (Dwell 1 minute)
M05
M30

Run this when the spindle has been idle for less than 2 hours. The bearings and grease are still warm from the previous run, so a full 23-minute cycle is unnecessary. Total cycle time: 6 minutes.

Cold-weather warm-up (ambient temperature < 10°C / 50°F)

O1003 (ATC Spindle Cold-Weather Warm-up)
(Ambient temperature below 10°C — extended warm-up required)
M03 S3000
G04 X600.       (Dwell 10 minutes — initial grease softening)
S6000
G04 X600.       (Dwell 10 minutes)
S12000
G04 X300.       (Dwell 5 minutes)
S18000
G04 X300.       (Dwell 5 minutes)
S24000
G04 X180.       (Dwell 3 minutes)
M05
M30

Cold weather requires extended warm-up because bearing grease viscosity increases significantly at low temperatures. Starting at 3000 RPM instead of 6000 RPM gives the grease time to warm and distribute before the bearing load increases. Total cycle: 33 minutes.

Four rules for daily warm-up discipline

The G-code script is only useful when operators run it consistently. These four rules make warm-up easier to apply as a shop-floor habit.

Never skip warm-up after an overnight or weekend shutdown

Bearing grease settles and cools during idle periods. A cold start at high RPM is equivalent to starting a car engine at redline after it has been sitting for a week. The first 30 seconds of a cold start cause more bearing wear than hours of running at thermal equilibrium.

If the machine has an E-stop or power loss, re-run the warm-up

An E-stop event may have interrupted cutting mid-cycle, but the spindle still cooled during the recovery time. If the spindle has been stationary for more than 30 minutes after an E-stop, run at least the fast warm-up (O1002) before resuming production.

Listen during warm-up — it is your best diagnostic tool

The warm-up cycle is the ideal time to listen for bearing noise. At each speed stage, the bearing operates at a different frequency band. A noise that appears at 18000 RPM but disappears at 12000 RPM may indicate early-stage spalling on one ball or raceway — catch it before it becomes a production failure.

Do not use cutting coolant during warm-up

Running coolant during warm-up cools the spindle nose unevenly, creating a thermal gradient that works against the uniform thermal expansion the warm-up is designed to achieve. Start coolant only after warm-up is complete and cutting begins.

Warm-up FAQ

How much bearing life does warm-up actually add?

Exact results depend on duty cycle, grease type, bearing preload, and environment. Proper warm-up reduces cold-start stress on grease-lubricated bearings and helps prevent the micro-spalling that can initiate during the first seconds of high-speed operation.

Can I run the warm-up program unattended?

Yes — the warm-up G-code programs are designed to run without operator intervention. During the first warm-up of the day, keep an operator within earshot to listen for abnormal noise. After that, the fast warm-up for same-day restarts can run unattended.

What if my spindle is only rated for 12000 RPM?

Modify the scripts by halving the RPM values: 3000 → 6000 → 9000 → 12000 RPM, keeping the same dwell times. The thermal expansion mechanism is the same — only the absolute speed values change. For 18000 RPM-rated spindles, use 4000 → 8000 → 12000 → 18000 RPM.

Frequently Asked Questions

How much bearing life does warm-up actually add?

Exact results depend on duty cycle, grease type, bearing preload, and environment. Proper warm-up reduces cold-start stress on grease-lubricated bearings and helps prevent the micro-spalling that can initiate during the first seconds of high-speed operation.

Can I run the warm-up program unattended?

Yes — the warm-up G-code programs are designed to run without operator intervention. During the first warm-up of the day, keep an operator within earshot to listen for abnormal noise. After that, the fast warm-up for same-day restarts can run unattended.

What if my spindle is only rated for 12000 RPM?

Modify the scripts by halving the RPM values: 3000 → 6000 → 9000 → 12000 RPM, keeping the same dwell times. The thermal expansion mechanism is the same — only the absolute speed values change. For 18000 RPM-rated spindles, use 4000 → 8000 → 12000 → 18000 RPM.

Related Engineering Guides