Rivernet - A Wireless Sensor Network for remote monitoring of riverbed ecosystems

Overview

Given the growing global importance of water issues caused by dwindling water resources and global climate change, building and deploying a real-time sensing infrastructure across water bodies - including rivers, streams, and watersheds - will be one of the great scientific hurdles and also one of the great research opportunities of the next several decades. Despite numerous technological advances in the area of sensors and wireless sensor networks, a chasm separates what is offered by off-the-shelf wireless products and what is needed by scientists for robust, easy deployment of a monitoring infrastructure over running waters. As a result, the vision of real-time data continuously streaming from remote sensors to the laboratory servers remains elusive for most scientists today.

To facilitate research in water-based sensor network deployments, we are developing hardware and software systems that give the following capabilities:

  1. Support for a diverse array of sensors. River scientists are interested in many different aspects of river ecology. A non-exaustive list of desirable sensors includes underwater digital cameras, hydrophones (underwater microphones), water quality sensors, thermometers, and geological imaging equipment.
  2. Robust energy harvesting capabilities. The effort involved in deploying water based sensing equipment motivates a perpetually operating sensor network. Our prototype system has the ability to harvest solar energy and recharge a Lithium-ion battery. Energy monitoring hardware allows system performance to be scaled depending on the availability of solar energy. 
  3. Hardware that supports performance scaling. Our system prototype uses low-power but computationally-limited hardware to control higher-power but more capable hardware. A low-bandwidth, long-range radio is used to schedule the usage of an 802.11 radio and Linux-based microcomputer.
  4. Remote troubleshooting capabilities. When networks become large, the capability of quickly identifying a faulty node becomes increasingly important. The ability to diagnose and correct troublesome software over a control channel is also desirable.

Energy Harvesting Node Design

Harvesting node picture

Energy Harvesting Node (Slightly smaller than a shoebox)

We have designed an energy-harvesting capable node that will enable the exploration of the goals mentioned above. Below is a block diagram that shows the system components and how they are interconnected. The harvesting node fits inside of a shoe-box sized waterproof Pelican case.

Harvesting node block diagram

Energy Harvesting Node Block Diagram

Gumstix

The main embedded processor used in our harvesting node is an ARM-based Gumstix microcomputer (available here). Specifically, we are using the Verdex XM4 motherboard coupled with netCF-vx and breakout-vx daughterboards. The netCF board allows a CF-Based WiFi card, while the breakout board exposes a variety of interfaces including UART, I2C, Power connections, and USB Host.

The Gumstix is connected to a custom board that allows a low-power sensor platform to toggle the power supply. Data is exchanged between the Gumstix and Tinynode via logic-level UART. An additional UART can be used to connect an embedded camera (CMUCam3, available here), although we currently do not have a rechargable power solution for the CMUCam when connected to the Gumstix.

The I2C bus is used to communicate with a real-time clock that restores the system clock after the Gumstix is brought up from an 'off' state.

A variety of peripherals can be connected via USB. We are currently using USB to connect a flashdrive that provides an additional 1GB of storage. We are also planning to use a USB audio-interface to connect a Hydrophone (underwater microphone).

A useful resource for Gumstix-related information can be found here. Here, there is good description of how to get the linux buildroot environment setup, how to flash the filesystem and kernel, power consumption characteristics of the Gumstix motherboard, etc. Currently we are running linux kernel 2.6.21. Multihop communication is achieved using version 1.5 of UC Berkeley's DTN implementation.

Tinynode

The low power sensor platform used in our energy harvesting node is the Tinynode, avaiable from a Swiss-based company called Shockfish (available here). The sensor features a low-power MSP430 microcontroller, a variable-bandwidth XE1205 radio tranceiver, and 512kb of flash. The Tinynode is used for energy monitoring, and forwarding control information through is XE1205 radio. A bit-banged 1-wire interface is used for communication with Fuel Gauge ICs, and a GPIO line to control the Gumstix power supply. One of the available UARTs is used to interface with the XE1205 radio, while the other is used to communicate with the Gumstix.

The node is programmed using TinyOS (http://www.tinyos.net). We have drivers available for TinyOS-2.x that allow the node to communicate with the fuel-gauge ICs.

Custom Power Board

The Gumstix, Tinynode, and all other attached peripherals receive energy through a custom power board. The design is a derivative of the power board used for the Turtlenet project at the UMass PRISMS lab. The primary features of the board are a pair of fuel gauge ICs (The DS2750 and DS2770)that monitor instantaneous current, accumulated current, voltage, and temperature. Two ICs are used because one measures net current flow, while the other measures consumed flow. These two values together allow you to determine the amount of charge current available. The DS2770 is used to regulate the charging of the Lithium-Ion battery from a solar panel.

The feature we added to the board is a switching boost-regulator that pulls up the 3.7V Li-Ion battery to the 4V required to operate the Gumstix. Using the enable pin of the regulator, we can cut-off power to the Gumstix.

Hardware (schematics and board layout): eaglecad files, schematic (png), board (png), Bill of Materials

Underwater Camera

To allow underwater pictures to be captured, we have placed an embedded robotics camera -The CMUCam3- in a waterproof pelican box (specifically the 1020). Pelican states that the camera is rated for 1m submersion for 30 minutes, although we have found the case not to leak after being placed in a fish tank overnight. We drilled several holes in the case to bring RS232 out, and sealed the holes with a product called "WaterWeld". The camera is currently powered from 4x Alkaline AA batteries. We would like to feed power into the box from a power board equipped with a solar panel, but do not have a 6V power supply available. We have found the camera's batteries currently deplete after a 24Hr period after taking ~40 images (it isn't immediately clear whether this is a result of image capture or static power dissipation).

Underwater Camera Picture

Modified Pelican case containing underwater camera

Other Parts

Other Parts we haven't mentioned in much detail are the housing used for the node itself, the solar panel, and the lithium battery.

Battery

The battery used was purchased from Ultralife. The battery has a nominal 3.7V output, and a capacity of 6.1Ah. The battery voltage is pulled down to 3V by the Power Board (MAX1921 regulator) to operate the Tinynode and pulled up to 4V (TPS61030 regulator) to operate the Gumstix computer.

Solar Panel

The solar panels used for our node were purchased from Solar World, model# SPE-350-6. They are rated for an open-circuit voltage of 9V and short-circuit current of 350mA. Under full sunlight conditions at noon, we have found that the panels produce ~700mW of power.

Realtime Clock

To mantain the Linux system time after a power cycle, we make use of a DS1307 real-time clock. We initially purchased a DS1337 based development board from Sparkfun Electronics , but realized this RTC requires 5 volts. The DS1307 is pin-compatible with the DS1337, so we were able to swap chips by removing the backup battery from the board (DS1337 does not use a backup battery). This backup battery isn't necessary because our system assumes that we will always have energy available from the Lithium-Ion battery, and the node would fail if this energy store were depleted. The RTC is simple to interface with the Gumstix via I2C. The driver is available within the Kernel configuration options within the gumstix-buildroot environment.

Node Housing

All of the node components fit comfortable inside a 1060 Pelican Case. A node was deployed on the roof of the Computer Science Department for a period of 4 days under fairly poor winter weather conditions. The box contained no moisture after deployment, so it seems sufficient for weatherproofing the electronics.
©2008 Sensors Group, Computer Science Department, University of Massachusetts Amherst