From 93d888e22f2b75f92f601fab644e499825a8f590 Mon Sep 17 00:00:00 2001 From: Manuel Coenen Date: Mon, 22 Feb 2021 12:53:55 +0100 Subject: Move more information over to wiki and replace file contents by links --- JSON responses.md | 464 +----------------------------------------------------- 1 file changed, 1 insertion(+), 463 deletions(-) (limited to 'JSON responses.md') diff --git a/JSON responses.md b/JSON responses.md index 28eb9caa..bc02c4e4 100644 --- a/JSON responses.md +++ b/JSON responses.md @@ -1,463 +1 @@ -# List of RepRapFirmware JSON Responses - -This document describes the four big JSON responses which are used to report status and configuration details. -For a list of HTTP-related JSON responses, see [HTTP requests](HTTP%20requests.md). - -In these responses the following conditions apply: - -- Booleans represented as 0 (false) or 1 (true) -- Indices pointing to another resource *might* not be valid. This is due to possible limitations of the CAN expansion board management -- ADC readings are reported on a scale of 0 to 1000 -- Lengths are reported in mm -- Speeds are reported in mm/s -- Times are reported in seconds -- Temperatures are reported in Celsius - -## Standard Status Response (Type 1) - -This status response contains various fields that are expected to change frequently. These values are also included in the type 2 and 3 status responses. - -``` -{ - "status": "O", - "coords": { - "axesHomed": [0, 0, 0], - "wpl": 1, - "xyz": [0.000, 0.000, 0.000], - "machine": [0.000, 0.000, 0.000], - "extr": [] - }, - "speeds": { - "requested": 0.0, - "top": 0.0 - }, - "currentTool": -1, - "output": { - "beepDuration": 1234, - "beepFrequency": 4567, - "message": "Test message", - "msgBox": { - "msg": "my message", - "title": "optional title", - "mode": 0, - "seq": 5, - "timeout": 10.0, - "controls": 0 - } - }, - "params": { - "atxPower": -1, - "fanPercent": [-100], - "speedFactor": 100.0, - "extrFactors": [], - "babystep": 0.000, - "seq": 1 - }, - "sensors": { - "probeValue": 1000, - "probeSecondary": 1000, - "fanRPM": [-1] - }, - "temps": { - "bed": { - "current": -273.1, - "active": -273.1, - "standby": -273.1, - "state": 0, - "heater": 0 - }, - "current": [-273.1], - "state": [0], - "tools": { - "active": [], - "standby": [] - }, - "extra": [] - }, - "time": 596.0, - "scanner": { - "status": "D", - "progress": 0.0 - }, - "spindles": [], - "laser": 0.0 -} -``` - -### Machine Status - -The `status` field provides a single character for the machine status. It may have one of the following values: - -| Status character | Status | -| ---------------- | ------ | -| C | Reading configuration file | -| F | Flashing new firmware | -| H | Halted (after emergency stop) | -| O | Off (powered down, low input voltage) | -| D | Pausing print (decelerating) | -| R | Resuming print (after pause) | -| S | Print paused (stopped) | -| M | Simulating a (print) file | -| P | Printing | -| T | Changing tool | -| B | Busy (executing macro, moving) | - -Values higher in the table also have a higher priority. So, for example, tool changes are not reported while a print is in progress. - -### Coordinates - -- `coords/wpl` (optional): Selected workplace (see G10 and G54 to G59.3). May not be present if the board does not support workplaces -- `cords/xyz`: User coordinates of the axes (i.e. with tool offsets applied) -- `coords/machine`: Mchine coordinate of the axes (i.e. without tool offsets applied) -- `coords/extr` Total amount of filament extruded per extruder drive (with extrusion factors applied). See also `extrRaw` in response type 3 - -### Output - -RepRapFirmware may request output via the client application. Only if this is the case, the `output` field is present. - -#### Beeps - -If no PanelDue is attached, beeps (see M300) are reported via the `beepDuration` and `beepFrequency` fields. -These fields are not present if M300 was not used. - -#### Output message - -A user may want to output a generic message via M117. If this is the case, the message string is reported via the `message` field. - -#### Message boxes - -RepRapFirmware allows a user to use message boxes if required. These message boxes may be configured via M291/M292. -The corresponding values can be found in the optional `msgBox` field. See the documentation of M291 for further details. - -- `msgBox/controls` is a bitmap of configured axis controls (X = 1, Y = 2, Z = 4 etc.) -- `msgBox/seq` is incremented whenever M291 is used -- `msgBox/timeout` is the time left for displaying this message box or 0.0 if it does not time out - -### Temperatures - -Slow heaters like `temps/bed`, `temps/chamber`, and `temps/cabinet` (second chamber) have the following properties: - -- `current`: Current heater temperature -- `active`: Target temperature when turned on (in active state) -- `standby`: Target temperature when in standby mode -- `state`: State of the heater. See below -- `heater`: Index of the assigned heater - -The fields `temps/bed`, `temps/chamber`, and `temps/cabinet` may not be present if no bed and/or chamber is configured. - -- `temps/current`: Array of heater temperatures -- `temps/state`: Array of heater states -- `temps/tools/active`: Array holding arrays of configured active heater temperatures. Tools may have multiple heaters assigned -- `temps/tools/standby`: Array holding arrays of configured standby heater temperatures - -#### Heater states - -| Heater state | Meaning | Description | -| ------------ | ------- | ----------- | -| 0 | off | Heater is turned off | -| 1 | standby | Heater is in standby mode | -| 2 | active | Heater is active | -| 3 | fault | Heater fault occurred | -| 4 | tuning | Heater is being tuned | -| 5 | offline | Remote heater from an expansion board is not available | - -#### Extra heaters - -Extra heaters represent custom sensor and can be found in `temps/tools/extra`. Every extra heater is reported in the following format: - -``` -{ - "name": "MCU", - "temp": 34.7 -} -``` - -### Scanner - -RepRapFirmware may support an external interface for 3D scanners. This field is not be present if scanner support is not enabled in the firmware, -hence this field may not be present either. There are two fields for this interface in the status response: - -- `status`: Status of the external 3D scanner. See below -- `progress`: Progress of the current operation (0.0 to 100.0) - -Possible scanner states: - -| Status character | State | -| ---------------- | ----- | -| D | Disconnected | -| I | Idle | -| S | Scanning | -| P | Post processing | -| C | Calibrating | -| U | Uploading | - -### Spindles - -The `spindles` field may be only present if the machine is in `CNC` mode or if the advanced status respone (type 2) is queried. - -It provides a list of configured spindles in the format - -``` -{ - "current": 0.0, - "active": 0.0, - "tool": 0 -} -``` - -where `current` is the current RPM, `active` the target RPM, and `tool` the number of the assigned tool. - -### Other fields - -- `speeds/requested`: Requested feedrate of the current move -- `speeds/top`: Top feedrate of the current move -- `currentTool`: Selected tool number (not index) or -1 if none is selected -- `params/atxPower`: ATX power state. This may be -1 if ATX power is not configured -- `params/fanPercent`: Fan percent (0.0 to 100.0). If the fan is disabled, this may be negative (-1) -- `params/speedFactor`: Speed factor override. 100% equals 100.0 and this is always greater than 0.0 -- `params/extrFactors`: Extrusion factor override values. Values of 100% equals 100.0 and they are always greater than 0.0 -- `params/babystep`: Z babystepping amount -- `sensors/probeValue`: ADC reading of the Z probe -- `sensors/probeSecondary` (optional): Seconday probe ADC reading if the probe is modulated. This field is not present if the probe is unmodulated -- `sensors/fanRPM`: Array of fan RPMs, values may be negative if not configured -- `time`: Time in seconds since the machine started. May be used to detect firmware resets -- `laser` (optional): PWM value of the attached laser. This field is only present if the machine is in `Laser` mode - -## Advanced Status Response (Type 2) - -This status response type provides fields that may change but not as frequently as those in the standard status response. - -``` -{ - "params": { - "fanNames": [""], - }, - "temps": { - "names": [""} - }, - ... - "coldExtrudeTemp": 160.0, - "coldRetractTemp": 90.0, - "compensation": "None", - "controllableFans": 0, - "tempLimit": 290.0, - "endstops": 0, - "firmwareName": "RepRapFirmware for Duet 3 v0.6", - "firmwareVersion": "3.0beta12+1", - "geometry": "cartesian", - "axes": 3, - "totalAxes": 3, - "axisNames": "XYZ", - "volumes": 1, - "mountedVolumes": 0, - "mode": "FFF", - "name": "duet3", - "probe": { - "threshold": 500, - "height": 0.70, - "type": 0 - }, - "tools": [], - "mcutemp": { - "min": 24.0, - "cur": 37.4, - "max": 37.6 - }, - "vin": { - "min": 0.2, - "cur": 0.3, - "max": 0.3 - }, - "v12": { - "min": 0.2, - "cur": 0.2, - "max": 0.2 - } -} -``` - -### Geometry - -The current geometry is reported as part of the `geometry` field. The following geometries are supported: - -| Value | Geometry | -| ----- | -------- | -| cartesian | Cartesian | -| coreXY | CoreXY | -| coreXYU | CoreXYU | -| coreXYUV | CoreXYUV | -| coreXZ | CoreXZ | -| markForged | markForged | -| Hangprinter | Hangprinter | -| delta | Linear delta | -| Polar | Polar | -| Rotary delta | Rotary delta | -| Scara | Scara | - -If the geometry is unknown, `unknown` is reported. - -### Machine mode - -It is possible to choose between `FFF`, `CNC`, and `Laser` mode. As a consequence, the following values are reported as part of the `mode` field: - -| Value | Mode | -| ----- | ---- | -| FFF | 3D printing mode | -| CNC | CNC mode | -| Laser | Laser cutting/engraving mode | - - -### Probe - -The `probe` field may not be present if no Z probe is configured. If it is, it provides the following fields: - -- `probe/threshold`: Threshold value for the Z probe to be triggered -- `probe/height`: Z height of the Z probe when triggered -- `probe/type`: Probe type. See below - -Possible probe types are: - -| Probe type | Name | -| ---------- | ---- | -| 0 | No probe | -| 1 | Simple analog probe | -| 2 | Dumb modulated probe | -| 3 | Alternate analog probe | -| 4 | E0 switch **deprecated** | -| 5 | Digital probe | -| 6 | E1 switch **deprecated** | -| 7 | Z switch **deprecated** | -| 8 | Unfiltered digital probe | -| 9 | BLTouch | -| 10 | Z motor stall detection | - -### Tool mapping - -In order to figure out the mapping between heaters and tools, the tool mapping is reported as part of the advanced status response. -The tool mapping is reported as an array of items like - -``` -{ - "number": 0, - "name": "", - "heaters": [], - "drives": [], - "axisMap": [[0],[1]], - "fans": 1, - "filament": "PLA", - "offsets": [0.00, 0.00, 0.00] -} -``` - -where - -- `number`: Tool number (T*n*) -- `name`: Optional tool name or `""` if none is configured -- `heaters`: List of assigned heater indices -- `drives`: List of assigned drives -- `axisMap`: XY axis mapping. Mapped X axes are reported in the first item and mapped Y axes in the second one -- `fans`: Bitmap of the mapped tool fans (controllable by `M106` without `P` parameter) -- `filament` (optional): Name of the loaded filament -- `offsets`: Tool offsets. The size of this array equals the number of visible axes - -### Other fields - -- `params/fanNames`: Array of custom fan names. Every fan name defaults to `""` if no custom name has been configured -- `temps/names`: Custom names of the heaters. This is `""` for every heater that does not have a custom name -- `coldExtrudeTemp`: Minimum temperature for extrusions -- `coldRetractTemp`: Minimum temperature for retractions -- `compensation`: Current type of bed compensation. May be either `Mesh`, `n Point` (where n is the number of probe points), or `None` -- `controllableFans`: Bitmap of fans that are user-controllable. This excludes thermostatic fans -- `tempLimit`: Maximum allowed heater temperature of the heater protection items. This is used for scaling the temperature chart on the web interface -- `endstops`: Bitmap of currently triggered axis endstops -- `firmwareName`: Name of the firmware **deprecated - see config response** -- `firmwareVersion`: Version of the firmware **deprecated - see config response** -- `axes`: Number of visible axes -- `totalAxes`: Number of total axes -- `axisNames`: Letters of the visible axes -- `volumes`: Total number of supported volumes -- `mountedVolumes`: Bitmap of mounted volumes (1 = drive 0, 2 = drive 2, ...) -- `name`: Hostname of the machine -- `mcutemp` (optional): Minimum, current, and maximum MCU temperatures -- `vin` (optional): Minimum, current, and maximum input voltage -- `v12` (optional): Minimum, current, and maximum voltage on the 12V rail - -## Print Status Response (Type 3) - -This status response type provides extra details about the file being processed. The format is - -``` -{ - ... - "currentLayer": 0, - "currentLayerTime": 0.0, - "extrRaw": [], - "fractionPrinted": 0.0, - "filePosition": 0, - "firstLayerDuration": 0.0, - "firstLayerHeight": 0.00, - "printDuration": 0.0, - "warmUpDuration": 0.0, - "timesLeft": { - "file": 0.0, - "filament": 0.0, - "layer": 0.0 - } -} -``` - -where the fields are: - -- `currentLayer`: Number of the current layer being printed -- `currentLayerTime`: Time of the current layer -- `extrRaw`: Total amount of extruded filament without extrusion multipliers applied. This is useful to estimate the print progress -- `fractionPrinted`: Fraction of the file printed on a scale of 0.0 to 100.0. This equals `filePosition / fileSize` -- `filePosition`: Byte position of the file being printed -- `firstLayerDuration`: Duration of the first layer or 0.0 if unknown -- `firstLayerHeight`: Height of the first layer -- `printDuration`: Total print duration (excluding pause times) -- `warmUpDuration`: Time needed to warm up the heaters -- `timesLeft/file`: Estimation for the time left based on the file consumption -- `timesLeft/filament`: Estimation for the time left based on the filament consumption -- `timesLeft/layer`: Estimation for the time left based on the layer times - -## Configuration response - -In addition to the responses above, the config response provides values that are not expected to change unless the machine is reconfigured. -Note that a user may choose to reconfigure the machine at any time. The config response comes in the following format: - -``` -{ - "axisMins": [0.0, 0.0, 0.0], - "axisMaxes": [220.0, 200.0, 180.0], - "accelerations": [1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0], - "currents": [800.0, 1000.0, 800.0, 1000.0, 800.0, 800.0, 8000, 800.0], - "firmwareElectronics": "Duet 3 MB6HC", - "firmwareName": "RepRapFirmware", - "boardName": "MB6HC", - "firmwareVersion": "3.0beta12+1", - "dwsVersion": "1.24", - "firmwareDate": "2019-11-05b1", - "idleCurrentFactor": 35.0, - "idleTimeout": 30.0, - "minFeedrates": [10.0, 10.0, 0.5, 0.33, 0.33, 0.33, 0.33, 0.33], - "maxFeedrates": [250.0, 250.0, 3.0, 60.0, 60.0, 60.0, 60.0, 60.0] -} -``` - -The following fields are reported: - -- `axisMins`: Minima of the visible axes -- `axisMaxes`: Maxima of the visible axes -- `accelerations`: Accelerations of the drives -- `currents`: Configured motor currents -- `firmwareElectronics`: Name of the firmware electronics -- `firmwareName`: Name of the firmware (usually RepRapFirmware) -- `boardName` (optional): Short name of the board, only applicable for Duet 3. May be `MB6HC` for Duet v0.6 or `MBP05` for the Duet v0.5 prototype -- `firmwareVersion`: Version string of the firmware -- `dwsVersion` (optional): Version of the DuetWiFiSocketServer (only Duet WiFi) -- `firmwareDate`: Indicates when the firmware was built -- `idleCurrentFactor`: Motor currents are reduced by this factor when the motors are idle -- `idleTimeout`: Motor current reduction is performed after this time in seconds -- `minFeedrates`: Minimum feedrates of the drives -- `maxFeedrates`: Maximum feedrates of the drives +This file is no longer maintained. See https://github.com/Duet3D/RepRapFirmware/wiki/JSON-responses instead. \ No newline at end of file -- cgit v1.2.3