From Trammell Hudson's Projects

Servo control of stepper motors

Stepper plus quadrature



The first version of the software using only P (error proportional only) shows some ringing. Need to adjust speed ramp and handle reversals more cleanly. It does track motor speed and will dial back the step rate if it detects missing steps.

Constant jerk planning

Schematic diagram of Jerk, Acceleration, and Speed.png

Constant Jerk mode smoothly ramps up the acceleration to a maximum value, which then quadratically ramps up the velocity to a maximum value. This reduces the shock on the system as motion begins and ends.

  • During phase 1, a = j t and v = v_0 + {1\over 2} j t^2.
  • During phase 2, a = max_a and v = v_1 + max_a * t.
  • During phase 3, a = max_a - j t and v = v_2 - {1\over 2} j t^2.
  • During phase 4, a = j = 0 and v = v_3 (constant velocity)


  • Better motor driver (currently using Makerbot Stepbot 17E boards)
  • Trapezoidal ramp planning
  • PCB design
  • Command protocol specification
    • Want to support speed/feed options
    • Need both "Go to" and "Go next"
    • Configure holding torque?
    • Configure PID terms
    • Configure max A, max V
    • Configure max ratio of steps to count (to avoid skipping)