Steppers

The stepper driver API provides a set of functions for controlling and configuring stepper drivers.

Configure Stepper Driver

Control Stepper

Device Tree

In the context of stepper controllers device tree provides the initial hardware configuration for stepper drivers on a per device level. Each device must specify a device tree binding in Zephyr, and ideally, a set of hardware configuration options for things such as current settings, ramp parameters and furthermore. These can then be used in a boards devicetree to configure a stepper driver to its initial state.

See examples in:

Discord

Zephyr has a stepper discord channel for stepper related discussions, which is open to all.

Stepper API Test Suite

The stepper API test suite provides a set of tests that can be used to verify the functionality of stepper drivers.

# From the root of the zephyr repository
west build -b <board> --extra-dtc-overlay <path/to/board.overlay> tests/drivers/stepper/stepper_api
west flash

Sample Output

Below is a snippet of the test output for the tmc50xx stepper driver. Since is not implemented by the driver the corresponding tests have been skipped.

===================================================================
TESTSUITE stepper succeeded

------ TESTSUITE SUMMARY START ------

SUITE PASS - 100.00% [stepper]: pass = 4, fail = 0, skip = 2, total = 6 duration = 0.069 seconds
 - PASS - [stepper.test_actual_position] duration = 0.016 seconds
 - PASS - [stepper.test_get_micro_step_res] duration = 0.013 seconds
 - SKIP - [stepper.test_set_micro_step_interval_invalid_zero] duration = 0.007 seconds
 - PASS - [stepper.test_set_micro_step_res_incorrect] duration = 0.010 seconds
 - PASS - [stepper.test_stop] duration = 0.016 seconds
 - SKIP - [stepper.test_target_position_w_fixed_step_interval] duration = 0.007 seconds

------ TESTSUITE SUMMARY END ------

===================================================================
PROJECT EXECUTION SUCCESSFUL

API Reference

A common set of functions which should be implemented by all stepper drivers.

Stepper Driver Interface

Stepper controller specific APIs

Trinamic

Trinamic Stepper Controller Interface