Files
firmware/docs/installing.md
T
Oleksandr ShyshatskyiandClaude Opus 5 a6098c7f64 The README was the manual. It is a front door now, and the manual is nine pages.
Fourteen sections, install through troubleshooting, in the one file that
existed when there was nowhere else to put them. The site gave the manual a
home; this moves it there and orders it by what the reader is doing rather
than by which subsystem owns the answer. Someone whose printer will not boot
should not have to know that the symptom table lives in a file called
hardware-testing.md.

Three topics were documented two and three times over, and each copy was free
to drift: install in README and toolchange.md, calibration in README,
calibration.md and toolchange.md, slicer setup in README and toolchange.md,
"before you start" in all three. Each is now in one place.

The owner path is Is this for you -> Installing -> After the flash -> Your
first print -> Nozzle-offset calibration -> Printing -> Upgrading -> When
something goes wrong, with error codes, versions and how-it-works behind a
Reference group. The README keeps what a front door keeps: what this is, the
status checkboxes, what you give up, which file to download, and where to go
next.

toolchange.md was four documents in one 38 KB file. The owner half -- slicer
setup, filament, runout, the offset check before a first print -- is in
Printing and Your first print; the design notes, input shaper, roadmap,
HelixScreen and reverse-engineering notes stay, and the page moves to
Internals. hardware-testing.md was split down the middle by audience the same
way: the go/no-go checks and the symptom table were the owner's, and only
keeping the two verification files honest as the macros change is ours.

Two things this fixes rather than moves. The error-code table was
notes/70-error-codes.md, an internals note the README sent owners to; it is
docs/error-codes.md now, a page. And toolchange.md still opened "Not yet run
on hardware" while the README's checkboxes described a Creator 5 Pro that has
been printing for weeks -- the two pages have disagreed since the first
hardware run.

Contributors are deferred, as agreed: those pages are regrouped, not
rewritten. The nav says so.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S3XZh4SqPdXAowVndz6tMr
2026-08-28 22:20:19 +03:00

4.1 KiB

Installing

The printer's own updater does the work: one file on a FAT32 stick, plugged in at power-on. No jailbreak, no soldering, no opening the case, no ssh.

Have the things in Is this for you ready before you start — above all the stock package for your model, on a second stick.


Which file do I need

Creator 5 and Creator 5 Pro are not interchangeable. The printer refuses a package built for the other model — the most common reason a flash "does nothing" — so pick the file whose name matches your machine on the Releases page:

Your printer The file
Creator 5 Creator5-anvil-<date>.tgz
Creator 5 Pro Creator5Pro-anvil-<date>.tgz

Not sure which you have? On the printer: Settings → About.


The flash

  1. Format a USB stick as FAT32. Not exFAT, not NTFS.
  2. Copy the file for your model to the root of the stick. Not in a folder. Leave the name exactly as it is — the printer looks for that pattern.
  3. Power the printer off.
  4. Plug the stick in and power the printer on. It finds the package by itself, shows the update screen and installs. This takes a few minutes.
  5. Wait for it to reboot on its own, then pull the stick — your root password is on it, in anvil-password.txt.

What the first boot does

The first boot after a flash is longer than the ones after it, and the screen shows a progress bar rather than HelixScreen for most of it. Two things happen that happen only once:

  • Your unit's factory calibration imports itself. [ff_legacy] reads firmwareExe's per-unit JSON — the dock and nozzle numbers measured for your machine at the factory — and persists them into printer.cfg with its own SAVE_CONFIG. Klipper restarts once because of it, before the screen is up.
  • A root password is chosen, and written to the stick. See below.

Do not cut the power during the first boot. A power cut in the middle of that SAVE_CONFIG is the one moment where the calibration import can be lost.


Your root password

Every package — the official releases included — picks a random root password on the printer during the first install, sets it, and writes it to anvil-password.txt on the USB stick you flashed from. Pull the stick after the flash and read it, then save the password somewhere safe and delete the file.

  • If the stick is not writable, no password is set at all, and the install log says so.
  • Updates keep whatever root password the printer already has — including one you set yourself with passwd — so the stick gets a password exactly once.
  • Only a package built with ROOT_PW_HASH set carries one baked in instead; that is a build-time option, described in Building packages.

ssh works because the stock rootfs already ships /usr/sbin/dropbear and an enabled /etc/init.d/S50dropbear — port 22 is already open on a stock printer, there is simply no published password. That shell is your recovery channel, so confirm it works before you touch anything else.


What the package touches, and what it does not

A package needs no config editing at all. It ships:

  • the ff_*.py Klipper extras, into the Klipper tree it flashes
  • the ff-*.cfg config files, to /usr/data/config/, keeping any you edited and leaving the new one beside it as .mod-new
  • the [include] lines for all seven, at the end of printer.base.cfg — which the stock installer force-copies to /usr/data/config/ on every flash

printer.cfg is never touched by any of that, by design: it is your file. That is also why the includes live in printer.base.cfg and not there — and it is what makes the undo button work, since flashing the stock FlashForge package restores its own printer.base.cfg and the includes go with it. Which files are yours and which the mod overwrites is Upgrading, and your files.

Then go through the checks in After the flash, in order, with the emergency stop within reach.