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 |
|---|---|---|
| 20 | F1200 | Slow perimeter detail |
| 30 | F1800 | Outer wall, fine detail |
| 40 | F2400 | Standard outer wall |
| 60 | F3600 | Default print speed |
| 80 | F4800 | Fast infill |
| 100 | F6000 | High-speed printing |
| 150 | F9000 | Travel moves |
| 200 | F12000 | Fast travel, direct-drive printers |
| 300 | F18000 | High-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 = 4800mm/min, writtenF4800 - A 25mm wall segment takes
25 / 80 = 0.3125s 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
Fconvention 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.