G-Code Speed & Feedrate Calculator

Convert mm/s print speeds to G-code feedrate (mm/min) values

Converts mm/s print speeds to the G-code feedrate F parameter in mm/min by multiplying by 60, and back the other way. Also computes the duration of a linear move from feedrate and distance for debugging and timing G-code. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

Why is G-code feedrate in mm/min, not mm/s?

The F parameter in G-code (e.g. G1 X10 F3600) is defined in millimetres per minute by the RS-274 standard that CNC and 3D printer firmware follow. Slicers display speeds in mm/s for human readability, so a 60 mm/s setting becomes F3600 in the actual G-code.

G-code expresses speed as a feedrate in millimetres per minute, but slicers and humans think in millimetres per second. This tool converts cleanly between the two and can also time a linear move, which is handy when reading or debugging raw G-code.

How it works

The conversion is a single factor of 60 (seconds per minute):

Feedrate (mm/min) = speed (mm/s) x 60

Speed (mm/s) = feedrate (mm/min) / 60

So a slicer print speed of 60 mm/s is written as F3600 in the G-code, and an F4800 you spot in a file is 80 mm/s.

Move duration uses distance over speed:

Duration (s) = distance (mm) / speed (mm/s)

This is exact for steady-state moves and ignores acceleration, so very short segments run slightly slower in reality.

Common feedrate reference values

When reading slicer output or manually editing G-code, these common speed-to-feedrate equivalents are useful to recognise at a glance:

Speed (mm/s)Feedrate (mm/min)Typical use
20F1200Slow perimeter detail
30F1800Outer wall, fine detail
40F2400Standard outer wall
60F3600Default print speed
80F4800Fast infill
100F6000High-speed printing
150F9000Travel moves
200F12000Fast travel, direct-drive printers
300F18000High-speed CoreXY machines

These are reference values only. The appropriate speed for any specific move depends on your printer, material, layer height, and part geometry.

Worked example

You set 80 mm/s outer walls in your slicer:

  • Feedrate = 80 x 60 = 4800 mm/min, written F4800
  • A 25mm wall segment takes 25 / 80 = 0.3125 s at that speed

Reading the reverse: a travel move tagged F9000 is 9000 / 60 = 150 mm/s.

Why acceleration matters for short moves

The duration formula assumes the printer reaches and sustains the target speed for the entire move. In practice, firmware (Marlin, Klipper, RRF) limits acceleration to protect mechanical components, which means:

  • Short moves (under ~5mm at 60 mm/s) may never reach peak speed before decelerating
  • Acceleration zone = time to ramp up = v² / (2 × accel), so at 60 mm/s with 3000 mm/s² acceleration, the printer needs 0.6mm just to reach speed
  • This is why overall print time for complex parts with many direction changes is often longer than a simple feedrate × total path length calculation predicts

Use the duration figure here as a quick sanity check. For accurate total print time estimation, a slicer’s built-in time estimator accounts for acceleration profiles.

Notes

  • The F value persists across G-code lines until changed — slicers emit a new F value only when the speed changes, not on every line.
  • Travel moves use the same F convention but typically carry a much higher feedrate value than print moves.
  • Mixing mm/s thinking with mm/min G-code is one of the most common sources of speed confusion when hand-editing G-code.

All conversions run locally in your browser.