Datasheet

Changing I
2
C address
This is a 2 step procedure
0x02 – I
2
C address unlock register
The two unlock commands must be sent back to back in immediate succession. No other
write, or read event can occur. Once the register is unlocked it will equal 0x00 (unlocked).
0x55
0xAA
Start Stop
unlock register
unlock register
0x55
Start Stop
0xAA
1 unsigned byte
Read only value = 0 or 1
0 = unlocked
1 = locked
To unlock this register it must be written to twice.
To lock the register
Write any value to the register other than 0x55;
or, change the address in the Device Address Register.
Step 1
Issue unlock command
To change the I
2
C address, an unlock command must first be issued.
R/W
R/W
R/W
R/W
0x04: Interrupt control
0x05: LED control
0x06: Active/hibernate
0x07: New reading available
R/W
R
Read only
Read and write
Accessible registers
R/W
R/W
0x02: SMBus/I
2
C address lock/unlock
0x03: SMBus/I
2
C address
0x10: Temperature compensation MSB
0x11: Temperature compensation high byte
0x12: Temperature compensation low byte
0x13: Temperature compensation LSB
0x14: Temperature confirm MSB
0x15: Temperature confirm high byte
0x16: Temperature confirm low byte
0x17: Temperature confirm LSB
Confirmation
Compensation
R
R
0x00: Device type
0x01: Firmware version
Device information
Device address
R/W
R/W
0x08: Set probe type MSB
0x09: Set probe type LSB
R/W
0x0E: Calibrate request
0x0F: Calibration confirm
Probe type
Control
R/W
R/W
R/W
R/W
0x0A: Calibration value MSB
0x0B: Calibration value high byte
0x0C: Calibration value low byte
0x0D: Calibration value LSB
0x18: EC reading MSB
0x19: EC reading high byte
0x1A: EC reading low byte
0x1B: EC reading LSB
Sensor Data
R
R
R
R
R
R
R
R
R
R
R
R
0x1C: TDS reading MSB
0x1D: TDS reading high byte
0x1E: TDS reading low byte
0x1F: TDS reading LSB
R
R
R
R
0x20: Salinity reading MSB
0x21: Salinity reading high byte
0x22: Salinity reading low byte
0x23: Salinity reading LSB
R
R
R
R
Calibration
R
byte i2c_device_address=0x64;
byte unlock_register=0x02;
Wire.beginTransmission(bus_address);
Wire.write(unlock_register);
Wire.write(0x55);
Wire.endTransmission();
Wire.beginTransmission(bus_address);
Wire.write(unlock_register);
Wire.write(0xAA);
Wire.endTransmission();
Example code
address unlock
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
0x09
0x0A
0x0B
0x0C
0x0D
0x0E
0x0F
0x10
0x11
0x12
0x13
0x14
0x15
0x16
0x17
0x18
0x19
0x1A
0x1B
0x1C
0x1D
0x1E
0x1F
0x20
0x21
0x22
0x23
14
Copyright © Atlas Scientific LLC