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.
{{#arraymap:User:Bracken, User:LeoDearden, User:hindessm|,|x|Has participant::x}}

Outline communication stack

  • Application data (Machine commands and status)
  • Data flow control (and error detection/correction?)
  • Data transport (USB or serial)

Command structure

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.

axis addressing

Arbitrary number of axies

Axies are either absolute or relative

Required Actions

  • Design payloads for g-code equivalent functionality
    • Commands
      • command structure
    • Enquiry
      • Static
        • Bed size
        • Size/Max size of fixed point values
      • Dynamic
        • Temps
        • Position
This article is issued from Old-wiki. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.