Skip to content

Creator 5 Series

GhostTypes edited this page Aug 6, 2026 · 4 revisions

Creator 5 Series (Creator 5 / Creator 5 Pro)

The Creator 5 and Creator 5 Pro are 4-head CoreXY tool-changers in the 5M/AD5X firmware family. Unlike every other modern FlashForge, the Creator 5 is HTTP-only: it runs the HTTP API on port 8898 (plus the camera MJPEG server on 8080 and UDP discovery) and exposes no legacy TCP command server on 8899. There is no raw G-code / M-code passthrough.

Overview

Feature Creator 5 Creator 5 Pro
HTTP API (8898) Yes Yes
TCP API (8899) No No
Discovery PID 40 (0x28) 41 (0x29)
Tool heads (extruders) 4 4
Material station (4-slot) Yes Yes
Built-in camera Yes Yes
Heated chamber No Yes (set/read, max 80 °C, controllable)
Air filtration / aux fans No Yes (present, not API-controllable)
TVOC sensor No Yes (read-only)
Door sensor No (cosmetic doorStatus) Yes

Camera: the MJPEG stream on port 8080 works on both models, but it cannot be started or stopped through the API — streamCtrl_cmd is a no-op across the whole series.

Both models share productType 0x5A02; the PID is the only reliable family discriminator (see Printer PIDs). Build volume reported by /detail measure is 256×256×256 (the 310x260x270 value seen in the update-checker JSON is stale — trust the on-device value).

Firmware Coverage

Version Model Endpoint Reference
1.7.8 (base) Creator 5 endpoints_creator5_1.9.2.yaml
1.9.2 Creator 5 Pro endpoints_creator5_1.9.2.yaml
1.9.4 Creator 5 / Creator 5 Pro Same as 1.9.2

Architecture: MIPS32 LE (Ingenic), Klipper-based. Firmware is distributed via VoxelShare only (not sz3dp).

HTTP-Only Architecture

The Creator 5 runs the same HTTP API stack as the 5M/AD5X, but it is the only modern model with no TCP control channel:

  • Inbound listeners are limited to HTTP 8898, camera MJPEG 8080, and UDP discovery. All other sockets are outbound (MQTT/HTTPS cloud).
  • There is no port 8899, so any "TCP-first" connection flow fails. Clients must connect over HTTP only — see Connection Model.
  • Moonraker exists as a separate process but is disabled by default.

Content-Type quirk: the firmware returns the misspelled header appliation/json (missing the c). Parse responses as JSON regardless of the header.

Authentication & Discovery

Identical model to the rest of the 5M family (see Authentication and Discovery Protocol):

  • Every handler gates on LAN mode ({code:-2,"Lan mode error"} if disabled), then validates serialNumber + checkCode. Credentials are sent on every request — there is no session token.
  • UDP discovery uses the standard 276-byte FlashForge packet with the PID at offset 0x88, so the printer is discoverable without an IP scan.

HTTP Endpoints

For the full request/response schema see the endpoint YAML. Available endpoints:

# Endpoint Method Auth
1 /checkCode POST SN + checkCode
2 /detail POST SN + checkCode
3 /product POST SN + checkCode
4 /uploadGcode POST (multipart) SN + checkCode (headers)
5 /control POST SN + checkCode
6 /gcodeList POST SN + checkCode
7 /gcodeThumb POST SN + checkCode
8 /printGcode POST SN + checkCode
9 /getThum GET LAN-mode only
10 /notifyWanBind POST serialNumber only

Unmatched paths return "page not found" (no catch-all handler).

/gcodeList returns file names only — no per-file metadata and no per-tool material data, unlike the AD5X. This is the single biggest surprise on this printer; see /gcodeList — File Names Only.

/gcodeList — File Names Only

The Creator 5 answers /gcodeList with a bare array of names:

{
  "code": 0,
  "message": "Success",
  "gcodeList": ["anchor knauf 3.3mf", "dark angels heraldry.3mf", "..."]
}

There is no gcodeListDetail. The AD5X — older hardware — returns one, carrying printingTime, totalFilamentWeight, useMatlStation, and the gcodeToolDatas[] array that describes each tool's material name and color. The Creator 5 returns none of it.

Live-confirmed on a Creator 5 Pro (firmware 1.9.x, 2026-08-05). It is the printer's behavior, not a parsing artifact: every file on the list comes back as a name and nothing else, including files sliced for the Creator 5 with embedded thumbnails. Thumbnails are unaffected — those come from /gcodeThumb, keyed by file name, and work normally.

Consequences for clients:

Want Creator 5 AD5X
File names /gcodeList /gcodeList
Print time / filament weight per file ❌ not reported gcodeListDetail
Per-tool material name + color per file ❌ not reported gcodeToolDatas[]
Thumbnail per file /gcodeThumb /gcodeThumb
Material Station slot contents /detailmatlStationInfo /detailmatlStationInfo

Material matching cannot be offered for a file already on a Creator 5. The printer knows what is loaded in each slot (/detail), but will not say what the file needs, and both halves are required to map tools to slots. Do not synthesize the missing half — deriving tools from the slot report or the file name produces a mapping the printer never described, which is then sent back to it as fact.

Matching is still possible at upload time, where the client parses the .3mf itself and supplies materialMappings at print-start (see Print Workflow). That is the only supported path on this model.

/control Command Set

/control dispatches on the payload.cmd string. The Creator 5 firmware has a dispatch branch for 12 commands; the 7 AD5X motion/material commands listed below are absent — and crucially, an absent command is silently ACKed with {code:0,"Success"}, so a success response is not proof a command did anything.

Accepted commands (12)

cmd Args Notes
temperatureCtl_cmd platform, rightNozzle, leftNozzle, chamber, nozzles[4] Per-tool temps — see Temperature Control
printerCtl_cmd zAxisCompensation (float), speed, chamberFan, coolingFan Partial update; sentinel -200
lightControl_cmd status: open/close Chamber LED
circulateCtl_cmd internal, external: open/close Accepted but does not actuate the fans on the Pro; the base Creator 5 has no filtration at all. Read TVOC only (Pro)
jobCtl_cmd action: pause/continue/cancel Print job control
stateCtrl_cmd action (e.g. setClearPlatform)
msConfig_cmd {slot, mt, rgb} Slot metadata only — see note
calibration_cmd leveling / vibration Cloud/app-originated
reName_cmd name Cloud/app-originated
streamCtrl_cmd camera open/close Cloud/app-originated. No-op across the whole Creator 5 series — the stream is always served on :8080 and cannot be gated
delayClose_cmd auto-shutdown + time Cloud/app-originated
userProfile_cmd account mgmt Not printer control

msConfig_cmd wire keys are {slot, mt, rgb} (the # is stripped from rgb), the same as the AD5X. Do not send materialName / materialColor (those are the internal C++ parameter names, not wire keys). Unlike the AD5X there is no ms_cmd — the Creator 5 has no slot load/unload command.

Absent commands (7) — silently no-op

moveCtrl_cmd, homingCtrl_cmd, extrudeCtrl_cmd, ms_cmd, ipdMs_cmd, ipdMsConfig_cmd, errorCodeCtrl_cmd.

These are the commands the AD5X firmware dispatches and the Creator 5 does not.

This means no axis home/jog/move, no manual extrude, no slot load/unload, and no error-clear command over the API. These are a permanent limitation short of rooting the printer and using Moonraker directly.

Temperature Control

Send via /control with temperatureCtl_cmd. The body is { serialNumber, checkCode, payload: { cmd, args } }.

{
  "cmd": "temperatureCtl_cmd",
  "args": {
    "platform":    60,                 // heated bed
    "rightNozzle": -200,               // legacy scalar — not used by the Creator 5
    "leftNozzle":  -200,               // legacy scalar — not used by the Creator 5
    "chamber":     -200,               // chamber heater (max 80 °C)
    "nozzles":     [220, -200, -200, -200]  // per-tool targets — the only path that drives the tools
  }
}

The Creator 5 drives its tool heads only through the nozzles array — one entry per head, in order (index 0 is the first head; the printer UI numbers the heads T1–T4). The rightNozzle / leftNozzle scalars are not used. The bed (platform) and chamber use their scalar fields.

Sentinels

The "off" value differs between the scalar fields and the per-tool nozzles array:

Field No change Off Set target
platform, chamber -200 -100 target °C
each nozzles[] element -200 0 target °C

To turn a tool head off, set its nozzles[] element to 0 — not -100. The per-tool array only treats 0 as off; a -100 there is ignored and the tool keeps heating. (-100 turns off the scalar platform / chamber fields only.)

Hard constraint

nozzles must be an array of exactly 4 elements or the per-tool block is ignored. Always send 4 entries, using -200 for tools you are not changing — even on a bed- or chamber-only command.

Read back per-tool temperatures from /detail nozzleTemps[4] / nozzleTargetTemps[4] (current / target). The rightTemp / leftTemp scalars are legacy.

Chamber Heater

Only the Creator 5 Pro has a heated chamber (max 80 °C), and chamber heating is verified working and API-controllable on the Pro. The base Creator 5 has no chamber heater at all.

  • Creator 5 Pro: set / clear the target with the chamber field of temperatureCtl_cmd — a target up to 80 °C to heat, -100 to turn off, or -200 to leave unchanged. Read the live temperature from /detail chamberTemp and the current target from chamberTargetTemp.
  • Base Creator 5: no heater. /detail chamberTemp reports the sentinel -108 (no sensor), and the chamber control field is silently ACKed with no effect.

Print Workflow

The Creator 5 splits the multi-tool workflow across upload and print-start differently from the AD5X: the upload flags the file as a material-station job, and the per-tool material mapping is supplied at print-start (not in the upload header).

1. Upload — POST /uploadGcode

multipart/form-data, field name gcodeFile, streamed. Accepts .gcode and .3mf (a .3mf is unzipped on-device to its embedded .gcode).

Request headers:

serialNumber, checkCode, fileSize, printNow, levelingBeforePrint,
flowCalibration, timeLapseVideo, useMatlStation, gcodeToolCnt, Expect: 100-continue
  • Booleans are the strings "true" / "false" (not "1" / "0").
  • useMatlStation flags the file as a material-station job (clients set it true); gcodeToolCnt is the tool count (always ≥ 1).
  • There is no firstLayerInspection header (the field doesn't exist on the C5) and no materialMappings header — mapping happens at print-start.

Files are saved to /usr/data/gcodes. Pre-flight gates: LAN mode ({code:-2}), a cache drop, then a busy check ({code:2,"Printer is busy"}).

2. Start print — POST /printGcode

{
  "serialNumber": "...",
  "checkCode": "...",
  "fileName": "model.gcode",     // required
  "levelingBeforePrint": true,   // required
  "flowCalibration": false,      // always sent, default false
  "timeLapseVideo": false,       // always sent, default false
  "materialMappings": [ /* present ONLY for a multi-tool print */ ]
}

/printGcode does not read useMatlStation, gcodeToolCnt, or firstLayerInspection — those belong to the upload request.

materialMappings[] element (5 fields — same shape as the AD5X)

{
  "toolId": 0,                    // gcode tool, 0-based (T0..T3)
  "slotId": 1,                    // physical material slot, 1-based (1..4)
  "materialName": "PLA",
  "toolMaterialColor": "#2E54DD", // #RRGGBB
  "slotMaterialColor": "#2E54DD"  // #RRGGBB
}

Maximum 4 mappings. For a single-tool print, omit materialMappings entirely.

Job control

POST /control with jobCtl_cmd and action = pause / continue / cancel.

/detail Schema Additions

The Creator 5 /detail is the AD5X schema plus these additions (full live example modeled in the endpoint YAML):

Field Description
nozzleTemps[4] / nozzleTargetTemps[4] Per-tool current / target temperatures (read these, not rightTemp/leftTemp)
lidar First-layer scanner capability flag
model Model name, e.g. "Creator 5 Pro"
nozzleModel, name, macAddr, location Identity fields
estimatedLeftWeight / estimatedRightWeight Filament weight estimates
zAxisCompensation Current Z-offset

matlStationInfo.slotInfos[] = { slotId (1-based), materialName, materialColor (#RRGGBB), hasFilament }; currentSlot / currentLoadSlot use 0 = idle (real slots are 1–4); slotCnt = 4.

hasMatlStation is AD5X-only. The raw firmware hasMatlStation field is omitted on the Creator 5 Pro even when the 4-slot station is present. Derive material-station capability from slotCnt / slotInfos, never from hasMatlStation.

Similarly, the /product capability flags (chamberTempCtrlState, lightCtrlState, internalFanCtrlState / externalFanCtrlState) are unreliable on the Creator 5 — decide features from the model/PID, not these flags.

Active toolhead has no confirmed HTTP signal. The firmware tracks the active extruder internally, but it is not exposed in /detail and no /control command selects a tool. matlStationInfo.currentSlot is an unconfirmed candidate proxy — label any UI built on it as "derived," not authoritative.

Connection Model

Because there is no TCP 8899, the Creator 5 breaks any TCP-first connection flow. Clients must use an HTTP-only path:

  • The @ghosttypes/ff-api FiveMClient auto-enables httpOnly mode for Creator 5 PIDs; initControl skips the TCP control channel.
  • FlashForgeUI routes Creator 5 PIDs through an HTTP-only short-circuit and never prompts for a LAN/TCP password.
  • HTTP-only models can never use legacy mode — any per-printer transport flag must be gated by an isHttpOnlyModel() check.

Filament Palette

The Creator 5 has its own 24-color palette and 21-material list, firmware-confirmed and different from the AD5X palette — do not reuse the AD5X swatch values. See Creator 5 Filament Palette for the full tables.

See Also

Clone this wiki locally