Skip to content

Adventurer 5M Series

GhostTypes edited this page Mar 21, 2026 · 5 revisions

Adventurer 5M Series

The Adventurer 5M series (5M and 5M Pro) represents FlashForge's modern printer lineup with HTTP REST API as the primary control interface.

Protocol Architecture

Protocol Port Purpose
HTTP REST 8898 Primary control and status
TCP Control 8899 Low-level G/M code fallback
Camera HTTP 8080 MJPEG video streaming (Pro only)

Firmware Coverage

Primary validated firmware: 3.2.7

Authentication

All HTTP endpoints require authentication:

{
  "serialNumber": "SNADVA5MXXXXX",
  "checkCode": "12345"
}

See Authentication for complete details.

HTTP API Endpoints

Core Endpoints

Endpoint Method Description
/detail POST Comprehensive printer status
/product POST Feature availability flags
/control POST Send control commands
/gcodeList POST List recent files
/gcodeThumb POST Get file thumbnail
/printGcode POST Start local file print
/uploadGcode POST Upload and optionally print file

Additional Endpoints

Endpoint Method Description
/checkCode POST Validate credentials
/notifyWanBind POST Cloud binding notification
/getThum GET Get thumbnail image

Control Commands

The /control endpoint accepts various command payloads.

Standard Commands

Command Description Parameters
lightControl_cmd LED on/off status: "open"/"close"
jobCtl_cmd Job control action: "pause"/"continue"/"cancel"
printerCtl_cmd Print settings speed, zAxisCompensation, fans
temperatureCtl_cmd Temperature control nozzleTemp, platformTemp
stateCtrl_cmd State control action: "setClearPlatform"
reName_cmd Rename printer name: string
delayClose_cmd Auto shutdown status, time
calibration_cmd Calibration Various

Example: Pause Print

POST http://10.0.0.42:8898/control
Content-Type: application/json

{
  "serialNumber": "SNADVA5MXXXXX",
  "checkCode": "12345",
  "payload": {
    "cmd": "jobCtl_cmd",
    "args": {
      "jobID": "",
      "action": "pause"
    }
  }
}

Example: Set Print Speed

POST http://10.0.0.42:8898/control
Content-Type: application/json

{
  "serialNumber": "SNADVA5MXXXXX",
  "checkCode": "12345",
  "payload": {
    "cmd": "printerCtl_cmd",
    "args": {
      "speed": 120
    }
  }
}

Note: Only include fields you want to change. Omitted fields are ignored. Do not send 0 or default values for fields you do not intend to change.

Model Differences

Adventurer 5M (Base Model)

Feature Status
HTTP API Yes
TCP Fallback Yes
Built-in Camera No
Factory LEDs No
Air Filtration No
TVOC Sensor No

Adventurer 5M Pro

Feature Status
HTTP API Yes
TCP Fallback Yes
Built-in Camera Yes (port 8080)
Factory LEDs Yes
Air Filtration Yes (internal + external)
TVOC Sensor Yes

See 5M Pro Features for Pro-specific documentation.

Feature Detection

Using /product Endpoint

POST http://10.0.0.42:8898/product
Content-Type: application/json

{
  "serialNumber": "SNADVA5MXXXXX",
  "checkCode": "12345"
}

Response:

{
  "code": 0,
  "message": "Success",
  "product": {
    "internalFanCtrlState": 1,    // Pro: filtration available
    "externalFanCtrlState": 1,    // Pro: exhaust available
    "lightCtrlState": 1,          // LEDs available
    "nozzleTempCtrlState": 1,
    "platformTempCtrlState": 1
  }
}

Detection Logic:

  • If internalFanCtrlState or externalFanCtrlState is non-zero: 5M Pro
  • If lightCtrlState is 0 but LED control works: Aftermarket LEDs installed

Using /detail Endpoint

Check these fields:

  • cameraStreamUrl: Present on Pro, absent on base 5M
  • tvoc: Reports values on Pro, absent on base 5M
  • name or firmwareVersion: May contain "Pro" identifier (less reliable)

File Operations

Upload File

POST http://10.0.0.42:8898/uploadGcode
Content-Type: multipart/form-data
serialNumber: SNADVA5MXXXXX
checkCode: 12345
fileSize: 1234567
printNow: false
levelingBeforePrint: true

[gcodeFile form data with binary content]

Print Local File

POST http://10.0.0.42:8898/printGcode
Content-Type: application/json

{
  "serialNumber": "SNADVA5MXXXXX",
  "checkCode": "12345",
  "fileName": "Benchy.gcode",
  "levelingBeforePrint": true
}

TCP Fallback

For operations not available via HTTP, use TCP port 8899:

When to Use TCP

  • Direct G-code commands (motion, positioning)
  • Homing operations
  • Manual extrusion
  • Low-level status queries
  • Debugging/troubleshooting

Example: Home Axes via TCP

Connect to 10.0.0.42:8899
Send: ~M601 S1
Send: ~G28
Send: ~M602
Close connection

Recommended Client Strategy

1. Initialize with HTTP

  1. Discover printer via UDP
  2. Authenticate with /detail to verify credentials
  3. Query /product for feature detection
  4. Cache feature flags for session

2. Use HTTP for Status

Poll /detail every 1-2 seconds for:

  • Print progress
  • Temperatures
  • Machine state
  • Job information

3. Use HTTP for Control

All standard user actions via /control:

  • Start/pause/cancel prints
  • Temperature changes
  • LED control
  • Settings adjustments

4. Reserve TCP for Advanced

Use TCP only when HTTP is insufficient:

  • Direct motion control
  • Homing sequences
  • Manual extrusion

Status Monitoring

/detail Response Fields

Field Type Description
status string Machine state
printProgress float Progress (0.0-1.0)
printLayer int Current layer
printFileName string Active file name
platTemp float Bed temperature
platTargetTemp float Bed target
leftTemp/rightTemp float Extruder temperatures
lightStatus string LED state
tvoc int TVOC level (Pro only)

State Values

Status Description
ready Idle, ready for jobs
busy Performing operation
heating Warming up
printing Actively printing
pausing Transitioning to pause
paused Job paused
cancel Job cancelled
completed Job finished
error Error state

Aftermarket Upgrades

The 5M base model supports aftermarket additions:

Camera Installation

  • OEM or third-party cameras can be installed
  • Camera becomes available on port 8080
  • May require enabling in printer settings

LED Installation

  • Aftermarket LEDs can be controlled via lightControl_cmd
  • Works even if lightCtrlState reports 0
  • Use standard LED control commands

Common Issues

Authentication Failure

  • Verify serialNumber and checkCode from printer settings
  • Check for typos in credentials
  • Ensure headers are correct for /uploadGcode

Command Not Working

  • Check /product for feature availability
  • Verify printer is in correct state (not busy/printing)
  • Some commands only work when idle

File Upload Issues

  • Include all required headers
  • Verify file size matches actual file
  • Ensure multipart boundary is correct

Clone this wiki locally