Motion Control Protocol
|Motion Control Protocol|
|We aim to create a binary protocol for use on 3D printers that removes use of ASCII, increases reliability and speed, improve usability and increases flexibility.|
| User:Bracken, User:LeoDearden, User:hindessm
Outline communication stack
- Application data (Machine commands and status)
- Data flow control (and error detection/correction?)
- Data transport (USB or serial)
Header includes command type, fields present (axes, acceletation, speed, jerk) and offsets are implied by common field length. All position, speed, jerk and acceleration values are two's compliment fixed point. Some CRC TBD.
g-code equivalent commands (type 1)
Directly compatible with current g-code instructions.
set speed set acceleration move to target position (implicit acceleration and speed limit)
RISC motion command (type 2)
Indented to allow host software complete control to craft manoeuvres of any shape and resolution.
acceleration, end position
CISC motion command (type 3)
Intended to allow host software more control of manoeuvres executed by firmware based on context that the firmware cannot know (eg. perimeter vs infill).
end position, acceleration, jerk, speed.
Arbitrary number of axies
Axies are either absolute or relative
- Design payloads for g-code equivalent functionality
- command structure
- Bed size
- Size/Max size of fixed point values