Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2019-12-14 20:00:55 +0300
committerDavid Crocker <dcrocker@eschertech.com>2019-12-14 20:00:55 +0300
commitee7d22870874f9c5e49d5458ba4d340e0dce1e2e (patch)
treeadf1f394fce3c1f891d48919fbee74868793343c /JSON responses.md
parentb53dcd52068a140fab2ccea5a66de21994b6eece (diff)
Still 3.0RC1 provisional
Bug fix: not all extrusion amounts were being cleared when preparing a move
Diffstat (limited to 'JSON responses.md')
-rw-r--r--JSON responses.md463
1 files changed, 463 insertions, 0 deletions
diff --git a/JSON responses.md b/JSON responses.md
new file mode 100644
index 00000000..28eb9caa
--- /dev/null
+++ b/JSON responses.md
@@ -0,0 +1,463 @@
+# 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