CERN-OHL-S v2 · CC BY 4.0

Open-source, 3D-printable membrane-filtration manifold for E. coli quantification in drinking water

open hardware · any FDM printer · ~100 min print time · no supports

The manifold consists of three printed parts — base, funnel and filter support — plus a 100 mL syringe and a 0.45 µm membrane filter. It is validated against a Millipore EZ-Fit stainless-steel manifold as the reference instrument for household drinking-water testing.

Materials cost approximately $0.80 per set, printed in ABS.

The assembled 3DPLAM manifold mid-filtration: membrane loaded, funnel locked down, syringe attached and drawing the sample through.
Membrane loaded, syringe attached, mid-filtration.
Background

Background

Membrane filtration for E. coli is the measurement WHO and UNICEF use in household drinking-water quality surveys. The constraint on wider testing is access to the instrument that performs the measurement, not the measurement method itself.

2.1 bn
people without safely managed drinking water
28%
of the global population lacks any water-quality data at all

Surveying water quality at many sites requires many instruments rather than a single higher-performing one. The steel Millipore EZ-Fit manifold — the reference instrument this device is validated against — costs approximately $2,460 per unit, is manufactured centrally, and is a closed design: it can be purchased but not produced locally.

UNICEF's second-generation lightweight affordable manifold (2GLAM) reduces the per-unit price to approximately $1.50 but remains centrally produced from a proprietary design, so availability stays tied to the same supply chain. 3DPLAM's distinguishing feature is not primarily cost — at approximately $0.80 per set it is lower, but only modestly so — but that the design is open and locally 3D-printable: anyone with an FDM printer can produce, repair and modify it without depending on a supply chain.

Device

Device

The manifold is three printed parts — a base, a funnel and a filter support — each printed separately without support structures. They lock together without adhesive except at the syringe joint. A 100 mL PVC syringe and a 0.45 µm membrane filter complete the assembly.

The assembled 3DPLAM manifold printed in dark blue ABS, three-quarter view.
The assembled manifold, printed in ABS.
PartFileEnvelopeVolume
Base stl/base.stl 77.0 × 77.0 × 38.7 mm 39.7 cm³ solid
Funnel stl/funnel.stl 71.8 × 71.8 × 55.5 mm 16.0 cm³ solid
Filter support stl/filter-support-strand-mesh.stl 37.3 × 37.3 × 2.9 mm 1.4 cm³ solid

Dimensions and files for the default configuration — strand-mesh filter support, clamped-membrane funnel. See hardware/README.md for the concurrent alternatives: filter-support-hex-hole.stl (more forgiving to print) and funnel-tape-fit.stl (for a tape-sealed base joint).

The three printed parts separated in an exploded view, showing the correct stacking order: base, filter support, funnel.
Exploded view — base, filter support, funnel, in stacking order.
Close-up section of the sealing interface, where the membrane is clamped between the base’s raised edge and the funnel’s inner slope.
The seal — membrane clamped between the base’s raised edge and the funnel’s slope.
A section cut through the filter support, showing the individual printed strands of the strand-mesh design.
Cut through the strand mesh — parallel in-air strands, each layer rotated 120°.
Close-up photograph of the printed filter support, individual in-air printed strands visible.
The strand-mesh filter support as printed — the default, and the one used for the E. coli validation.
Print settings

Print settings

Below 6 wall loops the printed wall is porous: the syringe draws air through the material instead of water through the membrane, and filtration fails. The table below lists every setting that must be changed from a slicer's stock defaults.

SettingValueChanged from stock?
Layer height 0.16 mm no
Sparse infill 15% grid no
Wall loops 6 yes (stock 2)
Top shell layers 6 yes (stock 5)
Bottom shell layers 6 yes (stock 3)
Nozzle 0.4 mm no

Everything else can stay at your slicer's defaults for the material. Full rationale, both Bambu Studio process profiles, and printer notes: hardware/print-profiles/README.md.

Any slicer

The requirement is geometric, not vendor-specific: at least 6 perimeter loops, and top and bottom shells of at least 6 solid layers each.

Bambu StudioPrusaSlicer / OrcaSlicerCura
Wall loops = 6Perimeters = 6Wall Line Count = 6
Top shell layers = 6Top solid layers = 6Top Layers = 6
Bottom shell layers = 6Bottom solid layers = 6Bottom Layers = 6

Materials

MaterialEnclosure neededNotes
ABSYesRecommended — best heat and mechanical performance
ASAYesEquivalent to ABS, less widely available
PETGNoViable below ~80 °C
rPETNoSustainable route — needs the compensated hardware/rpet/ geometry
PLANoNot recommended — 60 °C glass transition, absorbs water

Full heat, UV, outdoor-weathering and sterilisation results per material are in Validation and docs/printing.md.

Profiles

Bambu Studio process profiles for the printers used to validate this design, importable directly:

Print timelapse

The clip below shows the base printing on the profile above, without support structures.

Timelapse of the base printing on the profile above: repeating loop, no support structures, printed in ABS.
Operation

Operating procedure

The following is the complete E. coli membrane-filtration protocol, transcribed verbatim from the author's laboratory documentation.

  1. Disinfect hands using 70% ethanol.
  2. Sterilize the upper surface of the filter support and the inner surface of the funnel using a 70% isopropyl alcohol wipe.
  3. Disinfect the forceps using pure ethanol and a flame.
  4. Place the filter membrane, gridded side up, on the filter support using the forceps.
  5. Lock the funnel onto the base.
  6. Shake the sample thoroughly and fill the funnel up to the 100 mL mark.
  7. Extract 1 mL of the sample from the funnel with a sterile 1 mL syringe and inoculate the culture plate.
  8. Operate the 100 mL syringe to pull the entire water sample through the filter membrane.
  9. Remove the funnel.
  10. Disinfect the forceps again (repeat step 3).
  11. Transfer the filter membrane, gridded side up, onto the same culture plate.
  12. Dry the funnel, filter support and any remaining wet surfaces with a paper towel.
The base with the strand-mesh filter support seated, syringe port visible.
The base with the filter support seated — step 4.

Consumables

ItemSpec / supplier
Membrane filter0.45 µm nitrocellulose mixed-ester (MCE), ADVANTEC
Culture plateCompact Dry™ ECO, Shimadzu Diagnostics
Sample-pull syringe100 mL PVC
Forcepsfor membrane handling
Disinfecting wipes70% isopropyl alcohol, 60 × 30 mm
Disinfectant70% ethanol (hands, forceps)

The inoculated plate incubates for 24 h at 37 °C, after which colonies are counted; how those counts become a WHO risk classification is covered in Validation. Full protocol notes, including two samples that needed non-standard handling, are in docs/operation.md; manifold assembly is covered in docs/assembly.md.

Validation

Validation

The design was validated at 8 sample sites using 3 manifolds — an ABS 3DPLAM, an rPET 3DPLAM, and a steel Millipore EZ-Fit as the reference instrument — with 3 replicates per manifold per site.

Sample sites8
Manifolds3
Replicates per manifold per site3
Filtrations72
Comparisons vs. reference16
Two-panel validation figure: geometric-mean E. coli counts per site and manifold against WHO risk bands, and the boundary-tolerance comparison to the Millipore reference.
15 of 16
classifications accepted, once a geometric mean within 5% of a WHO band boundary is allowed into either adjacent band
12 of 16
classifications match exactly, with no tolerance applied

These are two distinct counts governed by two different rules, and the two are not interchangeable. Four raw mismatches sit at a WHO band boundary, where a small measurement difference changes the classified band without indicating a real disagreement about water quality; the 5% rule resolves three of the four:

SampleManifoldGeometric meanBandReferenceBandOutcome
4 ABS 9.97 intermediate 11.05 high Accepted — within 5% of the 10 boundary
5 rPET 62.07 high 103.16 very high Accepted — reference is within 5% of the 100 boundary
5 ABS 50.78 high 103.16 very high Accepted — same boundary
7 rPET 3.66 intermediate 90.41 high Mismatch — neither value is within 5% of the 10 boundary

The sole comparison that fails even with the tolerance applied is sample 7, rPET — the same sample that is a spiked positive control, not a field sample. Both headline counts can be reproduced directly from the shipped data:

python3 -c "
import csv
rows = [r for r in csv.DictReader(open('data/ecoli-summary.csv')) if r['is_reference'] == 'no']
print('accepted', sum(1 for r in rows if r['acceptable_within_5pct'] == 'yes'), 'of', len(rows))
print('raw match', sum(1 for r in rows if r['matches_reference'] == 'yes'), 'of', len(rows))
"

Material and fatigue results

Material2 h at 80 °C / 48 h UV / 14 days outdoors
ABSNo critical damage under heat, UV or outdoor exposure — recommended
ASANo critical damage under heat, UV or outdoor exposure
PETGCritical dimensional damage at 80 °C; fine under UV and outdoors
rPETCritical dimensional damage at 80 °C; fine under UV and outdoors
PLACritical damage at 80 °C — parts no longer fit together

Across all five materials, the printed funnel survived 25 cycles of alcohol-wipe decontamination with no damage or leakage, and the 100 mL PVC syringe survived all 72 filtrations of this validation without structural damage or leakage. Separately, watertightness prototyping found a taped rPET–Millipore-funnel joint leaking at roughly 5 minutes, which is what motivated the clamped-membrane seal used in the published base; an ABS base with an ABS funnel (also taped) showed no leakage over 2.5 hours. Full breakdown: docs/validation.md.

Recycled PET

Recycled PET filament

rPET, recycled from used drinking-water bottles, is one of five materials the manifold was tested in. The funnel and filter support can be printed in it directly.

  1. 1
    Bottle

    A clean, used PET drinking-water bottle.

  2. 2
    Filament

    Cut into a single continuous strand and re-formed at filament gauge on a Petamentor2 rebuild, ~185 °C, spool turning ~1 rpm.

  3. 3
    Part

    Printed from the shrinkage-compensated hardware/rpet/ geometry — not the standard STLs.

Credit

The filament-making machine used is a rebuild of Petamentor2, an open-source PET-bottle-to-filament machine designed by Ondřej Šraitr: petamentor2.com. The author of this project built a Petamentor2 himself — he did not design the machine. Its design files are Šraitr's work and are deliberately not redistributed in this repository; build your own from the upstream project.

Shrinkage-compensated geometry

rPET shrinks differently during cooling than ABS or PLA, so hardware/rpet/ is dimensionally compensated for that shrinkage — printing the standard STLs in rPET will not fit. There is no separate rPET base: the base needs no compensation, so the same hardware/stl/base.stl is correct in every material, including rPET. rPET's print settings also differ enough from the ABS gas-tight profile that they don't carry over directly — see docs/rpet.md for the settings source and the full bottle-to-filament procedure.

Limitations

Limitations

3DPLAM is an open, locally 3D-printable alternative route to the same measurement the Millipore EZ-Fit performs. It has been validated against that instrument as a reference, not shown to be identical to it.