Tide Gauge

Operating Principle

The tide gauges are mounted on fixed structure above water. They measure the distance from the sensor to the water surface by measuring the time-of-flight of ultrasound (ping, then listen for echo). This variable is named d2w ("distance to water"). Since the mount height is fixed relative to the bottom of the water body, e.g. the side of a bridge or a pier, water depth can be inferred by subtracting d2w from the height of the sensor.

Distance Measurement

The operating range of the distance sensors is typically 0.3 to 5 meter, though a few recent ones are now equipped with 0.5~10 meter sensors. Resolution is 1 mm while accuracy is TBD with internal temperature compensation. The temperature sensor measures the housing temperature. It does not directly measure the temperature of the air column.

The distance measurements are in unit of millimeters.

At the lower limit ("high tide"), for the 0.3~5m version, a reading of 300 means the target (water surface in this case) is 300 mm or less to the sensor (e.g. during abnormal flooding events). For the 0.5~10m version, that number is 500.

At the upper limit ("low tide"), the maximum reported distance for the 0.3~5m version is 4999; a reading of 5000 means no target is detected. For the 0.5~10m version, the numbers are 9998 and 9999 respectively. No-target readings are excluded in the sample average and standard deviation calculation.

Measurement Interval

There are currently two sampling schemes as of January 2020.

For tide gauges deployed before 2020: one distance measurement is taken every second. Once 60 measurements have been collected, the measurements are averaged into one sample. Depending on configuration, some transmit as soon as a sample is computed (i.e. transmission interval is one minute), while other collect up to 10 samples before transmission (i.e. 10-minute transmission interval, each containing 10 samples).

Starting in 2020, some tide gauges employ an alternative sampling scheme: 181 distance measurements are taken at one measurement per second, followed by ~179 seconds of idling. The 181 measurements are averaged into one sample. A transmission is made when two samples have been collected. In other word: one sample every 6 minutes, one transmission every 12 minutes, each containing two samples, with each sample being the average of 181 distance measurements.

Note about the "averaging": among the 181 measurements, those outside of 3-sigma are rejected. No-target readings are also rejected as well as failed sensor reads (e.g. sensor did not respond within the 1s measurement window; usually indicative of hardware damage such as water intrusion). Average and standard deviation are calculated again for the remaining measurements.

Implementation Details

There are two types of tide gauges in terms of the data link used: an XBee version (900 MHz ISM-band), and a cellular (2G/3G/LTE) version. The XBee version requires on-site internet gateway for internet access, while the cellular ones connect to the internet directly.

There is no non-volatile data memory in the tide gauges.


All data (tide gauge or not) coming into the server are timestamped by the server. This variable is named ReceptionTime, and is the server's time (UTC) when the data reached the server.

While the tide gauges do not contain internal real-time clock, the cellular version does synchronize its clock and timestamp the samples using internet time prior to every transmission (variable Timestamp or ts). The 900MHz tide gauges on the other hand do not timestamp their samples and instead rely solely on ReceptionTime.

Energy Source

The tide gauges are solar powered with battery backup (lithium rechargeable from 11 Wh to 26 Wh depending on configuration). The cellular version can operate without solar input for 7~22 days (depends on battery configuration, firmware+hardware revision, and cellular signal strength), while the 900MHz version would last about 30 days. The cellular version would shut down for 24 hours when battery charge is low. It then checks battery level every 24 hr. It only resumes operation if battery charge level is above threshold (~3.6V for recent deployments).

Tide gauge components with 0mm mark (pre-deployment)