All projects
APSC 101 · Queen's Engineering · 2024

Automated Water Filtration System

Leading a five-person team to design and prototype an automated filtration system for a remote Nunavut community scenario, with a custom alum dispenser and closed-loop control in C++.

Team LeadSolidWorksC++Sensors & PumpsClosed-Loop Control
Role
Team lead
Timeline
Sept – Nov 2024
Team
5 engineers
Course
APSC 101
Automated water filtration system prototype
Skills I built
Team leadership
Splitting work across five people, setting milestones, and keeping design decisions aligned.
SolidWorks CAD
Designing the alum dispensing subsystem from concept to model.
Embedded C++
Closed-loop control of pumps, level sensors, motors, and an emergency stop.
Testing & documentation
Writing reproducible procedures, collecting data, and validating results.

The problem

APSC 101 is Queen's first-year engineering design course, built around a realistic client scenario. Ours: a remote Nunavut community that needs clean drinking water, where skilled maintenance is hard to come by and supplies arrive infrequently.

That shaped the brief. The system had to run with minimal human intervention, dose treatment chemicals reliably, and shut down safely if anything went wrong.

My role

  • Team lead for five people: split the work into subsystems, set milestones, and kept design decisions aligned.
  • Designed the alum dispensing subsystem in SolidWorks.
  • Wrote the C++ control logic tying the pumps, water-level sensors, motors, and emergency stop together.

How it works

Coagulation with alum. Raw water carries tiny suspended particles that are too small to filter easily. Adding a measured dose of alum makes them clump into larger flocs, which settle and filter out far more effectively. The dispenser I designed meters that dose automatically.

Closed-loop control. Rather than running pumps on fixed timers, the controller reads the water-level sensors and switches pumps and motors in response, so the system adjusts to what's actually happening in each tank. An emergency stop overrides everything and cuts all actuators immediately.

Water-level sensors
Measure tank state
C++ controller
Decides what runs next
Pumps, motors, dispenser
Move water, dose alum
Clean water
Settled & filtered

Process

  1. 1

    Understand the client

    Researched the community scenario to pin down requirements: automation, reliability, safety, and simple upkeep.
  2. 2

    Design the subsystems

    Split the system into treatment, pumping, sensing, and control, and modelled the alum dispenser in SolidWorks.
  3. 3

    Build & program

    Assembled the prototype and wrote the C++ control logic for the pumps, level sensors, motors, and e-stop.
  4. 4

    Test & iterate

    Ran documented experiments, collected and analyzed data, and refined the design until the system filtered water as intended.

Outcome

The prototype successfully filtered water as designed. Every test was documented with clear, reproducible procedures, so another team could rerun our experiments and get the same results.

What I learned

  • Leading a team means making decisions early and communicating them clearly, so five people build parts that actually fit together.
  • Designing for a real user (here, a remote community) changes priorities: reliability and safety beat cleverness.
  • Good documentation is part of engineering, not paperwork after it.
Next project
Voron 0.2 CoreXY 3D Printer