CNC Post Processors Explained: From Toolpath to G-Code Your Machine Understands
Keywords: CNC post processor explained, Fusion 360 post processor GRBL, CAM to controller hobby CNC
Table of Contents
- The Bridge Between Thinking and Cutting
- Why G-Code Isn't Universal
- The GRBL Post Processor Requirement
- What a Good Post Processor Checks
- How to Verify Your Post Processor Works
- Modifying a Post Processor (Fusion 360)
- VCarve Post Processors
- Carbide Create and Post Processors
- Common Post Processor Failures
- What We'd Use
- Related Articles
Slug: /guides/cnc-post-processor-explained/
Read time: 6 min
Keywords: CNC post processor explained, Fusion 360 post processor GRBL, CAM to controller hobby CNC
The Bridge Between Thinking and Cutting
You design something in Fusion 360 or VCarve. It looks great. You generate a toolpath. Now what?
Your CAM software has generated a toolpath—the coordinates and speeds for the cut. But your GRBL controller doesn't understand "move to X50 Y30 at 2000 mm/min." It understands G-code, a specific command language.
A post processor translates your generic toolpath into G-code your specific machine understands.
This is why the same design can be run on a Shapeoko, a PrintNC, and an old industrial CNC—the toolpath is the same, but each machine's post processor outputs different G-code optimized for that controller.
Why G-Code Isn't Universal
G-code has a core set of standard commands:
- G0: Rapid movement (fast, no cutting)
- G1: Linear cutting move
- G2/G3: Arc cutting moves
- M3: Start spindle clockwise
- M5: Stop spindle
- M4: Start spindle counter-clockwise
But beyond these basics, machines diverge:
- Spindle control: Some use
M3 S12000(M3 with speed), others useM3 \nG4 P0.5(M3 then dwell). Some use PWM pins. GRBL usesM3 Snnnn. - Coordinate modes: Absolute (G90) vs incremental (G91). GRBL defaults to absolute.
- Feed rate modes: G94 (units/min) vs G93 (inverse time). GRBL uses G94.
- Canned cycles: G81 (drill cycle), G82 (drill with dwell). GRBL doesn't support these.
- Tool compensation: G41/G42 (cutter radius compensation). GRBL doesn't support this either.
A post processor says: "This is GRBL. Don't use canned cycles. Don't use G41/G42. Do use M3 with S parameter. Output G90, G94."
The GRBL Post Processor Requirement
Most hobby machines run GRBL firmware. If yours does, you need a GRBL-specific post processor.
Problem: Autodesk ships Fusion 360 with a generic "Grbl" post, but it's not optimized. The community has created better ones.
Solution: Use the community GRBL post processor instead. On GitHub (search "Fusion 360 GRBL post processor"), you'll find actively maintained versions.
Alternative: Carbide Create ships with excellent posts and is specifically tested with popular hobby machines.
VCarve has an extensive post-processor library—your machine is almost certainly there.
What a Good Post Processor Checks
- G-code version: G20 (inches) or G21 (mm)? Must match your CAM design units.
- Spindle control: Does it output
M3 Snnnnformat that your controller understands? - Safe Z: Does it retract to a safe height between tool changes?
- Feed rate units: G94 (units/min) is standard for GRBL.
- Coordinate system: G90 (absolute) is standard.
- Comments: Optional but helpful for human readability.
- Tool changes: Does it pause for manual changes, or does it assume an ATC (automatic tool changer)?
A bad post processor:
- Outputs G81 (drill cycle) that GRBL doesn't understand
- Specifies G41/G42 (tool compensation) that GRBL doesn't support
- Uses M6 (automatic tool change) when you have manual changes
- Outputs G20 when you designed in G21
Result: GRBL spits out "unknown command" errors and nothing cuts.
How to Verify Your Post Processor Works
- Generate a simple test file (2D pocket, 5 minutes of cutting)
- Post-process it
- Open the G-code in a text editor and scan for obvious issues
- Simulate it in your sender (gSender, UGS, CNCjs all have preview)
- Only then run it on your machine
This takes 10 minutes and prevents heartbreak.
Modifying a Post Processor (Fusion 360)
Fusion 360 posts are JavaScript files. If you need to tweak one:
- Locate the post file (usually
~/.fusion360/CAM/postsor similar) - Open in a text editor
- Look for keywords like "SPINDLE_SPEED", "RETRACT_HEIGHT", "SAFETY_Z"
- Edit conservatively (change one value at a time)
- Test on scrap material
Common edits:
- SAFETY_Z: Change the safe Z height for retracts
- SPINDLE_SPEED_FORMAT: Adjust spindle speed output format
- SPINDLE_ON_DELAY: Add a dwell time after spindle start
Don't try to rewrite the entire post if you don't know JavaScript. Get a working post, tweak it slightly.
VCarve Post Processors
VCarve includes posts for dozens of machines. When creating a new file, select your machine from the list. VCarve will automatically output the correct post processor.
If your machine isn't there, check:
- Search the VCarve forum—someone might have created one
- Use the "GRBL" generic post and test before running on your machine
- Vectric's post library is online; you can download community posts
VCarve posts are generally excellent because they're maintained by professionals.
Carbide Create and Post Processors
Carbide Create outputs Carbide 3D's optimized G-code. It's designed to work perfectly with Carbide's machines and is very compatible with standard GRBL.
No post processor selection needed—Carbide Create just outputs the right format.
Common Post Processor Failures
"Unknown command" error:
- Your machine got a command it doesn't understand
- Usually canned cycles (G81, G82) or tool compensation (G41, G42)
- Fix: Use the correct post processor for your machine
Spindle doesn't turn on:
- Post isn't outputting M3 Snnnn correctly
- Or spindle control is on a different I/O pin your firmware doesn't recognize
- Fix: Check the post processor's spindle command format
Tool changes don't pause:
- Post is using M6 (automatic change) instead of manual change logic
- Fix: Tell the post processor you have manual tool changes
Coordinates are way off:
- Post is mixing absolute and incremental coordinates
- Or mixing G20 (inches) and G21 (mm)
- Fix: Verify post processor matches your design units
What We'd Use
For Fusion 360: Community GRBL post processor from GitHub (search actively maintained versions)
For VCarve: Built-in post processor library (your machine is likely there)
For Carbide Create: Default output (no selection needed)
For any machine: Start with the manufacturer's recommended post if available. If not, use a community version that others have tested.
Always simulate before running.