Voron G-Code Arc Support Guide — Smooth Curves and Reduced File Size
Klipper Calibration Software
G2 and G3 arc commands tell your printer to move along an arc rather than a series of tiny straight line segments. For Voron printers running Klipper, enabling arc support produces smoother curves, reduces G-code file sizes, and can improve print quality on curved surfaces. While the concept sounds niche, arc support has practical benefits for nearly every print, especially those with logos, fillets, or organic shapes. Last updated: May 2025.
What Are G2/G3 Arc Commands?
Standard G-code uses G1 (linear move) for everything. A circle is approximated by hundreds or thousands of tiny straight segments. The more segments, the smoother the curve — but also the larger the file size. Arc commands (G2 for clockwise arcs, G3 for counterclockwise) describe a true arc using start point, end point, and radius (or I/J/K offsets). Klipper's interpolator does the math to produce smooth motion through the arc.
Benefits of arc support:
- Smaller file sizes: A circle described as a single G2/G3 command instead of 360 G1 moves reduces file size by over 99%.
- Smoother curves: No faceting — arcs are truly smooth, limited only by the stepper resolution.
- Faster transfer: Smaller files upload faster over serial or network connections.
- Reduced MCU load: Fewer commands for the MCU to parse and queue.
Klipper Arc Support Configuration
Arc support in Klipper is handled by the gcode_arcs module. It is not enabled by default. Add this to your printer.cfg:
{ast }{ ast }
[gcode_arcs]
resolution: 1.0
The resolution parameter controls how finely Klipper subdivides arcs into linear moves before sending them to the stepper. A value of 1.0 mm means each subdivided segment is at most 1.0 mm long. Lower values produce smoother arcs but increase MCU computation. Values between 0.5 and 2.0 are typical.
Additional Parameters
{ast }{ ast }
[gcode_arcs]
resolution: 1.0
max_arc_error: 0.05
max_arc_error sets the maximum deviation from the true arc path. This is a safety limit — if the chord error of any subdivided segment would exceed this value (in mm), Klipper subdivides further. Default is 0.0025 mm (very tight). For Voron printers, keeping the default or raising to 0.05 mm is fine.
Slicer Configuration: OrcaSlicer Arc Fitting
Your slicer must be configured to emit G2/G3 commands instead of G1 segments. The process varies by slicer:
OrcaSlicer
OrcaSlicer has the best arc support among Voron-recommended slicers:
- Go to Printer Settings > G-code.
- Enable Use G2/G3 arc commands.
- Set Arc fitting tolerance to 0.05 mm (tighter = more arcs but larger files; looser = fewer arcs but more deviation from the model).
- Optionally enable Arc fitting for traveling to use arcs during travel moves too (reduces sharp corners in toolpath transitions).
OrcaSlicer's arc fitting works by analyzing the G-code path after slicing and replacing sequences of collinear or co-circular segments with arc commands. It does not change the actual path — it's a post-processing optimization.
SuperSlicer
SuperSlicer has a similar option under Output options > Use G-code arcs. It predates OrcaSlicer's implementation and works similarly.
PrusaSlicer
PrusaSlicer does not natively support G2/G3 arc output as of version 2.8. Use OrcaSlicer or SuperSlicer if arc support is important to you.
Bambu Studio
Bambu Studio has arc support under the "Others" tab, labeled "Arc fit". Enable it and set the tolerance to 0.05 mm.
Print Quality Benefits
Arc support improves print quality in specific scenarios:
- Curved perimeters: Rounded corners, circular holes, and organic shapes print visibly smoother with no faceting.
- Top surfaces: Curved top layers show fewer "stepping" artifacts.
- Ironing: Ironing over curved surfaces produces more consistent results because the toolpath flows continuously rather than in interrupted straight segments.
- Vase mode / spiral vase: Arc support particularly benefits spiral vase prints, where every layer is a single continuous curve.
The difference is most noticeable on prints with large-radius curves viewed from an angle. On purely rectilinear prints (boxes, calibration cubes), you won't see a difference — there are no arcs to optimize.
File Size Reduction
The file size reduction from arc support can be dramatic:
| Model | Without Arcs | With Arcs | Reduction |
|---|---|---|---|
| Calibration cube | 1.2 MB | 1.1 MB | ~8% |
| Voron test ring | 4.5 MB | 0.8 MB | ~82% |
| Benchy | 8.3 MB | 3.1 MB | ~63% |
| Voron logo keychain | 2.7 MB | 0.3 MB | ~89% |
The reduction depends entirely on how many curved features the model has. Highly organic models can see 90%+ reduction. Rectilinear mechanical parts may see only 5-10%.
Troubleshooting Arc Support
Klipper Error: "Unknown command: G2" or "G3"
This means the [gcode_arcs] module is not enabled in printer.cfg. Add it and restart Klipper.
Arcs Cause Blobs or Zits on Corners
Arc commands can cause pressure advance to behave differently at arc endpoints. If you see blobs at the transition between an arc and a straight line, try reducing max_arc_error in your Klipper config, or lower the arc fitting tolerance in your slicer. You may also need to re-tune pressure advance with arc support enabled, as the filament flow behavior changes slightly.
Slicer Reports "Arc Fit Failed" or Generates No Arcs
This usually happens when the model has very small or very tight curves that the arc fitting algorithm cannot handle. Lower the arc fitting tolerance in the slicer (try 0.1 mm instead of 0.05 mm) or disable arc fitting for that specific model. Some slicers allow excluding specific regions or features from arc fitting.
Arc Moves Are Slower Than Expected
Klipper applies the same acceleration and velocity limits to arc moves as to linear moves, but the chord length calculation may limit maximum speed on very small arcs. Check your [gcode_arcs] resolution — a value that's too low can create very short segments that never reach full speed. Try increasing resolution to 2.0.
Inconsistent Extrusion on Arcs
If you see under-extrusion or over-extrusion specifically on curved sections, the issue is likely pressure advance interacting with arc interpolation. Klipper handles this well in recent versions (v0.12+), but older builds may struggle. Update Klipper to the latest version and re-tune pressure advance.
Advanced: Custom Arc Macros
You can use the G2 and G3 commands in your own macros for custom toolpath routines. For example, a toolhead cleaning routine using arcs:
{ast }{ ast }
[gcode_macro CLEAN_NOZZLE_ARC]
gcode:
G90 ; Absolute positioning
G1 Z5 F300 ; Lift nozzle
G1 X150 Y10 F6000 ; Move to cleaning start
G2 X150 Y50 I0 J20 F3000 ; Arc clockwise over cleaning pad
G2 X150 Y10 I0 J-20 ; Arc back
G1 Z2
Does Arc Support Affect Print Speed?
Arc support can increase effective print speed on curved paths. Without arcs, the printer must decelerate at each corner between straight segments. With arcs, the toolpath is a continuous curve — the printer maintains higher speed through the entire arc. The difference is most pronounced on models with many small-radius curves.
Conclusion
Enabling G2/G3 arc support on your Voron is a low-effort, high-reward optimization. The configuration is a single line in printer.cfg, and enabling arc fitting in OrcaSlicer takes one checkbox. The benefits — smoother curves, smaller file sizes, and potentially faster prints — are immediate. While not every model benefits equally, there's no downside to having arc support enabled. It's one of those "set it and forget it" improvements that makes your Voron that much more capable.