Confirm G64 Constant Velocity Mode Is Active
If EMC2 (LinuxCNC) never reaches the commanded feed rate, first verify the active path-control mode. Set constant velocity with the G64 command. The alternative modal behavior, exact stop (G61), forces the trajectory planner to decelerate toward zero at the end of every programmed segment, so average speed collapses on toolpaths made of many short moves.
G64 ; constant velocity mode: blend moves, hold feed where possible
G61 ; exact stop mode: decelerate to a stop at each segment end
G64 alone is not a guarantee of constant feed. The planner can only hold velocity where the machine dynamics allow it, which leads to the second constraint.
Why Axis Acceleration Caps Your Real Speed
Even with G64 active, the achievable feed rate depends on the configured axis acceleration. At every change of direction (corners, arc-to-line transitions, reversal of an axis), the trajectory planner must slow the involved axes so that no axis exceeds its acceleration limit. If acceleration is set low, the planner is forced to reduce speed at each direction change, and the resulting maximum velocity is lower than the programmed feed regardless of G64.
This effect is worst on toolpaths with dense, short segments and frequent reversals: the machine spends most of its time in the acceleration-limited zone and never cruises at commanded feed. Long, straight moves are the opposite case and will reach full feed even with modest acceleration.
Corrective Procedure and Verification
- Add G64 to the program header (or the control's startup G-code) so constant velocity mode is modal for the whole job, then rerun and compare actual feed against commanded feed.
- Open the machine configuration and check the per-axis acceleration values. Raise them toward what the mechanics (motors, drives, screws, gantry mass) can tolerate; the evidence does not specify your machine's limits, so determine them empirically or from the drive/motor documentation, not by guessing.
- Verify on a test cut containing sharp direction changes: commanded feed should now be maintained through corners. If feed still drops, acceleration is still the binding constraint, or a following-error/tolerance limit in the planner is forcing slowdowns.
Frequently Asked Questions
Why is my EMC2 machine slower than the programmed feed rate?
Two causes dominate: the path-control mode is exact stop (G61) instead of constant velocity (G64), or axis acceleration is set too low, forcing the planner to slow down at every change of direction.
Does G64 guarantee constant velocity in LinuxCNC/EMC2?
No. G64 commands constant velocity mode, but the trajectory planner still reduces speed wherever axis acceleration limits require it, so low acceleration produces a lower actual maximum speed at direction changes.
How do I raise the real cutting speed on short-segment toolpaths?
Enable G64 and increase the per-axis acceleration in the machine configuration within the mechanical limits of the motors and drives; higher acceleration lets the planner hold more speed through corners and reversals.