Welcome to EnviroDIY, a community for do-it-yourself environmental science and monitoring. EnviroDIY is part of WikiWatershed, an initiative of Stroud Water Research Center designed to help people advance knowledge and stewardship of fresh water.
New to EnviroDIY? Start here

Geographical Scaling Modular Sensors

Modular Sensors library of sensors interfaces is fantastic. Sara’s classes form a backbone of data flowing from the sensors to the cloud(s), all running on the low cost, solar powered Mayfly. Thanks Shannon and Sara and many others who help teach about Modular Sensors.

I was able to extend the Keller Acculevel Class to a Keller Nanolevel device easily, and I’m working on the Insitu SDI-12 interface. I’ve deployed equipment before, and once something is liked (working and deployed), the next steps are to figure how to go from a few locations to 10s of locations easily, and to build a team who don’t need to know all the details of coding round the monitoring. It’s all about exploring the streams, walking along the banks, and visualizing core low cost automated physical measurements in specific eco systems.

To scale it geographically I’ve enhanced Modular Sensors to be able take a stable build’s “binary” file, encoded as a “.HEX” and then program it onto any number of individual Mayflys. This is taking the output of one build at .pio/build/mayfly/firmware.hex – copy it out of the fiery development crucible where it will get deleted next time platformio is started – and give it a specific descriptive name “myafly_tu_id01_200418_1432.hex” to some directory, for example, “field deploy”.
Then this can be downloaded to any Mayfly from a command line terminal.

I’ve also added a “Geographical Configuration” enhancement to my version of Modular Sensors. This allows all the geographically specific definitions – like the MonitorMyWatershed UUIDs to be specified on the microSD that is plugged into the Mayfly. Then software called an “ini” reader, reads a “ms_cfg.ini” file on the microSD into Modular Sensors.
The ini reader works with “[sections]” and each section has a unique ”name” with “name=value” pairs.
It’s edited on your workstation, and then individually customized ms_cfg.ini added to microSD cards.

The sections I’ve made so far include
;This section required. Max 80 active chars, not including after any ;     
LOGGER_ID =TU-RC-01a ;Site Reference and file name    
TIME_ZONE=-8 ; -12 to +12    

Then to describe the [network]     
WiFiPwd= ; no pwd! only for the demo    

And then for the MonitorMyWatershed details    
; From provider   
REGISTRATION_TOKEN=eaefa578-6272-43dd-bc02-91bf5763demo ; Device registration token   
SAMPLING_FEATURE= 71ba54f1-df5d-4258-8636-664b17e3demo ; Sampling feature UUID    

Batt_UUID= b4a27aae-f76a-4dcc-96c1-4e72eeb5b8df ;Battery voltage (EnviroDIY_Mayfly_Batt)    
SampleNumber_UUID= 7b360702-e8a7-4549-b8b8-4b38c59555df ;Sequence number (EnviroDIY_Mayfly_SampleNum)    

It’s all described at https://github.com/neilh10/ModularSensors/wiki/Feature-INI-file
I create a forum for discussion – https://www.envirodiy.org/topic/geographically-scaling-modular-sensors/

I’d welcome any discussion about how other people have geographically scaled their systems?– any stories of what has worked and whether this might be useful!

It’s all open source, and a current example for a CTD in a forked ModularSensors ‘git’ is at

More links

Some years ago I deployed this array of hobo loggers and sensors – and I hope this will make it easy to do the same with Modular Sensors with a mix-and-match for different sensors.

0 0 votes
Article Rating
Notify of
Inline Feedbacks
View all comments
Click to jump to comments section.x