On the evening of July 30 the slider moved 2.51 mm in ten minutes and I thought the project was over. It took another three weeks to find out whether that was true. The motor now runs in both directions on command, and on the way there were three weeks of null trials, a component-swap scoreboard, and a root cause that came down to how rigidly a printed pocket held the stack.
The July 30 run
I laid a strip of masking tape on the base beside the slider, with its edge as the zero mark, then ran the drive at the bench default of 5 Hz and watched for ten minutes. The gap between the tape edge and the slider, read against a rule, came to 2.51 mm (Measured, 2026-07-30, near-zero preload with the foot barely touching the alumina).
Dividing 2510 µm by 600 s gives 4.18 µm/s (Derived), and at 5 Hz that is 0.84 µm per cycle (Derived). The 0.84 µm per cycle is inside the 0.5–1.0 µm per cycle band the project had predicted for a 15 V drive (CLAUDE.md §2, from the verified 20 µm at 150 V [9]).
The band is sub-micrometer even though scaling the datasheet stroke straight down to 15 V gives about 2 µm of stack extension, because a stick-slip step keeps only the part of the stroke that survives the slip phase. Measuring what fraction that is on this motor is one of the jobs of §M12. The nearest same-class precedent in the literature, Huang and Sun's lever-amplified stack, demonstrated 0.875 µm steps at 10 V [10]. Nothing about the number was surprising, and that was what made it credible.
By the project's own rules, it was also not yet a result. A stick-slip motor is defined by its sawtooth (slow ramp drags, fast flyback slips), so reversing the sawtooth must reverse the travel. Until that test passes, a slider creeping consistently in one direction has at least three mundane explanations: a rail tilted a fraction of a degree, vibration walking the slider along, or an uncontrolled contact at a preload I could not put a number on. So the write-up carried the word "provisional," and the plan booked a validation battery for August 10.
August 10, no motion
I came home from a week away, set the rig up as it had been, and ran the battery: eight trials, preloads from zero to 1.0 N in calibrated 0.099 N ticks, both polarities, five to eleven minutes each, about 63 minutes of watching in total, and no motion (Measured, run log 2026-08-10). One trial at zero preload produced something I wrote down as "maybe — small and unclear," and the post-cleanup repeat of that condition produced nothing.
The first suspect was the drive, so I put the scope on the stack's own wires before anything else. The reading was 14.7 V peak-to-peak, with a flyback of about 42 µs against the 60 µs I had commanded (Measured, 2026-08-10). The tick was loud and sharp and the vibration was obvious with a fingertip on the stack, so whatever was wrong, the ceramic was being driven and it was moving.
The 42 µs is the first measured number for what this amplifier puts into the stack, and the current works out to 1.8 µF × 14.7 V ÷ 42 µs ≈ 0.63 A (Derived), against the ~1 A that the 27 µs flyback in §M7's arithmetic would need. That 0.63 A is a floor and not a ceiling, because the board beat the 60 µs it was commanded.
Between trials I re-zeroed the preload with the paper strip, cleaned the alumina and the foot with IPA, cleared ten days of dust off the rail, rechecked every wire, and tightened the screw that clamps the stack into the flexure pocket. Then I ran the whole sweep again, and nothing moved.
The component-swap results
What followed was three days of removing suspects, the only method available to somebody who can't see the output. On August 11 the flexure in service turned out to have been printed in Korea in Sunlu white resin, which I rate as slightly weaker than the Anycubic gray (§M4a covers why two ABS-like resins from two brands are not the same material). I reprinted it in gray, changed the leg to the lever geometry, and transferred the stack across.
The motor ran twice, about 1 mm per 10 minutes each time, which is 1.67 µm/s ≈ 0.33 µm/cycle (Derived), roughly 40% of July's speed and below the predicted band, on a configuration that differed from July's in three ways at once. Then it died, and six consecutive nulls followed, including one after I flipped the alumina plate over and another after I installed a factory-clean plate (run log 2026-08-11).
Every null had the foot in common, and the project's own notes had predicted this failure back in June. Resin galls within minutes of sliding, which is the reason a silicon-nitride ball was bought (design_notes §16). At roughly 2 µm of micro-slide per cycle at 5 Hz, one ten-minute run rubs about 6 mm of cumulative sliding across a single spot on a printed dome (Derived).
The reverse-direction trial that day is failed experimental design, not a result. It ran about 45 minutes into that contact's life, by which point the forward direction had already stopped working, so it says nothing about polarity reversal, and I recorded it as unresolved rather than as evidence.
On August 12 and 13 I replaced things that had no reason to be wrong, putting in a new piezo stack, another new alumina plate, and a third flexure print. Three more trials gave one four-minute "maybe? minor," and the rest were null (run log 2026-08-12/13).
At that point the scoreboard read:
| Component | What was done | Verdict |
|---|---|---|
| Piezo stack | replaced with a boxed new unit | exonerated |
| Alumina plate | flipped, then replaced twice | exonerated |
| Flexure | printed three times, two resins | material exonerated |
| Drive electronics | 14.7 V p-p at the stack, correct sawtooth, audible tick | healthy |
| Rail | cleaned, unchanged across working and dead states | not the pivot variable |
| Preload | re-zeroed repeatedly by paper strip | procedure sound |
One suspect, the resin foot, had already been found at fault and not yet replaced, and the ball bought to replace it was still in the drawer. Everything else replaceable had been replaced and the behavior had not changed. What survives those swaps is something every rebuild carries over unchanged: the geometry of the assembly, the stiffness of the path from ceramic to contact, and the way the parts are held.
There was also a standing anomaly I had been noting and not confronting. Across the project, motion had only ever appeared at near-zero preload, and it had never reversed. Textbook tangential stick-slip prefers a real preload and reverses with the sawtooth. What I had looked like something being shaken along rather than a motor.
The fix started with a screw
The answer was mechanical and my own, and it was embarrassing. The stack has to sit rigidly in its pocket. The Korea-printed Sunlu flexure held it tightly, because that print's hole came out on the tight side of the tolerance, but the gray reprints ran looser. A stack that can wiggle a few micrometers in its seat spends its entire 2 µm stroke taking up that slack, and delivers nothing to the foot. Hard-tightening the clamp screw was part of what brought the motion back (run log 2026-08-20).
Most of the three-week record fits that. July worked because a print tolerance happened to fall the right way, and August failed because I reprinted the part in a different resin and never thought of the pocket as a dimension that mattered. I wrote §M4a, an entire chapter about how exposure changes hole sizes, and still did not connect that lesson to the one hole that was holding the actuator.
I cannot claim that the screw did it alone. The Si₃N₄ ball went into the foot in the same stretch, so the contact stopped being a consumable at the same time the seat stopped being loose, and every run after the null trials had both changes in it. The motor came back, which shows that the pair works but not which one was necessary. Separating them means backing the clamp off with the ball still in place and seeing whether the motion dies.
Prof. Hwu, whose board drives all of this (§M6), reached the same diagnosis independently from a single photograph, "the 3D printed parts are 'soft' — they absorb a lot of motion from the PZT stack" (email, 2026-08-17). His recommendation is to glue a magnet directly to the stack and to the solid part beyond it, which is his group's published coupling and removes the printed material from the load path entirely. That work is underway.
The fix comes with one liability, which is that resin creeps, so a hard-tightened clamp loosens over time and step size degrades with it. Permanent glue would solve it and would also make the stack unrecoverable, which I'm not willing to do. Hwu's magnet joint is the design answer, because it is rigid in use and reversible by hand.
The reversal
On August 16, with the ball in the contact and the clamp tightened, I filmed a 23-minute run at 60× time-lapse. The slider covered 3.17 mm in the first 13 minutes, about 4 µm/s while it was moving, measured against the 100 mm plate in frame (Measured, and the only record is my August 17 email to Prof. Hwu, because I did not write a bench log that day).
Then the slider stalled for the last third of the run, and the sawtooth amplitude on the scope was visibly lower by the end. When I flipped the polarity, the direction did not reverse, but a few days later it did.
| Trial | Duration | Direction | Travel |
|---|---|---|---|
| 1 | 11 min | forward | 3.09 mm |
| 2 | 13 min | reversed signal | 0.54 mm |
Drive conditions were 14.7 V p-p at 4.98 Hz with near-contact preload, unchanged between the two runs, and only the sign of the waveform changed (Measured, run log 2026-08-20, and my notes say "all today" without a date, which puts it on the 19th or the 20th). The forward run works out to 4.68 µm/s ≈ 0.94 µm per cycle (Derived), inside the predicted band and faster than July, and the reversed run to 0.69 µm/s ≈ 0.14 µm per cycle (Derived).
Reversing on command is the one behaviour that no passive mechanism produces. A tilted rail, vibration, drift and a slow creep in the mounting do not care which way the sawtooth points, and when the drive is flipped they all keep going the way they were going. This is a motor, and the word "provisional" comes out of the write-up on the strength of that single comparison.
I was extremely excited to see it go backwards. But just because it went backwards doesn't mean it did what I expected. What I expected was for it to come back at something close to the speed it went out, and it didn't. So it was a brief moment of happiness, and then a list of things I still have to fix.
Remaining work
The remaining work, in the order it should be cleared:
- Corroboration. The battery's own requirement was two runs each way plus a drive-off null, and what exists is one each way. That is about thirty minutes of bench time, and it is the first thing on the list.
- A drive-off control. That means the same rig and duration, with the power on and the drive off. It should produce nothing, and it should be filmed producing nothing.
- The asymmetry. Forward is 6.8× faster than reverse (Derived from the two runs). This is the one that bothers me, because a stick-slip motor driven by a mirrored waveform has no obvious reason to prefer a direction. Symmetric speed was the expectation and it is not what the bench produced. But both figures are totals divided by the whole trial, and the saturation item below means either run may have stalled partway and then been divided by time it was not moving. Leaving that time out is the correction I applied to the August 16 run and did not apply here. Until I have both speeds measured while the slider is moving, I do not know whether this is a real asymmetry or an artifact of where each direction stopped. Plausible causes if it is real: a lever that pushes more stiffly than it pulls, or the low-preload regime being marginal in one direction. The asymmetry is not diagnosed.
- The saturation. Travel stops at a repeatable position in each direction and holds there. My leading suspect is that the alumina face is not parallel to the rail axis, so the preload ramps as the slider advances until the motor stalls against it. That would also explain why only near-contact preloads work at all. The cheap test is to re-zero the contact at the stall point and see whether it walks again.
- The interferometer. Every travel number in this chapter came off a ruler and a strip of tape. The instrument in §M8 has not been realigned onto this slider, so nothing here is measured at the 260 nm resolution the project built for itself. §M12 is where that changes.
- A logged 8/16 session, reconstructed from the email, and the exact date of the reversal trials.
That is a longer list than I would like on the day of the result. It is also the difference between a demonstration and a measurement, and this project has been clear from §M1 about which of those it is trying to produce.
Results and takeaways
The motor had to be dismantled down to individual components and rebuilt before I found the actual mechanism, which is that a printed pocket holding a ceramic column is a load-bearing tolerance, and that the softness of printed parts is a design parameter rather than a nuisance. That is a lesson the stick-slip piezoelectric actuator literature does not contain, because it uses wire-EDM steel (§M1). The characterization begins here, with the ball in, the seat rigid and the motor reversing, and §M12 puts numbers on it.