Graphical abstract
Keywords: Water monitoring, Internet of Things, Automation, Water sampler, Environment
Abstract
Water quality management is a critical environmental challenge for water resource managers in agriculture and other sectors due to pollution from contaminants like nitrogen and phosphorus. This pollution degrades ecosystems in waterways worldwide. Environmental pollutant mitigation methods rely heavily on the ability of managers to monitor water quality, often by collecting water samples (either by manual or automated methods) and sending them out for analyte characterization by a laboratory. Traditional automated samplers are often prohibitively expensive and/or complex, hindering effective water resource management across different contexts. Conversely, manual collection methods require more time and labor, but provide less data (i.e., a single point in time as opposed to a composite sample from multiple time points). Addressing this, the Colorado State University Agricultural Water Quality Program created a low-cost, automated water sampler (LCS) leveraging Internet of Things (IoT) technology that enables near-real-time, edge-of-field water monitoring. The LCS stands out for its affordability, simplicity, and real-time data provision, offering a practical tool for water resource managers seeking to monitor WQ. Furthermore, comparing LCS water quality and quantity data shows promising agreement, indicating that the device is a reasonable substitute for practical applications.
Specifications table.
| Hardware name | Programmable Automated Low-Cost IoT Water Sampler |
|---|---|
| Subject area |
|
| Hardware type |
|
| Closest commercial analog | Teledyne ISCO 6712 Full-Size Portable Sampler |
| Open-source license | GNU GENERAL PUBLIC LICENSE Version 2, June 1991 |
| Cost of hardware | $792 USD |
| Source file repository |
https://doi.org/10.5281/zenodo.10257622 |
1. Hardware in context
Water quality (WQ) management is a critical environmental challenge for water resource managers across diverse sectors, including agriculture, urban water management, and industrial applications. Contaminants such as nitrogen (N) and phosphorus (P) are pervasive pollutants that can contribute to waterbody eutrophication (i.e., an excess of nutrients), one of the most serious global environmental problems in ecosystems worldwide, making effective monitoring and mitigation strategies essential [1]. Furthermore, it is estimated that by 2050, 80 % of N and P sources found in global coastal waters will be from an anthropogenic source [2]. In many cases, water quality monitoring on a watershed-scale involves the collection of water samples, either manually or through automated systems, with subsequent laboratory analysis to characterize pollutants. However, the high costs and complexity of traditional automated samplers can be prohibitive, limiting their widespread adoption across different contexts and regions [3]. Manual collection methods, while less costly, are labor-intensive and provide limited data, often failing to capture the variability of water quality over time. Due to this, watershed and field-scale sampling methods have shifted toward automated methods since the 1980 s [4].
In response to these challenges, the Colorado State University Agricultural Water Quality Program (AWQP; waterquality.colostate.edu) has developed an innovative, low-cost, automated water sampler (LCS) that leverages Internet of Things (IoT) technology to enable near-real-time water quantity and quality monitoring (See Table 1). The Agricultural Water Quality Program (AWQP) protects Colorado state waters and the environment from impairment or degradation due to the improper use of agricultural chemicals while allowing for their proper and correct use. The LCS was designed with affordability and simplicity in mind to increase water quality monitoring adoption. It offers a practical, open-source solution for water resource managers. The LCS is particularly suited for edge-of-field (EoF) or edge-of-shed (EoS) water quality monitoring, defined by collecting water quality data where runoff exits the land and enter nearby water bodies or drainage systems, to evaluate conservation practices. The LCS can detect water runoff, measures water depth, and collects samples for later analysis at critical transition points where water leaves one management system and enters another (e.g., water runoff from an agricultural field going to a nearby river). Its IoT capabilities, ease of installation, low power consumption, and low cost make it an ideal tool for scalable use in field or small watershed water quality characterization. (See Table 2).
Table 1.
Specification Comparison between the components of the AWQP Low-Cost Sampler and Teledyne ISCO 6712.
| Features | AWQP Low-Cost Sampler | Teledyne ISCO 6712 |
|---|---|---|
| Enclosure Material | ABS | ABS |
| Rating | IP65 | IP67 |
| Length (cm) | 39.88 | 50.7 |
| Width (cm) | 29.97 | 50.7 |
| Height (cm) | 17.78 | 68.6 |
| Dry Weight (lb) | 11.8 | 32 |
| Power Supply | 12 V | 12 V |
| Vinyl Suction Line ID (mm) | 6.25 | 9.525 |
| Pump Type | Peristaltic | Peristaltic |
| Water Level | eTape resistive sensor | 730 Bubbler Module |
| Remote Access | Particle Boron LTE (built in) | 6712 modem |
| Cooling Capacity | Ice (user preference) | Ice |
| Smallest and Largest Sample size per Time Interval | 10 mL 700 mL |
10 mL 1000 mL |
| Maximum Sample Capacity | 4 L (user dependent) | 24 L |
| Logging Frequency | 5 min | 5 min |
| Sample Trigger | Water level | Water level |
| Minimum Sampling Frequency | 5 min | 5 min |
| Time Sampling | Yes (composite) | Yes (Sequential or Composite) |
| Volume Delivery (coefficient of variation (CV)) | 12 % | 5 % |
| Cost (w/remote access) | ∼$790 | ∼$15,000 |
Table 2.
Power Consumption Summary for a 24-Hour Sampling Event.
| Components | Voltage | Current Draw | Runtime per Day | Energy (Wh/day) |
|---|---|---|---|---|
| Particle Boron LTE | 3.3 V | 150 mA | 24 h | 11.88 |
| Peristaltic Pump w/DRV8825 | 12 V | 400 mA | 4 min per hour | 7.68 |
| eTape | 3.3 V | 5 mA | 24 h | 0.40 |
| Water Sensor | 5 V | 20 mA | 24 h | 2.40 |
| Total Load | ∼ 22.76 Wh/day | |||
| Solar Input (10 W panel) | 5 h @ 80 % efficiency | 40 Wh/day |
Other efforts have been made to attempt specialty applications of low-cost technology for water sampling. Such applications range from simple, peristaltic pumps for water collection only [5], to more robust, automated sampler and/or injection units [[6], [7], [8]]. However, these devices do not include the necessary water depth and detection components that allow it to become a comprehensive EoF/EoS monitor. Additionally, these previous assemblies utilize either IoT or exclusively Wi-Fi as a communication method (not often practical for environmental applications). Conversely, the LCS offers cellular connectivity for easier deployment in agricultural settings and other environmental research by providing real-time status and remote user control. Other wireless communications options were considered such as LoRaWAN, which offers long range communication with minimal energy consumption, however, LoRaWAN usually requires user to establish and maintain their own local gateway. For the purposes of the AWQP it is required that these stations are nimble and can be moved to many different locations without the need for a gateway making cellular the best option for the LSC.
The LCS has been deployed in over 15 locations in the state of Colorado, by the AWQP and has been a successful tool for the program’s water quality research efforts. The remainder of this manuscript details the assembly, calibration, and validation of the LCS for environmental water quality sampling and laboratory analysis.
2. Hardware description
The LCS is comprised of five main components as shown in Fig. 1: 1) device control panel 2) power assembly 3) pump assembly 4) a water depth sensor (henceforth, “eTape”; MileOne Technologies, Inc., Sewell, NJ), and 5) the water storage apparatus. The information and power flow between these components can be found in Fig. 2.
Fig. 1.
Picture of the low-cost automated water sampler (LCS) deployed in-situ, with its primary components annotated: 1) the device control panel, 2) power assembly, 3) pump assembly, 4) water depth sensor (i.e., the “eTape”), and 5) the water storage apparatus.
Fig. 2.
Flowchart showing major components of the LCS and how information and/or power flows between them.
Like its commercial equivalents, the LCS detects and measures water depth, samples water at pre-determined or user-triggered intervals, preserves water samples for later collection, and offers remote data monitoring through cellular communication. However, the LCS model accomplishes this at approximately 5 – 7 % of the cost (parts only) of a comparable commercial apparatus ($792 vs. $11,000; https://www.teledyneisco.com/water-and-wastewater/6712-sampler) Additionally, commercial models often require the additional purchase of a cellular modem (approx. $4000; https://www.teledyneisco.com/water-and-wastewater/gsm-sampler-modem) for wireless connectivity, whereas the LCS incorporates it into the apparatus itself with the cellular-enabled microcontroller. Prices may vary depending on the country and may change after the publication of this manuscript. Prices are provided as a useful comparison to illustrate the accessibility and affordability of the LCS relative to commercial alternatives and are not intended to serve as an absolute measure.
The hardware selected for the LCS is meant to be easily accessible through many online stores (e.g., Amazon). This also means that most of the hardware can be interchangeable with compatible or upgraded components with hardware calibrations and firmware modifications. However, the 3D-printed mounts, calibration firmware, and the LCS firmware are made compatible with the hardware recommended in the Bill of Materials (BOM; Section 4, Table 3). Items like bottles or coolers are more easily exchangeable with no additional steps required.
Table 3.
Bill of materials outlining necessary parts to assemble the LCS.
| Designator | Component | Number | Cost per USD | Total cost USD | Source of materials | Material type |
|---|---|---|---|---|---|---|
| Waterproof Enclosure | Ogrmar ABS Plastic Dustproof Waterproof IP65 Junction Box Universal Enclosure with Lock (15.7″x11.8″x7″) | 1 | $68.99 | $68.99 | Amazon | Electronic Enclosure |
| Peristaltic Pump | INTLLAB High Flow Peristaltic Self-Priming Pump with Stepper Motor 12 V/24 V High Flow Peristaltic Pump, DP-520-48S | 1 | $45.80 | $45.80 | Amazon | Non-specific |
| 12 V Lead Acid Battery | ExpertPower 12 V 7 Amp EXP1270 Rechargeable Lead Acid Battery | 1 | $22.76 | $22.76 | Amazon | Non-specific |
| Solar Panel | ECO-WORTHY 12 V Solar Panel 10 W Solar Panel | 1 | $23.99 | $23.99 | Amazon | Non-specific |
| Solar Charge Controller | Huine 10A PWM Solar Charge Controller Waterproof IP68 12 V 24 V Solar Panel Controller Regulator | 1 | $19.99 | $19.99 | Amazon | Non-specific |
| Microcontroller | Boron LTE-M Starter Kit with EtherSIM for North America (BRN404XKIT) | 1 | $45.95 | $45.95 | Particle | Non-specific |
| Breadboard PCB | ElectroCookie Prototype PCB Solderable Breadboard for Electronics Projects (5 Pack) | 1 | $8.06 | $8.06 | Amazon | Non-specific |
| Motherboard Standoffs | Motherboard Standoffs Plastic Mounting PCB | 1 | $8.99 | $8.99 | Amazon | Non-specific |
| DRV8825 Stepper Controller | HiLetgo 5pcs DRV8825 Stepper Motor Driver Module | 1 | $14.48 | $14.48 | Amazon | Non-specific |
| Stepper Controller Shield | Stepper Motor Driver Shield Expansion Board DRV8825/A4988 | 1 | $5.63 | $5.63 | Amazon | Non-specific |
| Female 16-Pin PCB Header Connector | 2.54 mm Spacing Female 16 Pins PCB | 1 | $8.99 | $8.99 | Amazon | Non-specific |
| Female 12-Pin PCB Header Connector | 2.54 mm Pitch 12 Terminals Straight Header | 1 | $6.99 | $6.99 | Amazon | Non-specific |
| PCB Terminal Pin | 2 Pin 3 Pin PCB Mount Screw Terminal Block Connectors Socket Strips 5.08 mm | 1 | $5.98 | $5.98 | Amazon | Non-specific |
| Jumper wires | 24AWG 840 Pieces Jumper Wires Kit | 1 | $15.50 | $15.50 | Amazon | Non-specific |
| eTape | 18″ Standard eTape® Assembly with custom sturdy wiring (requires contacting customer service) | 1 | $65.00 | $65.00 | MiloneTech | Non-specific |
| Liquid Sensor | Non-Contact Water Level Sensor Capacitive Liquid Level Detector | 1 | $17.93 | $17.93 | Amazon | Non-specific |
| PG7 Glands | Cable Gland 20 Pack PG7 Waterproof | 1 | $8.99 | $8.99 | Amazon | Polymer |
| Solar Barrel Jack Connectors | 12 V Male + Female 2.1x5.5MM DC Power Jack Plug | 1 | $7.59 | $7.59 | Amazon | Non-specific |
| Load Barrel Jack Connectors | DC Power Pigtail Cable,5.5x2.1 mm 18AWG Male and Female DC Connector Plug,12 V 5A Barrel Jack (5 Pairs) | 1 | $6.66 | $6.66 | Amazon | Non-specific |
| Dupont and JST Connector Kit | Taiss Dupont Crimping Tool Kit Ratcheting Wire Crimper with 2.54 mm 600PCS Dupont Connectors and 560PCS JST XH Connectors, Dupont Crimper, JST Crimper(0.08–0.5 mm2 28-20AWG) | 1 | $26.99 | $26.99 | Amazon | Non-specific |
| 3-Pin Waterproof Connector | 3 Pin Electrical Connector 22AWG Waterproof IP65 Male Female Connector | 1 | $9.79 | $9.79 | Amazon | Non-specific |
| Heat Shrink | 1/4″ Heat Shrink Tubing − 3:1 Ratio Dual Wall Adhesive Lined | 1 | $9.99 | $9.99 | Amazon | Non-specific |
| Cooler | Igloo BMX Hard Coolers (25qt) | 1 | $84.69 | $84.69 | Amazon | Polymer |
| Tubing Adapter | 10 Packs 1/4 Thru-Bulk Bulkhead Plastic Hose Barb Fittings Plastic Hose Barb Fittings 1/4″ | 2 | $8.89 | $8.89 | Amazon | Polymer |
| Sampler Tubing | PVC Tubing 1/4″ID X 3/8″OD Flexible Clear Vinyl Hose 100 Feet… | 1 | $29.89 | $29.89 | Amazon | Polymer |
| 2 L Bottle | HDPE Bottles | 1 | $35.00 | $35.00 | Amazon | Polymer |
| Hose Barb Fitting Elbow | Hose Barb Fitting Elbow 1/4″ Hose Barb x 1/4″ Male NPT Barbed Adapter for Fuel Gas Liquid Air | 1 | $11.98 | $11.98 | Amazon | Polymer |
| M3 x 12 mm Screws | M3 x 12 mm 304 Stainless Steel | 1 | $6.92 | $6.92 | Amazon | Metal |
| Solder & Seal Connectors | haisstronica 500PCS White Heat Shrink Butt Connectors 26–24 Gauge-Insulated Waterproof Electrical Butt Connectors | 1 | $29.39 | $29.39 | Amazon | Polymer |
| Female Spade Connector | AIRIC Blue Female Spade Connector 16–14 AWG, 100 Pcs Nylon Electrical Crimps Terminal Connectors for Automotive Speaker Auto Stereo Wiring Connect Quick Disconnect Crimp Terminals for 16,14 Gauge Wire | 1 | $6.99 | $6.99 | Amazon | Non-specific |
| M3 Nuts | Shapenty 100PCS 3 mm Small Stainless Steel Female Thread Hex Screw Nut Fastener Tool, M3 | 1 | $5.99 | $5.99 | Amazon | Metal |
| 10 K Resistor | 10 K Ohm Carbon Film Single Fixed Resistor 1/2 W (0.5 Watts) 5 % Tolerance, (10 K R, 10 K ohm, 10 K Ω) Resistor (40 Pack) | 1 | $4.59 | $4.59 | Amazon | Non-specific |
| 22 gauge 2 conductor wire | 22 Gauge Wire 2 Conductor Electrical Wire, 22 AWG Wire Stranded PVC Cord, 12 V Low Voltage/Oxygen-Free Tinned Copper/Flexible 22/2 Wire for Automotive Marine LED Strips Lamps Lighting (30FT/ 9 M) | 1 | $9.99 | $9.99 | Amazon | Non-specific |
| XH2.54 to Dupont2.54 JST Connector Dupont Connector Kit | XH2.54 to Dupont2.54 JST Connector Dupont Connector Kit and Pre-Crimped 22AWG Cable, Compatible with JST-XH 2.54 mm & Dupont 2.54 mm 1/2/3/4/5/6/7/8/9/10Pin Housing 16 cm Wire (XH-to-Dupont) | 1 | $19.99 | $19.99 | Amazon | Non-specific |
| 22 Gauge 5 Conductor Electrical Wire | 22 Gauge 5 Conductor Electrical Wire, 16.4FT 22AWG Black PVC Stranded Tinned Copper 5 Wire Cable, 22/5 Extension Cable for LED Lamp Lighting, Automotive, Speaker, Access Control, etc. | 1 | $9.48 | $9.48 | Amazon | Non-specific |
| Electric Ferrule Crimping Tool Kit | FTK1200 Ferrule Crimping Tool Kit with Wire Crimper Tool, Secure Wire Ferrule Nylon Container, and 1,200 Electrical Wire Connectors, Electrician Tool Set for Home Improvement | 1 | $29.60 | $29.60 | Amazon | Non-specific |
| PETG | 3D printing filament | 1 | $14.84 | $14.84 | Amazon | Polymer |
| TPU | 3D printing filament | 1 | $27.98 | $27.98 | Amazon | Polymer |
| Estimated Total | $791.24 |
Key identified benefits of using the LCS:
-
•
Automated water quality sampling: The LCS allows users to automatically collect water once water is detected.
-
•
Affordability: The LCS is currently 5 – 7 % of the cost of commercial samplers, making it accessible for scalable water resource management.
-
•
Internet of Things: Real-time data such as current water level, samples taken, and other parameters are sent to the cloud every five minutes.
-
•
Open source, customizable, and expandable platform: This device is developed with user customization in mind, allowing for other water quality sensors (e.g., pH, temperature) to be added with additional hardware and firmware modification.
For this power consumption example, a 200 mL water sample is being collected every 60 min. A 10 W solar with a PWM charge controller is sufficient to power the LSC continuously for 24 daily samples in 24 h. With a total load of 22.76 Wh/day and a total input of 40 Wh/day solar input maintains a ∼ 17 Wh/day surplus.
3. Design files
3.1. Design files summary
| Design File Name | File Type | Description | Open Source License | Location of the File |
|---|---|---|---|---|
| Pump_Mount_INTLLAB Stepper Peristaltic Pump, DP-520-48S.stl | STL | 3D model of a pump mount for INTLLAB peristaltic pump and DRV8825 stepper controller. | GNU GENERAL PUBLIC LICENSE Version 2, June 1991 | https://github.com/CSU-Agricultural-Water-Quality-Program/low-cost-iot-water-sampler |
| 12Vbat_Umount_wSolarM_rightside.stl | STL | Right side of the 12-volt battery mount with mounting holes. | GNU GENERAL PUBLIC LICENSE Version 2, June 1991 | https://github.com/CSU-Agricultural-Water-Quality-Program/low-cost-iot-water-sampler |
| 12Vbat_Umount_wSolarM_leftside.stl | STL | Left side of the 12-volt battery mount with mounting holes. | GNU GENERAL PUBLIC LICENSE Version 2, June 1991 | https://github.com/CSU-Agricultural-Water-Quality-Program/low-cost-iot-water-sampler |
| huine_solar_controller_mount.stl | STL | Mount to hold the Huine solar controller, designed to slide onto the battery mount. Print in PETG. | GNU GENERAL PUBLIC LICENSE Version 2, June 1991 | https://github.com/CSU-Agricultural-Water-Quality-Program/low-cost-iot-water-sampler |
| etapeTPUcover_STL.stl | STL | Protective TPU cover for the top of the eTape sensor to guard wiring from harsh environments. | GNU GENERAL PUBLIC LICENSE Version 2, June 1991 | https://github.com/CSU-Agricultural-Water-Quality-Program/low-cost-iot-water-sampler |
| WaterSampler.ino | Firmware | Primary firmware to operate the Low-Cost Sampler (LCS) after deployment. | GNU GENERAL PUBLIC LICENSE Version 2, June 1991 | https://github.com/CSU-Agricultural-Water-Quality-Program/low-cost-iot-water-sampler |
| Etape_Cali_Oled.ino | Firmware | Firmware for calibrating the water depth sensor (eTape). | GNU GENERAL PUBLIC LICENSE Version 2, June 1991 | https://github.com/CSU-Agricultural-Water-Quality-Program/AWQP-LCS-Etape-Calibration |
| StepperPump_Cali_2024.ino | Firmware | Firmware for calibrating the peristaltic water pump. | GNU GENERAL PUBLIC LICENSE Version 2, June 1991 | https://github.com/CSU-Agricultural-Water-Quality-Program/AWQP_LCS_pump_calibration |
| Etape Calibration Test | Excel | Excel sheet for assisting with eTape calibration. | GNU GENERAL PUBLIC LICENSE Version 2, June 1991 | https://github.com/CSU-Agricultural-Water-Quality-Program/AWQP-LCS-Etape-Calibration |
| Pump Calibration Test | Excel | Excel sheet for assisting with peristaltic pump calibration. | GNU GENERAL PUBLIC LICENSE Version 2, June 1991 | https://github.com/CSU-Agricultural-Water-Quality-Program/AWQP_LCS_pump_calibration |
4. Bill of materials
.
5. Build instructions
As previously stated in Section 2, the LCS is comprised of five main components. This following section details the assembly of each component individually, and the cumulative assembly of them into a single LCS. Additionally, a description of 3D-printed parts and print settings is provided. To assemble the LCS, a list of recommended tools, software, and user accounts required are listed below:
Required tools for assembly:
-
•
Power drill
-
•
Cone or ½” drill bit
-
•
3/8″ drill bit
-
•
¼ in. Flat and #2 Philips Screwdriver
-
•
Wire cutters and wire strippers
-
•
Heat gun
-
•
Soldering iron and solder
-
•
Dupont JST connector crimping tool
-
•
Electric ferrule crimping tool
-
•
3D Printer or 3D printing service
Required Software:
-
•
Particle Workbench – https://www.particle.io/workbench/
-
•
Blynk IoT mobile app – https://blynk.io/no-code-iot-mobile-apps
-
•
Microsoft Visual Studio Code
User accounts for operation:
-
•
Particle Industries, Inc. – https://particle.io
-
•
Blynk Technologies, Inc. – https://blynk.io
-
•
Ubidots (optional; only if data storage and visualization is desired) – https://ubidots.com
5.1. 3D printing
There are four 3D-printed components necessary to assemble the LCS: 1) the pump mount, 2) the battery mount (left and right), 3) the solar controller mount, and 4) the eTape protective cover. The provided pump mount (Pump_Mount_INTLLAB Stepper Peristaltic Pump, DP-520-48S.stl), left battery mount (12Vbat_Umount_wSolarM_leftside.stl), and right battery mount (12Vbat_Umount_wSolarM_rightside.stl) standard tessellation language (STL) files are provided and should be printed using 1.75 mm diameter polyethylene terephthalate glycol (PETG) filament. The eTape protective cover STL (etapeTPUcover_STL.stl) is also provided and should be printed with thermoplastic polyurethane (TPU) filament, also 1.75 mm in diameter. For this project, a Bambu X1C printer coupled with the Bambu Studio (Ver. 1.10.2) slicer program was used to print all components (Bambu Lab, Shenzhen, China). PETG components were printed using a nozzle temperature of 240 °C and a bed temperature of 80 °C. TPU components were printed using a nozzle temperature of 230 °C and a bed temperature of 50 °C. Both filaments require 6 perimeter shells, 5 top solid layers, 5 bottom solid layers, a layer height of 0.2 mm, and an infill density of 70 % or greater. With proper orientation, no print supports are needed, with the exception of the eTape protective cover, which may require supports if the printer cannot handle short overhangs.
5.2. Pump mount assembly
Materials required for the pump mount assembly are the 3D-printed pump mount (Fig. 3a), 12-volt peristatic pump (Fig. 3b), DRV8825 stepper controller (Fig. 3c), Stepper controller shield module (Fig. 3d), 22 gauge 2 conductor wire (Fig. 3e), eight 3 x 10 mm screws (Fig. 3f), and eight 10 mm nuts (Fig. 3g). Place the peristaltic pump into the square opening in the 3D-printed mount such that it matches that shown in Fig. 4. The pump is then secured to the 3D-printed mount with four M3 x 12 mm screws. Remove the adhesive cover from the base of the heat sink and attach it to the black microchip on top of the DRV8825 stepper controller. The DRV8825 offers sufficient current capacity (up to 2 A per coil), and is compatible 12 V power supply. The torque and power required for operating the peristaltic pump stepper motor to sample water is low. Attach the DRV8825 stepper controller with heat sink to the top of the stepper controller shield, making sure the correct pins align. Connect the cable that comes with the peristaltic pump from the pump to the 4-pin JST connector found on the DRV8825 stepper controller shield. The pump cable has two different sized connectors, one on each end, to ensure proper connections are made between the pump and DRV8825 stepper controller.
Fig. 3.
Components for the pump assembly: (a) 3D-printed pump mount, (b) 12-volt peristatic pump, (c) DRV8825 stepper controller, (d) Stepper controller shield, (e) 22 Gauge 2 Conductor Wire, (f) M3 x 12 mm screws, and (g) 10 mm nuts.
Fig. 4.

Fully assembled pump mount assembly to mount inside the waterproof enclosure.
Next, take approximately 20 cm of the 22-gauge 2 conductor wire and strip the ends such that the red and black wires are exposed by approximately 3 cm on both sides, then further strip the ends of each red and black wire such that there is enough copper exposed to attach an electric ferrule to each end. After crimping the ferrules on the wire ends, insert the ferrule-covered positive (red; +) and negative (black; −) wires on one end of the connector into the green DRV8825 stepper controller screw terminal. The red wire should be inserted into the terminal labeled “VIN”, and the black wire should be inserted into the terminal labeled “GND”. Tighten to secure. Fig. 4 shows a completed pump mount assembly for reference.
5.3. Waterproof enclosure assembly
Materials required for the waterproof enclosure assembly are the waterproof enclosure (Fig. 5a), two tubing adapters (Fig. 5b), two PG7 glands (Fig. 5c), the liquid sensor (Fig. 5d), and four M3 x 12 mm screws (Fig. 5e). Open the enclosure and secure the back mounting panel using the screws included with the enclosure. Fit the completed pump mount assembly inside the right-side-bottom of the enclosure without screwing it into the mounting plate. Using the peristaltic pump tube ends as a placement guide, mark the inner enclosure wall where the holes for the tube fittings will be drilled. Remove the pump mount assembly. Use the drill and cone drill bit to drill the opening for the tubing adapters, ensuring that the holes are not drilled too wide for the adapters to be secured. Drill two additional holes on the left side of the bottom of the enclosure for the two PG7 glands: one for the eTape, and the other for the solar panel cable. Once all 4 holes are drilled, the glands and tube fittings can be tightened on the enclosure. A completed waterproof enclosure assembly is shown in (Fig. 6a). The pump assembly from earlier can now to secured into the enclosure with four M3 x 12 mm screws into the mounting plate and the liquid sensor clamped on the right (i.e., inlet) peristaltic tube (Fig. 6b).
Fig. 5.
Components for the waterproof enclosure setup: (a) Waterproof enclosure, (b) 1/4in barb fittings, (c) PG7 glands, (d) liquid sensor, and (e) M3 x 12 mm screw (4x).
Fig. 6.
(a) A completed waterproof enclosure assembly and (b) the pump mount assembly secured in the enclosure with the liquid sensor attached to the peristaltic pump inlet tube.
5.4. Custom 5-conduit pump connector
Materials needed to assemble the custom 5-conduit pump connector (Fig. 8a) are the Dupont and JST connector kit (Fig. 7a), 22-gauge 5 conductor electric wire (Fig. 7b), and heat shrink (Fig. 7c).
Fig. 8.
(a) A completed custom 5-conduit pump cable, b) the JST connector to connect to the device control panel, c) the Dupont connectors that connect the device control panel to the (d) DRV8825 stepper controller mount with male Dupont connector pins colorized to illustrate which wire color should be connected to each pin (e.g., green square coloring = green wire). (For interpretation of the references to color in this figure legend, the reader is referred to the web version of this article.)
Fig. 7.
Components for the custom 5 conduit pump cable: (a) XH2.54 to Dupont2.54 JST Connector Dupont Connector Kit (b) 22 Gauge 5 Conductor Electrical Wire (c) heat shrink 3/16in.
Using wire cutters, cut approximately 15 cm of the 22-gauge 5 conductor electrical wire and strip the black covering approximately 3 – 5 cm to expose the 5 shrouded wires. For each exposed wire, strip off approximately 3 mm to expose the metal conduit. Repeat this process at the other end of the 22-gauge 5 conductor electrical wire.
On one side of the newly exposed wire, crimp the Dupont female pin connectors using the crimping tool. To crimp the pin connectors on the wires, first place the pin in the crimping tool slot that fits and gently squeeze the tool to fix the pin into the slot without fully closing the crimp. Insert an exposed conduit wire into the pin until the jacket is over the end of the pin. Squeeze the tool tightly until the tool releases back open. Inspect the crimping efficacy by lightly tugging on the pin and wire they stay connected. The black and red Dupont wire will be inserted into the 2-pin Dupont housing. The other 3 Dupont wires will be inserted in a 3-pin housing in the following order: Green, White, Brown. Use Fig. 8c for reference.
One the other side of the 22-gauge 5 connector electrical wire, crimp the JST female pin connector to all 5 wires such that the wire colors from left to right are Red, Black, Green, White, and Brown. This assumes that the housing pin opening is facing the user. Once all 5 wires are crimped, insert the wires in a JST male 5-pin housing. Use Fig. 8b for reference.
5.5. eTape
The eTape comes in multiple lengths (approximately 13 cm, 30 cm, 46 cm, etc). The users are required to select the length that best fits their needs. Materials and tools required to assemble the eTape for water level detection are the MileOne eTape (Fig. 9a), a 3D-printed eTape TPU cover (Fig. 9b), a 3-pin waterproof connector (Fig. 9c), a JST-XH 3-pin connector female pin and housing from the Dupont and JST Connector Kit (Fig. 9d), two 12 cm length pieces of 3/16 in. diameter heat shrink (Fig. 9e), eight solder seal connectors (Fig. 9f), wire strippers, and a heat gun. Please note that the waterproof connector and TPU cover are not required for the sampler to run properly but are highly recommended for easier eTape swapping (e.g., if a unit is damaged) and increased durability. These instructions will ensure that optional components are used. Alternative water depth sensors, such as ultrasonic and pressure transducers, were considered. While these sensors can provide high accuracy, they are generally more expensive and require more complex integration. The eTape was selected because it offers accurate water level, durable which is a necessity when monitoring in harsh environments. The eTapes electronics are fully encapsulated in epoxy making it waterproof and rugged, it uses a flexible sensor strip with measurements marked for ease of use and installation. The eTape assembly is performed in two parts: 1) from the eTape to the female end of the 3-pin waterproof connector, and 2) from the male end of the 3-pin waterproof connector to inside the waterproof enclosure assembly.
Fig. 9.
Components for the water level eTape: (a) eTape with the white sturdy wire, (b) 3D-printed eTape cover, (c) 3-pin waterproof connector (female end has red O-ring), (d) JST XH female 3-pin connector and housing Dupont and JST Connector, (e) 12 cm of heat shrink 3/16 in., (f) solder seal connectors. (For interpretation of the references to color in this figure legend, the reader is referred to the web version of this article.)
To assemble the eTape from the eTape to the female end of the 3-pin waterproof connector, first install the protective eTape TPU cover by inserting the eTape wire through the TPU cover until the head of the eTape is fully covered (Fig. 11a). Cut approximately 50 cm from the end of the eTape wire and set it aside for Part 2. Insert the 3/16 in. diameter heat shrink tube onto the eTape wire and slide it towards the eTape to be used later. Using the wire stripper, strip about 3 mm of each eTape wire (i.e., red, black, and yellow). Using three solder connectors, connect the exposed eTape wires to the female 3-pin waterproof connector pigtail wires. Solder connectors work by placing exposed wires into each end of the heat shrink sleeve such that the embedded solder melts with a heat gun while simultaneously shrinking the heat shrink sleeve and white glue points for additional protection. Connect the exposed wires as follows, listed with eTape wire colors first: 1) black to red, 2) red to black, and 3) yellow to yellow (Fig. 10a). For the best result cross the exposed wires in the middle point of the solder connector and apply sufficient heat to melt the solder and the white strips. Once all three eTape wires are soldered, slide the 3/16 in. diameter heat shrink tube over all three solder connectors and apply heat to seal.
Fig. 11.
(a) A completed water level sensor (i.e., eTape) and (b) an image of it attached outside the waterproof enclosure via 3-pin.
Fig. 10.
a) eTape wire configuration to the waterproof connector (black to red, red to black, and white to yellow) and b) JST housing connection from the 50 cm wire to the JST connection. (For interpretation of the references to color in this figure legend, the reader is referred to the web version of this article.)
To assemble the eTape from the male end of the 3-pin waterproof connector to inside the waterproof enclosure assembly, take the 50 cm wire cut from the eTape in the previous steps and join it with the male end of the waterproof connector using three solder connectors. Using the heat gun as before, connect the exposed wires as follows, listed with 50 cm eTape wire colors first: 1) red to red, 2) black to black, and 3) yellow to yellow. Once the solder connectors are cool, add the second piece of 12 cm 1/4 in. diameter heat shrink tube over the unconnected end of the 50 cm eTape wire and over the solder connectors. Apply heat to shrink it. Next, using the crimping tool that came with the Dupont and JST connector kit, crimp all three wires on the unconnected end of the 50 cm eTape wire with a female JST pin connector. Insert this cable through the bottom by loosening the PG7 gland on the waterproof enclosure, then inserting the wire JST pins first. Once the cable is passed through the PG7 into the enclosure, re-tighten the PG7 gland. With the JST pins now inside the waterproof enclosure, place the JST-XH 3-pin housing onto the JST connectors. While the housing pin gaps are facing up, place the black (−), red (+), and yellow wire (signal) in that order into the JST housing (Fig. 10b). The eTape can now be connected via waterproof connector on the outside of the enclosure. On the inside, the etape JST connector will be mounted onto the device control panel (Section 5.7).
5.6. Power assembly
Materials required for the power assembly are the waterproof enclosure assembly (Fig. 12a), solar charge controller (Fig. 12b), solar panel (Fig. 12c), 12 V lead acid battery (Fig. 12d), 3D-printed battery mounts (Fig. 12e), 3D-printed mount for solar controller (Fig. 12f), solar barrel jack connectors (Fig. 12g), load barrel jack connectors (Fig. 12h), female spade connector (Fig. 12i), four M3 x 12 mm screws (Fig. 12j), 12 cm of heat shrink 3/16 in. (Fig. 12k), two solder seal connectors (Fig. 12l). The battery was chosen for its compatibility with the 12 V peristaltic pump and it capacity. The solar controller and solar panels were selected due to them being waterproof and accessible.
Fig. 12.
Materials for the power assembly: (a) waterproof enclosure assembly, (b) solar charge controller, (c) solar panel, (d) 12 V Lead Acid Battery, (e) 3D-printed battery mounts, (f) 3D-printed mount for solar controller, (g) solar barrel jack connectors, (h) load barrel jack connectors, (i) female spade connector (j) four 3x12mm screws, (k) 12 cm of heat shrink 3/16 in., (l) solder seal connectors.
To prepare the solar charge controller, strip all six wires attached to the controller approximately 5 mm so that wiring is exposed. Taking the positive (+, red) and negative (−, black) wires associated with the solar panel icon on the solar charge controller, insert the exposed wire into the corresponding female solar barrel jack connector wire terminals and use a Philips screwdriver to tighten the wiring into the terminal. Take the positive (+, red) and negative (−, black) wires associated with the battery icon on the solar charge controller and crimp a female spade connector to each. Next, slide the 12 cm of 3/16 in. heat shrink over the female load barrel jack connector pigtail wiring. Take the positive (+, red) and negative (−, black) wires associated with the lightbulb icon on the solar charge controller and use two solder seal connectors (with a heat gun, as already used in eTape assembly) to attach them to the female load barrel jack connector pigtail wires. The red and black pigtail wires connect to the red and black lightbulb-icon-associated solar charge controller wires, respectively. Take the positive (+, red) and negative (−, black) wires associated with the solar panel icon on the solar charge controller and insert them into the appropriate (+) and (–) screw terminals of the female solar barrel jack connector. Screw the terminals down to secure. Once all the solar charger controller wires have connectors on them, the solar controller can be mounted onto the 3D-printed mounting panel by siding the controller down the grooves found on the front of the solar 3D-printed mount.
To prepare the battery, take either the L or R 3D-printed battery mount and affix it to the mounting plate inside the waterproof enclosure assembly near the top center (Fig. 13) using two M3 x 12 mm screws and a Philips screwdriver. Insert the 12 V lead acid battery as oriented in Fig. 13, then place the other 3D-printed battery mount over the battery and affix it to the mounting plate inside the waterproof enclosure assembly using two M3 x 12 mm screws and a Philips screwdriver. Make sure there is enough clearance between the battery and the waterproof enclosure wall to allow for users to attach the spade connectors to the battery terminals with their hands. Finally, slide the completed solar charger controller with mount and slide it into the corresponding grove on the front of each 3D-printed battery mount as shown in in Fig. 13.
Fig. 13.

A complete power assembly mounted inside the waterproof enclosure. The solar control is mounted upside down so the wires can reach the battery terminals.
To prepare the solar panel, insert approximately 20 cm of the attached solar panel wire through a PG7 gland located at the bottom of the waterproof enclosure assembly and tighten to secure. Take the already exposed positive (+, red) and negative (−, black) wires attached to the solar panel wire now inside the enclosure and insert them into their respective + and – screw terminals for the male solar load barrel jack connector. Screw the terminals down to secure. Plug in the two solar barrel jacks (i.e., the male and female ends) to complete the solar panel circuit.
5.7. Device control panel
The materials needed for the device control panel are the breadboard prototype circuitry board (PCB; (Fig. 14a), one female 16-Pin PCB header connector (Fig. 14b), one female 12-Pin PCB header connector (Fig. 14c), two 2-pin terminals Fig. 14d), JST-XH female 3-pin, 4-pin, and 5p-pin housing (Fig. 14e), 10 k resistor (Fig. 14f), jumper wires (Fig. 14g), two motherboard standoffs (Fig. 14h), four M3 x 12 mm (Fig. 14i). Alternative PCB design that can reduce the cost and simplify assembly are being considered for future iteration of the LCS. Tools needed for this component include a soldering iron and solder. It is also helpful to have a holder to hold components in place for easy soldering. Before soldering, make sure you’re in a well-ventilated area. Note that the breadboard PCB has letters (i.e., columns) and numbers (i.e., rows) labelled to easily designate soldering points. These instructions will use these coordinates to direct assembly (e.g., Table 4; Pinouts, Table 5). This device control panel will be assembled in three main steps: 1) solder the PCB header connectors to the breadboard PCB, 2) solder the two, 2-pin terminals and all the female JST-XH housings, and 3) solder the circuit wiring and one resistor, connecting all components to their appropriate circuits. The following narrative describes each step in more detail.
Fig. 14.
Materials needed for the device control panel: (a) breadboard prototype circuitry board (PCB), (b) female 16-Pin PCB header connector, (c) female 12-pin PCB header connector, (d) two, 2-pin PCB terminals, (e) JST XH female 3-pin, 4-pin and, 5-pin housing, (f) 10 K resistor, (g) jumper wires, (h) two motherboard standoffs, and (i) four M3x12 mm screws.
Table 4.
Wiring configuration and breadboard PCB pinout for the LCS device control panel. Letters indicate columns and numbers indicate rows as found on the breadboard PCB. In the grid location table column, a dash (“–“) indicates that a component spans the indicated grid points, whereas an arrow (“→”) indicates that a connection starts at the first location and jumps directly to the second location.
| Component | Grid Location | Connection Details |
|---|---|---|
| Front Breadboard PCB Connections | ||
| 16-pin PCB header connector | B1 – B16 | Associated with microcontroller |
| 12-pin PCB header connector | H5 – H16 | Associated with microcontroller |
| 2-pin Terminal (+) | +23 – +25 | Placed on the 12 V positive (+) left rail |
| 2-pin Terminal (−) | −27 – −29 | Placed on the ground (−) left rail |
| JST-XH 3-Pin Housing | D21 – D23 | Associated with eTape; slots face J rail. |
| JST-XH 4-Pin Housing | H20 – H23 | Associated with liquid sensor; slots face J rail. |
| JST-XH 5-Pin Housing | H26 – H30 | Associated with peristaltic pump; slots face J rail. |
| Jumper Wire | C2 → right (+) column | 3.3 v to right (+) rail |
| Jumper Wire | 4D → right (−) column | Ground to the right (−) rail |
| Jumper Wire | A4 → right (−) column | Ground to the left (−) rail |
| Jumper Wire | J20 → right (+) 3.3v column | Associated with liquid sensor |
| Jumper Wire | J22 → right (−) column | Associated with liquid sensor |
| Jumper Wire | I21 → I12 | Associated with liquid sensor |
| 10 K Resistor | J12 → right (+) 3.3v column | Associated with liquid sensor |
| Jumper Wire | I29 → right (−) column | Associated with peristaltic pump |
| Jumper Wire | I30 → right (+) column | Associated with peristaltic pump |
| Back Breadboard PCB Connections | ||
| Jumper Wire | J26 → J13 | Associated with peristaltic pump |
| Jumper Wire | I27 → 11 J | Associated with peristaltic pump |
| Jumper Wire | F28 → F14 | Associated with peristaltic pump |
| Jumper Wire | B21 → right (−) column | Associated with eTape |
| Jumper Wire | B22 → right (+) 3.3v column | Associated with eTape |
| Jumper Wire | A23 → A5 | Associated with eTape |
| Jumper Wire | G7 → left (+) column | |
Table 5.
Breakdown of the Particle Boron microcontrollers pins for the LCS. Many analog and digital pins are still free for future sensor expansion.
| Left Pinout (16) | Function | Right Pinout (12) | Function |
|---|---|---|---|
| RST | Li+ | ||
| 3.3 | EN | ||
| MD | USB | ||
| Ground | D8 | ||
| A0 | eTape | D7 | |
| A1 | D6 | ||
| A2 | D5 | Step | |
| A3 | D4 | Water sensor | |
| A4 | D3 | DIR | |
| A5 | D2 | StepEN | |
| D13 | D1 | SCL i2C | |
| D12 | D0 | SDA i2C | |
| D11 | |||
| D10 | |||
| D9 | |||
| NC |
Firstly, place the 16-Pin PCB header connector onto the B column of the breadboard PCB such that it spans from row 1 to 16. Similarly, place the 12-Pin PCB header connector in column H, spanning from row 5 to 16. The headers should sit flush on the breadboard. Solder both header connectors to the headboard with the solder and solder iron, making sure that no 2 pins are soldered together (Fig. 15). These headers will hold the microcontroller used to control the whole LCS (i.e., Boron LTE-M (NorAm) with EtherSIM (BRN404X), Particle Industries, Inc., San Fransico, CA, U.S.A.). The BRN404X was selected for its built in LTE capability, device cloud integration, and OTA firmware support for fleet updates. User can use other microcontrollers but will need to modify the firmware.
Fig. 15.
Image showing the proper placement of the 16 and 12-pin header connectors onto the breadboard PCB for soldering.
Secondly, solder one 2-pin PCB terminal such that it sits on the positive (+) circuit column on the left side of the breadboard PCB, aligning with rows 23 and 25. The second 2-pin PCB terminal will be soldered on the negative circuit column on the left side of the breadboard PCB such that the terminal pins align with rows 27 and 29. Next, solder the JXT-XH 3-pin housing to the breadboard PCB on column D, rows 23, 24, and 25. Solder the JXT-XH 4-pin housing to the breadboard PCB on column H, rows 20, 21, 22, and 23. Solder the JXT-XH 4-pin housing to the breadboard PCB on column H, rows 26, 27, 28, 29, and 30. All JXT-XH pins should face the same direction, that is, with the front facing the J column on the breadboard PCB (see Fig. 16 for reference).
Fig. 16.
Image showing the proper placement of the 2-pin terminals and JXT-XH housings onto the breadboard PCB for soldering.
Finally, solder the jumper wires and resistor to the breadboard PCB to create the circuits necessary to connect each component. Soldering points for each wire and the resistor are shown in Fig. 17 and explicitly labeled in Table 4. Please note that there is soldering performed on both the front and back of the breadboard PCB. It is important to highlight that the PCB has both a circuit for 12 V and 3.3. V power, and it is critical to connect other components to the correct voltage, else damage to the LCS Device will occur. These power circuits are labeled in Fig. 17. Once soldering is complete, it is recommended that you test each connection with a voltmeter before powering on or attaching a microcontroller to ensure proper circuit connectivity and that no electrical shortages are present.
Fig. 17.
A completed device control panel for the LCS showing wiring configure om the a) front and b) back of the breadboard PCB.
The completed device control panel can then be mounted inside the waterproof enclosure assembly using the two motherboard standoffs and four M3x12 mm screws. It is recommended to mount the device control panel in a similar location to that shown in Fig. 1.
5.8. Connecting electronic components
With all electronic components assembled and installed inside the waterproof enclosure assembly, connecting them is now possible. Place the microcontroller onto the 16 and 12-pin headers of the device control panel, ensuring that the pins align appropriately. Connect the antenna (included with the device) to the microcontroller. Connect the eTape cable to the device control panel by linking the male (found on the eTape wire) and female (found on the device control panel) 3-pin, JST connectors. Connect the liquid sensor cable to the device control panel by linking the male (found on the liquid sensor wire) and female (found on the device control panel) 4-pin, JST connectors. Affix the liquid sensor itself onto the peristaltic pump tubing on the inlet side of the pump. Next, connect the DRV8825 stepper controller to the device control panel using the custom 5-conduit connector made in section 5.4. The 5-pin JST connector connects to the device control panel, and the Dupont connectors connect to the DRV8825 stepper controller on the male pins sticking upward as shown in Fig. 8d.
To connect the device control panel and pump to power, first take the female end of the load barrel jack pigtail leftover from creating the power assembly and attach two, orange electric ferrules to each exposed pigtail wire using the crimping tool included in the kit. Insert the ferrule-covered positive (+) and negative (−) wires into the respective + and – screw terminal ports on the device control panel. Tighten the terminal screws to secure. Next, take the end of the 22-gauge 2 conductor wire attached to the pump mount assembly that is not attached to anything and insert the ferrule-covered positive (red; +) and negative (black; −) wires into the respective + and – screw terminal ports found on the device control panel. Use Fig. 19 as a visual reference. Tighten the terminals with a small flathead screwdriver to secure.
Fig. 19.
Complete circuit schematics of the LCS electronic components illustrating how they connect for device operation.
All aforementioned device control panel connections are shown in Fig. 19. A completed wiring schematic is also presented for reference in Fig. 18. All LCS components are now connected in the waterproof enclosure assembly minus the load barrel jack connectors, which will only be connected when ready to power the device on.
Fig. 18.
Image of a completed device control panel with connections going to other LCS components labeled.
5.9. Water storage apparatus
A cooler with ice is used to preserve water samples (between 4 – 6 °C) for a period of up to 24 h (Fig. 20). This cooling slows sample degradation due to microbial activity and other thermodynamic interactions affecting chemical composition. Using a power drill and 3/8″ drill bit, drill a hole into the cooler such that the sampling tubing can fit through easily, but also minimizing any gaps to maintain cooler integrity. Similarly, use the drill to also make a hole in the lid of the 4 L bottle. Take the plastic ¼” barbed fitting and screw it into the lid of the 4 L bottle until it is secure, without over tightening to avoid stripping out the threads. Place the modified bottle inside the cooler.
Fig. 20.
Materials needed to assemble the water storage apparatus are 1) a cooler, 3) and one plastic ¼” barbed fitting.
6. Operation instructions
6.1. Claiming and flashing firmware to the microcontroller
Operation of the LCS requires that the user create an account (https://login.particle.io/signup) with Particle Industries, Ltd. to interface with the Particle Boron microcontroller. Following documentation provided by Particle Industries, the microcontroller must be claimed to be associated with a given user’s account. One the microcontroller is claimed, it can be flashed with custom firmware (e.g., the LCS firmware).
In the case of the LCS, the Particle Workbench (https://www.particle.io/workbench/) Integrated Development Environment (IDE) must be used to flash firmware and associated libraries to the microcontroller. There are three firmwares associated with the LCS: 1) code for peristaltic pump calibration (StepperPump_Cali_2024.ino), 2) code for eTape calibration (Etape_Cali_Oled.ino), and 3) code for in-situ deployment of the LCS (WaterSampler.ino). These firmware scripts, coupled with their associated file structures (i.e., libraries and other folders as found in their respective repository structures), should be flashed to the boron as needed, following the guidelines provided by Particle Industries, Ltd. documentation (https://docs.particle.io/).
6.2. Peristaltic pump calibration
After fully assembling an LCS unit, calibrating the peristaltic pump is recommended to ensure accurate quantities of water when sampling. The first step in calibrating the peristaltic pump is to use a voltmeter and small flathead screwdriver to detect and adjust the reference voltage on the DRV8825 stepper controller. To do so, plug in necessary connectors to turn on the LCS. Then, using the voltmeter, measure the VREF pin with the voltmeter connecting the red cable to the ref pin (of the potentiometer for ease) and the black cable on the ground on the board. Using the small flathead, turn the small trimmer potentiometer on the DRV8825 stepper controller until the VREF pin voltage reaches 1.6 V.
Using a reservoir filled with approximately 5 L of water, place the inlet sample tube into the reservoir. Place the outlet sample tube into a ≥ 1000 mL graduated cylinder. Both sample tubes should be cut to the length that they will be when the LCS unit is deployed in situ.
Next, flash the peristaltic pump calibration code (StepperPump_Cali_2024.ino) to the microcontroller using the Particle Workbench IDE. This code will make the LCS actuate the peristaltic pump for a user-specified number of steps (the default is 10,000 steps), pause for a user-specified period (the default is 30 s), then repeats (henceforth, step cycle). Prime the inlet tube by allowing the LCS to uptake water for a full step cycle, leaving water in the tube on the intake side for the next cycle. Once primed, measure the volume of water delivered to the graduated cylinder after a full step cycle, and record in mL. It is recommended to repeat this process 10 times at one step count (e.g., 10,000) and 10 times at a different step count (e.g., 30,000), which will require re-flashing the microcontroller. Calculate the steps per volume rate for each step cycle iteration by dividing the number of steps, and average over all iterations to get a mean steps/mL rate that represents overall performance. This average rate should be updated in the LCS deployment firmware (WaterSampler.ino) and re-flashed to the LCS microcontroller prior to deployment. A spreadsheet tool is provided in the LCS repository to help with these calculations (Pump Calibration Test.xlsx).
6.3. eTape calibration
Calibration of the LCS’s eTape is highly recommended prior to deployment. This ensures that the LCS can detect water presence and measure water depth accurately. To do this, the user will require: 1) a fully assembled LCS with the eTape attached, 2) a cylinder of water (e.g., a graduated cylinder or bucket) of at least the same height as the eTape, and 3) a fully assembled LCS.
Power on the LCS and flash the microcontroller with the eTape calibration firmware provided (Etape_Cali_Oled.ino), being careful to adjust the appropriate variable in the code with the correct reference resistance value for the eTape model connected before flashing (Table 6). The eTape calibration firmware will measure the raw eTape resistance, then send the value to the Particle console (https://console.particle.io) every 5 s where the output from that specific microcontroller can be viewed and recorded. The eTape is made with a sleeve in the middle that becomes compressed from the hydrostatic pressure of water which changes the electric resistance. The resistance output values measured by the microcontroller are inversely proportional to the level of the water. For example, a 12-inch eTape will have a resistance value of approximately 2000 Ω out of water and 400 Ω when fully submerged.
Table 6.
Specifications for eTape Continuous Fluid Level Sensors (PN-12110215TC Series), including physical dimensions, electrical output characteristics, and internal reference resistance values for each sensor length variant.
|
eTape Model |
||||
|---|---|---|---|---|
| Characteristic | PN-12110215TC-8 | PN-12110215TC-12 | PN-12110215TC-24 | PN-12110215TC-32 |
| Nominal Length | 8-inch | 12-inch | 24-inch | 32-inch |
| Sensor Length | 10.2 in. (259 mm) | 14.2 in. (361 mm) | 26.0 in. (660 mm) | 34.2 in. (869 mm) |
| Active Length | 8.4 in. (213 mm) | 12.4 in. (315 mm) | 24.34 in. (618 mm) | 32.4 in. (823 mm) |
| Sensor Output | 400 – 1500 Ω ± 20 % | 400 – 2000 Ω ± 20 % | 400 – 4000 Ω ± 20 % | 400 – 5000 Ω ± 20 % |
| Ref. Resistance | 1500 Ω ± 20 % | 2000 Ω ± 20 % | 4000 Ω ± 20 % | 5000 Ω ± 20 % |
The next step in calibration is to record the reported resistance value when the eTape is out of water. Next, insert the eTape into the cylinder of water such that the water level is at the 3 cm measurement marker found on the eTape and use something to hold the eTape at that water depth (e.g., tape or clamp). Record the resistance value at this depth, then move the eTape deeper into the water by 1 cm. Record the resistance again and repeat this process until the maximum measurable depth (i.e., the Active Length) of the eTape has been reached (Fig. 21a). Only record resistivity values when the water level is stable and not turbulent. An important note to make here is that all eTape models are not responsive to depth below the 2.54 cm (i.e., 1 in.) march, which is why calibration starts at the 3 cm mark.
Fig. 21.
Image depicting a) an example setup for eTape depth calibration prior to LCS deployment and b) resulting calibration linear equation after plotting measured resistivity (ohm) against known water depth.
Where Nominal Length is the marketed or intended measurement range of the eTape sensor, expressed in inches and corresponding approximately to the maximum fluid depth the sensor is designed to measure; Sensor Length is the full physical length of the sensor including inactive sections and electrical terminals, allowing space for mechanical mounting and electrical connections; Active Length is the portion of the sensor that actively responds to hydrostatic pressure and changes resistance based on immersion depth, determining the functional sensing area; Sensor Output is the resistance range (in ohms, Ω) produced by the sensor as fluid level increases, where lower resistance corresponds to higher fluid levels and ± 20 % reflects manufacturing tolerance; Ref Resistance is the internal reference resistor used for temperature compensation and calibration, helping improve measurement accuracy across environmental conditions.
Using the recorded water depths and corresponding resistivities create a linear relationship between the two variables that will serve as a calibration equation to convert eTape raw resistivity values into water depth. The spreadsheet tool provided in the LCS repository (eTape Calibration Test.xlsx) will perform this calibration and serve as an easy location to record measured values for the user. The resulting calibration equation should have the form shown in Equation 1.
| (1) |
Where is the slope of the calibration line representing the change in water depth per unit change in resistance (e.g., cm/Ω), is the instantaneous resistance reading from the eTape sensor at depth i, and is the y-intercept corresponding to the water depth when the resistance is zero.
Coefficient values (slope) and (intercept) generated during the calibration process should be recorded. These will be later used to update the calibration coefficients within the LCS deployment firmware (WaterSampler.ino) prior to flashing and deployment.
6.4. User interface setup for standard operation
The LCS uses the Blynk IoT phone application (https://blynk.io/no-code-iot-mobile-apps; Blynk Technologies Inc., U.S.A.) to provide a user interface (UI) for the LCS. To install, users must download the phone application from the appropriate app store (e.g., Google Play) and create a free or paid account with Blynk computer desktop. Once the account is created, the user can obtain an account-specific authentication token and product template ID, which is used within the LCS firmware for standard operation to interface with any individual LCS unit. The desktop interface will also be used next to create the phone app UI device template. Once logged in, the user will be required to add Datastreams as virtual pins as noted in Table 7.
Table 7.
Itemized Datastreams and parameters required to create as virtual pins within the user's Blynk account for LCS use.
| Datastream Name | Virtual Pin | Data Type | Unit | Min-Max | Default |
|---|---|---|---|---|---|
| mL to Sample | V1 | Integer | (mL) | 0–1000 | 200 |
| Terminal Status | V2 | String | − | − | − |
| Sample Interval | V3 | Integer | (min) | 0–720 | 60 |
| Threshold | V4 | Integer | (cm) | 0–100 | 100 |
| Sample Bottle | V5 | Integer | (mL) | 0–10000 | 2000 |
| Sample Now | V9 | Integer | − | − | − |
| mL to Collect | V12 | Integer | (mL) | 0–1000 | − |
| Current Threshold | V14 | Integer | (cm) | 0–100 | − |
| Current Depth | V17 | Integer | (cm) | 0–100 | − |
Each Datastream corresponds to a user-defined variable that will be used to operate the LCS. These variables are defined in Table 8.
Table 8.
Definitions and input/output types for each Datastream variable set in Blynk to operate the LCS.
| Datastream Name | Definition | Variable Type |
|---|---|---|
| mL to Sample | Designates the volume of water to sample upon trigger condition in milliliters | User input |
| Terminal Status | Provides string output in serial monitor for LCS actions and diagnostics | LCS output |
| Sample Interval | Time, in minutes, between sampling events after trigger condition is reached | User input |
| Threshold | The required eTape water depth measurement, in centimeters, to trigger a sampling condition | User input |
| Sample Bottle | Designates the volume of the bottle used to collect water sample, in milliliters. | User input |
| Sample Now | User interface button that interrupts LCS operations to immediately sample water until the button has been released. | User input |
| mL to Collect | The user-defined volume (in mL) of water to collect when the “Sample Now” button is pressed. | LCS output |
| Current Threshold | The current trigger water depth set, in cm, that results in water sampling | LCS output |
| Current Depth | Shows the user what the current water depth measured by the eTape is, in cm. | LCS output |
Once the Datastream variables are set within Blynk, the user can add the UI template to the mobile app for phone use. To do this, login to the Blynk IoT phone application using the same credentials used for the desktop version. Next, select “add new devices” and select “manually from template”. From here, click on the wrench icon to add the necessary widgets for the user inputs, using Fig. 22 as a guide.
Fig. 22.

Screenshot of the LCS user interface created using the Blynk IoT application with proper widget layout shown.
The LCS requires user input to program the sampling protocol. These inputs include Volume to Sample (mL), Sampling Interval (min), Threshold (cm), Sample Bottle (mL). Using Blynk, users will input how much volume to collect (max 700 mL per sample interval), how often to sample in minutes, the threshold depth in centimeters that will activate your sampler to start collecting water, and how large the sample bottle is to prevent sample overflow. Once all the user inputs are sent to the LCS, it will detect water flow and start sampling water at the defined time interval and sample volume. The sampler will stop sampling if the water level is below the threshold and/or when the total sample volume exceeds the sample bottle volume. The sampler will maintain countdown once activated and will continue sampling according to the defined time interval. User inputs can be changed at any time. The Sample Now button on the Blynk UI will allow the user to collect an impromptu water sample when desired.
6.5. Final firmware modification and deployment
To deploy the LCS in situ requires the user to 1) modify the deployment firmware and configuration files with appropriate calibration coefficients and authentication credentials, 2) physically deploy the LCS unit, and 3) power on the device.
Modification of the firmware (WaterSampler.ino) and creation of the configuration file (config.h) is imperative prior to deployment to ensure that the LCs can communicate with Blynk, measure water depth accurately, and sample correct water volumes. Firstly, in the repository “src” folder is a file named “config_template.h”. This contains template code formatted to pass secure token information to the LCS firmware code. The user will copy this file and rename it “config.h”. This new file should be edited to include the Blynk authentication token and template ID as described in (Section 6.4), and the optional Ubidots data service token as well. Next, the user should modify the “volCal1” variable (i.e., Line 91 of the WaterSampler.ino code as of the version 1.3.1 release) with the milliliters per step rate derived during peristaltic pump calibration (Section 6.2). Finally, the user will take the m and b linear regression coefficient values derived during the eTape calibration (Section 6.3) and use them to replace the default slope (i.e., −0.01695) and intercept (i.e., 46.2695) coefficients, respectively (i.e., Line 248 of the WaterSampler.ino code as of the version 1.3.1 release). Once all steps are completed, the user should save changes in both the firmware and configuration files.
Mounting the LCS for deployment can be achieved using the mounting brackets and screws provided with the waterproof enclosure. The waterproof enclosure assembly can be affixed to any suitable surface, post, or wall that is near the water source to be sampled. One example method to achieve this is to use a wooden post that has been partially buried next to the water source, similar to a fence post, then mount the solar panel to the top of the post, and the waterproof enclosure assembly beneath it on the post itself, then finally place the water storage apparatus beneath it as shown in Fig. 23.
Fig. 23.

Image of example mounting of LCS to a wooden post with solar panel above the unit, and cooler beneath, near the water body of interest.
An optional software component of the LCS is to stream eTape level data and cellular signal strength to a data storage and visualization platform for additional functionality. Ubidots (Medellín, Antioquia, Colombia) is a company used by the AWQP and subsequently by the LCS for such a purpose. As mentioned in Section 5, the LCS firmware includes optional code for Ubidots integration. Simply uncomment this code and add the account-specific API token from Ubidots to the “config.h” file to enable this integration.
With the LCS mounted, the sampler tubing should be cut to length for both the inlet and outlet connections on the waterproof enclosure assembly. For the inlet tube, the tube should be cut to a length that reaches the desired water body. For the outlet, the tubing length needs to span the distance from the waterproof enclosure assembly to the barbed fitting installed on the sample bottle housed inside of the cooler. Avoid having excess length in the inlet and outlet tubes to avoid future water samples pooling in the tube, potentially contaminating samples. Affix the inlet and outlet tubes to the appropriate fittings on the bottom of the waterproof enclosure assembly, then place the other end of the tube and their respective inlet, outlet location (i.e., water body of interest and barbed fitting inside of the cooler).
Mounting the eTape is the final step in LCS deployment. This process is also non-standardized, similar to mounting the LCS itself, and often changes depending on case and application. However, mounting the eTape for any project should achieve the following: 1) the eTape should be stable and not move over the duration of the LCS’s deployment. 2) the eTape should be able to measure the desired depth of water being measured, without concern of water reaching the top of the eTape, which may damage the eTape. 3) the eTape needs to be close enough to the LCS to be able to connect to the appropriate waterproof connector on the waterproof enclosure assembly. Once the eTape is mounted, connect the wire to the LCS via waterproof connector on the bottom of the waterproof enclosure assembly. It is recommended that a user take manual depth readings periodically after eTape deployment to check for accuracy and calibration drift.
It is worth noting that many components of the LCS are customizable to fit a given application. Some examples of this include: 1) changing the wiring length of the eTape, 2) changing the wiring length of the solar panel, 3) changing the length(s) of the sampler tubing, 4) changing the size/type of sample bottle used (e.g., amber glass bottle instead of plastic), and 5) changing the cooler quality to meet needs in cost and sample preservation.
Once the LCS is fully mounted and deployed, the device can be turned on by connecting the solar controller to the 12 V battery, then connecting the male and female ends of the load barrel jack connectors found inside the waterproof enclosure assembly. Close the enclosure after turning it on to finish deployment.
7. Validation and characterization
As of May 2025, the CSU AWQP has built 26 LCS units in total, all of which have been calibrated and verified in a lab setting for both eTape water depth and peristaltic pump water volume delivery accuracy. Each device was calibrated and tested twice, annually, in winter 2024 and 2025.
eTape performance was assessed by placing the eTape at known depths (after flashing the deployment firmware, post calibration as mentioned in Section 6.3 and collecting water depth readings at the known depths. The depths tested for each eTape were 7.62 cm (i.e., 3 in.), 17.78 cm (i.e., 7 in.), and 27.94 cm (i.e., 11 in.). Peristaltic pump performance was evaluated similarly, by setting the device for a known volume of delivery after calibration (in this case, 200 mL) and recording the resulting delivery volume. Occasionally, LCS units had malfunctioning eTape units and/or peristaltic pumps, which were replaced as needed, but resulted in differing sample sizes between accuracy checks (i.e., bad sensors/pump readings were dropped as outliers). Coefficient of Variance (CV; Equation 1) was calculated to characterize performance. This and other summary statistics are shown in Table 9.
| (1) |
Where and are the standard deviation and mean eTape water depth readings, respectively, for a fixed water depth (cm).
Table 9.
Summary statistics and coefficient of variation diagnostics that characterize LCS eTape and peristaltic pump performance and accuracy post-calibration.
| Measurement Standard | Units | Sample Size | Mean | Median | Std. Dev. | CV |
|---|---|---|---|---|---|---|
| 7.62 | cm | 46 | 7.99 | 7.98 | 0.60 | 7.5 % |
| 17.78 | cm | 45 | 17.88 | 17.97 | 0.57 | 3.2 % |
| 27.94 | cm | 42 | 27.78 | 27.91 | 0.74 | 2.7 % |
| 200.00 | mL | 49 | 216.84 | 215.00 | 25.63 | 11.8 % |
Where Std. Dev. Is the population standard deviation and CV is the coefficient of variation.
Results indicate that the eTape performed markedly well at all tested depths, but became more accurate as depth increased (i.e., CV = 7.5 % at 7.62 cm versus 2.7 % at 27.94 cm). The peristaltic pump had a larger CV in comparison, but in applied settings, this volume delivery accuracy is sufficient in most environmental monitoring scenarios and could be refined on a device-specific basis by adjusting the volume manually in the Blynk app to accommodate. Additionally, Fig. 24 show water level and sample events during an irrigation. These figures illustrate the system's sampling behavior under real-world conditions.
Fig. 24.
Graph of a Time Series of Water Level and Sample Events, during an irrigation event.
Ethics statements
No ethical statements to report.
CRediT authorship contribution statement
Emmanuel Deleon: Writing – original draft, Visualization, Validation, Software, Methodology, Investigation, Funding acquisition, Data curation, Conceptualization. Ansley J. Brown: Writing – original draft, Visualization, Software, Methodology, Investigation, Funding acquisition, Data curation. Jakob Ladow: Writing – review & editing, Investigation, Data curation. Erik Wardle: Writing – review & editing, Supervision, Funding acquisition. Troy Bauder: Writing – review & editing, Resources, Funding acquisition.
Funding
This work was supported by United States Department of Agriculture Natural Resource Conservation Service Conservation Innovation Grant (Grant no. NR193A750008G002), the Colorado Department of Agriculture, as well as the Colorado Water Conservation Board Fiscal Year 2024 Seed Research Funding Program.
Declaration of competing interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.
Acknowledgments
The authors would like to acknowledge Colorado State University Agricultural Research Development and Education Center (ARDEC) staff for their help with farm management during the course of the comparison study mentioned above. We would like to thank Dr. Jay Ham and Dylan Casey for their valuable contributions to the development of the low-cost sampler. Additionally, the authors would like to thank all student researchers (Alex Enriquez, Lauryn Howlett, Christina Lilligren, Melanie Buziak, Molly Bell, Dani Cyr, Justina Rice, and Mackenzie Maruca) who assisted in the LCS assembly, deployment, and data collection for the purpose of creating this manuscript.
Biography

Emmanuel Deleon is a water quality researcher at Colorado State University with a focus on edge-of-field monitoring and the evaluation of agricultural Best Management Practices (BMPs). His work involves the development and deployment of low-cost, open-source technologies, including 3D-printed components, IoT-based sensors, and automated water samplers, to improve environmental monitoring. Emmanuel has extensive experience with real-time data systems, sensor integration, and the use of remote sensing tools such as NDVI drones to monitor field conditions. He is passionate about supporting sustainable agriculture through innovations in field-based monitoring and soil and water conservation.
References
- 1.T. Stocker, D. Qin, G.-K. Plattner, M. Tignor, S. Allen, J. Boschung, A. Nauels, Y. Xia, V. Bex, P. Midgley, Summary for policymakers, (2014).
- 2.Beusen A.H.W., Doelman J.C., Van Beek L.P.H., Van Puijenbroek P.J.T.M., Mogollón J.M., Van Grinsven H.J.M., Stehfest E., Van Vuuren D.P., Bouwman A.F. Exploring river nitrogen and phosphorus loading and export to global coastal waters in the Shared Socio-economic pathways. Glob. Environ. Chang. 2022;72 doi: 10.1016/j.gloenvcha.2021.102426. [DOI] [Google Scholar]
- 3.Harmel R.D., Preisendanz H.E., King K.W., Busch D., Birgand F., Sahoo D. A review of data quality and cost considerations for water quality monitoring at the field scale and in small watersheds. Water (Basel) 2023;15:3110. [Google Scholar]
- 4.Harmel R.D., King K., Busch D., Smith D., Birgand F., Haggard B. Measuring edge-of-field water quality: Where we have been and the path forward. J. Soil Water Conserv. 2018;73:86–96. [Google Scholar]
- 5.McCarthy D.T., Shi B., Wang M., Catsamas S. BoSL FAL pump: A small, low-cost, easily constructed, 3D-printed peristaltic pump for sampling of waters. HardwareX. 2021;10 doi: 10.1016/j.ohx.2021.e00214. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 6.Carvalho M.C. Portable open-source autosampler for shallow waters. HardwareX. 2020;8 doi: 10.1016/j.ohx.2020.e00142. [DOI] [PMC free article] [PubMed] [Google Scholar]
- 7.L.F.F. Moreira, J.O. De Paiva, A Low-cost Automatic Water Sampler Equipment, (2010).
- 8.Selker J., Udell C. The OPEnSampler: A Low-Cost, Low-Weight, Customizable and Modular Open Source 24-Unit Automatic Water Sampler. Authorea Preprints. 2022 [Google Scholar]





















