top of page

Senior Mechanical Engineer

See a few samples of my work below

image2.jpg

At Fyto, I was one of ~3 mechanical engineers on an engineering team of 6-10 (depending on when you count). Our goal was to use a rapidly-growing aquatic plant (Duckweed) to remediate nitrogen-rich dairy wastewater and turn it into protein-rich feed and fertilizer (Duckweed is up to 45% protein). This amazing plant doubles in biomass approximately twice a week. With a growth rate like that, it becomes obvious that an automated system is basically required to make this a usable crop. Thus the FytoBot (our harvester, pictured left) was born. 

Duckweed forms a wet mat when extracted from water and sticks to almost anything (see the graphic below).

When I joined the company, the motion control (X, Y, and Z axes) of the generation 2 FytoBot had just been designed, but the team was having trouble making a robust end-effector (the bit on the end that actually does the harvesting). Duckweed forms a sticky, yet slippery tangled mat when extracted from the water (see figure above). However, when moved with some water, it could be pumped and transported freely. This, combined with the need for maximal reliability, pushed us to focus on hydraulic solutions rather than trying to submerge moving parts like a conveyor belt. When harvesting duckweed and water together, you want to harvest 100% of the duckweed in an area while sucking in the correct (small) amount of water. The simplest device we thought of looks like the figure below, left in cross-section. The first implementation is shown on the right. 

image4.png

Left: Cross-section of a weir-like duckweed harvester. Blue denotes the water surface, green denotes duckweed. Water and duckweed is pumped out of the black “bucket”. 

Right: The first implementation of this uses a submersible Pump On a Stick On a Bucket.

An in-plane view of the Fytobot (black) over the ground (brown) and water-filled growing environment (grey and blue). h1-h2 could be up to ~20 cm.

This weir-like device did the job, but was incredibly sensitive to height. Too shallow below the surface of the water, and the plant roots snagged on the lip of the weir. Too deep, and you got an unnecessary amount of water over the weir - so much so that you may not be able to draw any duckweed in at all. This constraint yields an incredibly small Z-axis (up-down) positional tolerance of about +/-0.1 cm. Furthermore, the robot is a wheeled system on farmland that can have dips and bumps causing up to a 20 cm difference between the FytoBot’s truss over the water and the surface of the water. The Z-axis stroke must be large enough to operate over that entire range.

Our Z axis adjusted its height dynamically using an ultrasonic sensor looking at the water surface and a PID loop closed around a linear actuator position. Our software and sensor hardware folks tried their best to get our Z position to within ~ +/- 0.1 cm but with long actuator stroke and in a relatively quickly-varying environment, the best we could consistently do is about +/- 0.5 cm. No matter how well we tuned the PID loop, filtered the sensor reading, or played any other software trick in the state machine, we did not achieve the performance we needed. We began to recognize that this was a hardware problem we were trying to solve in software. We needed to increase our tolerance to Z error and I led the work to do so.Back to the drawing board, but still keeping with the weir-style harvester, I devised the contraption described below that passively adjusted its height relative to the water surface over a significant (6 cm) range. This additional part in the system (red in the figure below) became known as the floating gate.

A cross section of the contraption with an additional part that can move up and down (red) relative to the “bucket” (black). It maintains the optimal height to harvest duckweed by floating on the bucket-internal height of the water.

Because of the architecture of this device, it constantly seeks an equilibrium between inflow and outflow of the bucket. If there is too little water in the bucket, the gate drops and lets more water in. If there is too much, the gate rises and decreases flow into the bucket. A pump is always removing a constant flow from the bucket.With this purely-mechanical negative feedback loop in place, we were able to reduce the requirements on our control loop, go with a cheaper, less responsive linear actuator, a cheaper ultrasonic sensor, and harvest more duckweed. Our team lead gets to revel in a lower-cost system, our sensor hardware guy is happy he doesn’t have to fiddle with ultrasolic sensor parameters, and my software-writing buddy still has time to play Magic the Gathering with me instead of endlessly tuning controls all night. Everyone wins. Good hardware design is the bedrock of robust solutions. There’s only so much you can fix in post.

​​

 

I admit that I got lucky with the first one of these I designed. As we pushed the limits on how large we could make them and tried to improve duckweed-water mixing, we found that the design space was more populous with infeasible designs than feasible ones. The main failure mode is that under infeasible sets of design parameters (i.e. overall diameter, float size, drag area) the gate would oscillate relative to the bucket. This causes the harvester to not function anywhere near maximum efficiency (see GIF to the left, below). Each hardware iteration took nearly a week to produce because we were 3D printing and gluing several parts of the prototypes. After one iteration of educated guessing at parameters that could work, I realized that this way of traversing the design space was going to take too long. The dynamics of the system were too complicated to intuit quantitatively from a whiteboard and my spreadsheet of the statics. However, the state equations and differential equations of motion based on the inflow and outflow were not more complicated than anything I did in grad school. So I whipped up a quick and dirty dynamical model in Python with the coding assistance of my buddy, Chat GPT. The dynamical model accomplished two main goals: Enabled rapid iteration of the design variables to determine which configurations were stable (free from the shackles of the physical world).Allowed us to predict behaviors beyond just the stability, like settling time of the gate under different conditions and disturbance rejection.I cannot share the code, graphs, and quantitative conclusions that came from the modeling, but I have created three redacted reproductions of the key graphs to the right:

Left: A time series plot of an unstable gate configuration. The amplitude eventually clips against physical hard stops. Right: A time series plot of a stable gate configuration.

Refining the gate - dynamical analysis and design for manufacture

A two-parameter sweep of the design space. Each dot represents a simulation and the settling time as a measure of the configuration stability. High stability in green, medium stability in yellow, and unstable in red.

An unstable gate design going up and down cyclically while the pump is turned on.

A stable gate design that initially drops when the pump is turned on, stays in position, then rises when the pump is turned off.

With a theoretically-stable set of design parameters, I fabricated the assembly which ended up being the design seen in the right GIF shown here. It worked the first time we tried it (and every time after) - hooray, math! Following the first battery of successful testing, I refocused my efforts on refining the parts for mass-manufacture. All parts became either commercial off-the-shelf or bent lasercut sheet metal. To keep things cheap we kept our tolerances loose and made liberal use of slots where appropriate so things always clicked together.

This dynamically-optimized weir was ultimately the design that harvested the vast majority of all of the duckweed harvested at Fyto - totaling somewhere in the neighborhood of 1.3 million pounds of duckweed over about 2 years. Doing the right analysis doesn’t need to be difficult but will frequently provide great results.

The Mechanical Fuse - good mechanical design can remove the tendency to blame

When the large, very powerful robot rams your last week of work into a wall, it may be tempting to blame the guy who programmed the robot to do that behavior. No, it wasn’t supposed to ram the Z axis into a wall, so there is some fault there, but it’s also a failure of the whole team. With a better-designed mechanical system, hitting things wouldn’t be a problem. In this case, our solution was something all electrical engineers are familiar with: a fuse. The answer wasn’t to make it stronger. It was to make it deliberately, and strategically, weaker.The mechanical fuse (shown in the figure below) was designed to reversibly break before forces in the Z-axis assembly reach yield of any of our most sensitive components. With some quick structural analysis of our actuator, bearings, bearing rods, and weir harvester, we set a conservative, yet reasonable threshold for the fuse to trigger at and designed the geometry of the magnets and the coupling to accommodate that load (moment).

One key aspect of this design was repeatable recoupling. I am a strong proponent of exact-constraint design, where the six degrees of freedom of the rigid body you are coupling are in exactly six complementary constraints. Two examples of such constraints are shown in the figures below.

The mechanical fuse, circled in red, is between the actuated end of the Z-axis and the weir harvester. It magnetically decouples when impact force exceeds its rated capacity. Here, the force is being verified via force gauge.

Left: Each green V-groove mate with a blue sphere yields 2 constraints for a total of 6. Right: The pink cup provides 3 constraints (translational), the green V-groove provides 2, and the orange plate provides the final complimentary constraint for a total of 6. Reproduced from MIT 2.76 lecture materials

I designed the re-coupling mechanism on our mechanical fuse as a Maxwell Kinematic Coupling where the “ball” is actually the top of a button head screw and the V-groove is just a lasercut slot in sheet metal rather than a machined groove. This allowed us to achieve almost unnecessarily-high positional repeatability at a low price point while being able to adjust the plates closer or further away to tune the decoupling force. 

I am proud to say that the mechanical fuse had the intended effect and saved us a lot of heartache and equipment replacement when things went awry. When we did control the robot into a wall or barrier (manually or automatically), it wasn’t a stress-filled, finger-pointing situation -  it was an operator face-palm and then everyone moved on.

CONTACT

 

Elliott.S.Donlon(at)gmail(dot)com

 

 

© 2025 by Elliott Donlon

bottom of page