Files
firmware/payload/helixscreen/printer_database.d/flashforge_creator5.json
T
Oleksandr ShyshatskyiandClaude Opus 5 e5bd171cf8 Correct the docs the code had drifted away from
Applies the audit's sections B, C and D, plus two decisions.

Behaviour (A1): fm_ex1..3 carried stock's `extruder: extruder`, so a clog on
T1..T3 was measured against T0's filament movement. Each motion sensor now
watches its own extruder.

Gate count (A6): "four gates" was the number of make test-* targets, not of
gates run -- run-tests.py emits twelve. The number is dropped rather than
restated, in docs/testing.md and the Makefile help.

B, install instructions that failed as written: STOCK_TGZ_CREATOR5 missing its
.tgz; a pointer to a ./build.sh that does not exist; klippy-extras/ paths that
moved to payload/klipper/extras/ in 0ef9d6b; a calibration recipe both
commands refuse without PLATE_REMOVED=1; a storage table that put dock_x/dock_y
in an include, which SAVE_CONFIG refuses; four files telling the user to add
includes printer.base.cfg already ships; ./pack.sh style paths that do not
resolve from where the scripts leave you.

The MAINSAIL_ZIP / HELIX_TGZ override was documented in three places as "used
as-is, never checksummed". It is checksummed, and fetch-assets.sh overwrites
the user's file with the pinned release -- SKIP re-downloads too. Corrected,
with the way that actually works (match the hash in versions.env).

C, files that contradicted themselves: the -5/-3 ESTOP target, the
t<n>_offset_* storage names, the chamber heater's model split, the LED
premise, the include order comment in test_includes.py, gear_stepper as a
"feed hub" when it is the tool lock, an object list ff-toolchange.cfg says
does not exist, the eddy probe vs the under-bed cylinder, "installs them
without clobbering" against a gate that enforces the clobber, "keeps two
versions" when the installer keeps one, "two changes from stock" when there
are three, and ff_legacy's "nothing here runs during normal operation" when
auto_import runs on every ready.

D, dangling references: OKF/* and firmwareExe-decompiled/* repointed at
docs/notes/*, plus case-boot.sh, sim-image.sh, printer-exec.sh, the
test/printer build context, wait_for_banner, ff_toolchanger_compat and a
nonexistent orca snippet.

Not touched, pending a decision: sections E-H, and the printer.base.cfg
"verbatim" claim (A7), which depends on how the unpack drift check is fixed.

48 passed, 5 skipped.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-24 19:48:42 +03:00

97 lines
3.6 KiB
JSON

{
"printers": [
{
"id": "flashforge_creator5_pro",
"name": "FlashForge Creator 5 Pro",
"manufacturer": "FlashForge",
"image": "generic-corexy.png",
"ams_type": "tool_changer",
"z_offset_calibration_strategy": "firmware_managed",
"notes": "4-tool toolchanger driven by the ff_toolchange Klipper extra (github: creator5-custom-firmware). It registers the toolchanger and tool T0..T3 objects itself; per-tool Z is managed by TOOL_Z_ADJUST and the print-start offset by TOOLCHANGE_SET_PRINT_OFFSET, so HelixScreen's probe-based Z-offset flow does not apply. Distinguished from the non-Pro only by the chamber heater: the two machines are otherwise the same hardware, and the stock firmwareExe builds differ in nothing else.",
"heuristics": [
{
"type": "object_exists",
"field": "printer_objects",
"pattern": "ff_toolchange",
"confidence": 98,
"reason": "Creator 5 native toolchanger extra"
},
{
"type": "object_exists",
"field": "printer_objects",
"pattern": "heater_generic chamber_heater",
"confidence": 95,
"reason": "Chamber heating element -- only the Pro has one"
},
{
"type": "object_exists",
"field": "printer_objects",
"pattern": "ff_tool_offset",
"confidence": 90,
"reason": "Creator 5 nozzle-offset calibration extra"
},
{
"type": "object_exists",
"field": "printer_objects",
"pattern": "e_stop X",
"confidence": 60,
"reason": "FlashForge fork station sensor wrapper"
},
{
"type": "hostname_match",
"field": "hostname",
"pattern": "creator",
"confidence": 40,
"reason": "Hostname hint"
}
]
},
{
"id": "flashforge_creator5",
"name": "FlashForge Creator 5",
"manufacturer": "FlashForge",
"image": "generic-corexy.png",
"ams_type": "tool_changer",
"z_offset_calibration_strategy": "firmware_managed",
"notes": "The plain Creator 5: same 4-tool toolchanger as the Pro, but no chamber heating element. Its printer.chamber.cfg declares [temperature_sensor chamber] where the Pro declares [heater_generic chamber_heater], so the chamber temperature still reads and nothing can command heat. The two entries are identical apart from that one heuristic, which is what separates them.",
"heuristics": [
{
"type": "object_exists",
"field": "printer_objects",
"pattern": "ff_toolchange",
"confidence": 98,
"reason": "Creator 5 native toolchanger extra"
},
{
"type": "object_exists",
"field": "printer_objects",
"pattern": "temperature_sensor chamber",
"confidence": 95,
"reason": "Chamber thermistor with no heater -- the non-Pro build"
},
{
"type": "object_exists",
"field": "printer_objects",
"pattern": "ff_tool_offset",
"confidence": 90,
"reason": "Creator 5 nozzle-offset calibration extra"
},
{
"type": "object_exists",
"field": "printer_objects",
"pattern": "e_stop X",
"confidence": 60,
"reason": "FlashForge fork station sensor wrapper"
},
{
"type": "hostname_match",
"field": "hostname",
"pattern": "creator",
"confidence": 40,
"reason": "Hostname hint"
}
]
}
]
}