BoreHole Management System

Ontwikkeling van een elektronisch systeem voor besturing en bewaking van waterputten in Zambia

Mission Geeks

In het verlengde van mijn reis naar Zambia met World Servants ben ik in contact gekomen met een groep technici die in Zambia werken om hun land en bevolking te dienen. Zij doen dit als organisatie Mission Geeks en volgende samenvatting geeft hun motitvatie weer:

Mission Geeks is a team of engineers and problem solvers, serving rural Zambia with practical, hands-on support.

We empower mission hospitals, schools, and ministries facing constant technical challenges—like unreliable power, unsafe water, broken equipment, and poor communication—that hinder their ability to heal, teach, and disciple.

In some of Africa’s most remote places, these ministries bring dignity, opportunity, and the love of Christ. We believe God has called us to “equip His people for works of service” (Eph 4:12)—fixing what’s broken, building what’s needed, and training others to carry it forward.

Na enige kennismaking met Gareth was mijn vraag hoe (als Embedded Systems Engineer in Nederland) bij te kunnen dragen aan de dagelijkse uitdagingen waar mensen in Zambia mee worstelen. Essentieel voor velen is de beschikbaarheid en het efficient gebruik van water. Een eerste oplossing in de vorm van een management systeem is al gebouwd in enkele hardware versie gebaseerd op Arduino en gelieerde modules, maar verkeerd nog steeds in de development fase. Meer informatie hierover is weergegeven op de website van Mission Geeks. Het verzoek is om een nieuwe versie van het systeem te bouwen dat flexibeler en configureerbaar is en toepasbaar op verschillende praktijk situaties in de off-grid / landelijke gebieden in Zambia.

Project omschrijving

Het systeem dat ontwikkeld moet worden heeft zijn toepassing in gebieden waar geen (of onregelmatig) elektriciteit beschikbaar is. Minimaal bestaat het systeem uit een aantal hardware devices die met elkaar kunnen communiceren en de volgende taken hebben:
  1. Meten van het waterniveau in een watertank
  2. Aansturen van een pompinstallatie die de tank vult vanuit een bron
  3. Monitoren van de regeling om de watertank voldoende gevuld te houden
  4. Monitoren van de bron en pompinstallatie
  5. Monitoren van het waterleiding systeem voor lekkage detectie
Daarnaast zijn er ook nog een aantal andere factoren die meespelen in de ontwikkeling:
  • De kostprijs van het gehele systeem moet zo laag mogelijk worden gehouden
  • Het systeem moet voor verschillende praktijk situaties inzetbaar zijn: Niet alleen maar één bron, maar meerdere bronnen die geheel en/of gedeeltelijk gebruikt kunnen worden
  • De afstand tussen de verschillende hardware devices kan oplopen tot 500 meter
  • De operationele status van het systeem moet via een mobiel apparaat uitgelezen kunnen worden
  • Essentiele faciliteiten moeten redundant worden uitgevoerd of eenvoudig vervangen kunnen worden

Huidige status

Er zijn al enkele versies van het systeem gemaakt en operationeel in Zambia op verschillende lokaties. De hardware van sensor en actuator devices is daarbij op verschillende standaard boards gebaseerd op de product families van Arduino en Adafruit. Er is redelijk veel handwerk nodig om de hardware te bouwen en is beperkt waterbestendig. De firmware operationeel op beide devices is vrij eenvoudig en ondersteunt alleen een simpele regeling.

Nieuwe ideëen en uitgangspunten

Het doel van deze nieuwe ontwikkeling is om een profesionalisering uit te voeren van zowel de embedded hardware als ook de firmware. Gestreeft wordt naar half-custom oplossing, waarbij een basis board wordt uitgerust met generieke elektronische onderdelen en ruimte biedt voor één of meerdere (low-cost) insteek modules met specifieke functies. Daarbij wordt gedacht aan Battery Chargers, Microcontrollers en Radio Modules. Het basis board verbindt alle insteek modules met elkaar, maar voorziet ook in de IOs voor aansluiten van externe onderdelen als een zonnepaneel, schakelrelais of meetsensor.

De huidige focus is op de volgende low-cost embedded board oplossingen:

Het basis board zal worden uitgerust met een verwisselbaar serieel geheugen waarin alle instellingen worden opgeslagen voor het betreffende hardware device en de rol / taken die het heeft binnen de installatie. Het doel hiervan is om zowel de insteek modules als ook het basis board eenvoudig te kunnen vervangen mocht er sprake zijn van een defect.

Eerste prototype testopstelling (04-2026)

Nagenoeg onbekend met zowel hardware modules als firmware platforms en libraries is het zaak om een keuze te maken voor een eerste prototype die één of meerdere insteekmodules bevat en ook daadwerkelijk een regelaar bevat inclusief pomp en waterniveau. De volgende opstelling zal worden gebouwd om een pompregeling te kunnen simuleren:


Hardware onderdelen

Deze opstelling bevat de volgende onderdelen:
  • Twee emmers boven elkaar geplaats, waarbij een kraan het water in de bovenste emmer in de onderste kan laten stromen. De bovenste emmer is een simulatie van een watertank, waarboven een ultrasoon sensor geplaatst wordt om het waterniveau te meten. De onderste emmer is het reservoir oftewel een simulatie van de bron, waarin een kleine aquarium pomp wordt geplaatst met een slang naar de bovenste emmer.
  • Een ultrasone sensor die tot +/- 400 cm afstand kan meten (A02YYUW van DFRobot)
  • Een low-budget aquarium pompje met werkspanning 5Volt
  • Een zonnepaneel die minimaal 6V / 200 mA levert
  • Een prototype board met daarop gebouwd / geintegreerd:
    • Arduino Nano 33 Sense Rev 2
    • Battery Charger Board BQ24295
    • 1 seriele ingang voor aansluiten ultrasone sensor
    • 1 open-drain uitgang voor het aansturen van de pomp
    • analoge meting van de battery spanning
    • analoge meting van de (gestabiliseerde) ingangsspanning van het zonnepaneel
    • Lithium-Ion oplaadbare battery van 1500 mAh

Firmware functionaliteit

Voor de eerste opstelling is een applicatie ontworpen, die gebruik maakt van het Arduino framework en een bepaald aantal libraries van derden. De applicatie bevat een dunne onderlaag (een soort wrapper) waarmee de applicatie ook op een ander platform kan worden gedraaid als de betreffende functies die de applicatie nodig heeft zijn toegevoegd. Het onderstaande diagram toont de globale en modulaire architectuur van de applicatie:



Via de terminal interface van de Shell Module kunnen verschillende gegevens worden opgevraagd, maar ook instellingen worden gewijzigd. Naast de naam van unit kan ook de functies van de unit worden ingesteld. De unit kan worden ingesteld om alleen het waterniveau te meten of alleen de pomp aan te sturen, maar ook beiden als dat mogelijk is in een praktijk situatie.

Test resultaten

De testen omvatten het vullen van de tank vanuit de bron. De FieldUnit meet de hoogte van het water niveau tijdens het vullen en tevens tijdens het leeglopen. Het vullen van de tank gebeurt door de pomp, die wordt geschakeld afhankelijk van het gemeten waterniveau en de instellingen waarop de pomp aan moet schakelen en wanneer de tank vol genoeg is.


Bovenstaande grafiek laat met de blauwe lijn de meetwaarden van de sensor zien (in millimeters), terwijl de oranje lijn de gemiddelde waarde toont. Tijdens het leeglopen van de tank is te zien dat de sensor onnauwkeurigheden heeft vanaf een bepaalde afstand en toeneemt bij bepaalde afstanden. Het patroon oftewel de rippel is redelijk gelijk over bepaalde afstanden, maar neemt toe tot ongeveer +/- 10 mm boven 320 mm. Door een gemiddelde waarde te gebruiken is dit effect te minimaliseren en door met een threshold te werken kan een simpele regeling toch goed genoeg werken. Het gedrag van de sensor is echer wel een tegenvaller, maar de kostprijs van de sensor is wel aantrekkelijk.


De duty-cycle feature in de Pomp Controller laat in onderstaande grafiek zien dat de tank in stappen wordt gevuld. Deze feature is vooral belangrijk om oudere waterbronnen niet 100% te belasten voor het vullen van de watertank, maar om dat stapsgewijs te doen of om in de situatie van meerdere bronnen deze verschillend te belasten.

Communicatie metingen (06-2026)

Voor de communicatie tussen de units van het systeem zijn verschillende mogelijkheden beschikbaar, maar uitgangspunt is wel dat de communicatie over een afstand van 500 meter nog goed moet kunnen werken in een plattelands omgeving. Dat betekent niet alleen bij line-of-sight, maar ook als er sprake is van een (enigszins) beboste omgeving. Om dit te kunnen beoordelen met zowel het eerste prototype als ook met alternatieve boards is het nodig veldtesten uit te kunnen voeren met experimentele hardware modules die optimaal zijn ingesteld.

Arduino Nano 33: Bluetooth Low Energy

Het initieel gekozen development board Nano 33 rev 2 heeft alleen de beschikking over Bluetooth Low Energy als radio communicatie middel. Het bereik is beperkt ten opzichte van lange afstand oplossingen, maar eerste testen zouden moeten uitwijzen wat het maximale bereik van de radio is als deze optimaal is geconfigureerd.

De Nano 33 heeft een Nordic nRF 52840 chip, die ook een long-range mode heeft waarbij de modulatie en bandbreedte op een dusdanige mode wordt ingesteld dat een aanzienlijk groter bereik heeft dan de standaard instelling. In de praktijk betekent dat toename van bereik ten koste gaat van bandbreedte en data overdracht. Testen met de hardware moeten uitwijzen wat het maximale bereik is bij optimale instellingen.

Na uitvoerig onderzoek naar de standaard codebase van het Arduino platform en de beschikbare libraries blijkt dat de configuratie van de radio (nog) niet wordt ondersteunt door de onderliggende modules en APIs. De ondersteunde Bluetooth Low Energy versie is 4.0 in de beschikbare BLE libraries en zelfs het aanpassen van het zendvermogen wordt niet ondersteunt. Dit betekent dat al deze features nog moeten worden ontwikkeld in de verschillende lagen van de codebase. De afweging om tijd en energie in deze ontwikkeling te stoppen heeft bestaan uit een uitvoerig onderzoek naar de bestaande architectuur van de codebase, de verschillende onderdelen die moeten worden aangepast, de ervaring die moet worden opgedaan met testen en het uiteindelijk maximaal te verwachten resultaat. Ook de verschillende posts op het Arduino forum die afgelopen jaren door niemand werden opgepakt geven aan dat het een lastig onderwerp is en dus veel tijd zal vragen.

De eerste testopstelling in mijn houten schuur gebruikt BLE met de standaard instellingen, maar vanuit mijn woonhuis (met een redelijk goede kooi) is de communicatie al niet mogelijk terwijl het over een afstand van 15 meter gaat met slechts 1 buitenmuur. Ook al zal het bereik toenemen als deze features zijn toegevoegd, de verwachting is dat dit niet voldoende zal zijn voor de uiteindelijke toepassing. Er is daarom besloten geen verdere tijd te investeren om dit werkend te krijgen. Dit betekent ook dat de Arduino Nano 33 als hardware platform geen kandidaat meer is voor het systeem.

Raspberry Pico-2-W: Wifi 2.4 GHz

Om de geintegreerde wifi radio (CYW43439 van Infineon) van de Pico-2-W te testen kan gebruik gemaakt worden een smartphone en van één van de examples in de pico SDK: pico-examples\pico_w\wifi\access_point. Met deze code funcioneert de Pico-2-W als AccessPoint, waarmee geconnect kan worden. Hiervoor stuurt het device broadcasts uit, die qua sterkte op de smartphone zichtbaar gemaakt kunnen worden met een applicatie.


De resultaten van de metingen tonen aan dat op kortere afstand tot ongeveer 250 meter het signaal van de radio sterk genoeg is voor toepassing in het wifi netwerk. Dat betekent dat voor kleine installaties, waar alle units redelijk dicht bij elkaar liggen de wifi radio gebruikt kan worden. Voor langere afstanden reikt de radio antenne tot ongeveer maximaal 500 meter bij line-of-sight, maar met enkele bomen of struiken is er geen ontvangst.

Raspberry Pico-2-W met LORA SX1262 Module

Om te kunnen testen met LORA is gebruik gemaakt van Meshtastic, een open source mesh netwerk oplossing voor LORA met een indrukwekkende status. Om te kunnen testen zijn 2 Pico-2-W boards voorzien van een LORA SX1262 module en een batterij. Daarbij is één board voorzien van extra code om elke 10 seconden een bericht uit te sturen en is de ontvanger gekoppeld aan een mobiele telefoon met de Meshtastic App. De broncode van Meshtastic voor LORA radios en nog veel meer is te vinden onder GitHub. De Meshtastic App kan eenvoudig worden gedownload via de Store.

De eerste LORA radio configuratie (standaard in de code base) heeft een dusdanige tijdsduur bij het versturen van een eenvoudig bericht, dat na 30 minuten (en elke 10 seconden een bericht) het medium niet meer beschikbaar was (vanwege de maximale 10% bezetting). Het profiel is daarom ingesteld op ShortFast, waarbij de berichten sneller worden verstuurd over het medium, maar waardoor ook het bereik afneemt. De inschatting is echter dat de gewenste afstand ruimschoots gehaald zal worden.

De eerste meting met de LORA test devices heeft plaats gevonden op de Ginkelse Heide, waar er tot meerdere kilometers een line-of-sight mogelijk is. Bij deze test is de maximale afstand (bij het ingestelde profiel) ongeveer als volgt:


De tweede meting met de LORA test devices heeft plaats gevonden in een bosrijke omgeving, waarbij de maximale afstand waarop er nog ontvangst was tussen de devices hieronder is weergegeven:


De resultaten zijn indrukwekkend voor zowel de line-of-sight als de beboste omgeving. De enige beperking waar rekening mee gehouden moet worden is de 10% maximale beschikbaarheid van het medium voor verzenden van berichten. Per uur betekent dat slechts 6 minuten beschikbare zendtijd. De codebase van Meshtastic houdt hier al rekening mee en deze controle kan eventueel worden uitgeschakeld. Grotere berichten nemen meer tijd in beslag en de bittiming bij verzending kan gewijzigd worden door gebruik te maken van andere profielen. De verwachting is echter dat een frequentie van 6 berichten per minuut meer dan voldoende zal zijn om een regeling te kunnen implementeren tussen de verschillende devices in het Meshtastic netwerk. Er is voor het onderhoud van het netwerk ook nog enige bandbreedte nodig, dus er zal nog nader gekeken (en gerekend) moeten worden hoe verschillende installaties in de praktijk kunnen werken met LORA.

Vervolg traject

Het gebruik van LORA als standaard radio voor de korte afstand is iets wat nog overwogen moet worden. De oplossing die Meshtastic beschikbaar stelt is voldoende aan te passen aan de eigen omgeving, maar de hoeveelheid berichten die nodig zijn bij een X aantal units is nog iets wat verder onderzocht en gedefineerd moet worden. Het doel is wel om tot een enkele hardware configuratie te komen.

Voor remote upgrading van alle units is LORA wellicht niet de meest ideale oplossing, maar als er voldoende tijd is kan het oversturen van nieuwe firmware ook met weinig berichten per tijdseenheid worden gedistribueerd. Bij aanwezigheid op de locatie zelf kan wifi als communicatie middel worden gebruikt, maar zelfs upgrading via de USB aansluiting blijft als fallback beschikbaar. Uiteindelijk is het ook belangrijk dat na een upgrade het complete systeem weer correct functioneert.

Volgende stap is het uitwerken van het base board in de vorm van een schema en een PCB ontwerp.