Arcane Ideas is happy to introduce BeachDisplay2 . The next evolution in our solar-powered outdoor environmental monitoring system.

BeachDisplay2 is designed to operate year-round in a marine outdoor environment. It is completely self-powered, and operates completely unattended.

The system features an integrated sensor that measures local rainfall, outside temperature, humidity, and atmospheric pressure.

The large, 11.6" e-paper display is easily readable, and consumes minimal power. Display content and operating parameters are remotely reconfigurable.

The system interacts with users through a non-contact IR sensor, allowing additional display pages or other functions to be loaded or executed on request.

The current operating configuration for BeachDisplay2 is designed to support swimmers, beachgoers, watercraft operators and fishermen by providing easy access to data that most affects their ability to safely enjoy life outside.

It is available in two versions: WiFi and Cellular via LTE-M/CAT-M1/NB-IOT.

Current Status

A new prototype has been built and is fully functional using live sensor data. The first display boards for the new 11.6" display have arrived from fab, populated and tested. To the left is a picture of the main display with live data.

The controller board is nearing release and will be available separately. Designed as an stand-alone Arduino shield, the controller features a solar maximum power point charge controller, LiPO battery charger, battery fuel gauge, e-Paper interface, SD card and SPI flash storage. There's also an interface to install an ESP8266 ESP01 WiFi module for local OTA configuration or for use as an extra hardware serial port.

Finally, we (and by we, I mean 'I') are adding some modifications to the enclosure to integrate design changes to enhance ease of installation. Below are some renders of the latest design.

What's different?

BeachDisplay2 features an integrated low-to-no-maintenance optical sensor that measures local rainfall. Once an hour, the accumulated rainfall during the previous hour is captured, stored and analyzed. The system maintains a running list of the previous 72 readings. A running sum of the previous 24 and 48 hours is displayed and used to determine rainfall events as defined below.

First off, "why do we care how much rain has fallen when it's nice and sunny outside?"

In Anne Arundel County, Maryland, the county health department offers this guidance:

Preemptive Rainfall Advisory

After rainfall of 1/2 inch or more, all Anne Arundel County beaches are under a no swimming/no direct water contact advisory for at least 48 hours due to predicted elevated bacteria levels from rainwater runoff and increased health risks. Do not swim in cloudy, murky water.

Well, isn't that nice. To be completely honest, I probably wouldn't even bother to look that up if someone wasn't already doing it for me, not to mention that it's not the easiest rule in the world to interpret for the average beachgoer (or even for an engineer).

So, how do you know when this rule is in effect? What's a rainfall of 1/2 inch? And what interval is that measured in? In one hour? In 24 hours? AND how do I know it's "after the rainfall" so I can start the clock?

Also, you can see that there are two sources (Operation Clearwater, and the Anne Arundel County Board of Health) that take water samples and directly measure the bacterial count of the water. They only test roughly once every two weeks, but this is the most direct method to determine water quality. Both sources do not test year round, and both stop testing around the end of August. Since I have a direct view of the beach, I can guarantee you that people still visit (and get in the water) all times of the year.

BeachDisplay2 is designed to provide an interpretation of all of the above sources using locally measured data in real time.

Let's start with "what is a rainfall event?" There are a lot of definitions for events, so for the sake of this calculation I'm defining it to be a continuous sum of the previous 24 hours of measurements. That is, BeachDisplay2 measures the accumulated rainfall within a defined period (which right now is 1 hour), and then continuously sums up the previous 24 samples. If this sum is over 0.5 inches, I declare an "event".

Another way to state this is too look at the rainfall rate, which comes out to 0.5 inches in 24 hours, or roughly 0.021 inches per hour. For comparison a heavy rain is considered to be 0.3 inches per hour.

To determine when the rain stops, we look at the rate over the last 2 hours. If the slope (rate) is much less than the 0.021 in/hr, then I declare the rain to have stopped. For this I used a threshold of 0.005 in in 2 hrs. The rain gauge has a base accuracy of 0.001 in, so this seems like a good number. At this point I start the count of hours from the last event.

Now, if the rain starts again, AND the slope is greater than 0.02 in/hr, AND the rainfall in the last 24 hours again exceeds 0.5 inches, then I reset the counter. Think of it this way, the amount of rainfall has to be enough to push the number back over 0.5 inches to reset the count. The rate (slope in inches/hr) of the new rainfall has to be greater than the rate you would need to achieve 0.5 inches in 24 hours (it has to catch up!) in order to push the value back above the threshold

Once the count hits 48 (hours), then we know the event has passed and the rule is no longer in effect. You can also look at the amount of rain in the last 24 and 48 hours. These are both running sums of the previous 24 or 48 samples respectively.

In any case, historical data and graphs will be available here (just like the telemetry data for BeachDisplay). I love lots of graphs...

BeachDisplay2 also does one more interpretation. It looks at the timestamp on the test data and determines if they're current (fresh). I'm defining this to be 2 weeks to correspond to the sampling interval. This shows up in how it determines what indicators (running along the top of the display) to light.

There are 3 indicators (flashing LEDs in stoplight style: green, yellow, red) that correspond to this:

  1. If all bacterial counts are below the threshold (104cfm/ml) AND there hasn't been an event in the last 48 hours, all is well (condition GREEN).

  2. If either bacterial count is over the threshold (and they're current) OR if there was an event in the last 48 hours, then you really should exhibit caution or at least review the data so you're making a conscious decision. I define this as condition YELLOW, meaning CAUTION.

  3. If either bacterial count is over the threshold AND there was an event in the last 48 hours (and they're current), then that means you REALLY shouldn't swim, but it's still your choice (just maybe not a good one...). I define this as condition RED, or VERY RISKY.

The system can't think for you, so use the data wisely and above all, THINK.

One disclaimer, Arcane Ideas presents this data as a public service, we don't guarantee that the water is safe, nor do we guarantee the accuracy of the data. Some data is provided by third parties, presented for informational purposes only. Use your best judgement to determine you're own personal assessment of risk.