Skip to main content

Sensor Output


$ANBANB Sensors messsage identifier
4 digit hex number
TIMESTAMPSample timestamp
PHSample pH value (pH)
(2 decimal places)
TEMPSample temperature (°C)
(2 decimal places)
SALINITYSample salinity (ppt - parts per thousand)
(1 decimal place)
CONDUCTIVITYSample conductivity (mS/cm)
(1 decimal place)
Conductivity is calculated to 25C using this converter
TRANSDUCER HEALTHTransducer health status code (0 to 6)
see below for further information
SENSOR DIAGNOSTICSSensor health status code (0 to 3)
see below for further information
RESERVEDcurrently 0
RESERVEDcurrently 0
FILE NUMBERthe measurement data file number

All output as ASCII


The C function for calculating the CRC value is:

// Compute the Modbus RTU CRC
UInt16 ModRTU_CRC(byte[] buf, int len)
UInt16 crc = 0xFFFF;

for (int pos = 0; pos < len; pos++) {
crc ^= (UInt16)buf[pos]; // XOR byte into least sig. byte of crc

for (int i = 8; i != 0; i--) { // Loop over each bit
if ((crc & 0x0001) != 0) { // If the LSB is set
crc >>= 1; // Shift right and XOR 0xA001
crc ^= 0xA001;
else // Else LSB is not set
crc >>= 1; // Just shift right
// Note, this number has low and high bytes swapped, so use it accordingly (or swap bytes)
return crc;

Displayed pH value

The number displayed for a pH reading can contain 2 types of data:

nn.nnSensor measuring pHNo action required
99.99ErrorPlease check the transducer health number for instruction

Displayed Salinity/Conductivity value

Salinity and conductivity are only available in the Scanf command.
The number displayed for a salinity or conductivity reading can contain 2 types of data:

99.9This is the normal output if running a ScanO commandNo action required
nn.nSensor measuring salinity/conductivityNo action required
99.9If pH measurement is ok, the salinity is out of rangePlease run the ScanO command for more accurate pH measurements
99.9If pH measurement is not okFollow transducer health instructions

Transducer Health

Health numberExplanationAction
0Healthy TransducerNo action required
1Transducer will need abrading soon- Check correct scan command
- Abrade the transducer based on scanning profile and access frequency; if accessed daily, wait until the health number reaches 2 before abrading, otherwise, abrade now for sensors not accessed for weeks/months
2Transducer needs abrading now- Check correct scan command
- Abrade the transducer
3Transducer needs replacing- Check correct scan command
- Replace the transducer (or transducer not immersed for sensors with serial numbers less than 300200)
4Transducer is not immersedImmerse the sensor
5No valid reference tracker measurementPlease wait for the next measurement
6No valid pH measurementPlease wait for the next measurement

Sensor Diagnostics

Diagnostic numberExplanationAction
0Healthy SensorNone
1Clock Battery ErrorIf there is no external power to the sensor the real time clock will not hold the programmed time
- If the sensor is powered, the time set and data streamed, this failure is not an issue
- If the sensor is in automonous mode the clock will fail if disconnected from the power when it was programmed and placed on an external battery
-Users can record when the sensor was first switched on (where the sensor's time will be set to 0) and calculate the times externally, or, if this is not viable, contact
2SD Card ErrorA failing in the internal data save has occurred and no new data can be saved to the internal memory
- If the sensor is connected to an external communications system the sensor will continue to stream data, however no data will be saved in autonomous mode
- Please contact
3System ErrorContact
4Modbus Start DelayWait for start delay to elapse