Skip to content

Object Model Documentation

Christian Hammacher edited this page May 27, 2021 · 22 revisions

Overview

This page is auto-generated. If you find any errors, please report them on the forum and DO NOT EDIT this page! If you are capable of editing source code, it is encouraged to make pull requests for the original DSF API code instead.

This page refers to version 3.3 of the Object Model.

All Duet software projects share the same object model to store configuration and sensor data. This page provides documentation about the different object model keys and associated properties.

Some fields may not be available in standalone mode because some fields are only maintained by DSF and/or DWC. It is advised to consider this when developing applications that address Duets in standalone and SBC mode.

Certain fields have class names in braces (...) appended to the object model path. These class names are present for items where different item types may be configured. If a class inherits values from a base type, the inheritance is marked using a colon (:) followed by the base class name. So, for example, LaserFilamentMonitor : FilamentMonitor means that a LaserFilamentMonitor inherits all the properties from the FilamentMonitor base class.

In standalone mode, each main key (like boards or heat) has its own sequence number in the seqs key which is not documented here. Whenever a non-live field is updated (see M409 F"f"), this sequence number is increased. For clients targeting standalone mode, it can be helpful to check these values to determine when it is time to request a full key from RRF again. There is an extra value seqs.reply as well which is used notify clients about new messages (see rr_reply). Note that these sequence numbers are not exposed in SBC mode.

This page is preliminary and subject to further changes.

Object Model Description

boards[]

List of connected boards

Note: The first item represents the main board

boards[].bootloaderFileName

Filename of the firmware binary

boards[].canAddress

CAN address of this board or null if not applicable

boards[].directDisplay

Details about a connected display or null if none is connected

boards[].directDisplay.pulsesPerClick

Number of pulses per click of the rotary encoder

boards[].directDisplay.spiFreq

SPI frequency of the display (in Hz)

boards[].directDisplay.typeName

Name of the attached display type

boards[].firmwareDate

Date of the firmware build

boards[].firmwareFileName

Filename of the firmware binary

boards[].firmwareName

Name of the firmware build

boards[].firmwareVersion

Version of the firmware build

boards[].iapFileNameSBC

Filename of the IAP binary that is used for updates from the SBC or null if unsupported

boards[].iapFileNameSD

Filename of the IAP binary that is used for updates from the SD card or null if unsupported

boards[].maxHeaters

Maximum number of heaters this board can control

boards[].maxMotors

Maximum number of motors this board can drive

boards[].mcuTemp

Minimum, maximum, and current temperatures of the MCU

boards[].name

Full name of the board

boards[].shortName

Short name of this board

boards[].state

State of this board

This property may be one of the following:

  • unknown: Unknown state
  • flashing: Flashing new firmware
  • flashFailed: Failed to flash new firmware
  • resetting: Board is being reset
  • running: Board is up and running

boards[].supports12864

Indicates if this board supports external 12864 displays

boards[].supportsDirectDisplay

Indicates if this board supports external displays

boards[].uniqueId

Unique identifier of the board

boards[].v12

Minimum, maximum, and current voltages on the 12V rail

boards[].vIn

Minimum, maximum, and current voltages on the input rail

directories

Information about the individual directories

Note: This may not be available in RepRapFirmware if no mass storages are available

directories.filaments

Path to the filaments directory

directories.firmware

Path to the firmware directory

directories.gCodes

Path to the G-Codes directory

directories.macros

Path to the macros directory

directories.menu

Path to the menu directory

Note: Intended for 12864 displays but currently unused in DSF. It is only needed for the Duet Maestro + DWC

directories.scans

Path to the scans directory

directories.system

Path to the system directory

directories.web

Path to the web directory

fans[]

List of configured fans

fans[].actualValue

Value of this fan (0..1 or -1 if unknown)

fans[].blip

Blip value indicating how long the fan is supposed to run at 100% when turning it on to get it started (in s)

fans[].frequency

Configured frequency of this fan (in Hz)

fans[].max

Maximum value of this fan (0..1)

fans[].min

Minimum value of this fan (0..1)

fans[].name

Name of the fan

fans[].requestedValue

Requested value for this fan on a scale between 0 to 1

fans[].rpm

Current RPM of this fan or -1 if unknown/unset

fans[].thermostatic

Thermostatic control parameters

fans[].thermostatic.heaters[]

List of the heaters to monitor (indices)

fans[].thermostatic.highTemperature

Upper temperature range required to turn on the fan (in C)

fans[].thermostatic.lowTemperature

Lower temperature range required to turn on the fan (in C)

global

Dictionary of global variables vs JSON values

Note: When DSF attempts to reconnect to RRF, this may be set to null to clear the contents

heat

Information about the heat subsystem

heat.bedHeaters[]

List of configured bed heaters (indices)

Note: Items may be -1 if unconfigured

heat.chamberHeaters[]

List of configured chamber heaters (indices)

Note: Items may be -1 if unconfigured

heat.coldExtrudeTemperature

Minimum required temperature for extrusion moves (in C)

heat.coldRetractTemperature

Minimum required temperature for retraction moves (in C)

heat.heaters[]

List of configured heaters

heat.heaters[].active

Active temperature of the heater (in C)

heat.heaters[].current

Current temperature of the heater (in C)

heat.heaters[].max

Maximum temperature allowed for this heater (in C)

Note: This is only temporary and should be replaced by a representation of the heater protection as in RRF

heat.heaters[].min

Minimum temperature allowed for this heater (in C)

Note: This is only temporary and should be replaced by a representation of the heater protection as in RRF

heat.heaters[].model

Information about the heater model

heat.heaters[].model.deadTime

Dead time

heat.heaters[].model.enabled

Indicates if this heater is enabled

heat.heaters[].model.gain

Gain value

heat.heaters[].model.heatingRate

Heating rate (in K/s)

heat.heaters[].model.inverted

Indicates if the heater PWM signal is inverted

heat.heaters[].model.maxPwm

Maximum PWM value

heat.heaters[].model.pid

Details about the PID controller

heat.heaters[].model.pid.overridden

Indicates if custom PID values are used

heat.heaters[].model.pid.p

Proportional value of the PID regulator

heat.heaters[].model.pid.i

Integral value of the PID regulator

heat.heaters[].model.pid.d

Derivative value of the PID regulator

heat.heaters[].model.pid.used

Indicates if PID control is being used

heat.heaters[].model.standardVoltage

Standard voltage or null if unknown

heat.heaters[].model.timeConstant

Time constant

heat.heaters[].model.timeConstantFansOn

Time constant with the fans on

heat.heaters[].monitors[]

Monitors of this heater

heat.heaters[].monitors[].action

Action to perform when the trigger condition is met

This property may be one of the following:

  • 0: Generate a heater fault
  • 1: Permanently switch off the heater
  • 2: Temporarily switch off the heater until the condition is no longer met
  • 3: Shut down the printer
heat.heaters[].monitors[].condition

Condition to meet to perform an action

This property may be one of the following:

  • disabled: Heater monitor is disabled
  • tooHigh: Limit temperature has been exceeded
  • tooLow: Limit temperature is too low
  • undefined: Unknown condition
heat.heaters[].monitors[].limit

Limit threshold for this heater monitor

heat.heaters[].name

Name of the heater or null if unset

heat.heaters[].sensor

Sensor number of this heater or -1 if not configured

heat.heaters[].standby

Standby temperature of the heater (in C)

heat.heaters[].state

State of the heater

This property may be one of the following:

  • off: Heater is turned off
  • standby: Heater is in standby mode
  • active: Heater is active
  • fault: Heater faulted
  • tuning: Heater is being tuned
  • offline: Heater is offline

httpEndpoints[]

This field is maintained by DSF in SBC mode and might not be available in standalone mode

List of registered third-party HTTP endpoints

httpEndpoints[].endpointType

HTTP type of this endpoint

This property may be one of the following:

  • GET: HTTP GET request
  • POST: HTTP POST request
  • PUT: HTTP PUT request
  • PATCH: HTTP PATCH request
  • TRACE: HTTP TRACE request
  • DELETE: HTTP DELETE request
  • OPTIONS: HTTP OPTIONS request
  • WebSocket: WebSocket request. This has not been implemented yet but it is reserved for future usage

httpEndpoints[].namespace

Namespace of the endpoint

Note: May be to register root-level rr_ requests (to emulate RRF poll requests)

httpEndpoints[].path

Path to the endpoint

httpEndpoints[].isUploadRequest

Whether this is a upload request

Note: If set to true, the whole body payload is written to a temporary file and the file path is passed via the property

httpEndpoints[].unixSocket

Path to the UNIX socket

inputs[]

Information about every available G/M/T-code channel

inputs[].axesRelative

Whether relative positioning is being used

inputs[].compatibility

Emulation used on this channel

This property may be one of the following:

  • Default: No emulation (same as RepRapFirmware)
  • RepRapFirmware: Emulating RepRapFirmware
  • Marlin: Emulating Marlin
  • Teacup: Emulating Teacup
  • Sprinter: Emulating Sprinter
  • Repetier: Emulating Repetier
  • NanoDLP: Special emulation for NanoDLP

inputs[].distanceUnit

Whether inches are being used instead of mm

This property may be one of the following:

  • mm: Millimeters
  • inch: Inches

inputs[].drivesRelative

Whether relative extrusion is being used

inputs[].feedRate

Current feedrate in mm/s

inputs[].inMacro

Whether a macro file is being processed

inputs[].name

Name of this channel

This property may be one of the following:

  • HTTP: Code channel for HTTP requests
  • Telnet: Code channel for Telnet requests
  • File: Code channel for file prints
  • USB: Code channel for USB requests
  • Aux: Code channel for serial devices (e.g. PanelDue)
  • Trigger: Code channel for running triggers or config.g
  • Queue: Code channel for the code queue that executes a couple of codes in-sync with moves
  • LCD: Code channel for auxiliary LCD devices (e.g. PanelOne)
  • SBC: Default code channel for requests over SPI
  • Daemon: Code channel that executes the daemon process
  • Aux2: Code channel for the second UART port
  • Autopause: Code channel that executes macros on power fail, heater faults and filament out
  • Unknown: Unknown code channel

inputs[].stackDepth

Depth of the stack

inputs[].state

State of this input channel

This property may be one of the following:

  • awaitingAcknowledgement: Awaiting message acknowledgement
  • idle: Channel is idle
  • executing: Channel is executing a G/M/T-code
  • waiting: Channel is waiting for more data
  • reading: Channel is reading a G/M/T-code

inputs[].lineNumber

Number of the current line

inputs[].volumetric

Whether volumetric extrusion is being used

job

Information about the current job

job.build

Information about the current build or null if not available

job.build.currentObject

Index of the current object being printed or -1 if unknown

job.build.m486Names

Whether M486 names are being used

job.build.m486Numbers

Whether M486 numbers are being used

job.build.objects[]

List of detected build objects

job.build.objects[].cancelled

Indicates if this build object is cancelled

job.build.objects[].name

Name of the build object (if any)

job.build.objects[].x[]

X coordinates of the build object (in mm or null if not found)

job.build.objects[].y[]

Y coordinates of the build object (in mm or null if not found)

job.duration

Total duration of the current job (in s or null)

job.file

Information about the file being processed

job.file.filament[]

Filament consumption per extruder drive (in mm)

job.file.fileName

The filename of the G-code file

job.file.firstLayerHeight

Height of the first layer or 0 if not found (in mm)

job.file.generatedBy

Name of the application that generated this file

job.file.height

Build height of the G-code job or 0 if not found (in mm)

job.file.lastModified

Value indicating when the file was last modified or null if unknown

job.file.layerHeight

Height of each other layer or 0 if not found (in mm)

job.file.numLayers

Number of total layers or 0 if unknown

job.file.printTime

Estimated print time (in s)

job.file.simulatedTime

Estimated print time from G-code simulation (in s)

job.file.size

Size of the file

job.file.thumbnails[]

Collection of thumbnails parsed from Gcode

job.file.thumbnails[].encodedImage

base64 encoded thumbnail

job.file.thumbnails[].height

Height of thumbnail

job.file.thumbnails[].width

Width of thumbnail

job.filePosition

Current position in the file being processed (in bytes or null)

job.lastDuration

Total duration of the last job (in s or null)

job.lastFileName

Name of the last file processed or null if none

job.lastFileAborted

This field is maintained by DSF in SBC mode and might not be available in standalone mode

Indicates if the last file was aborted (unexpected cancellation)

job.lastFileCancelled

This field is maintained by DSF in SBC mode and might not be available in standalone mode

Indicates if the last file was cancelled (user cancelled)

job.lastFileSimulated

This field is maintained by DSF in SBC mode and might not be available in standalone mode

Indicates if the last file processed was simulated

Note: This is not set if the file was aborted or cancelled

job.layer

Number of the current layer or null not available

job.layers[]

This field is maintained by DSF in SBC mode and might not be available in standalone mode

Information about the past layers

Note: In previous API versions this was a but it has been changed to to allow past layers to be modified again when needed. Note that previous plugins subscribing to this property will not receive any more updates about this property to avoid memory leaks

job.layers[].duration

Duration of the layer (in s)

job.layers[].filament[]

Actual amount of filament extruded during this layer (in mm)

job.layers[].fractionPrinted

Fraction of the file printed during this layer (0..1)

job.layers[].height

Height of the layer (in mm or 0 if unknown)

job.layers[].temperatures[]

Last heater temperatures (in C or null if unknown)

job.layerTime

Time elapsed since the last layer change (in s or null)

job.pauseDuration

Total pause time since the job started

job.rawExtrusion

Total extrusion amount without extrusion factors applied (in mm)

job.timesLeft

Estimated times left

job.timesLeft.filament

Time left based on filament consumption (in s or null)

job.timesLeft.file

Time left based on file progress (in s or null)

job.timesLeft.slicer

Time left based on the slicer reports (see M73, in s or null)

job.warmUpDuration

Time needed to heat up the heaters (in s or null)

limits

Machine configuration limits

limits.axes

Maximum number of axes or null if unknown

limits.axesPlusExtruders

Maximum number of axes + extruders or null if unknown

limits.bedHeaters

Maximum number of bed heaters or null if unknown

limits.boards

Maximum number of boards or null if unknown

limits.chamberHeaters

Maximum number of chamber heaters or null if unknown

limits.drivers

Maximum number of drivers or null if unknown

limits.driversPerAxis

Maximum number of drivers per axis or null if unknown

limits.extruders

Maximum number of extruders or null if unknown

limits.extrudersPerTool

Maximum number of extruders per tool or null if unknown

limits.fans

Maximum number of fans or null if unknown

limits.gpInPorts

Maximum number of general-purpose input ports or null if unknown

limits.gpOutPorts

Maximum number of general-purpose output ports or null if unknown

limits.heaters

Maximum number of heaters or null if unknown

limits.heatersPerTool

Maximum number of heaters per tool or null if unknown

limits.monitorsPerHeater

Maximum number of monitors per heater or null if unknown

limits.restorePoints

Maximum number of restore points or null if unknown

limits.sensors

Maximum number of sensors or null if unknown

limits.spindles

Maximum number of spindles or null if unknown

limits.tools

Maximum number of tools or null if unknown

limits.trackedObjects

Maximum number of tracked objects or null if unknown

limits.triggers

Maximum number of triggers or null if unknown

limits.volumes

Maximum number of volumes or null if unknown

limits.workplaces

Maximum number of workplaces or null if unknown

limits.zProbeProgramBytes

Maximum number of Z-probe programming bytes or null if unknown

limits.zProbes

Maximum number of Z-probes or null if unknown

messages[]

This field is maintained by DSF in SBC mode and might not be available in standalone mode

Generic messages that do not belong explicitly to codes being executed. This includes status messages, generic errors and outputs generated by M118

messages[].time

Time at which the message was generated

messages[].type

Type of this message

This property may be one of the following:

  • 0: This is a success message
  • 1: This is a warning message
  • 2: This is an error message

messages[].content

Content of this message

Note: May be empty but not null

move

Information about the move subsystem

move.axes[]

List of the configured axes

move.axes[].acceleration

Acceleration of this axis (in mm/s^2)

move.axes[].babystep

Babystep amount (in mm)

move.axes[].current

Motor current (in mA)

move.axes[].drivers[]

List of the assigned drivers

move.axes[].homed

Whether or not the axis is homed

move.axes[].jerk

Motor jerk (in mm/s)

move.axes[].letter

Letter of the axis (always upper-case)

move.axes[].machinePosition

Current machine position (in mm) or null if unknown/unset

move.axes[].max

Maximum travel of this axis (in mm)

move.axes[].maxProbed

Whether the axis maximum was probed

move.axes[].microstepping

Microstepping configuration

move.axes[].microstepping.interpolated

Indicates if the stepper driver uses interpolation

move.axes[].microstepping.value

Microsteps per full step

move.axes[].min

Minimum travel of this axis (in mm)

move.axes[].minProbed

Whether the axis minimum was probed

move.axes[].speed

Maximum speed (in mm/s)

move.axes[].stepsPerMm

Number of microsteps per mm

move.axes[].userPosition

Current user position (in mm) or null if unknown

move.axes[].visible

Whether or not the axis is visible

move.axes[].workplaceOffsets[]

Offsets of this axis for each workplace (in mm)

move.calibration

Information about the automatic calibration

move.calibration.final

Final calibration results (for Delta calibration)

move.calibration.final.deviation

RMS deviation (in mm)

move.calibration.final.mean

Mean deviation (in mm)

move.calibration.initial

Initial calibration results (for Delta calibration)

move.calibration.initial.deviation

RMS deviation (in mm)

move.calibration.initial.mean

Mean deviation (in mm)

move.calibration.numFactors

Number of factors used (for Delta calibration)

move.compensation

Information about the currently configured compensation options

move.compensation.fadeHeight

Effective height before the bed compensation is turned off (in mm) or null if not configured

move.compensation.file

This field is maintained by DSF in SBC mode and might not be available in standalone mode

Full path to the currently used height map file or null if none is in use

move.compensation.meshDeviation

Deviations of the mesh grid or null if not applicable

move.compensation.meshDeviation.deviation

RMS deviation (in mm)

move.compensation.meshDeviation.mean

Mean deviation (in mm)

move.compensation.probeGrid

Settings of the current probe grid

move.compensation.probeGrid.axes[]

Axis letters of this heightmap

move.compensation.probeGrid.maxs[]

End coordinates of the heightmap

move.compensation.probeGrid.mins[]

Start coordinates of the heightmap

move.compensation.probeGrid.radius

Probing radius for delta kinematics

move.compensation.probeGrid.spacings[]

Spacings between the coordinates

move.compensation.skew

Information about the configured orthogonal axis parameters

move.compensation.skew.compensateXY

Indicates if the value is applied to the X or Y axis value

move.compensation.skew.tanXY

Tangent of the skew angle for the XY or YX axes

move.compensation.skew.tanXZ

Tangent of the skew angle for the XZ axes

move.compensation.skew.tanYZ

Tangent of the skew angle for the YZ axes

move.compensation.type

Type of the compensation in use

This property may be one of the following:

  • none: No compensation
  • mesh: Mesh compensation

move.currentMove

Information about the current move

move.currentMove.acceleration

Acceleration of the current move (in mm/s^2)

move.currentMove.deceleration

Deceleration of the current move (in mm/s^2)

move.currentMove.laserPwm

Laser PWM of the current move (0..1) or null if not applicable

move.currentMove.requestedSpeed

Requested speed of the current move (in mm/s)

move.currentMove.topSpeed

Top speed of the current move (in mm/s)

move.extruders[]

List of configured extruders

move.extruders[].acceleration

Acceleration of this extruder (in mm/s^2)

move.extruders[].current

Motor current (in mA)

move.extruders[].driver

Assigned driver

move.extruders[].filament

Name of the currently loaded filament

move.extruders[].factor

Extrusion factor to use (0..1 or greater)

move.extruders[].jerk

Motor jerk (in mm/s)

move.extruders[].microstepping

Microstepping configuration

move.extruders[].microstepping.interpolated

Indicates if the stepper driver uses interpolation

move.extruders[].microstepping.value

Microsteps per full step

move.extruders[].nonlinear

Nonlinear extrusion parameters (see M592)

move.extruders[].nonlinear.a

A coefficient in the extrusion formula

move.extruders[].nonlinear.b

B coefficient in the extrusion formula

move.extruders[].nonlinear.upperLimit

Upper limit of the nonlinear extrusion compensation

move.extruders[].position

Extruder position (in mm)

move.extruders[].pressureAdvance

Pressure advance

move.extruders[].rawPosition

Raw extruder position as commanded by the slicer without extrusion factor applied (in mm)

move.extruders[].speed

Maximum speed (in mm/s)

move.extruders[].stepsPerMm

Number of microsteps per mm

move.idle

Idle current reduction parameters

move.idle.timeout

Idle timeout after which the stepper motor currents are reduced (in s)

move.idle.factor

Motor current reduction factor (0..1)

move.kinematics

Configured kinematics options

move.kinematics (CoreKinematics : ZLeadscrewKinematics)

Information about core kinematics

move.kinematics.forwardMatrix[] (CoreKinematics : ZLeadscrewKinematics)

Forward matrix

move.kinematics.inverseMatrix[] (CoreKinematics : ZLeadscrewKinematics)

Inverse matrix

move.kinematics (DeltaKinematics : Kinematics)

Delta kinematics

move.kinematics.deltaRadius (DeltaKinematics : Kinematics)

Delta radius (in mm)

move.kinematics.homedHeight (DeltaKinematics : Kinematics)

Homed height of a delta printer in mm

move.kinematics.printRadius (DeltaKinematics : Kinematics)

Print radius for Hangprinter and Delta geometries (in mm)

move.kinematics.towers[] (DeltaKinematics : Kinematics)

Delta tower properties

move.kinematics.towers[].angleCorrection (DeltaKinematics : Kinematics)

Tower position corrections (in degrees)

move.kinematics.towers[].diagonal (DeltaKinematics : Kinematics)

Diagonal rod length (in mm)

move.kinematics.towers[].endstopAdjustment (DeltaKinematics : Kinematics)

Deviation of the ideal endstop position (in mm)

move.kinematics.towers[].xPos (DeltaKinematics : Kinematics)

X coordinate of this tower (in mm)

move.kinematics.towers[].yPos (DeltaKinematics : Kinematics)

Y coordinate of this tower (in mm)

move.kinematics.xTilt (DeltaKinematics : Kinematics)

How much Z needs to be raised for each unit of movement in the +X direction

move.kinematics.yTilt (DeltaKinematics : Kinematics)

How much Z needs to be raised for each unit of movement in the +Y direction

move.kinematics (HangprinterKinematics : Kinematics)

Information about hangprinter kinematics

move.kinematics.anchors[] (HangprinterKinematics : Kinematics)

Anchor configurations for A, B, C, Dz

move.kinematics.printRadius (HangprinterKinematics : Kinematics)

Print radius (in mm)

move.kinematics.name (Kinematics)

Currently configured geometry type

This property may be one of the following:

  • cartesian: Cartesian
  • coreXY: CoreXY
  • coreXYU: CoreXY with extra U axis
  • coreXYUV: CoreXY with extra UV axes
  • coreXZ: CoreXZ
  • markForged: MarkForged
  • FiveBarScara: Five-bar SCARA
  • Hangprinter: Hangprinter
  • delta: Linear Delta
  • Polar: Polar
  • Rotary delta: Rotary delta
  • Scara: SCARA
  • unknown: Unknown
move.kinematics (ScaraKinematics : ZLeadscrewKinematics)

Kinematics class for SCARA kinematics

move.kinematics (ZLeadscrewKinematics : Kinematics)

Base kinematics class that provides the ability to level the bed using Z leadscrews

move.kinematics.tiltCorrection (ZLeadscrewKinematics : Kinematics)

Parameters describing the tilt correction

move.kinematics.tiltCorrection.correctionFactor (ZLeadscrewKinematics : Kinematics)

Correction factor

move.kinematics.tiltCorrection.lastCorrections[] (ZLeadscrewKinematics : Kinematics)

Last corrections (in mm)

move.kinematics.tiltCorrection.maxCorrection (ZLeadscrewKinematics : Kinematics)

Maximum Z correction (in mm)

move.kinematics.tiltCorrection.screwPitch (ZLeadscrewKinematics : Kinematics)

Pitch of the Z leadscrews (in mm)

move.kinematics.tiltCorrection.screwX[] (ZLeadscrewKinematics : Kinematics)

X positions of the leadscrews (in mm)

move.kinematics.tiltCorrection.screwY[] (ZLeadscrewKinematics : Kinematics)

Y positions of the leadscrews (in mm)

move.printingAcceleration

Maximum acceleration allowed while printing (in mm/s^2)

move.queue[]

List of move queue items (DDA rings)

move.queue[].gracePeriod

The minimum idle time before we should start a move (in s)

move.queue[].length

Maximum number of moves that can be accomodated in the DDA ring

move.shaping

Parameters for input shaping

move.shaping.damping

Damping factor

move.shaping.frequency

Frequency (in Hz)

move.shaping.minimumAcceleration

Minimum acceleration (in mm/s)

move.shaping.type

Configured input shaping type

This property may be one of the following:

  • none: None
  • ZVD: ZVD
  • ZVDD: ZVDD
  • EI2: EI2
  • DAA: DAA

move.speedFactor

Speed factor applied to every regular move (0.01..1 or greater)

move.travelAcceleration

Maximum acceleration allowed while travelling (in mm/s^2)

move.virtualEPos

Virtual total extruder position

move.workplaceNumber

Index of the currently selected workplace

network

Information about connected network adapters

network.corsSite

This field is maintained by DSF in SBC mode and might not be available in standalone mode

If this is set, the web server will allow cross-origin requests via the Access-Control-Allow-Origin header

network.hostname

Hostname of the machine

network.interfaces[]

This field is maintained by DSF in SBC mode and might not be available in standalone mode

List of available network interfaces

network.interfaces[].activeProtocols[]

List of active protocols

This property may be one of the following:

  • http: HTTP protocol
  • https: HTTPS protocol
  • ftp: FTP protocol
  • sftp: SFTP protocol
  • telnet: Telnet protocol
  • ssh: SSH protocol
network.interfaces[].actualIP

Actual IPv4 address of the network adapter

network.interfaces[].configuredIP

Configured IPv4 address of the network adapter

network.interfaces[].dnsServer

Configured IPv4 DNS server fo the network adapter

network.interfaces[].firmwareVersion

Version of the network interface or null if unknown. This is primarily intended for the ESP8266-based network interfaces as used on the Duet WiFi

network.interfaces[].gateway

IPv4 gateway of the network adapter

network.interfaces[].mac

Physical address of the network adapter

network.interfaces[].numReconnects

Number of reconnect attempts or null if unknown

network.interfaces[].signal

Signal of the WiFi adapter (only WiFi, in dBm, or null if unknown)

network.interfaces[].speed

Speed of the network interface (in MBit, null if unknown, 0 if not connected)

network.interfaces[].subnet

Subnet of the network adapter

network.interfaces[].type

Type of this network interface

This property may be one of the following:

  • wifi: Wireless network interface
  • lan: Wired network interface

network.name

Name of the machine

plugins

This field is maintained by DSF in SBC mode and might not be available in standalone mode

Dictionary of SBC plugins where each key is the plugin identifier

Note: Values in this dictionary cannot become null. If a change to null is reported, the corresponding key is deleted. Do not rely on the setter of this property; it will be removed from a future version.

plugins{}.id (PluginManifest)

Identifier of this plugin. May consist of letters and digits only (max length 32 chars)

Note: For plugins with DWC components, this is the Webpack chunk name too

plugins{}.name (PluginManifest)

Name of the plugin. May consist of letters, digits, dashes, and underscores only (max length 64 chars)

plugins{}.author (PluginManifest)

Author of the plugin

plugins{}.version (PluginManifest)

Version of the plugin

plugins{}.license (PluginManifest)

License of the plugin. Should follow the SPDX format (see https://spdx.org/licenses/)

plugins{}.homepage (PluginManifest)

Link to the plugin homepage or source code repository

plugins{}.dwcVersion (PluginManifest)

Major/minor compatible DWC version

plugins{}.dwcDependencies[] (PluginManifest)

List of DWC plugins this plugin depends on. Circular dependencies are not supported

plugins{}.sbcRequired (PluginManifest)

Set to true if a SBC is absolutely required for this plugin

plugins{}.sbcDsfVersion (PluginManifest)

Required DSF version for the plugin running on the SBC (ignored if there is no SBC executable)

plugins{}.sbcExecutable (PluginManifest)

Filename in the dsf directory used to start the plugin

Note: A plugin may provide different binaries in subdirectories per architecture. Supported architectures are: arm, arm64, x86, x86_64

plugins{}.sbcExtraExecutables[] (PluginManifest)

List of other filenames in the dsf directory that should be executable

plugins{}.sbcExecutableArguments (PluginManifest)

Command-line arguments for the executable

plugins{}.sbcOutputRedirected (PluginManifest)

Defines if messages from stdout/stderr are output as generic messages

plugins{}.sbcPermissions (PluginManifest)

List of permissions required by the plugin executable running on the SBC

This property may be one of the following:

  • commandExecution: Execute generic commands
  • codeInterceptionRead: Intercept codes but don't interact with them
  • codeInterceptionReadWrite: Intercept codes in a blocking way with options to resolve or cancel them
  • managePlugins: Install, load, unload, and uninstall plugins. Grants FS access to all third-party plugins too
  • servicePlugins: Service plugin runtime information (for internal purposes only, do not use)
  • manageUserSessions: Manage user sessions
  • objectModelRead: Read from the object model
  • objectModelReadWrite: Read from and write to the object model
  • registerHttpEndpoints: Create new HTTP endpoints
  • readFilaments: Read files in 0:/filaments
  • writeFilaments: Write files in 0:/filaments
  • readFirmware: Read files in 0:/firmware
  • writeFirmware: Write files in 0:/firmware
  • readGCodes: Read files in 0:/gcodes
  • writeGCodes: Write files in 0:/gcodes
  • readMacros: Read files in 0:/macros
  • writeMacros: Write files in 0:/macros
  • readMenu: Read files in 0:/menu
  • writeMenu: Write files in 0:/menu
  • readSystem: Read files in 0:/sys
  • writeSystem: Write files in 0:/sys
  • readWeb: Read files in 0:/www
  • writeWeb: Write files in 0:/www
  • fileSystemAccess: Access files including all subdirecotires of the virtual SD directory as DSF user
  • launchProcesses: Launch new processes
  • networkAccess: Communicate over the network (stand-alone)
  • superUser: Launch process as root user (for full device control - potentially dangerous)

plugins{}.sbcPackageDependencies[] (PluginManifest)

List of packages this plugin depends on (apt packages in the case of DuetPi)

plugins{}.sbcPluginDependencies[] (PluginManifest)

List of SBC plugins this plugin depends on. Circular dependencies are not supported

plugins{}.rrfVersion (PluginManifest)

Major/minor supported RRF version (optional)

plugins{}.data (PluginManifest)

Custom plugin data to be populated in the object model (DSF/DWC in SBC mode - or - DWC in standalone mode). Before can be used, corresponding properties must be registered via this property first!

plugins{} (Plugin : PluginManifest)

Class representing a loaded plugin

plugins{}.dsfFiles[] (Plugin : PluginManifest)

List of files for the DSF plugin

plugins{}.dwcFiles[] (Plugin : PluginManifest)

List of files for the DWC plugin

plugins{}.sdFiles[] (Plugin : PluginManifest)

List of files to be installed to the (virtual) SD excluding web files

plugins{}.pid (Plugin : PluginManifest)

Process ID of the plugin or -1 if not started. It is set to 0 while the plugin is being shut down

scanner

This field is maintained by DSF in SBC mode and might not be available in standalone mode

Information about the 3D scanner subsystem

scanner.progress

Progress of the current action (on a scale between 0 to 1)

Note: Previous status responses used a scale of 0..100

scanner.status

Status of the 3D scanner

This property may be one of the following:

  • C: Scanner is calibrating
  • D: Scanner is disconnected (none present)
  • I: Scanner is registered and idle
  • P: Scanner is post-processing a file
  • S: Scanner is scanning an object
  • U: Scanner is uploading

sensors

Information about connected sensors including Z-probes and endstops

sensors.analog[]

List of analog sensors

sensors.analog[].lastReading

Last sensor reading (in C) or null if invalid

sensors.analog[].name

Name of this sensor or null if not configured

sensors.analog[].type

Type of this sensor

This property may be one of the following:

  • thermistor: Regular temperature thermistor
  • pt1000: PT1000 sensor
  • rtdmax31865: RTD MAX31865
  • thermocouplemax31855: MAX31855 thermocouple
  • thermocouplemax31856: MAX31856 thermocouple
  • linearanalog: Linear analog sensor
  • dht11: DHT11 sensor
  • dht21: DHT21 sensor
  • dht22: DHT22 sensor
  • dhthumidity: DHT humidity sensor
  • currentlooppyro: Current loop sensor
  • mcutemp: MCU temperature
  • drivers: On-board stepper driver sensors
  • driversduex: Stepper driver sensors on the DueX expansion board
  • unknown: Unknown temperature sensor

sensors.endstops[]

List of configured endstops

sensors.endstops[].highEnd

Whether this endstop is at the high end of the axis

sensors.endstops[].triggered

Whether or not the endstop is hit

sensors.endstops[].type

Type of the endstop

This property may be one of the following:

  • inputPin: Generic input pin
  • zProbeAsEndstop: Z-probe acts as an endstop
  • motorStallAny: Motor stall detection stops all the drives when triggered
  • motorStallIndividual: Motor stall detection stops individual drives when triggered
  • unknown: Unknown type

sensors.filamentMonitors[]

List of configured filament monitors

sensors.filamentMonitors[].enabled (FilamentMonitor)

Indicates if this filament monitor is enabled

sensors.filamentMonitors[].status (FilamentMonitor)

Last reported status of this filament monitor

This property may be one of the following:

  • noMonitor: No monitor is present
  • ok: Filament working normally
  • noDataReceived: No data received from the remote filament senosr
  • noFilament: No filament present
  • tooLittleMovement: Sensor reads less movement than expected
  • tooMuchMovement: Sensor reads more movment than expected
  • sensorError: Sensor encountered an error
sensors.filamentMonitors[].type (FilamentMonitor)

Type of this filament monitor

This property may be one of the following:

  • simple: Simple filament sensor
  • laser: Laser filament sensor
  • pulsed: Pulsed filament sensor
  • rotatingMagnet: Rotating magnet filament sensor
  • unknown: Unknown sensor type
sensors.filamentMonitors[] (LaserFilamentMonitor : FilamentMonitor)

Information about a laser filament monitor

sensors.filamentMonitors[].calibrated (LaserFilamentMonitor : FilamentMonitor)

Calibrated properties of this filament monitor

sensors.filamentMonitors[].calibrated.calibrationFactor (LaserFilamentMonitor : FilamentMonitor)

Calibration factor of this sensor

sensors.filamentMonitors[].calibrated.percentMax (LaserFilamentMonitor : FilamentMonitor)

Maximum percentage (0..1 or greater)

sensors.filamentMonitors[].calibrated.percentMin (LaserFilamentMonitor : FilamentMonitor)

Minimum percentage (0..1)

sensors.filamentMonitors[].calibrated.sensivity (LaserFilamentMonitor : FilamentMonitor)

Calibrated sensivity

sensors.filamentMonitors[].calibrated.totalDistance (LaserFilamentMonitor : FilamentMonitor)

Total extruded distance (in mm)

sensors.filamentMonitors[].configured (LaserFilamentMonitor : FilamentMonitor)

Configured properties of this filament monitor

sensors.filamentMonitors[].configured.percentMax (LaserFilamentMonitor : FilamentMonitor)

Maximum percentage (0..1 or greater)

sensors.filamentMonitors[].configured.percentMin (LaserFilamentMonitor : FilamentMonitor)

Minimum percentage (0..1)

sensors.filamentMonitors[].configured.sampleDistance (LaserFilamentMonitor : FilamentMonitor)

Sample distance (in mm)

sensors.filamentMonitors[].filamentPresent (LaserFilamentMonitor : FilamentMonitor)

Indicates if a filament is present

sensors.filamentMonitors[] (PulsedFilamentMonitor : FilamentMonitor)

Information about a pulsed filament monitor

sensors.filamentMonitors[].calibrated (PulsedFilamentMonitor : FilamentMonitor)

Calibrated properties of this filament monitor

sensors.filamentMonitors[].calibrated.mmPerPulse (PulsedFilamentMonitor : FilamentMonitor)

Extruded distance per pulse (in mm)

sensors.filamentMonitors[].calibrated.percentMax (PulsedFilamentMonitor : FilamentMonitor)

Maximum percentage (0..1 or greater)

sensors.filamentMonitors[].calibrated.percentMin (PulsedFilamentMonitor : FilamentMonitor)

Minimum percentage (0..1)

sensors.filamentMonitors[].calibrated.totalDistance (PulsedFilamentMonitor : FilamentMonitor)

Total extruded distance (in mm)

sensors.filamentMonitors[].configured (PulsedFilamentMonitor : FilamentMonitor)

Configured properties of this filament monitor

sensors.filamentMonitors[].configured.mmPerPulse (PulsedFilamentMonitor : FilamentMonitor)

Extruded distance per pulse (in mm)

sensors.filamentMonitors[].configured.percentMax (PulsedFilamentMonitor : FilamentMonitor)

Maximum percentage (0..1 or greater)

sensors.filamentMonitors[].configured.percentMin (PulsedFilamentMonitor : FilamentMonitor)

Minimum percentage (0..1)

sensors.filamentMonitors[].configured.sampleDistance (PulsedFilamentMonitor : FilamentMonitor)

Sample distance (in mm)

sensors.filamentMonitors[] (RotatingMagnetFilamentMonitor : FilamentMonitor)

Information about a rotating magnet filament monitor

sensors.filamentMonitors[].calibrated (RotatingMagnetFilamentMonitor : FilamentMonitor)

Calibrated properties of this filament monitor

sensors.filamentMonitors[].calibrated.mmPerRev (RotatingMagnetFilamentMonitor : FilamentMonitor)

Extruded distance per revolution (in mm)

sensors.filamentMonitors[].calibrated.percentMax (RotatingMagnetFilamentMonitor : FilamentMonitor)

Maximum percentage (0..1 or greater)

sensors.filamentMonitors[].calibrated.percentMin (RotatingMagnetFilamentMonitor : FilamentMonitor)

Minimum percentage (0..1)

sensors.filamentMonitors[].calibrated.totalDistance (RotatingMagnetFilamentMonitor : FilamentMonitor)

Total extruded distance (in mm)

sensors.filamentMonitors[].configured (RotatingMagnetFilamentMonitor : FilamentMonitor)

Configured properties of this filament monitor

sensors.filamentMonitors[].configured.mmPerRev (RotatingMagnetFilamentMonitor : FilamentMonitor)

Extruded distance per revolution (in mm)

sensors.filamentMonitors[].configured.percentMax (RotatingMagnetFilamentMonitor : FilamentMonitor)

Maximum percentage (0..1 or greater)

sensors.filamentMonitors[].configured.percentMin (RotatingMagnetFilamentMonitor : FilamentMonitor)

Minimum percentage (0..1)

sensors.filamentMonitors[].configured.sampleDistance (RotatingMagnetFilamentMonitor : FilamentMonitor)

Sample distance (in mm)

sensors.filamentMonitors[].filamentPresent (RotatingMagnetFilamentMonitor : FilamentMonitor)

Indicates if a filament is present

sensors.filamentMonitors[] (SimpleFilamentMonitor : FilamentMonitor)

Representation of a simple filament monitor

sensors.filamentMonitors[].filamentPresent (SimpleFilamentMonitor : FilamentMonitor)

Indicates if a filament is present

sensors.gpIn[]

List of general-purpose input ports

sensors.gpIn[].value

Value of this port (0..1)

sensors.probes[]

List of configured probes

sensors.probes[].calibrationTemperature

Calibration temperature (in C)

sensors.probes[].deployedByUser

Indicates if the user has deployed the probe

sensors.probes[].disablesHeaters

Whether probing disables the heater(s)

sensors.probes[].diveHeight

Dive height (in mm)

sensors.probes[].lastStopHeight

Height of the probe where it stopped last time (in mm)

sensors.probes[].maxProbeCount

Maximum number of times to probe after a bad reading was determined

sensors.probes[].offsets[]

X+Y offsets (in mm)

sensors.probes[].recoveryTime

Recovery time (in s)

sensors.probes[].speeds[]

Fast and slow probing speeds (in mm/s)

sensors.probes[].temperatureCoefficients[]

List of temperature coefficients

sensors.probes[].threshold

Configured trigger threshold (0..1023)

sensors.probes[].tolerance

Allowed tolerance deviation between two measures (in mm)

sensors.probes[].travelSpeed

Travel speed when probing multiple points (in mm/s)

sensors.probes[].triggerHeight

Z height at which the probe is triggered (in mm)

sensors.probes[].type

Type of the configured probe

This property may be one of the following:

  • 0: No probe
  • 1: A simple unmodulated probe (like dc42's infrared probe)
  • 2: A modulated probe (like the original one shipped with the RepRapPro Ormerod)
  • 3: Alternate analog probe (like the ultrasonic probe)
  • 4: Endstop switch (obsolete, should not be used any more)
  • 5: A switch that is triggered when the probe is activated (filtered)
  • 6: Endstop switch on the E1 endstop pin (obsolete, should not be used any more)
  • 7: Endstop switch on Z endstop pin (obsolete, should not be used any more)
  • 8: A switch that is triggered when the probe is activated (unfiltered)
  • 9: A BLTouch probe
  • 10: Z motor stall detection
sensors.probes[].value[]

Current analog values of the probe

spindles[]

List of configured CNC spindles

spindles[].active

Active RPM

spindles[].current

Current RPM, negative if anticlockwise direction

spindles[].frequency

Frequency (in Hz)

spindles[].min

Minimum RPM when turned on

spindles[].max

Maximum RPM

spindles[].state

Current state

This property may be one of the following:

  • unconfigured: Spinde not configured
  • stopped: Spindle is stopped (inactive)
  • forward: Spindle is going forwards
  • reverse: Spindle is going in reverse

state

Information about the machine state

state.atxPower

State of the ATX power pin (if controlled)

state.beep

Information about a requested beep or null if none is requested

state.beep.duration

Duration of the requested beep (in ms)

state.beep.frequency

Frequency of the requested beep (in Hz)

state.currentTool

Number of the currently selected tool or -1 if none is selected

state.displayMessage

Persistent message to display (see M117)

state.dsfVersion

This field is maintained by DSF in SBC mode and might not be available in standalone mode

Version of the Duet Software Framework package

state.dsfPluginSupport

This field is maintained by DSF in SBC mode and might not be available in standalone mode

Indicates if DSF allows the installation and usage of third-party plugins

state.dsfRootPluginSupport

This field is maintained by DSF in SBC mode and might not be available in standalone mode

Indicates if DSF allows the installation and usage of third-party root plugins (potentially dangerous)

state.gpOut[]

List of general-purpose output ports

state.gpOut[].pwm

PWM value of this port (0..1)

state.laserPwm

Laser PWM of the next commanded move (0..1) or null if not applicable

state.logFile

This field is maintained by DSF in SBC mode and might not be available in standalone mode

Log file being written to or null if logging is disabled

state.logLevel

This field is maintained by DSF in SBC mode and might not be available in standalone mode

Current log level

This property may be one of the following:

  • debug: Log everything including debug messages
  • info: Log information and warning messages
  • warn: Log warning messages only
  • off: Logging is disabled

state.messageBox

Details about a requested message box or null if none is requested

state.messageBox.axisControls

Bitmap of the axis movement controls to show (indices)

state.messageBox.message

Content of the message box

state.messageBox.mode

Mode of the message box to display

This property may be one of the following:

  • 0: Display a message box without any buttons
  • 1: Display a message box with only a Close button
  • 2: Display a message box with only an Ok button which is supposed to send M292 when pressed
  • 3: Display a message box with an Ok button that sends M292 P0 or a cancel button that sends M292 P1 when clicked
state.messageBox.seq

Sequence number of the message box

Note: This is increased whenever a new message box is supposed to be displayed

state.messageBox.timeout

Total timeout for this message box (in ms)

state.messageBox.title

Title of the message box

state.machineMode

Current mode of operation

This property may be one of the following:

  • FFF: Fused Filament Fabrication (default)
  • CNC: Computer Numerical Control
  • Laser: Laser operation mode (e.g. laser cutters)

state.msUpTime

Millisecond fraction of

state.nextTool

Number of the next tool to be selected

state.pluginsStarted

Indicates if at least one plugin has been started

state.powerFailScript

Script to execute when the power fails

state.previousTool

Number of the previous tool

state.restorePoints[]

List of restore points

state.restorePoints[].coords[]

Axis coordinates of the restore point (in mm)

state.restorePoints[].extruderPos

The virtual extruder position at the start of this move

state.restorePoints[].fanPwm

PWM value of the tool fan (0..1)

state.restorePoints[].feedRate

Requested feedrate (in mm/s)

state.restorePoints[].ioBits

The output port bits setting for this move or null if not applicable

state.restorePoints[].laserPwm

Laser PWM value (0..1) or null if not applicable

state.restorePoints[].spindleSpeeds[]

The spindle RPMs that were set, negative if anticlockwise direction

state.restorePoints[].toolNumber

The tool number that was active

state.status

Current state of the machine

This property may be one of the following:

  • disconnected: Not connected to the Duet
  • starting: Processing config.g
  • updating: The firmware is being updated
  • off: The machine is turned off (i.e. the input voltage is too low for operation)
  • halted: The machine has encountered an emergency stop and is ready to reset
  • pausing: The machine is about to pause a file job
  • paused: The machine has paused a file job
  • resuming: The machine is about to resume a paused file job
  • processing: The machine is processing a file job
  • simulating: The machine is simulating a file job to determine its processing time
  • busy: The machine is busy doing something (e.g. moving)
  • changingTool: The machine is changing the current tool
  • idle: The machine is on but has nothing to do

state.time

Internal date and time in RepRapFirmware or null if unknown

state.upTime

How long the machine has been running (in s)

tools[]

List of configured tools

tools[].active[]

Active temperatures of the associated heaters (in C)

tools[].axes[]

Associated axes. At present only X and Y can be mapped per tool.

Note: The order is the same as the visual axes, so by default the layout is [ [0], // X [1] // Y ] Make sure to set each item individually so the change events are called

tools[].extruders[]

Extruder drives of this tool

tools[].fans[]

List of associated fans (indices)

tools[].filamentExtruder

Extruder drive index for resolving the tool filament (index or -1)

tools[].heaters[]

List of associated heaters (indices)

tools[].mix[]

Mix ratios of the associated extruder drives

tools[].name

Name of this tool

tools[].number

Number of this tool

tools[].offsets[]

Axis offsets (in mm) This list is in the same order as

tools[].offsetsProbed

Bitmap of the probed axis offsets

tools[].retraction

Firmware retraction parameters

tools[].retraction.extraRestart

Amount of additional filament to extrude when undoing a retraction (in mm)

tools[].retraction.length

Retraction length (in mm)

tools[].retraction.speed

Retraction speed (in mm/s)

tools[].retraction.unretractSpeed

Unretract speed (in mm/s)

tools[].retraction.zHop

Amount of Z lift after doing a retraction (in mm)

tools[].spindle

Index of the mapped spindle or -1 if not mapped

tools[].spindleRpm

RPM of the mapped spindle

tools[].standby[]

Standby temperatures of the associated heaters (in C)

tools[].state

Current state of this tool

This property may be one of the following:

  • off: Tool is turned off
  • active: Tool is active
  • standby: Tool is in standby

userSessions[]

This field is maintained by DSF in SBC mode and might not be available in standalone mode

List of user sessions

userSessions[].id

Identifier of this session

userSessions[].accessLevel

Access level of this session

This property may be one of the following:

  • readOnly: Changes to the system and/or operation are not permitted
  • readWrite: Changes to the system and/or operation are permitted

userSessions[].sessionType

Type of this sessionSessionAccessLevel

This property may be one of the following:

  • local: Local client
  • http: Remote client via HTTP
  • telnet: Remote client via Telnet

userSessions[].origin

Origin of this session. For remote sessions, this equals the remote IP address

userSessions[].originId

Corresponding identifier of the origin. If it is a remote session, it is the remote port, else it defaults to the PID of the current process

volumes[]

This field is maintained by DSF in SBC mode and might not be available in standalone mode

List of available mass storages

volumes[].capacity

Total capacity of the storage device (in bytes or null)

volumes[].freeSpace

How much space is still available on this device (in bytes or null)

volumes[].mounted

Whether the storage device is mounted

volumes[].name

Name of this volume

volumes[].openFiles

Number of currently open files or null if unknown

volumes[].path

Logical path of the storage device

volumes[].speed

Speed of the storage device (in bytes/s or null if unknown)

About

This documentation file was generated by DocGen.

Clone this wiki locally