This design is for a digitally-controlled, four ‘channel’ valve assembly. I designed this specifically for the application shown in the picture above, where I wanted to be able to controllably dose from individual reservoirs to individual target plants. By combining a couple of these valves with a peristaltic pump, I could supply four plants from up to three reservoirs.
The valve works by the camshaft pushing steel balls against the tubing passing through the valve. The channels are closed except when the cam rotates such that the ‘pocket’ for that channel is rotated such that the ball can lift and release the tube. The video below shows one in action.
A good friend (and far better engineer than I) was kind enough to record a full Design Review video for this…but technical difficulties (aka I’m still new to OBS Studio) meant none of his audio was captured…oops…I am curious if people would actually be interested in these sorts of Design Review videos, any opinions or suggestions would be much appreciated!
I’ve now made a handful of these valves, and I’ve made all of them from Overture PETG. I generally like working with PETG, and it holds up well for these. The only downside is that PETG does wear a bit at the contact between the drum and the steel balls. I haven’t experienced any problems, but I anticipate it will lead to progressively worse sealing over time. I didn’t want to use PLA because I expect mine to see a fair bit of UV exposure, but I’d be quite curious to hear what else folks try and what works well.
Please note, I sliced/printed these prior to the release of organic supports in Prusa Slicer, of which I am a very big fan. If I were printing these today I would use organic supports…and actually, I just realized that for the build I did in the images below, I did indeed slice it with them. But the screenshot I saved, is the screenshot I saved!
This project is part of a collection of AgTech projects that I am working on putting together as an open source hardware project, JFS Agri. I am excited by the intersection of growing my own food and playing with tech toys :) if you’d like to see a summary of the projects along the way, I’ve started an overview page here. I’d love to find like-minded folks with a similar interest that are interested in collaborating, generating data, or just chatting about AgTech!
The design concept I settled on is a circular footprint with the three cube locations evenly spaced at 120 degrees. To help improve moisture retention, I decided to have the center region open, and filled with expanded clay pellets (aka hydroton). So the inner walls of the cube holders are 'vented' with relatively large diamond-shaped openings in the hopes of getting intimate contact between the rockwool and the hydroton.
The planter is secured to 2020 extrusion via a single M5 mount hole in the center of the part. The intent (and implementation) is to secure the planter in location, and then fill/seal it with hot glue prior to filling with hydroton. This planter is intended only for use in a flat orientation, and no real dynamic loads (other than some light wind load). So this single M5 should be plenty to handle any asymmetric loading caused by different plant sizes at this size.
I have used these capacitive soil moisture sensors for previous builds using hyrdoton as the grow medium, so I know they can give a usable signal for closed-loop control. In my initial tests, I wasn't sure if it would work since there are air gaps caused by the spherical pellets limited packing factor. That being said, I'd LOVE to find a better, more scalable option for moisture sensing. The linked sensors are fine, but each needs to be sealed (the driver circuit is fully exposed, and the sides of the boards are raw-cut PCB, which will uptake water over time) and their form factor isn't always ideal. But I digress...
To locate the sensors within the assembly, I added some slotted risers on the sides. The slots are oriented at 45 degrees, partially to make them printable without supports, but primarily because the 'nose' of the sensor is a right angle. So by having the slot at 45, the edge of the sensor should sit flush against the base of the planter. Between the slot and the planter base, this provides a reasonably repeatable constraint for the sensor.
The reason I care about having the positioning of the sensor somewhat repeatable/consistent within the planter, is because the moisture readings are very sensitive to their depth within the medium. So the goal with this constraint scheme is 1) to try to reduce sensor drift by limiting physical movement within the medium, and 2) to try to improve the interchangeability of the sensors and be able to compare channels directly...This second goal is less of a driver, since my experience with these sensors is that there are MANY factors that contribute to the sensors response curve (another reason I'd really like to find an alternative tech for this.)
And finally, I added a lid to help reduce the rate of water loss and to reduce the growth of unwanted extras in my grow medium.
The build on this one is pretty straight forward, I suppose, but here goes :)
BOM:
When printing the Planter, I'd recommend at least 3 perimeters to improve water retention.
My order of operations was:
However, for future assemblies, I'll likely change that order to 1, 3, 4, 5, 2. There is no reason the plants can't be put in last, and this reduces the risk of accidental damage when putting on the lid.
The sensor wires run to a small board to consolidate them down to a single, Cat5 cable that then heads over to the Data Maker Electronics Enclosure.
One major omission I've discovered was on the irrigation supply side...guess I got stuck on the 'feedback' side of things, and kind of forgot the other, somewhat crucial side of a closed-loop system :) Luckily, I think this omission may be something I can integrate well into a revision of just the lid.
Although I didn't want to give up the 'wet volume', I think if I do a full rev of this planter (although I don't currently plan to) and in future, related builds I will go with fastening points outside of the sealed region. It hasn't been an issue for me yet, but just in assembling them I was imaging me frustrated at not being able to easily reposition the planters on their rails without having to empty and dry out the clay pellets.
The goal for this build was for a fairly simple electronics enclosure. The "requirements" were:
And here is what I came up with:
![]() |
![]() |
There is an enclosed(ish) volume that is spaced on three sides for just a conservative clearance fit, and the fourth side opens up to provide something of a conduit for the cabling. The conduit directs the cables around a 180 degree bend and then out one of three ports.
In line with each of the ports are the strain relief elements. Each strain relief hold down is secured with three, M3 fasteners....yeah....quite overkill, but I was sort of locked in on the nested aesthetic they have goin on ¯\_(ツ)_/¯. Under each hold down is a recess intended for a strip of adhesive-backed foam. This allows for a rigid hold down, and firm strain relief, but without over-constraining the cables.
The lid is secured with a single M3...yeah, was overly conservative here, after over-doing it on the strain reliefs. My bad. I added some stiffening supports on the back side of the lid, shown in the image below. It works well enough that I don't have any intentions of revising the assembly to add a second fastener point, but a second attachment point down at the bottom (assuming the orientation shown in the above pictures) would slightly improve the 'fit and finish' for the seams on the bottom side.
Parts List:
If you're interested in the bits inside the box, or if you have any questions, let me know in the comments!
A lot of projects I work on/have worked on seem to involve the controlled movement of fluids. Below is a bit of a history of my builds involving attempts at obtaining this controlled movement for incompressible fluids. I haven’t done much myself with making custom solutions for the compressible stuff, but if you’re interested in such things, I thoroughly enjoy Major Hardware’s “Fan Showdown” series :)
This article/section is by no means intended as a thorough overview on the design and operation of pumps. While I will try to give some overview on operating principles and design considerations as I go, this is mainly just going to be a wander through my personal builds and experiences.
I’m sure there are innumerable sources online for (much better) detailed discussions of the workings of peristaltic pumps. So I’m just going to hit the highlights, and I’ll try to remember to find some promising links and add them below, should a deep dive seem intriguing to ya.
The fluid being pumped is carried into the pump in a compliant tubing. This tube is routed around some portion of a circular/cylindrical path around the axis of the pump and then exits the pump. This is one interesting/attractive aspect of peristaltic pumps, the fluid never has to leave the tube that it is in, making these pumps well-suited to situations where contamination and/or leaks are highly undesirable. The housing that features the cylindrical wall that the tubing is being routed along can be considered the Stator, and that is generally the nomenclature that I tend to use.
So if there’s a Stator, there must be a Rotor…? Yup, the rotor includes some set of features that extend out to some defined gap between this feature and the Stator wall. These features, which in many peristaltic pumps are rolling element bearings, pinch the tubing to the point of sealing (ideally) the tube. As the rotor turns, this contact point proceeds around the circumference. Because the pinched point of the tube is sealed, the volume of fluid in the tube ‘ahead’ of the pinch point are, as a result, pushed forward. So, keep rotating, keep pushing….pretty much as simple as that!
Pros:
Cons:
A couple of years back, I had a concept for an in-line-mixing hydroponics system. The idea being that the supplies to the system would be just pure water and nutrient concentrates, and a series of pumps and valves would allow precise dosing mixes to each target plant in a system (I refer to this concept as Rail Yard Hydro, since it moves the fluids around the tubing network quite like rail cars are moved around a rail system. I’m planning to add a separate page diving into that one a bit deeper since it is the design scheme I am using in my current projects.)
Well, to facilitate this plan, I wanted to find an option for a dosing pump that I could integrate in to my control system (aka Arduinos and Raspberry Pi’s :)). Unfortunately, I quickly found that a servo-driven peristaltic pump could easily set me back north of $100….so I set out to spend many multiples of that making my own!
Actually, when I saw the pricing, I decided I should see if I could make myself a cheapo, manual version that I could use to just test out some basic questions on the Rail Hydro idea (mainly verifying that I could induce good material mixing in-line and that there was no cross-contamination between fluid reservoirs.) And so, ‘twas this endeavor that resulted in the pump I’m apparently referring to as “Test Build 1”
She ain't pretty (especially after a good while of getting knocked around), but the pic above shows the dual pump setup I rigged up for my testing needs. I was VERY pleasantly surprised that, other than a tweak to the hand wheel, these things worked pretty damn well!
I decided upfront that I was going to go with a resin printed build, because I thought the high stiffness and good surface finish throughout the 'pinch region' would give me a better chance. Since I was already going to have the good surface roughness, I might as well also integrate the main bearing into the printed parts.
In the image of the model, below, the Stator is the part shown in green, and the Rotor is shown in blue(ish.) Riding on the rotor are roller skate bearings to provide the contact with the tube. Race 1 has v-grooves on both sides of the race, providing the main constraint for locating the rotor, and Race 2 has a v-groove on the Stator, but only a single plane of contact on the Rotor side. This keeps from over-constraining the bearing.
![]() |
![]() |
The absurdly overkill bolt running through the center is a real showcase of "using what I had on hand" :) in that these were the only bolt/nut sets I had on hand with the length I was looking for.