---
tag: g006
title: Direct Stepper Move
brief: Perform a direct, uninterpolated, and non-kinematic synchronized move
author: shitcreek
contrib: colinrgodsey

group: motion
requires: DIRECT_STEPPING

codes: [ G6 ]

notes:
- Requires `DIRECT_STEPPING`.
- Position sync in step-daemon is not entirely finished and movements made with the control panel may be lost. At this moment, homing is required to sync step daemon and the device. Always home before issuing movement commands.
- Use with extra caution.

parameters:

- tag: I
  optional: true
  description: Set page index
  values:
  - tag: index
    type: int

- tag: R
  optional: true
  description: Step rate per second. Last value is cached for future invocations.
  values:
  - tag: rate
    type: float

- tag: S
  optional: true
  description: Number of steps to take. Defaults to max steps.
  values:
  - tag: rate
    type: float

- tag: X
  optional: true
  description: 1 for positive, 0 for negative. Last value is cached for future invocations. Not used for directional formats.
  values:
  - tag: direction
    type: int

- tag: Y
  optional: true
  description: 1 for positive, 0 for negative. Last value is cached for future invocations. Not used for directional formats.
  values:
  - tag: direction
    type: int

- tag: Z
  optional: true
  description: 1 for positive, 0 for negative. Last value is cached for future invocations. Not used for directional formats.
  values:
  - tag: direction
    type: int

- tag: E
  optional: true
  description: 1 for positive, 0 for negative. Last value is cached for future invocations. Not used for directional formats.
  values:
  - tag: direction
    type: int

---

Direct Stepping allows a host device to issue direct stepper movements in binary format, pre-written by the host device to a page in the device RAM.

A "page manager" mechanism is provided to load the binary data onto the device. The page manager provided here uses a parallel protocol over the USB serial connection to write pages to the device RAM, and is decoupled from the normal serial G-code pipeline. This allows the host device to preload pages as fast as possible without waiting on the G-code pipeline.

Once a page is written by the device, it can be triggered using the `G6` G-code which references the page index that should be used for that move. Depending on the page format, direction arguments may need to be provided in the `G6` code.

- Requires [Step Daemon](//github.com/colinrgodsey/step-daemon) by [@ColinRGodsey](//github.com/colinrgodsey).
- Visit [RepRap Wiki](//reprap.org/wiki/Direct_Stepping) for more details.
