EnviroSense.io in Alfa

Another project we have been developing is a challenge presented to us by a GIS department in a regional research organization (IMIDA). The challenge consisted in taking data from a range of sensors and storing them for post processing in a GIS system.

What we have developed is taking information from the following sensors:

  • pH (Atlas Scientific)
  • Conductivity (Atlas Scientific)
  • ORP (Atlas Scientific)
  • Dissolved Oxygen (Atlas Scientific)
  • Pressure (Blue Robotics)
  • Temperature (Blue Robotics)
  • Echosounder (AIRMAR DST800)
  • GPS (uBlox)

The sensor manufacturors listed are the once we are using for our development purposes. I think it should be relatively easy to implement other sensors, particularily with regards to the echosounder & GPS, as these are just sending NMEA sentences anyway.

The EnviroSense interface board is acting as the main interface between the sensors. It’s designed to be working with with a Arduino compatible board called chipKIT PI and a Raspberry PI, so it could be integrated directly with the BlueROV2 (there might be some space issues) or run separately (our configuration).

The whole system works autonomously, stores the data in a MySQL database on the RPI3, and presents in a HTML5 based graphical interface using socket.io

We’ll shortly upload the code to our Nido Robotics Github account, but we need to do a bit of “homework” first.

We’ve also just ordered the first batch of PCB’s, and I’m hoping to have them by the end of next week. I’ll keep you all posted.


Kudos on your progress, this is great. The standalone concept certainly has a lot of utility. You could also make this mavlink-enabled for use with the BlueROV2, and then the data would be visible live in QGC, as well as incorporated into the autopilot logs. Then you could also use a number of mavlink log tools to perform post processing on the data.

Yes, this is our to-do list, and @QuiGon2 is super keen .
We just have to find the time for it all. I wish there where more hours in the day :wink:
Once the code is published there is obviously chances for others to contribute too.

Let me know when you get to the testing phase, I would be interested in adding an echosounder and a couple of other tools to my second in progress ROV, and I have ArcGis.

Great! ArcGis is what the IMIDA is using too :wink:

PCBs are here:

Tomorrow we will start assembling components, and if everything goes well we will leave it in our test tank through the weekend.

1 Like

Is it worth pointing out that neither the uBlox GPS or Airmar sensor will work at depth and are not suitable for ROV’s?

I was getting my hopes up about the Airmar until I found that it has a max depth rating of 3m!

Yes, off cours, that’s correct. Thanks for pointing that out; as it might be obvious for everyone, let me clarify:

GPS will not work underwater; just a couple of centimeters below the surface you will loose reception. This has to do with the frequency GPS satelites transmit on (10.23 MHz x 120 for L1 and x 154 for L2), and the fact that such high frequencies have little to none propagation through any solid mass.

The Airmar DST800 that we are using is a regular boat echosounder, and designed to be installed on a small boats hull, hence the restricted immersion capabilities. I’m pretty sure though that someone can figure out a way to make this (or other echosounder) depth proof for ROV type depths. Altimeter anyone?

The design of this system is based on the requests of one of our clients, a regional research institute. They wanted to have the possibility to have the ROV working in “surface mode” in order to generate bathymetric maps, but also to dive and capture enviro-chemical data in the water column.

We started off with a kit of Atlas Scientific sensors. A.S. have a board and a lot of resources to go that makes it pretty much plug and play to integrate the different sensors and store the data on an Arduino (and shortly a RPI).
But we where also looking for a way to capture NMEA data and store it, preferrably in the same log, so that our client could easily integrate all the data and generate models that would allow them better understanding of what is happening in our environment.

As I was doing research for ways to integrate all of these data, it quickly became clear that it although great resources exists to do one or the other, I was unable to find anything that would let us do both in a quick and simple manner. So we ended up designing it ourselves.

Key features:

The EnviroSense can capture simultaneously data from a variety of sensors, and store it in a mySQL database.

The main way I envision this being done or used, is that the vehicle will go to a point, either manually controleld or by waypoint programming. It will store the position, the depth from echosounder and then submerge itself to whatever depth the operator is comfortable with, storing environmental data parsed with pressure from the pressure sensor (Blue Robotics depth sensor mounted on ROV) from the column. Alternatively, without the echosounder, you could submerge the vehicle to the bottom (or MOD). Resurface and repeat.

Another way to use this system is as a multiparametric sensor system: Configure first as CTD, reconfigure for next mission (or next cast) with DO / ORP / Temperature.

We are probably also installing an array on a local aquaculture reserach facility as a permanent installation.

Finally, there are probably a lot more ideas out there on how this can be used, I’m just looking at it from our clients perspective. I’m more than happy to hear your ideas.

As of writing this, we are assembling one of the boards, and I’m hpoing we will have two ready before the end of the weekend. That will give us some time to test it in our test tank, and on Wednesday we have our first field teste together with our client. I’ll keeo you all updated with the progress.

@roy I’ve been looking to the Atlas sensors for various USV projects, including SolarSurfer2 and came across the Eniac software: https://www.atlas-scientific.com/product_pages/eniac.html It doesn’t look like Eniac has GPS location logging with the sensor snapshots, so I’ll be looking forward to EnviroSense.

Yeah, ENIAC came out while we where working on the first prototype. The HMI looks great (Atlas have a fantastic designer) but it is off course focused on their sensors.

EnviroSense is taking their sensor info and merging it with any NMEA compatible sensor (GPS, echosounder, even wind info and similar), and I2C sensors like the BR depth sensor, making it great for CTDs.

We are still carrying field tests, and have started to work on the next design iteration (v0.3). I think this one will be beta tester ready. Will keep you all updated when as we progress.


Hello Roy

How are you going with the EnviroSense board?

I am interested in this for some USV projects.


Greetings, is there any post where this process can be carried out?

Hi @milazzo,

Which process are you asking about?

Making a MAVLink-enabled device requires using the MAVLink protocol. For programmatic post-processing and analysis of log data there’s an example here, or if you’re primarily interested in viewing/plotting the data, with some minor processing capabilities, check out Log Viewer :slight_smile: