-
Notifications
You must be signed in to change notification settings - Fork 10
MTO_RAW
This document is an extension of the JSON-Reference
that details the JSON commands for systo:0
, which is a
barebones machine controlled directly by stepper pulses.
MTO_RAW gives you great control over individual stepper motion down to a single stepper pulse. For example, MTO_RAW position '1' is one microstep pulse away from position '2'.
Stepper position is provided for each axis, but can
also be accessed by motor/axis mapping using the
mpo
group to set/get the motor position. Motor position units are in
microstep pulses. Example:
{"mpo":""}
Attribute | ✏️ | Default | Description |
---|
1 | :pencil2: | 0 | motor 1 axis position
2 | :pencil2: | 0 | motor 2 axis position
3 | :pencil2: | 0 | motor 3 axis position
4 | :pencil2: | 0 | motor 4 axis position
You can set the motor position as well. Setting the motor position does
not move any stepper, it just changes the coordinate space origin.
See mov
for comparison.
FireStep supports simple direct motion via the mov
request, which can be used for positioning to a specified
coordinate. The mov
request is not designed for
continuous complex path traversal. However, it can
be used to specify single moves easily.
Attribute | ✏️ | Default | Description |
---|
1 | :pencil2: | 0 | motor 1 position
2 | :pencil2: | 0 | motor 2 position
3 | :pencil2: | 0 | motor 3 position
4 | :pencil2: | 0 | motor 4 position
x | :pencil2: | 0 | X-axis position (must be mapped to a motor)
y | :pencil2: | 0 | Y-axis position (must be mapped to a motor)
z | :pencil2: | 0 | Z-axis position (must be mapped to a motor)
a | :pencil2: | 0 | A-axis position (must be mapped to a motor)
b | :pencil2: | 0 | B-axis position (must be mapped to a motor)
c | :pencil2: | 0 | C-axis position (must be mapped to a motor)
lp | -- | :arrow_right: | number of loop() calls (for calculating pulses/loop)
mv | :pencil2: | sysmv | maximum velocity (pulses/second)
pp | -- | :arrow_right: | peak rate (pulses/second)
sg | :pencil2: | 0 | number of segments in path (0:auto)
ts | -- | :arrow_right: | actual stroke traversal time (seconds)
tp | -- | :arrow_right: | planned stroke traversal time (seconds)
tv | :pencil2: | systv | seconds to reach maximum velocity
- ➡️ output value only
The short form of mov
executes an immediate move on the specified axis
and omits statistics (e.g., ts
). The following command therefore moves
the Y motor after it moves the X motor:
{"movx":10000,"movy":5000}
FireStep can probe from the current position to a designated position, stopping when the limit switch on the specified probe pin triggers. The result returned specifies the stepper coordinates at which the limit switch triggered. If the probe never contacts a surface, the command result status s will be STATUS_PROBE_FAILED.
Probes are directional and you can use any motor/axis combination to specify the exact probing movement. For best results, choose a probe destination that is orthogonal to the probed surface.
Attribute | ✏️ | Default | Description |
---|
1 | :pencil2: | no probe | motor 1 probe destination
2 | :pencil2: | no probe | motor 2 probe destination
3 | :pencil2: | no probe | motor 3 probe destination
4 | :pencil2: | no probe | motor 4 probe destination
x | :pencil2: | no probe | X-axis probe destination (must be mapped to a motor)
y | :pencil2: | no probe | Y-axis probe destination (must be mapped to a motor)
z | :pencil2: | no probe | Z-axis probe destination (must be mapped to a motor)
a | :pencil2: | no probe | A-axis probe destination (must be mapped to a motor)
b | :pencil2: | no probe | B-axis probe destination (must be mapped to a motor)
c | :pencil2: | no probe | C-axis probe destination (must be mapped to a motor)
ip | :pencil2: | false | invert probe limit logic
pn | :pencil2: | required | probe limit switch pin
sd | :pencil2: | syssd | probe search pulse period (microseconds)
Typical probes will first move quickly to the probe starting position, then immediately follow with the actual probe, which is slow and careful. Here is an example of a Z probe at the XY origin for FirePick Delta for a RAMPS1.4 FireStep using pin 2 as the limit switch:
{"mov":{"1":8000,"2":8000,"3":8000}}
{"prb":{"1":8200,"2":8200,"3":8200, "pn":2}}