-
Notifications
You must be signed in to change notification settings - Fork 10
tstph
The tstph
FireStep command continuously sends
pulses to traverse a PH5Curve line. The traversed curve
is trivially, a straight line,
and the test actually exercises the PHFeed, which can be of great
value in tuning stepper drivers trimpots.
**CAUTION:** DISENGAGE DRIVE BELTS FROM STEPPERS BEFORE RUNNING
THIS TEST OR YOU MAY DAMAGE YOUR MACHINE. THE TEST REQUIRES
UNOBSTRUCTED STEPPER TRAVEL.
FireStep is designed around quintic Pythogorean Hodograph Curves (PH5Curve). Briefly, PH5Curves are quintic polynomial curves computed from on-curve control points. Given that they are quintic, PH5Curves have C2 continuity and therefore continuous acceleration. This property of C2 continuity is critical for smooth and fluid CNC path traversal.
Here are the position, velocity and acceleration
profiles of the standard tstph
curve,
which in this example has 50 piecewise-linear segments (@20 ms)
and a total traversal time of 1 second:
Since the velocity is measured in pulses/second, it is actually audible, and the profile shown above is given in Hz. The sound of a PH5Curve depends on:
- the maximum velocity (in this example 12800 pulses/second)
- the time to reach maximum velocity (in this example 1 second)
- the length of the PH curve (in this example 6400 pulses for 16-microstep 0.9-degree stepper)
The PHFeed module of FireStep uses the above parameters to scale the maximum path velocity (in this example scale=1) and will add a constant-velocity cruise section if needed. In general, each PH5Curve traversal will have its own individual sound, but all will share the continuous rise/fall of audible velocity.
FireStep is digital, and digitization aliasing is unavoidable. Digitization manifests itself in various ways. For example, FireStep represents acceleration for each of the path segments using a single 8-bit signed byte (FireStep Arduino).
Although FireStep byte digitization affects acceleration, it is minimally disruptive on positioning. In the chart below you can see the quantization of acceleration used to traverse the curve documented in this example:
The digitization of acceleration also sets limits on representable curves. On the Arduino, FireStep uses an 8-bit signed byte and can therefore not represent a 200 pulse velocity change. To compensate, FireStep will automatically increase the number of path segments (which is limited by memory constraints).
- Data for this example tstph.csv