← Piezo Motor / Articles
§11Article · 11 of 13

Independent Research · 3D-Printed Piezo Stick-Slip Motor

First Motion: 3.09 mm Forward, 0.54 mm Back on a 15 V Printed Piezo Motor

Published · Last updated

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 sentence was true.

This chapter is the record of those three weeks. It has a happy ending, in that the motor now runs in both directions on command. It also has three weeks of null trials in the middle, a component-swap scoreboard on which everything I could buy was replaced and exonerated, and a root cause that came down to how rigidly a printed pocket held the stack. I'm keeping all of it, because the failures are the part that would actually help somebody else.

01

The July 30 run

The measurement was as simple as measurements get. A strip of masking tape laid on the base beside the slider, its edge as the zero mark. Drive on at the bench default of 5 Hz. Ten minutes of watching. Then 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).

Divide it out and the numbers land where the theory says they should. 2510 µm over 600 s is 4.18 µm/s (Derived). At 5 Hz that is 0.84 µm per cycle (Derived), 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]). Worth saying where that band comes from, because scaling the datasheet stroke straight down to 15 V gives about 2 µm of stack extension, not a sub-micrometer step. A stick-slip step keeps only the part of the stroke that survives the slip phase, and measuring what fraction that is on this motor is one of the jobs §M12 has. 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. That was exactly what made it credible.

It was also, by the project's own rules, not yet a result. A stick-slip motor is defined by the sawtooth: slow ramp drags, fast flyback slips. Reverse the sawtooth and the travel must reverse. Until that test passes, a slider creeping consistently in one direction has at least three mundane explanations that no amount of enthusiasm removes: 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.

02

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 exact condition produced nothing at all.

The first suspect was the drive, so I put the scope on the stack's own wires before anything else. 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. With a fingertip on the stack the vibration was obvious. Whatever was wrong, the ceramic was being driven and it was moving.

That 42 µs is worth a sentence of its own, because it is the first measured number for what this amplifier actually puts into the stack. 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, so it says what the amplifier did that day and not what it can do.

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.

Note that clamping screw. It comes back.

03

The component-swap results

What followed was three days of the only method available to somebody who can't see the output. Remove suspects.

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).

Two plate changes with no effect take the plate out of the running. The common element in every null was the foot, and the project's own notes had predicted this failure back in June. Resin galls within minutes of sliding, which is the entire 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). "Within minutes" was not a metaphor.

The reverse-direction trial that day is worth flagging as a piece of failed experimental design rather than a result. It ran about 45 minutes into that contact's life, by which point the forward direction had already stopped working. It says nothing about polarity reversal. I recorded it as unresolved rather than as evidence.

August 12 and 13. I escalated to replacing things that had no business being wrong. A new piezo stack fresh from the box, another new alumina plate, and a third flexure print. Three more trials, one four-minute "maybe? minor," the rest 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 had already been convicted and not yet replaced, the resin foot, 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 that process is not a component. It is something that 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 entire project, motion had only ever appeared at near-zero preload, and it had never once reversed. Textbook tangential stick-slip prefers a real preload and reverses with the sawtooth. What I had looked less like a motor and more like something being shaken along.

04

The fix started with a screw

The answer, when it came, was mine and it was mechanical and it was embarrassing in the specific way that good answers often are.

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. 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. August failed because I reprinted the part in a different resin and never thought of the pocket as a dimension that mattered. §M4a is an entire chapter about how exposure changes hole sizes, written by the same person who did not connect that lesson to the one hole that was holding the actuator.

What I cannot claim is 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 drought had both changes in it. Two fixes went in together and the motor came back. That tells me the pair works. It does not tell me which one was necessary, and 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.

One liability comes with the fix. 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: rigid in use, reversible by hand.

05

The reversal

Before the reversal there was one more run, and it is the honest bridge between the two halves of this chapter. 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; the only record is my August 17 email to Prof. Hwu, because I did not write a bench log that day). Then it stalled for the last third of the run, and the sawtooth amplitude on the scope was visibly lower by the end. And when I flipped the polarity, the direction did not reverse.

So as of August 17 I had a motor that moved reliably and still had not passed its own test.

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. Only the sign of the waveform changed (Measured, run log 2026-08-20; my notes say "all today" without a date, which puts it on the 19th or the 20th).

Derived: forward 4.68 µm/s ≈ 0.94 µm per cycle, inside the predicted band and faster than July. Reversed 0.69 µm/s ≈ 0.14 µm per cycle.

Reversing on command is the one behaviour that no passive mechanism produces. A tilted rail does not care which way the sawtooth points. Neither does vibration, nor drift, nor a slow creep in the mounting. Flip the drive and they all keep going the way they were going. This is a motor. 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.

06

Remaining work

The honest residue, in the order it should be cleared:

  • Corroboration. The battery's own bar was two runs each way plus a drive-off null. 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. Same rig, same duration, power on and 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, which 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 actually 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. 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 test is cheap. 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.

07

Results and takeaways

The failure was worth more than the success. A motor that works on the first try teaches you nothing about why it works. This one had to be dismantled to the level of individual components and rebuilt before it would give up 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 SSPA literature does not contain, because the SSPA literature uses wire-EDM steel (§M1). It is exactly the kind of thing a printed-flexure project is positioned to find out, and the finding cost me three weeks of null trials.

The characterization begins here: the ball is in, the seat is rigid, and the motor reverses. §M12 puts numbers on it.