Please read first — Very minimal testing done
V4.0 (Beta 1) has had minimal debugging and only a few sample jobs run.
The post-processors code was hardened and had new features added, with
the assistance of Claude Code (an AI coding tool). Every change was reviewed
before being accepted — but reviewing a change is very different from executing it.
JavaScript only fails when the code actually runs, and this code has not had all
possible execution paths exercised.Treat this as experimental. V3.0 (Beta 3) remains the last stable release!
Use V3.0 (Beta 3) if you need something known to work. All V4.0 (Beta 1)
feedback is very welcome; that is exactly what this beta is for.
This release continues from V3.0 (Beta 3). It is a substantial hardening
release: the post was put through two full review passes — one for general
code quality and one for Fusion 360 post-processor compliance — plus a
targeted fix pass. The result adds several capabilities and fixes a number
of latent issues (all reviewed, but only a few samples run).
What’s new since V3.0 (Beta 3):
- Drilling is now supported — drill / peck / bore / tap operations post
correctly. Because Marlin/GRBL/RepRap have no G81/G82/G83 canned cycles,
each cycle is expanded into ordinary G0/G1 plunge-and-retract moves.
(Previously a drilling operation would not post.) - Work coordinate systems — on GRBL and RepRap/Duet the WCS you set in
Fusion is now emitted (G54–G59, plus G59.1–G59.3 on RepRap). Marlin has no
work-offset table, so it still uses G92 zeroing; a warning is issued if an
operation selects a WCS that can’t be honored. - Safer rapid ordering — combined rapid moves now travel in XY before
bringing Z down, and retract Z before moving in XY, to avoid plunging
into the work or dragging across it. - “Disable Z stepper” during tool change fixed — it was sending M17
(enable steppers) instead of M84 (disable), so the axis never actually
released. It now disables the Z stepper as intended. - More reliable G1→G0 rapid mapping / feedrate scaling — position
comparisons are now made at output precision, so the mapping is no longer
defeated by floating-point rounding. - Manual NC “Pass through” commands are now emitted to the output.
- Clearer errors for unsupported cases (multi-axis toolpaths, and
control-side cutter compensation — set the operation’s Compensation Type
to “In computer”). - Numerous smaller correctness/quality fixes (spindle direction changes,
end-of-job motion sync, message/comment sanitization, and more).
The file has been renamed to MPCNC_v4.0_Beta1.cps to match the version.
Detailed review/change notes are in the docs/ folder of the repository.
This is BETA, un-executed code.
Review all generated GCode carefully before running it on your machine.
Use at your own risk.
Installation:
Unzip MPCNC_v4.0_Beta1.zip and install the extracted
MPCNC_v4.0_Beta1.cps using the F360 Post-Processor setup dialog. Use the
Job: CNC Firmware property to select your controller (Marlin 2.x,
GRBL 1.1, or RepRap/Duet).
If you want a known-good post, stay on V3.0 (Beta 3).
Please post successes and errors/issues to this thread. Given this build has
not been run yet, early real-world reports are especially valuable.
MPCNC_v4.0_Beta1.zip (16.6 KB)