3
Revised 3/12/18
Dissolved Oxygen
EZO
Circuit
™
Calibration 1 or 2 point
Temperature, salinity
and pressure compensation Yes
PATENT PROTECTED
Written by Jordan Press
Designed by Noah Press This is an evolving document, check back for updates.
This is sensitive electronic equipment. Get this device working in
a solderless breadboard first. Once this device has been soldered
it is no longer covered by our warranty.
F F
G G
H H
I I
J J
1 5 10 15 20 25 30
r 0.1
Table of contents
Circuit dimensions 4 Calibration theory 7
Power consumption 4 Preserve calibration solution 8
Absolute max ratings 4 Power and data isolation 9
EZO TM circuit identification 5 Correct wiring 11
Operating principle 6 Available data protocols 12
UART IC
2
UART mode 14 I2C mode 41
Default state 15 Sending commands 42
Receiving data from device 16 Requesting data 43
Sending commands to device 17 Response codes 44
LED color definition 18 LED color definition 45
UART quick command page 19 I2C quick command page 46
LED control 20 LED control 47
Find 21 Find 48
Continuous reading mode 22 Taking reading 49
Single reading mode 23 Calibration 50
Calibration 24 Export/import calibration 51
Export/import calibration 25 Temperature compensation 52
Temperature compensation 26 Salinity compensation 53
Salinity compensation 27 Pressure compensation 54
Pressure compensation 28 Enable/disable parameters 55
Enable/disable parameters 29 Device information 56
Naming device 30 Reading device status 57
Device information 31 Sleep mode/low power 58
Response codes 32 Protocol lock 59
Reading device status 33 I2C address change 60
Sleep mode/low power 34 Factory reset 61
Change baud rate 35 Change to UART mode 62
Protocol lock 36 Manual switching to UART 63
Factory reset 37
Change to I2C mode 38
Manual switching to I2C 39 Circuit footprint 64
Datasheet change log 65
Warranty 68
13.97mm
(0.55”)
20.16mm
(0.79”)
10.8mm
5.8mm 8.38mm
(0.4”)
(0.22”) (0.32”)
6.0
Membrane
Electrolyte
Anode (Zinc)
Flow Dependence
Stagnant water
Dissolved Oxygen
90%
Oxygen being
consumed by probe
One of the drawbacks from using a galvanic
60% probe is that it consumes a VERY small amount
of the oxygen it reads. Therefore, a small amount
of water movement is necessary to take accurate
readings. Approximately 60 ml/min.
20%
0 5 10 15 20 25 30
Time (sec)
The Atlas Scientific EZO™ Dissolved Oxygen circuit, has a flexible calibration protocol,
allowing for single point or dual point calibration.
“Cal”
C C
D D
E E
F F
G G
H H
I I
J J
1 5 10 15 20 25 30
Do not unscrew
1 2 3
1. Pull off and discard cap from the Dissolved Oxygen probe. (only used to protect probe during shipping)
2. Let the Dissolved Oxygen probe sit, exposed to air untill readings stabalize (5 – 30 sec).
3. Calibrate using the command "Cal".
4. After calibration is complete, you should see readings ~9.09 – 9.1Xmg/L.
Trapped air
(only if temperature, salinity and pressure compensation are at default values)
TM
“Cal,0”
0:10 − 1:30
“Cal”
C C
D D
E E
F F
G G
H H
I I
J J
1 5 10 15 20 25 30
Only perform this calibration if you require accurate readings below 1.0 mg/L
Trapped air TM
“Cal,0”
N2 N2
0:10 − 1:30
1 2 Dissolved Oxygen
3
Void space
1. Stir probe in Zero D.O. calibration solution to remove trapped air, (which could cause readings to go high).
2. Let theN probe
2
N
sit in Zero
2 O D.O.Ocalibration solution untill readings stabalize (0:10 – 1:30).
2 2 Gas
3. Calibrate using the command "Cal,0".
How to preserve the
Zero D.O. calibration solution
Oxygen is everywhere. The Zero D.O. calibration solution has been designed to
chemically absorb oxygen. Once the bottle has been opened the test solution has been
exposed to oxygen and will slowly stop working.
N2 N2
Void space
N2 N2 O2 O2
Gas
Inside each bottle of the calibration solution is a small amount of nitrogen gas that helps
displace oxygen out of the bottle during the filling process. When the Dissolved Oxygen
probe is removed from the bottle, oxygen will enter the bottle and begin to dissolve
into the solution.
In order slow down this process, fill the void space of the bottle with any gas (other
than oxygen) to preserve the calibration solution. Gas from a lighter works great if other
gases are currently unubtainable.
When electrical noise is interfering with the Dissolved Oxygen readings it is common to
see rapidly fluctuating readings or readings that are consistently off. To verify that
electrical noise is causing inaccurate readings, place the Dissolved Oxygen probe
in a cup of water by itself. The readings should stabilize quickly, confirming that electrical
noise was the issue.
Correct Incorrect
B B B B
C C C C
D D D D
1 E 5 10 15 20 25 30 E 1 E 5 10 15 20 25 30 E
A A A A
Correct Incorrect
B B B B
C F C F C F C F
D G D G D G D G
E H E H E H E H
I I I I
J J J J
F 1 5 10 15 20 25 F 30 F 1 5 10 15 20 25 F 30
G G G G
H H H H
I 1 5 10 15 20 25 I 30 I 1 5 10 15 20 25 I 30
Basic EZO TM J
1
A
B
5 10 15 20 25 30
J A
B
J
1
A
B
5 10 15 20 25 30
J A
B
C C C C
B B B B
C C C C
F F F F
D D D D
G G G G
E E E E
H H H H
I I I I
F J F J F J F J
1 5 10 15 20 25 30 1 5 10 15 20 25 30
G G G G
H H H H
I I I I
J J J J
1 5 10 15 20 25 30 1 5 10 15 20 25 30
This technology works by using tiny transformers to induce the voltage across an air gap.
PCB layout requires special attention for EMI/EMC and RF Control, having proper ground
planes and keeping the capacitors as close to the chip as possible are crucial for proper
performance. The two data channels have a 4.7kΩ pull up resistor on both the isolated
and non-isolated lines (R1, R2, R3, and R4) The output voltage is set using a voltage
divider (R5, R6, and R,7) this produces a voltage of 3.7V regardless of your input voltage.
Isolated ground is different from non-isolated ground, these two lines should not
be connected together.
ISO-VCC
VCC
ADM3260
VCC VCC
ISO-VCC
VDDP VDDISO ISO-VCC
VIN VISO R5 R7
HDR_TOP R2 4.7K R1 4.7K
VCC
VSEL
1.5K 1.5K
HDR_BTM
RX/SCL SCL2 SCL1 VCC
TX/SDA
NC SDA2 SDA1 RX/SCL
TX/SDA
GND
VCC NC NC NC
GND
C1
GNDP
0.1uf R6
GNDP GNDISO
GND 1.5K
GNDP GNDISO R4 4.7K
10uF
C5
Non-isolated Isolated
10uF
ISO-GND
GND
TX
RX
VCC
B B B B PWR
C C C C RX
D D D D TX
E E E E
Atlas
F F F F Scientific
G G G G TM
H H H H
I I I I
J J J J
1 5 15 15 20 1 5 15 15 20
Part # COM-104
Part # Part #
ISCCB USB-ISO
Incorrect wiring
Extended leads Sloppy setup Perfboards or Protoboards *Embedded into your device
A B C D E F G H I J
1 1
5 5
10 10
15 15
20 20
25 25
30 30
35 35
40 40
45 45
50 50
NEVER
55 55
use Perfboards *Only after you are familar
or Protoboards with EZO TM circuits operation
60 60
A B C D E F G H I J
Default
Settings that are retained if power is cut Settings that are NOT retained if power is cut
Baud rate Find
Calibration Pressure compensation
Continuous mode Salinity compensation
Device name Sleep mode
Enable/disable parameters Temperature compensation
Enable/disable response codes
Hardware switch to I2C mode
LED control
Protocol lock
Software switch to I2C mode
r 0.1
UART mode
8 data bits no parity
1 stop bit no flow control
Baud 300
1,200
2,400
9,600 default
19,200
38,400
57,600
115,200 TX RX
RX
Data in RX TX
TX TX RX
Data out
CPU
Vcc 3.3V – 5.5V
VCC
0V 0V
Data format
Reading D.O. Data type floating point
Units mg/L & (% sat) mg/L = 2
when enabled
Decimal places % sat = 1
Encoding ASCII Smallest string 4 characters
Format string (CSV string when
% sat is enabled)
Largest string 16 characters
Terminator carriage return
14 Copyright © Atlas Scientific LLC
Default state
Mode UART
Baud 9,600
Readings continuous
Temperature compensation 20 °C
LED on
1,000 ms
Green Cyan
Standby Taking reading Transmitting
9,600 baud
(default)
TX RX
CPU
7.82 <cr>
Receiver
Sender
Advanced
ASCII: 7 . 8 2 <cr>
Hex: 37 2E 38 32 0D
Dec: 55 46 56 50 13
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
TX RX
CPU
Sleep <cr>
Sender
Receiver
Short
Advanced
ASCII: S l e e p <cr>
Hex: 53 6C 65 65 70 0D
Dec: 83 108 101 101 112 13
Short
17 Copyright © Atlas Scientific LLC
r 0.1
LED color definition
LED ON
5V +0.4 mA
3.3V +0.2 mA
Example Response
L,1 <cr> *OK <cr>
L,1 L,0
Find <cr> LED rapidly blinks white, used to help find device*
Example Response
Find <cr> *OK <cr>
Settings that are retained if power is cut Settings that are NOT retained if power is cut
Baud rate Find
Calibration Pressure compensation
Continuous mode Salinity compensation
Device name Sleep mode
Enable/disable parameters Temperature compensation
Enable/disable response codes
Hardware switch to I2C mode
21LED control
Copyright © Atlas Scientific LLC
Protocol lock r 0.1
Continuous reading mode
Command syntax
C,1 <cr> enable continuous readings once per second default
C,n <cr> continuous readings every n seconds (n = 2 to 99 sec)*
C,0 <cr> disable continuous readings
C,? <cr> continuous reading mode on/off?
Example Response
C,1 <cr> *OK <cr>
DO (1 sec) <cr>
DO (2 sec) <cr>
DO (3 sec) <cr>
Example Response
R <cr> 7.82 <cr>
*OK <cr>
1,000 ms
Green Cyan
Standby Taking reading Transmitting
600 ms
Example Response
Cal <cr> *OK <cr>
Cal <cr>
Example Response
Export,? <cr> 10,120 <cr> Response breakdown
10, 120
# of strings to export # of bytes to export
Example Response
T,19.5 <cr> *OK <cr>
T,19.5 <cr>
Example Response
S,50000 <cr> *OK <cr>
S,50000 <cr>
Example Response
P,90.25 <cr> *OK <cr>
P,90.25 <cr>
Example Response
O,mg,1 / O,mg,0 <cr> *OK <cr> enable / disable mg/L
Followed by 1 or 0
1 enabled
0 disabled
Example Response
Name,zzt <cr> *OK <cr>
Name,zzt Name,?
Example Response
i <cr> ?i,D.O.,1.98 <cr>
*OK <cr>
Response breakdown
?i, D.O., 1.98
Device Firmware
Example Response
R <cr> 7.82 <cr>
*OK <cr>
Example Response
Status <cr> ?Status,P,5.038 <cr>
*OK <cr>
Response breakdown
?Status, P, 5.038
Reason for restart Voltage at Vcc
Restart codes
P powered off
S software reset
B brown out
W watchdog
U unknown
Example Response
Sleep <cr> *SL
STANDBY SLEEP
5V 13.1 mA 0.66 mA
3.3V 12 mA 0.3 mA
Sleep <cr>
Standby Sleep
13.1 mA 0.66 mA
RX TX
Command syntax
Baud,n <cr> change baud rate TX RX
300
1200
2400
n= 9600 default
19200
38400
57600
115200
CPU
Command syntax
CPU
Locks device to UART mode.
Example Response
Plock,1 <cr> *OK <cr>
Plock,1 I2C,100
Short
GreenRed
*OK <cr> Cyan
White
cannot change to I2C Purple
cannot change to IRed
C 2
*ER <cr>
UART Command
standby Find
Taking reading Changing Comma
e not understood baud rate not under
36 Copyright © Atlas Scientific LLC Short
r 0.1
Factory reset
Clears calibration
Command syntax LED on
"*OK" enabled
Example Response
Factory <cr> *OK <cr>
Factory <cr>
(reboot)
37
1,000 ms
Copyright © Atlas Scientific LLC
1,000 ms r 0.1
Change to I2C mode
Command syntax Default I2C address 97 (0x61)
I2C,n <cr> sets I2C address and reboots into I2C mode
n = any number 1 – 127
Example Response
I2C,100 <cr> *OK (reboot in I2C mode)
I2C,100
(reboot)
Green Blue
Green
*OK <cr> Green Cyan Cyan Purple Pur
now in I C mode 2
UART standby
UART standby
Taking reading Changing Chan
Taking reading
baud ratebaud
38 Copyright © Atlas Scientific LLC
r 0.2
Manual switching to I2C
• Make sure Plock is set to 0
• Disconnect ground (power off)
• Disconnect TX and RX TX RX
• Connect TX to PGND
• Confirm RX is disconnected
•
•
Connect ground (power on)
Wait for LED to change from Green to Blue
CPU
• Disconnect ground (power off)
• Reconnect all data and power
Example
Short
Wrong Example
Short
Disconnect RX line
Settings that are retained if power is cut Settings that are NOT retained if power is cut
Calibration Find
Change I2C address Pressure compensation
Enable/disable parameters Salinity compensation
Hardware switch to UART mode Sleep mode
LED control Temperature compensation
Protocol lock
Software switch to UART mode
r 0.1
I2C mode
I2C address (0x01 – 0x7F)
97 (0x61) default
4.7k resistor
VCC may be needed VCC
SDA
SDA SDA
SCL
SCL SCL
SDA
(TX)
SCL
(RX)
0V 0V
CPU
SDA
SCL
VCC
0V 0V
Data format
Reading D.O. Data type floating point
Units mg/L & (% sat) mg/L = 2
when enabled
Decimal places % sat = 1
Encoding ASCII Smallest string 4 characters
Format string (CSV string when
% sat is enabled)
Largest string 16 characters
TerminatorSDA carriage
SCL
return
(TX) (RX)
SDA
(TX)
SCL
(RX)
SCL
Start I2C address Write Command (not case sensitive) Stop
VCC
97 (0x61) ASCII command string
0V 0V
Example
Start 97 (0x61) Write Sleep Stop
I2C address Command
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL SDA
CPU
Advanced
Address bits The entire command as ASCII with all arguments
SDA
A6 A5 A4 A3 A2 A1 A0 W ACK First letter of command ACK Last letter of command ACK
SCL
Start I2C address Read Response code Data string Null Stop
97 (0x61) 1 byte "7.82" Terminator
(Dec 0)
SDA
(TX)
SCL
(RX)
SCL SDA
CPU
7.82
Advanced
All bytes
Address bits N bytes of data after data are Null R = High
SDA
A6 − A0 R ACK Response code ACK Data ACK Data N ACK Null ACK Null
SCL
1 55 46 56 50 0 = 7.82
Dec Dec
ASCII
Send
command
SDA
(TX)
SCL
(RX)
CPU
Processing delay
Receiving
data
LED ON
5V +0.4 mA
3.3V +0.2 mA
Command Function
Example Response
L,1 1 0
Wait 300ms Dec Null
L,0 1 0
Wait 300ms Dec Null
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
L,1 L,0
Find <cr> LED rapidly blinks white, used to help find device*
Example Response
Find <cr> 1 0
Wait 300ms Dec Null
Short
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
R return 1 reading
Example Response
R 1 7.82 0
Wait 600ms Dec ASCII Null
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
Wait 600ms
Green Blue
Taking reading Transmitting Standby
Example Response
Cal 1 0
Wait 1300ms Dec Null
Cal,0 1 0
Wait 1300ms Dec Null
Cal,clear 1 0
Wait 300ms Dec Null
or 1 ?Cal,2 0
Dec ASCII Null
Example Response
Export,? 1 10,120 0 Response breakdown
Wait 300ms Dec ASCII Null 10, 120
# of strings to export # of bytes to export
Export 1 59 6F 75 20 61 72 0 (1 of 10)
Wait 300ms Dec ASCII Null
Export
1 65 20 61 20 63 6F 0 (2 of 10)
Wait 300ms Dec ASCII Null
...
Example Response
T,19.5 1 0
Wait 300ms Dec Null
T,19.5
Example Response
S,50000 1 0
Wait 300ms Dec Null
S,37.5,ppt 1 0
Wait 300ms Dec Null
S,? 1 ?S,50000,μS 0
Wait 300ms Dec ASCII Null
or
1 ?S,37.5,ppt 0
Dec ASCII Null
Example Response
P,90.25 1 0
Wait 300ms Dec Null
P,? 1 ?,P,90.25 0
Wait 300ms Dec ASCII Null
P,90.25
Example Response
O,mg,1 / O,mg,0 1 0 enable / disable mg/L
Wait 300ms Dec Null
Followed by 1 or 0
1 enabled
0 disabled
i device information
Example Response
i 1 ?i,D.O.,1.98 0
Wait 300ms Dec ASCII Null
Response breakdown
?i, D.O., 1.98
Device Firmware
Example Response
Status 1 ?Status,P,5.038 0
Wait 300ms Dec ASCII Null
Response breakdown
?Status, P, 5.038
Reason for restart Voltage at Vcc
Restart codes
P powered off
S software reset
B brown out
W watchdog
U unknown
Example Response
Do not read status byte after
Sleep no response issuing sleep command.
STANDBY SLEEP
5V 13.1 mA 0.66 mA
3.3V 12 mA 0.3 mA
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
SDA
(RX)
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
Sleep
Standby Sleep
Example Response
Plock,1 1 0
Wait 300ms Dec Null
Plock,0 1 0
Wait 300ms Dec Null
Plock,? 1 ?Plock,1 0
Wait 300ms Dec ASCII Null
SDA
(TX)
SDA SCLSCL
(TX) (RX) (RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SDA SCLSCL
(TX) (RX) (RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SDA SCLSCL
(TX) (RX) (RX)
SDA
(TX)
SCL
(RX)
Example Response
I2C,100 device reboot
I2C,100
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
(reboot)
Example Response
Factory device reboot
Clears calibration
LED on
Response codes enabled
Factory
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
(reboot)
300
1200
2400
n= 9600
19200
38400
57600
115200
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SC
(RX
Serial,9600 (reboot)
Changing to
Blue Blue GreenGreen PurplePurple
UART mode Green White
Blue Red Red
C standby
I2C standby
Taking Taking
readingreading
Changing I2C standby
Changing Command Taking readingFind
Command
I2C ID#I2C ID#not understood
not understood
Example
Short
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
Wrong Example
Short
Disconnect RX line
SDA
(TX)
SCL
(RX)
SDA
(TX)
SCL
(RX)
17.78mm
(0.7”)
2.54mm
(0.1”)
17.78mm
(0.7”)
Datasheet V 4.2
Revised definition of response codes on pg 44.
Datasheet V 4.1
Updated firmware changes on pg. 66.
Datasheet V 4.0
Revised Enable/disable parameters information on pages 29 & 55.
Datasheet V 3.9
Revised information on cover page.
Datasheet V 3.8
Update firmware changes on pg. 66.
Datasheet V 3.7
Revised Plock pages to show default value.
Datasheet V 3.6
Added new commands:
"Find" pages 21 & 48.
"Export/Import calibration" pages 25 & 51.
Added new feature to continous mode "C,n" pg 22.
Datasheet V 3.5
Added accuracy range on cover page, and revised isolation info on pg. 10.
Datasheet V 3.4
Added manual switching to UART information on pg. 59.
Datasheet V 3.3
Updated firmware changes to refeclt V1.99 update.
It is important for the embedded systems engineer to keep in mind that the following
activities will void the EZO™ class Dissolved Oxygen circuit warranty:
• Running any code, that does not exclusively drive the EZO™ class Dissolved Oxygen
circuit and output its data in a serial string.
• Embedding the EZO™ class Dissolved Oxygen circuit into a custom made device.
2. All Atlas Scientific™ devices have been designed to run indefinitely without
failure in the field.
3. All Atlas Scientific™ devices can be soldered into place, however you do so at your
own risk.
Atlas Scientific™ is simply stating that once the device is being used in your application,
Atlas Scientific ™ can no longer take responsibility for the EZO ™ class Dissolved Ox-
ygen circuits continued operation. This is because that would be equivalent to Atlas Sci-
entific™ taking responsibility over the correct operation of your entire device.