Writing
Short notes on embedded control, robotics, and practical mechatronics.
-
Controlling a motor's speed with a 555 and no code
A pure-analog DC-motor speed controller — a 555 timer making PWM, a potentiometer setting the duty cycle, and BJT switches passing the current — and why the hard parts move from firmware to the switching edge.
-
An echo is a one-line filter, and undoing it is its inverse
Adding an echo to a speech clip in MATLAB is a single difference equation — and removing it again is literally the inverse system, which is the whole idea of a transfer function made audible.
-
A suspension that aces the bump and still resonates
Modeling a half-car suspension as a 4-DOF state-space system — where a single speed bump looks perfectly damped, but sweeping the road frequency exposes a pitch resonance hiding underneath.
-
Writing the numerical toolkit by hand
Implementing root-finders, linear solvers, regression, interpolation, and integration from their definitions instead of calling a built-in — and what that makes visible.
-
Dimming AC the cheap way, and paying for it in harmonics
A two-thyristor AC voltage regulator controls power by delaying the firing angle — no DC conversion needed — but the bill comes due as waveform distortion, and the load type decides how steep it is.
-
The reset has to win
Designing the pneumatic control sequence for a plastic-sheet welder — two cylinders, a timed dwell, and a return button that has to override the timer the instant it's pressed.
-
Designing for a pipe you can't reach
The mechanical design of a pipe-inspection robot — why it's split into sealed modules and braced by an articulated linkage instead of built to a single fixed diameter.
-
Identify the motor, don't trust the datasheet
Modeling a DC servo motor from a real step response instead of nameplate values — why a second-order plant collapses to first order, and what closing the loop does to its time constant.
-
The voltage detector that only worked on bare wire
A non-contact AC voltage detector built three times, failing three different ways — and why the prototype that finally 'worked' still couldn't read the wire it was actually for.
-
Where the linear model quietly lies
Modeling an aeropendulum three ways — nonlinear, linearized, and the real step response — to find exactly where the convenient second-order model stops telling the truth.
-
Design to the yield, not to the break
Pull a steel rod to destruction and two strength numbers fall out of the curve. The bigger one is the headline. The smaller one is the one you design to.
-
Measuring a gap you're not allowed to touch
How inductive, non-contact displacement sensors read position through oil, dust, and metal chips — and why they have to run on AC instead of a DC voltage divider.
-
One brass bar, six different conductivities
Measuring the thermal conductivity of a single uniform brass bar should give one number. I got six — and the spread, not the average, is the part worth reading.
-
A mutex is a promise, not a suggestion
Two tasks on one microcontroller, sharing a CPU and a serial port. Both bugs that followed — a starved task and garbled output — were the same bug: a shared thing nobody was forced to take turns with.
-
The shaft that passes a strength check and still breaks
Designing the drivetrain between a gasoline engine and an air compressor — why the shaft has to be sized for fatigue, and why every element drags the others along.
-
The sumo robot's real job is staying in the ring
A mini-sumo robot has two jobs that sound symmetric and aren't — pushing the opponent out, and not getting pushed out yourself. The second one is the whole design.
-
A tamper alarm can't wait for delay() to finish
Why a keypad-locked access box on a bare ATmega8 runs a non-blocking state machine instead of blocking delays — so the alarm always wins.
-
Designing the glove controller to fail loud, not clever
On a benchtop rehabilitation-glove rig, the controller's first job isn't precision — it's to stay inside hard limits, refuse to fight itself, and show its work.
-
Holding a grip without a second control loop
Why the rehab-glove controller holds the open hand with bang-bang hysteresis instead of running PID on the vacuum pump.