Soaker Hose End Plug

One of the soaker hoses in Mary’s Vassar Farms garden split lengthwise near one end:

Soaker Hose Plug - hose split
Soaker Hose Plug – hose split

Although the hose is fully depreciated, I thought it’d be worthwhile to cut off the damaged end and conjure an end cap to see if a simple plug can withstand 100 psi water pressure.

A pair of Delrin (because I have it) plugs with serrations fill the hose channels, with the outer clamp squishing the hose against them:

Soaker Hose Plug - channel plugs - side view
Soaker Hose Plug – channel plugs – side view

In real life, they’ll be pushed completely into the hose, with a generous layer of silicone snot caulk improving their griptivity.

I started with 8 mm plugs, but they didn’t quite fill the channels:

Soaker Hose Plug - channel plugs - 8 mm test fit
Soaker Hose Plug – channel plugs – 8 mm test fit

Going to 8.5 mm worked better, although there’s really no way to force the granulated rubber shape into a snug fit around a cylinder:

Soaker Hose Plug - channel plugs test fit
Soaker Hose Plug – channel plugs test fit

Fortunately, they need not be leakproof, because leaking is what the hose does for a living. Well, did for a living, back before it died.

The clamps have a solid endstop, although it’s more to tidy the end than to hold the plugs in place:

Soaker Hose End Plug - Slic3r
Soaker Hose End Plug – Slic3r

The clamps need aluminum backing plates to distribute the stress evenly across their flat sides:

Soaker Hose Plug - installed
Soaker Hose Plug – installed

Those are 8-32 stainless steel screws. The standard 1 inch length worked out exactly right through no fault of my own.

The OpenSCAD source code as a GitHub Gist:

// Rubber Soaker Hose End Plug
// Ed Nisley KE4ZNU June 2019
// 2020-05 Two-channel hose end plug
Layout = "Hose"; // [Hose,Block,Show,Build]
//- Extrusion parameters must match reality!
/* [Hidden] */
ThreadThick = 0.25;
ThreadWidth = 0.40;
HoleWindage = 0.2;
Protrusion = 0.1; // make holes end cleanly
inch = 25.4;
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
// Dimensions
// Hose lies along X axis
HoseTubeOD = 12.0; // water tube diameter
HoseTubeOC = 12.5; // .. spacing
HoseWebThick = 7.8; // center joining tubes
Hose = [100,25.0,HoseTubeOD]; // X=very long, Y=overall width, Z=thickness
HoseSides = 12*4;
PlugLength = 25.0; // plugs in hose channels
PlateThick = 5.0; // end block thickness
WallThick = 2.0; // overall minimum thickness
Kerf = 0.75; // cut through middle to apply compression
ID = 0;
OD = 1;
// 8-32 stainless screws
Screw = [4.1,8.0,3.0]; // OD = head LENGTH = head thickness
Washer = [4.4,9.5,1.0];
Nut = [4.1,9.7,6.0];
CornerRadius = Washer[OD]/2;
ScrewOC = Hose.y + Washer[OD];
echo(str("Screw OC: ",ScrewOC));
BlockOAL = [PlugLength + PlateThick,ScrewOC + Washer[OD],2*WallThick + Hose.z]; // overall splice block size
echo(str("Block: ",BlockOAL));
// Useful routines
module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
FixDia = Dia / cos(180/Sides);
cylinder(d=(FixDia + HoleWindage),h=Height,$fn=Sides);
// Hose shape
module HoseProfile() {
union() {
for (j=[-1,1]) // outer channels
// Outside shape of splice Block
// Z centered on hose rim circles, not overall thickness through center ridge
module SpliceBlock() {
difference() {
for (i=[-1,1], j=[-1,1]) // rounded block
translate([i*(BlockOAL.x/2 - CornerRadius),j*(BlockOAL.y/2 - CornerRadius),-BlockOAL.z/2])
for (j=[-1,1]) // screw holes
-(BlockOAL.z/2 + Protrusion)])
PolyCyl(Screw[ID],BlockOAL.z + 2*Protrusion,6);
cube([2*BlockOAL.x,2*BlockOAL.y,Kerf],center=true); // slice through center
// Splice block less hose
module ShapedBlock() {
difference() {
translate([(-Hose.x/2) + (BlockOAL.x/2) - PlateThick,0,0])
// Build them
if (Layout == "Hose")
if (Layout == "Block")
if (Layout == "Show") {
translate([(-Hose.x/2) + (BlockOAL.x/2) - PlateThick,0,0])
if (Layout == "Build") {
SliceOffset = 0;
intersection() {
union() {

The original doodle, with dimensions vaguely related to the final model:

Soaker Hose End Plug - hose dimensions
Soaker Hose End Plug – hose dimensions

There is, as far as I can tell, no standardization of dimensions or shapes across manufacturers, apart from the threaded hose fittings.

7 thoughts on “Soaker Hose End Plug

  1. Why bother with cylindrical plugs? Those flat plates would clamp the hose end shut. Don’t make the job any harder than it has to be!

    1. Well, if you’re going for simplicity, it’s hard to beat bending it in half and using a nylon tie or even better just tie the end in a knot. However, the components are beautiful.

      1. The safe bending radius for these hoses is so large Mary can barely train them along one edge of a bed, around the end, and down the other side. Folding the end over produces a neat crack across the entire width of the hose!

        Their best-used-by date has long since passed, but even the new hoses aren’t particularly bendy.

    2. The hose is all squishy granulated rubber, so there’s nothing rigid to clamp against: the (absurdly high) water pressure would blow the plug right off the end.

      And, as always, nothing exceeds like excess!

  2. FWIW, an “RV water hose water pressure regulator” (the search term at Amazon) runs $8 to $15 for a fixed pressure. Some seem to be set up for relatively high flows if you need to run a bunch of hoses off a manifold.

    Rational pressures should (maybe) extend the life of the hose.

Comments are closed.