How To Measure Endangered Vernal Pool Depth Using The Helium Network

Over at Meteo Sci­en­tif­ic (the busi­ness unit I start­ed to run an IoT Sen­sor as a Ser­vice, or iSaaS), I’ve been work­ing on a few projects, one of them around mea­sur­ing ver­nal pools in the mountains. 

Ver­nal pools are “one of California’s most endan­gered wet­land nat­ur­al com­mu­ni­ties” accord­ing to Dave Hogan, head of the Chap­ar­ral Lands Con­ser­van­cy (CLL). They are sea­son­al pools usu­al­ly less than a foot deep found on mesas and down in the val­leys through­out my home region of San Diego. The CLL has a part­ner­ship with the Cen­ter For Bio­log­i­cal Diver­si­ty to mon­i­tor these pools, includ­ing mea­sur­ing their depth through­out the short wet sea­son. Up until now, they were mea­sur­ing the depth by pay­ing con­trac­tors to hike out and man­u­al­ly mea­sure each pool. This seemed like a great use case for the Heli­um network!

With any iSaaS offer­ing, you’ve got three major hur­dles to completion.

First is find­ing a cus­tomer. In this case, that was long time friend Dave Hogan, who runs the Chap­ar­ral Lands Con­ser­van­cy. Dave and I have known each oth­er for at least a decade now, and since we don’t get to spend very much time togeth­er I was excit­ed to use Heli­um as an excuse to spend time with one of the most well versed nat­u­ral­ists I’ve met in person. 

The next ques­tion in run­ning an iSaaS is “Do I have con­nec­tiv­i­ty for my sen­sor?” With Heli­um, that’s usu­al­ly not a prob­lem. It’s got the largest con­tigu­ous wire­less net­work in the world, with most places in urban and sub­ur­ban areas cov­ered. Almost any­where in San Diego (except deep in remote val­leys) has great cov­er­age. Addi­tion­al­ly, if we need­ed cov­er­age in a remote area, I was­n’t wor­ried; off grid IoT con­nec­tiv­i­ty through Heli­um is a spe­cial­ty of mine.

The third step with iSaaS is know­ing what kind of sen­sor to use. I checked in with Bryan at Par­ley Labs as well as Simon over at Dat­a­cake, and we decid­ed to look at two dif­fer­ent types. A Dragi­no LDDS20 Non Con­tact Liq­uid Lev­el Sen­sor and an LDDS75 Dis­tance Detec­tion Sen­sor. I had both in my garage, and after tak­ing a look at ’em, the LDDS75 seemed the appro­pri­ate one to use. The 20 needs to be on the bot­tom of a tank, and these mead­ow pools ain’t tanks.

As usu­al when it comes to sen­sors, they ain’t the eas­i­est things to use and you have to be ready to learn. I jumped on the week­ly Hack­share Col­lec­tive call run by Travis Teague to get help, where Travis, Gray Hat Guy and Nick­ey walked me through set­ting up my device. 

Step one is adding the device to the Heli­um Con­sole. I’ve cov­ered the steps to do that in oth­er posts so will skip it here. The Dragi­nos come with all the iden­ti­fy­ing keys on a stick­er on the box, which is nice: DEVEUI, APPEUI, and APPKEY are all right there. I typed ’em in man­u­al­ly and wait­ed for the XOR fil­ter to let the device show up on Console.

Being a “hands dirty” guy, the next thing I did was open it up.

With Gray Hat Guy walk­ing me through it, I checked the bat­tery lev­el (both with and with­out load) because the device had been sit­ting in the garage for almost a year. 

Then I real­ized you had to remove, rotate, and replace the yel­low jumper in order to con­nect pow­er to the device from the bat­tery. That’s one of those things every hard­ware geek says, “Duh” to, but if you’ve nev­er seen it before, a lot of this does­n’t make sense. 

With the device added in Con­sole and pow­ered on, the next step is to set the para­me­ters up so they match what you want. In my case, mak­ing sure I had it fir­ing on a time inter­val that would be use­ful with­out wast­ing bat­tery life. 

To do this, you’ll need a few sim­ple things that’ll open up a whole new world for you. First, a USB to TTL adapter, about $12 on Ama­zon. Sec­ond, a set of bread­board jumper wires, about $7. Final­ly, if you don’t already have them lay­ing around from the mil­lion oth­er projects you’ve done, spend $8 on break­away pin head­ers.

Once you have those, you can con­nect your device to your com­put­er via USB and use a pro­gram called CoolTerm to change the set­tings on the device. Dragi­no has pret­ty good doc­u­men­ta­tion on how to set all this up, but holler in the com­ments if you need help.

You’ll need to make a few changes in the Options on Coolterm. In the Ser­i­al Port menu, set the bau­drate to 9600. Then, in the Ter­mi­nal menu, change the Mode to Line Mode, use CR+LF Key Emu­la­tion, and turn on Local Echo. 

For this, the first thing I did was get a read­out of what the set­tings cur­rent­ly were, using AT+CFG. That’ll spit out all the cur­rent set­tings. In this case, I was look­ing for the TDC set­ting, which is the “trans­mit time”. I want­ed to test this device on my foun­tain at home with a short­er inter­val just to see how it looked on Dat­a­cake, then set it to a longer inter­val lat­er to pre­serve bat­tery life. I start­ed with a 5 minute inter­val, saved it, unplugged the device and fas­tened the cov­er back on for testing.

I head­ed into the garage to knock togeth­er a quick PVC frame to attach it to. 

These first test rigs don’t have to be pret­ty, they just have to work. With that done, I set it up to mon­i­tor the liq­uid lev­el in my foun­tain in the backyard. 

Here it is with 5 minute intervals:

Once I was con­fi­dent it was work­ing I took it all down, brought it back in, hooked it back up to my com­put­er and set the time inter­val to an hour. 

The next step is to find out from the client what they’re OK with as far as a mount­ing stand, assess the site, then build some­thing that’ll work for his needs. Time for a hike in the moun­tains with a GLAMOS to check cov­er­age. I’ll be back lat­er this month with a fol­low up!


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.