The pages written on top of the old README inherited its premise: that after flashing you face a gauntlet -- go/no-go checks, a safety net, a mandatory calibration -- before the machine can be trusted with a model. That is not what happens. The factory numbers import themselves on the first boot, a bed mesh loads at the start of every print, and the mod is built to run the files the stock firmware ran. A printer that printed before the flash prints after it. "Your first print" now says so in its first line, and everything under it is optional, ordered by what you would actually reach for: check the offsets are applied, and calibrate only if that disagrees with the machine. Three audiences now, because owner and contributor was not the real split. "For experienced users" sits between them: How a print runs, and How calibration works. Someone who knows Klipper and wants to change what happens around their file has a place to go that is neither a walkthrough nor the build system. What was cut is most of what changed. Pages that were cryptic to the reader they were aimed at -- Printing, Upgrading -- are out of the nav and kept on disk to be rewritten rather than deleted. Within the pages that stayed: Expected output, Probe sampling, What is being measured, the symptom table, the dark-screen diagnosis, TOOL_Z_ADJUST, PLATE_CHECK, the ff-*.cfg inventory, [ff_legacy] and SAVE_CONFIG in a paragraph about factory calibration. Filenames and internals earn their place on an owner page only when the reader has to type them or look at them; the rest moved to the experienced pages or to Internals, where the audience wants them. Calibration became a section rather than a page, because tool offsets are not the only calibration: bed mesh has its own page now, and its own gotcha written down -- BED_MESH_CALIBRATE writes `default`, a print loads `MESH_DATA`, so a mesh probed by hand is a mesh no print will use. Input shaping is described but has no procedure page yet. Several claims came out because they were not true. "Is this for you" listed calibration and input shaping as things the mod gives you; both are the touchscreen's own sequences, recovered and reimplemented, and the notes say so plainly. What the mod actually gives you is that anything speaking Moonraker can drive the machine -- on stock, FlashForge's Klipper does not toolchange at all, it raises a flag and waits for an application that is not watching a Mainsail print, and the print hangs at the first T2. The page now opens by telling most owners not to flash it. Contributors are still deferred. Their pages are regrouped, not rewritten. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S3XZh4SqPdXAowVndz6tMr
5.5 KiB
Your first print
If your printer was printing before you flashed, it will print now. The factory numbers came across on the first boot, a bed mesh is loaded at the start of every print, and the mod is built to run the same files the stock firmware ran. There is nothing you have to set up first.
What follows is what is worth doing anyway, the first time, before you leave a long print unattended. None of it is mandatory. All of it is quicker than scraping a failed first layer off the plate.
Where everything is
Everything is on the printer's own address:
http://<printer-ip>/ |
Mainsail |
http://<printer-ip>:7125 |
Moonraker's API — what slicers upload to |
http://<printer-ip>/webcam/ |
the camera stream (mjpg-streamer on :8080) |
ssh root@<printer-ip> |
the shell — password from anvil-password.txt |
/usr/data/anvil-install.log what the installer did
/usr/data/logs/anvil-boot.log services + UI choice at each boot
/usr/data/logs/printer.log klipper
/usr/data/logs/helixscreen.log helixscreen
They are the first thing to read when something is wrong, and the first thing to quote when you ask on the Discord.
Check the offsets are applied
Recommended. Not because it is likely to be wrong, but because this is the one thing that damages the machine when it is, and it costs two minutes.
Before moving anything:
-
TOOLCHANGE_STATUS— current tool as derived from the dock sensors, every sensor's state, each tool's nozzle position andz_adjust,station_z, dock coordinates and the derived offsets (offset_zis each tool's absolute bed-frame gap, ~3.2). Check thedock_x/dock_yrows are numbers, notnan. -
TOOL_OFFSET_STATUS— saved calibration per tool and for the station, and a warning if anything is staged but not yetSAVE_CONFIG'd. -
Physical Z check (clean bed, nothing on it):
G28 T0 TOOLCHANGE_SET_PRINT_OFFSET NOZZLE=220 BED=80 LAYER=0.25 TOOL=0 G1 X150 Y150 F6000 G1 Z0.1 F600T0already applies the ~+3.2 mm gap (watch the gcode Z offset in the UI); the offset command reports the full Z with a term-by-term breakdown, and the nozzle should end up a paper-thickness above the bed at the center. If it presses into the plate instead, STOP — the offset is not being applied; do not print untilTOOLCHANGE_STATUSandTOOL_OFFSET_STATUSare clean. Afterwards restore the idle state:G1 Z10 F1200 TOOLCHANGE_PARK ; drops the per-tool frame TOOLCHANGE_SET_PRINT_OFFSET CLEAR=1 ; and this the job termSET_GCODE_OFFSET Z=0is not the way to clear the job term any more: it cannot tell that term from your babystep, so it would take both.
A touchscreen recalibration no longer affects this module. Recalibrate from Klipper instead — XYZ tool calibration — or repeat the import step if you really want the touchscreen's numbers.
If something looks off, calibrate
Only if you need it — a machine that measures correctly above does not need this. Run it when the check disagrees with reality, when a tool has been refitted or dropped, or when one tool prints at a different height from the rest.
Re-measuring replaces the factory numbers with your own; it does not repair anything else, and it is not a routine step. Background: Calibration.
Take the PEI sheet off first — the calibration station sits below the bed plane — then home and calibrate:
G28
CALIBRATE_TOOL_OFFSETS
SAVE_CONFIG
Step by step, with every message it can refuse with, and what each refusal means: XYZ tool calibration.
Afterwards, TOOLCHANGE_STATUS and TOOL_OFFSET_STATUS should show a nozzle
triple and a dock position for every tool, and nothing should say
NOT CALIBRATED.
The two verification files
Two G-code files live in gcode/ in the repository. They are
not models: they exercise the things a real print depends on, in the order a
real print uses them, so a mistake shows up on a bare plate rather than
halfway through a job.
Send them the way you send any print — Mainsail's upload, or your slicer's Moonraker target.
| File | What it does |
|---|---|
creator5-safe-moves.gcode |
The whole sequence with the heat and the filament taken out. Nothing extrudes, no heater is given a target, and after homing nothing moves below Z50. It answers whether homing, tool changes and the end sequence behave — before a nozzle can reach the plate. |
creator5-feature-test.gcode |
The real thing, hot, with two tools: one ring per tool to read XY offsets off the plate, a solid first layer to judge squish, the fan map, a chamber-heater check, and a tower with a tool change on every layer. |
Run the safe one first. Each file's own header repeats what it does, so whoever is standing at the machine has it in front of them.
Two refusals are the gates working rather than faults: a complaint that the
machine is not calibrated, and "Refusing to home Z: cannot tell whether a
tool is mounted", which means the dock switches disagree — run
TOOLCHANGE_STATUS and find the one that is lying.
A real print
Now slice something small and print it the way you will print everything else: the stock FlashForge profile, uploaded through Mainsail or your slicer's Moonraker target. Stay at the machine for the first one.