-
Notifications
You must be signed in to change notification settings - Fork 541
Object Model Documentation
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.5 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.
List of connected boards
Note: The first item represents the main board
Accelerometer of this board or null if unknown
Orientation of the accelerometer
Note: See https://docs.duet3d.com/en/Duet3D_hardware/Accessories/Duet3D_Accelerometer#orientation for a list of orientations
Number of collected data points in the last run or 0 if it failed
Number of completed sampling runs
Filename of the bootloader binary or null if unknown
CAN address of this board or null if not applicable
Closed loop data of this board or null if unknown
Number of collected data points in the last run or 0 if it failed
Number of completed sampling runs
Details about a connected display or null if none is connected
Encoder of this screen or null if none
Number of pulses per click of the rotary encoder
Screen information
Number of colour bits
Display type
This property may be one of the following:
- ST7920: ST7920 controller
- ST7567: ST7567 controller
- ILI9488: ILI9488 controller
Height of the display screen in pixels
SPI frequency of the display (in Hz)
Width of the display screen in pixels
Direct-connected display screen with a ST7567 controller
Configured contrast
Configured resistor ratio
Drivers of this board
Closed-loop settings (if applicable)
Current fraction
Average fraction
Maximum fraction
Position error
Maximum position error
RMS of the position error
Driver status register value The lowest 8 bits of these have the same bit positions as in the TMC2209 DRV_STATUS register. The TMC5160 DRV_STATUS is different so the bits are translated to this. Similarly for TMC2660. Only the lowest 16 bits are passed in driver event messages
Date of the firmware build
Filename of the firmware binary or null if unknown
Name of the firmware build
Version of the firmware build
Filename of the IAP binary that is used for updates from the SBC or null if unsupported
Note: This is only available for the mainboard (first board item)
Amount of free RAM on this board (in bytes or null if unknown)
Filename of the IAP binary that is used for updates from the SD card or null if unsupported
Note: This is only available for the mainboard (first board item)
Information about an inductive sensor or null if not present
Maximum number of heaters this board can control
Maximum number of motors this board can drive
Minimum, maximum, and current temperatures of the MCU or null if unknown
Full name of the board
Short name of this board
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
This field is obsolete and will be removed in the future: Replaced with SupportsDirectDisplay
Indicates if this board supports external 12864 displays
Indicates if this board supports external displays
Unique identifier of the board or null if unknown
Minimum, maximum, and current voltages on the 12V rail or null if unknown
Minimum, maximum, and current voltages on the input rail or null if unknown
Filename of the on-board WiFi chip or null if not present
Information about the individual directories
Note: This may not be available in RepRapFirmware if no mass storages are available
Path to the filaments directory
Path to the firmware directory
Path to the G-Codes directory
Path to the macros directory
Path to the menu directory
Note: Intended for 12864 displays but currently unused in DSF. It is only needed for the Duet Maestro + DWC
This field is maintained by DSF in SBC mode
Path to the system directory
Path to the web directory
List of configured fans
Value of this fan (0..1 or -1 if unknown)
Blip value indicating how long the fan is supposed to run at 100% when turning it on to get it started (in s)
Configured frequency of this fan (in Hz)
Maximum value of this fan (0..1)
Minimum value of this fan (0..1)
Name of the fan
Requested value for this fan on a scale between 0 to 1
Current RPM of this fan or -1 if unknown/unset
Pulses per tacho revolution
Thermostatic control parameters
This field is obsolete and will be removed in the future: Use Sensors instead
List of heaters to monitor (indices)
Note: This is a bitmap represented as an array
Upper temperature range required to turn on the fan (in C)
Lower temperature range required to turn on the fan (in C)
List of sensors to monitor (indices)
Note: This is a bitmap represented as an array
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
Information about the heat subsystem
List of configured bed heaters (indices)
Note: Items may be -1 if unconfigured
List of configured chamber heaters (indices)
Note: Items may be -1 if unconfigured
Minimum required temperature for extrusion moves (in C)
Minimum required temperature for retraction moves (in C)
List of configured heaters
Active temperature of the heater (in C)
Average heater PWM value (0..1)
Current temperature of the heater (in C)
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
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
Maximum number of consecutive temperature reading failures before a heater fault is raised
Time for which a temperature anomaly must persist on this heater before raising a heater fault (in s)
Permitted temperature excursion from the setpoint for this heater (in K)
Information about the heater model
Cooling rate exponent
Cooling rate (in K/s)
Dead time (in s)
Indicates if this heater is enabled
Cooling rate with the fan on (in K/s)
Heating rate (in K/s)
Indicates if the heater PWM signal is inverted
Maximum PWM value
Details about the PID controller
Derivative value of the PID regulator
Integral value of the PID regulator
Indicates if custom PID values are used
Proportional value of the PID regulator
Indicates if PID control is being used
Standard voltage or null if unknown
Monitors of this heater
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
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
Limit threshold for this heater monitor
Sensor number to monitor
Sensor number of this heater or -1 if not configured
Standby temperature of the heater (in C)
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
Information about every available G/M/T-code channel
True if the input is is in active mode i.e. executing commands for its assigned motion system, false if it is assigned to a motion system other than the current one
Note: This will always be true except for the File and File2 inputs
Whether relative positioning is being used
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
Whether inches are being used instead of mm
This property may be one of the following:
- mm: Millimeters
- in: Inches
Whether relative extrusion is being used
Current feedrate in mm/s
Whether a macro file is being processed
Indicates if inverse time mode (G73) is active
Number of the current line
Indicates if the current macro file can be restarted after a pause
Active motion system index
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 primary 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 of the primary print file
- 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
- File2: Code channel for secondary file prints
- Queue2: Code channel for the code queue that executes a couple of codes in-sync with moves of the primary print file
- Unknown: Unknown code channel
Index of the selected plane
Depth of the stack
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
Whether volumetric extrusion is being used
Information about the current job
Information about the current build or null if not available
Index of the current object being printed or -1 if unknown
Note: This value may now be greater than the length of the job.build.objects array. This is because the size of job.build.objects is limited to conserve memory (to 20 on Duet 2 or 40 on Duet 3), whereas when M486 labelling is used, many more objects can be numbered and the first 64 can be cancelled individually
Whether M486 names are being used
Whether M486 numbers are being used
List of detected build objects
Indicates if this build object is cancelled
Name of the build object (if any)
X coordinates of the build object (in mm or null if not found)
Y coordinates of the build object (in mm or null if not found)
Total active duration of the current job file (in s or null)
Information about the file being processed
Filament consumption per extruder drive (in mm)
The filename of the G-code file
Name of the application that generated this file
Build height of the G-code job or 0 if not found (in mm)
Value indicating when the file was last modified or null if unknown
Height of each other layer or 0 if not found (in mm)
Number of total layers or 0 if unknown
Estimated print time (in s)
Estimated print time from G-code simulation (in s)
Size of the file
This field is maintained by DSF in SBC mode
Collection of thumbnails parsed from Gcode
Base64-encoded thumbnail or null if invalid or not requested
Note: This property is not provided by RepRapFirmware fileinfo results and it may be null if no thumbnail content is requested
Format of this thumbnail
This property may be one of the following:
- jpeg: Joint Photographic Experts Group
- png: Portable Network Graphics
- qoi: Quite OK Image
Height of this thumbnail
File offset of this thumbnail
Size of this thumbnail
Width of this thumbnail
Current position in the file being processed (in bytes or null)
Total duration of the last job (in s or null)
Name of the last file processed or null if none
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not available in standalone mode
Indicates if the last file was aborted (unexpected cancellation)
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not available in standalone mode
Indicates if the last file was cancelled (user cancelled)
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not available in standalone mode
Indicates if the last file processed was simulated
Note: This is not set if the file was aborted or cancelled
Warm-up duration of the last print or null if not available (in s)
Number of the current layer or null not available
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not 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
Duration of the layer (in s)
Actual amount of filament extruded during this layer (in mm)
Fraction of the file printed during this layer (0..1)
Height of the layer (in mm or 0 if unknown)
Last heater temperatures (in C or null if unknown)
Time elapsed since the last layer change (in s or null)
Total pause time since the job started
Total extrusion amount without extrusion factors applied (in mm)
Estimated times left
Time left based on filament consumption (in s or null)
Time left based on file progress (in s or null)
This field is obsolete and will be removed in the future: No longer used, will always return null
Time left based on the layer progress (in s or null)
Time left based on the slicer reports (see M73, in s or null)
Time needed to heat up the heaters (in s or null)
List of configured LED strips
Board address of the corresponding pin
Name of the pin this LED strip is connected to
Indicates if this strip is bit-banged and therefore requires motion to be stopped before sending a command
Type of this LED strip
This property may be one of the following:
- DotStar: DotStar LED strip
- NeoPixel_RGB: NeoPixel LED strip with only RGB capability
- NeoPixel_RGBW: NeoPixel RGB LED strip with additional white output
Machine configuration limits
Maximum number of axes or null if unknown
Maximum number of axes + extruders or null if unknown
Maximum number of bed heaters or null if unknown
Maximum number of boards or null if unknown
Maximum number of chamber heaters or null if unknown
Maximum number of drivers or null if unknown
Maximum number of drivers per axis or null if unknown
Maximum number of extruders or null if unknown
Maximum number of extruders per tool or null if unknown
Maximum number of fans or null if unknown
Maximum number of general-purpose input ports or null if unknown
Maximum number of general-purpose output ports or null if unknown
Maximum number of heaters or null if unknown
Maximum number of heaters per tool or null if unknown
Maximum number of configured LED strips or null if unknown
Maximum number of monitors per heater or null if unknown
Maximum number of output ports per heater or null if unknown
Maximum number of restore points or null if unknown
Maximum number of sensors or null if unknown
Maximum number of spindles or null if unknown
Maximum number of tools or null if unknown
Maximum number of tracked objects or null if unknown
Maximum number of triggers or null if unknown
Maximum number of volumes or null if unknown
Maximum number of workplaces or null if unknown
Maximum number of Z-probe programming bytes or null if unknown
Maximum number of Z-probes or null if unknown
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not 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
Content of this message
Note: May be empty but not null
Time at which the message was generated
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
Information about the move subsystem
Standard model responses return up to 9 elements of this field. It may be necessary to request more of this field using the 'a' flag.
List of the configured axes
Acceleration of this axis (in mm/s^2)
Babystep amount (in mm)
Configured backlash of this axis (in mm)
Motor current (in mA)
List of the assigned drivers
Whether or not the axis is homed
Motor jerk (in mm/min)
Letter of this axis
Current machine position (in mm) or null if unknown/unset
Note: This value reflects the machine position of the move being performed or of the last one if the machine is not moving
Maximum travel of this axis (in mm)
Whether the axis maximum was probed
Microstepping configuration
Indicates if the stepper driver uses interpolation
Microsteps per full step
Minimum travel of this axis (in mm)
Whether the axis minimum was probed
Percentage applied to the motor current (0..100)
Percentage applied to the motor current during standstill (0..100 or null if not supported)
Reduced accelerations used by Z probing and stall homing moves (in mm/s^2)
Maximum speed (in mm/min)
Number of microsteps per mm
Current user position (in mm) or null if unknown
Note: This value reflects the target position of the last move fed into the look-ahead buffer
Whether or not the axis is visible
Offsets of this axis for each workplace (in mm)
Backlash distance multiplier
Information about the automatic calibration
Final calibration results (for Delta calibration)
RMS deviation (in mm)
Mean deviation (in mm)
Initial calibration results (for Delta calibration)
RMS deviation (in mm)
Mean deviation (in mm)
Number of factors used (for Delta calibration)
Information about the currently configured compensation options
Effective height before the bed compensation is turned off (in mm) or null if not configured
Full path to the currently used height map file or null if none is in use
Grid settings of the loaded heightmap or null if no heightmap is loaded
Axis letters of this heightmap
End coordinates of the heightmap
Start coordinates of the heightmap
Probing radius for delta kinematics
Spacings between the coordinates
Deviations of the mesh grid or null if not applicable
RMS deviation (in mm)
Mean deviation (in mm)
Probe grid settings as defined by M557
Axis letters of this heightmap
End coordinates of the heightmap
Start coordinates of the heightmap
Probing radius for delta kinematics
Spacings between the coordinates
Information about the configured orthogonal axis parameters
Indicates if the TanXY value is used to compensate X when Y moves (else Y when X moves)
Tangent of the skew angle for the XY or YX axes
Tangent of the skew angle for the XZ axes
Tangent of the skew angle for the YZ axes
Type of the compensation in use
This property may be one of the following:
- none: No compensation
- mesh: Mesh compensation
Information about the current move
Acceleration of the current move (in mm/s^2)
Deceleration of the current move (in mm/s^2)
Current extrusion rate (in mm/s)
Laser PWM of the current move (0..1) or null if not applicable
Requested speed of the current move (in mm/s)
Top speed of the current move (in mm/s)
List of configured extruders
Acceleration of this extruder (in mm/s^2)
Motor current (in mA)
Assigned driver
Name of the currently loaded filament
Diameter of the corresponding filament (in mm)
Extrusion factor to use (0..1 or greater)
Motor jerk (in mm/s)
Microstepping configuration
Indicates if the stepper driver uses interpolation
Microsteps per full step
Nonlinear extrusion parameters (see M592)
A coefficient in the extrusion formula
B coefficient in the extrusion formula
Upper limit of the nonlinear extrusion compensation
Percentage applied to the motor current (0..100)
Percentage applied to the motor current during standstill (0..100 or null if not supported)
Extruder position (in mm)
Pressure advance
Raw extruder position as commanded by the slicer without extrusion factor applied (in mm)
Maximum speed (in mm/s)
Number of microsteps per mm
Idle current reduction parameters
Motor current reduction factor (0..1)
Idle timeout after which the stepper motor currents are reduced (in s)
List of configured keep-out zones
Indicates if this keep-out zone is enabled
Minimum and maximum coordinates of this zone
Minimum axis coordinate
Maximum axis coordinate
Configured kinematics options
Information about core kinematics
Forward matrix
Inverse matrix
Delta kinematics
Delta radius (in mm)
Homed height of a delta printer in mm
Print radius for Hangprinter and Delta geometries (in mm)
Delta tower properties
Tower position corrections (in degrees)
Diagonal rod length (in mm)
Deviation of the ideal endstop position (in mm)
X coordinate of this tower (in mm)
Y coordinate of this tower (in mm)
How much Z needs to be raised for each unit of movement in the +X direction
How much Z needs to be raised for each unit of movement in the +Y direction
Information about hangprinter kinematics
Anchor configurations for A, B, C, Dz
Print radius (in mm)
Name of the configured kinematics
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
Segmentation parameters or null if not configured
Number of segments per second
Minimum length of a segment (in mm)
Kinematics class for polar kinematics
Kinematics class for SCARA kinematics
Base kinematics class that provides the ability to level the bed using Z leadscrews
Parameters describing the tilt correction
Correction factor
Last corrections (in mm)
Maximum Z correction (in mm)
Pitch of the Z leadscrews (in mm)
X positions of the leadscrews (in mm)
Y positions of the leadscrews (in mm)
Limit axis positions by their minima and maxima
Indicates if standard moves are forbidden if the corresponding axis is not homed
Maximum acceleration allowed while printing (in mm/s^2)
List of move queue items (DDA rings)
The minimum idle time before we should start a move (in s)
Maximum number of moves that can be accomodated in the DDA ring
Parameters for centre rotation
Angle of the centre rotatation (in deg)
XY coordinates of the centre rotation
Parameters for input shaping
Amplitudes of the input shaper
Damping factor
Input shaper durations (in s)
Frequency (in Hz)
Minimum fraction of the original acceleration or feed rate to which the acceleration or feed rate may be reduced in order to apply input shaping
Configured input shaping type
This property may be one of the following:
- none: None
- mzv: MZV
- zvd: ZVD
- zvdd: ZVDD
- zvddd: ZVDDD
- ei2: EI2 (2-hump)
- ei3: EI3 (3-hump)
- custom: Custom
Speed factor applied to every regular move (0.01..1 or greater)
Maximum acceleration allowed while travelling (in mm/s^2)
Virtual total extruder position
Index of the currently selected workplace
Information about connected network adapters
This field is maintained by DSF in SBC mode
If this is set, the web server will allow cross-origin requests via the Access-Control-Allow-Origin header
Hostname of the machine
This field is maintained by DSF in SBC mode
List of available network interfaces
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not available in standalone mode
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
Actual IPv4 address of the network adapter or null if unknown
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not available in standalone mode
Configured IPv4 address of the network adapter or null if unknown
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not available in standalone mode
Configured IPv4 DNS server of the network adapter or null if unknown
Version of the network interface or null if unknown. This is only reported by ESP-based boards in standalone mode
IPv4 gateway of the network adapter or null if unknown
Physical address of the network adapter or null if unknown
Number of reconnect attempts or null if unknown. This is only reported by ESP-based boards in standalone mode
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not available in standalone mode
Signal of the WiFi adapter (only WiFi, in dBm, or null if unknown)
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not available in standalone mode
Speed of the network interface (in MBit, null if unknown, 0 if not connected)
This field is maintained by DSF in SBC mode
SSID of the WiFi network or null if not applicable
State of this network interface or null if unknown
This property may be one of the following:
- disabled: Network disabled
- enabled: Network enabled but not started yet
- starting1: Starting up (used by WiFi networking in standalone mode)
- starting2: Starting up (used by WiFi networking in standalone mode)
- changingMode: Running and in the process of switching between modes (used by WiFi networking in standalone mode)
- establishingLink: Starting up, waiting for link
- obtainingIP: Link established, waiting for DHCP
- connected: Just established a connection
- active: Network running
- idle: WiFi adapter is idle
Subnet of the network adapter or null if unknown
Type of this network interface
This property may be one of the following:
- lan: Wired network interface
- wifi: Wireless network interface
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not available in standalone mode
WiFi country code if this is a WiFi adapter and if the country code can be determined
Note: For this setting to be populated in SBC mode it is required to have the DuetPiManagementPlugin running. This is required due to missing Linux permissions of the control server.
Name of the machine
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not available in standalone mode
Dictionary of loaded plugins where each key is the plugin identifier
Note: This is only populated by DSF in SBC mode, however it may be populated manually as well in standalone mode. Values in this dictionary cannot become null. If a value is changed to null, the corresponding item is deleted
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
Name of the plugin. May consist of letters, digits, dashes, and underscores only (max length 64 chars)
Author of the plugin
Version of the plugin
License of the plugin. Should follow the SPDX format (see https://spdx.org/licenses/)
Link to the plugin homepage or source code repository
List of general tags for search
Major/minor compatible DWC version
List of DWC plugins this plugin depends on. Circular dependencies are not supported
Set to true if a SBC is absolutely required for this plugin
Required DSF version for the plugin running on the SBC (ignored if there is no SBC executable)
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
Command-line arguments for the executable
List of other filenames in the dsf directory that should be executable
Automatically restart the SBC process when terminated
Defines if messages from stdout/stderr are output as generic messages
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)
- webcamAccess: Access /dev/video* devices
- gpioAccess: Access /dev/gpio*, /dev/i2c*, and /dev/spidev* devices
List of files in the sys or virtual SD directory that should not be overwritten on upgrade
Note: The file may be specified either relative to 0:/sys directory (e.g. motion.conf) or relative to the virtual SD directory (e.g. sys/motion.conf). Drive indices as in 0:/sys/motion.conf are not allowed!
List of packages this plugin depends on (apt packages in the case of DuetPi)
List of Python packages this plugin depends on
List of SBC plugins this plugin depends on. Circular dependencies are not supported
Major/minor supported RRF version (optional)
Custom plugin data to be populated in the object model (DSF/DWC in SBC mode - or - DWC in standalone mode). Before SetPluginData can be used, corresponding properties must be registered via this property first!
Class representing a loaded plugin
List of files for the DSF plugin
List of files for the DWC plugin
List of files to be installed to the (virtual) SD excluding web files
Process ID of the plugin or -1 if not started. It is set to 0 while the plugin is being shut down
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not available in standalone mode
Information about the SBC which Duet Software Framework is running on. This is null if the system is operating in standalone mode
Indicates if AppArmor support is enabled
Note: By default, AppArmor is required for plugin functionality
Information about the SBC's CPU
Average CPU load (0..100%) or null if unknown
CPU hardware as reported by /proc/cpuinfo
Number of CPU cores/threads (defaults to 1)
Current CPU temperature (in degC) or null if unknown
Information about DSF running on the SBC
Datetime when DSF was built
List of registered third-party HTTP endpoints
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
Namespace of the endpoint
Note: May be to register root-level rr_ requests (to emulate RRF poll requests)
Path to the endpoint
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
Path to the UNIX socket
Indicates if the process is 64-bit
Indicates if DSF allows the installation and usage of third-party plugins
Indicates if DSF allows the installation and usage of third-party root plugins (potentially dangerous, disabled by default)
Note: Requires to be true
List of user sessions
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
Identifier of this session
Origin of this session. For remote sessions, this equals the remote IP address
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
Type of this session
This property may be one of the following:
- local: Local client
- http: Remote client via HTTP
- telnet: Remote client via Telnet
Version of Duet Software Framework (provided by Duet Control Server)
Name and version of the system distribution or null if unknown
Build datetime of the system distribution or null if unknown
Information about the SBC's memory (RAM)
Available memory (in bytes)
Total memory (in bytes)
SBC model or null if unknown
Serial of the SBC or null if unknown
Uptime of the running system (in s)
Information about connected sensors including Z-probes and endstops
List of analog sensors
Beta value of this sensor (if applicable)
C value of this sensor
Last sensor reading (in C) or null if invalid
Name of this sensor or null if not configured
Offset adjustment (in K)
Note: See also M308 U
Port of this sensor or null if not applicable
Resistance of this sensor at 25C
Series resistance of this sensor channel (only applicable for thermistors)
Slope adjustment factor
Note: See also M308 V
State of this sensor
This property may be one of the following:
- ok: Sensor is functional
- shortCircuit: Short circuit detected
- shortToVcc: Short to VCC detected
- shortToGround: Short to GND detected
- openCircuit: Sensor circuit is open
- timeout: Timeout while waiting for sensor data
- ioError: IO error
- hardwareError: Hardware error
- notReady: Not ready
- invalidOutputNumber: Invalid output number
- busBusy: Sensor bus is busy
- badResponse: Bad sensor response
- unknownPort: Unknown sensor port
- notInitialised: Sensor not initialized
- unknownSensor: Unknown sensor
- overOrUnderVoltage: Sensor exceeded min/max voltage
- badVref: Bad VREF detected
- badVssa: Bad VSSA detected
- unknownError: Unknown error
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
- bme280: BME280 sensor
- bme280-pressure: BME280 pressure sensor
- bme280-humidity: BME280 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
List of configured endstops
Whether this endstop is at the high end of the axis
Number of the referenced probe if type is ZProbeAsEndstop, else null
Whether or not the endstop is hit
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
List of configured filament monitors
Base class for Duet3D filament monitors
Average ratio of measured vs. commanded movement
Last ratio of measured vs. commanded movement
Maximum ratio of measured vs. commanded movement
Minimum ratio of measured vs. commanded movement
Total extrusion commanded (in mm)
This field is obsolete and will be removed in the future: Use EnableMode instead
Indicates if this filament monitor is enabled
Enable mode of this filament monitor
This property may be one of the following:
- 0: Filament monitor is disabled
- 1: Filament monitor is enabled during prints from SD card
- 2: Filament monitor is always enabled (when printing from USB)
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
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
Information about a laser filament monitor
Calibrated properties of this filament monitor
sensors.filamentMonitors[].calibrated.calibrationFactor (LaserFilamentMonitor : Duet3DFilamentMonitor)
Calibration factor of this sensor
Maximum percentage (0..1 or greater)
Minimum percentage (0..1)
Calibrated sensivity
Total extruded distance (in mm)
Configured properties of this filament monitor
Whether all moves and not only printing moves are supposed to be checked
Maximum percentage (0..1 or greater)
Minimum percentage (0..1)
Sample distance (in mm)
Indicates if a filament is present
Information about a pulsed filament monitor
Calibrated properties of this filament monitor
Extruded distance per pulse (in mm)
Maximum percentage (0..1 or greater)
Minimum percentage (0..1)
Total extruded distance (in mm)
Configured properties of this filament monitor
Extruded distance per pulse (in mm)
Maximum percentage (0..1 or greater)
Minimum percentage (0..1)
Sample distance (in mm)
Information about a rotating magnet filament monitor
Calibrated properties of this filament monitor
sensors.filamentMonitors[].calibrated.mmPerRev (RotatingMagnetFilamentMonitor : Duet3DFilamentMonitor)
Extruded distance per revolution (in mm)
sensors.filamentMonitors[].calibrated.percentMax (RotatingMagnetFilamentMonitor : Duet3DFilamentMonitor)
Maximum percentage (0..1 or greater)
sensors.filamentMonitors[].calibrated.percentMin (RotatingMagnetFilamentMonitor : Duet3DFilamentMonitor)
Minimum percentage (0..1)
sensors.filamentMonitors[].calibrated.totalDistance (RotatingMagnetFilamentMonitor : Duet3DFilamentMonitor)
Total extruded distance (in mm)
Configured properties of this filament monitor
sensors.filamentMonitors[].configured.allMoves (RotatingMagnetFilamentMonitor : Duet3DFilamentMonitor)
Whether all moves and not only printing moves are supposed to be checked
sensors.filamentMonitors[].configured.mmPerRev (RotatingMagnetFilamentMonitor : Duet3DFilamentMonitor)
Extruded distance per revolution (in mm)
sensors.filamentMonitors[].configured.percentMax (RotatingMagnetFilamentMonitor : Duet3DFilamentMonitor)
Maximum percentage (0..1 or greater)
sensors.filamentMonitors[].configured.percentMin (RotatingMagnetFilamentMonitor : Duet3DFilamentMonitor)
Minimum percentage (0..1)
sensors.filamentMonitors[].configured.sampleDistance (RotatingMagnetFilamentMonitor : Duet3DFilamentMonitor)
Sample distance (in mm)
List of general-purpose input ports
Value of this port (0..1)
List of configured probes
Linear coefficient for scanning probes
Quadratic coefficient for scanning probes
Calibration temperature (in C)
Indicates if the user has deployed the probe
Whether probing disables the heater(s)
This field is obsolete and will be removed in the future: Use DiveHeights[0] instead
Dive height (in mm)
Dive heights of the probe. The first element is the regular dive height, the second element may be used by scanning Z-probes
Indicates if the scanning probe is calibrated
Height of the probe where it stopped last time (in mm)
Maximum number of times to probe after a bad reading was determined
Measured height (only applicable for scanning probes, in mm or null)
X+Y offsets (in mm)
Recovery time (in s)
Coefficients for the scanning Z-probe (4 elements, if applicable)
Fast and slow probing speeds (in mm/s). Scanning probes may have three speeds where the last one is the movement speed while probing heightmaps
List of temperature coefficients
Configured trigger threshold (0..1023)
Allowed tolerance deviation between two measures (in mm)
Travel speed when probing multiple points (in mm/min)
Z height at which the probe is triggered (in mm)
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
Current analog values of the probe
List of configured CNC spindles
Active RPM
Flags whether the spindle may spin in reverse direction
Current RPM, negative if anticlockwise direction
Frequency (in Hz)
Idle PWM value (0..1)
Maximum RPM
Maximum PWM value when turned on (0..1)
Minimum RPM when turned on
Minimum PWM value when turned on (0..1)
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
Information about the machine state
State of the ATX power pin (if controlled)
Port of the ATX power pin or null if not assigned
Information about a requested beep or null if none is requested
Duration of the requested beep (in ms)
Frequency of the requested beep (in Hz)
Number of the currently selected tool or -1 if none is selected
When provided it normally has value 0 normally and 1 when a deferred power down is pending
Note: It is only available after power switching has been enabled by M80 or M81
Persistent message to display (see M117)
List of general-purpose output ports
PWM frequency of this port (in Hz)
PWM value of this port (0..1)
Laser PWM of the next commanded move (0..1) or null if not applicable
This field is maintained by DSF in SBC mode
Log file being written to or null if logging is disabled
This field is maintained by DSF in SBC 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
Details about a requested message box or null if none is requested
Bitmap of the axis movement controls to show (indices)
Indicates if a cancel button is supposed to be shown
List of possible choices (only for mode 4)
Default value (only for modes >= 4)
Maximum input value (only for modes >= 5)
Content of the message box
Minimum input value (only for modes >= 5)
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, blocking
- 3: Display a message box with an Ok button that sends M292 P0 or a cancel button that sends M292 P1 when clicked, blocking
- 4: Multiple choices, blocking
- 5: Integer value required, blocking
- 6: Floating-point value required, blocking
- 7: String value required, blocking
Sequence number of the message box
Note: This is increased whenever a new message box is supposed to be displayed
Total timeout for this message box (in ms)
Title of the message box
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)
Indicates if the current macro file was restarted after a pause
Millisecond fraction of UpTime
Number of the next tool to be selected
This field is exclusively maintained by DSF in SBC mode and/or by DWC. It is not available in standalone mode
Indicates if at least one plugin has been started
Script to execute when the power fails
Number of the previous tool
List of restore points
Axis coordinates of the restore point (in mm)
The virtual extruder position at the start of this move
PWM value of the tool fan (0..1)
Requested feedrate (in mm/s)
The output port bits setting for this move or null if not applicable
Laser PWM value (0..1) or null if not applicable
The tool number that was active
This field is maintained by DSF in SBC mode
First error on start-up or null if there was none
Filename of the macro where the error occurred
Line number of the error
Message of the error
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
- cancelling: Job file is being cancelled
- 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
Shorthand for inputs[state.thisInput].active
Index of the current G-code input channel (see Inputs)
Note: This is primarily intended for macro files to determine on which G-code channel it is running. The value of this property is always null in object model queries
Internal date and time in RepRapFirmware or null if unknown
How long the machine has been running (in s)
List of configured tools
Active temperatures of the associated heaters (in C)
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. Each item is a bitmap represented as an array
Extruder drives of this tool
List of associated fans (indices)
Note: This is a bitmap represented as an array
Feedforward coefficients to apply to the mapped heaters during extrusions
Extruder drive index for resolving the tool filament (index or -1)
List of associated heaters (indices)
True if the filament has been firmware-retracted
Mix ratios of the associated extruder drives
Name of this tool
Number of this tool
Axis offsets (in mm) This list is in the same order as Axes
Bitmap of the probed axis offsets
Firmware retraction parameters
Amount of additional filament to extrude when undoing a retraction (in mm)
Retraction length (in mm)
Retraction speed (in mm/s)
Unretract speed (in mm/s)
Amount of Z lift after doing a retraction (in mm)
Index of the mapped spindle or -1 if not mapped
RPM of the mapped spindle
Standby temperatures of the associated heaters (in C)
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
This field is maintained by DSF in SBC mode
List of available mass storages
Total capacity of the storage device (in bytes or null)
How much space is still available on this device (in bytes or null)
Whether the storage device is mounted
Name of this volume
Number of currently open files or null if unknown
Total size of this volume (in bytes or null)
Logical path of the storage device
Speed of the storage device (in bytes/s or null if unknown)
This documentation file was generated by DocGen.