EZO pH and EC Sensors in UART Mode


Our EZO pH and EC sensors are flashing green. Indicating that they are in UART mode. This causing among other things the serial_connection.readline() broken error.

Per Arduino_handler: serial_connection.readline() broken we depressed the small buttons to the right of the EC sensor board. This resulted in no change to the sensors. Unfortunately, the sensor boards are already soldered to the OpenAg Signal Board. Do you have any advise on how to proceed?

Getting the software up and running

The product pages for Atlas Scientific EZO pH & EC circuits have datasheet pdfs that explain how to switch between UART and I2C mode:

I’m not familiar with the switch @sllo mentioned in that comment.

In the picture from the next comment, there’s one big momentary switch with a red button next to the BNC jack. That one is labeled SW1 RESET, so presumably it’s for resetting the Arduino. It looks like there might be a couple tiny switches with white buttons near C5. I can’t read their labels due to the glare from the LEDs, but it’s a good sign that there’s two of them (possibly one for each EZO module).

The procedure from the datasheets for switching to I2C mode involves disconnecting the EZO module’s GND, TX, and RX from the host circuit, shorting a couple pins on the EZO module, then applying power to the module until the LED changes color.

You could try following the traces for the things near C5 that look like tiny switches with white buttons. Is one wired to short TX to the upper PRB on the EC module? Is the other wired to short TX to PGND on the pH module? If so, that’s a good sign.

If that doesn’t make sense, perhaps you could post a good picture of your sensor board that shows how the components are populated.

[edit: Assuming the small white buttons short the right pins, if you tried pushing them while the EZO boards were already powered up, that wouldn’t be following the instructions from the datasheets. If you unplug the sensor board from the Arduino and hold the buttons down while cycling the power to the sensor board, that would come a lot closer to following the instructions. The datasheet makes it sound like the EZO module firmware might only check for the shorted pin when the board first powers up.]


PB’s in question


On the openag_signal_PCB, it has two i2c isolation ic chips (I don’t have) you may use a USB power adaptor to give power to Arduino Mega 2560. with the signal_PCB. So you can press and hold the s1 down ,then give power to it, wait until led changed colour, once changed release the s1 and do it to s2.

I am creating a wiring schematic diagram for the PFC v2

It looks like the switches in your picture match SW2 and SW3 from the schematic and that the schematic matches the Atlas Scientific datasheets. Do the LEDs change to blue if you follow sllo’s procedure?


It worked on the EC board… but the PH board is not responsive


Can you elaborate on “not responsive”? Do you mean the pH board LED doesn’t come on at all? Do you mean the LED comes on but it’s green? If the LED comes on green and you watch it for a minute or two, does it ever flicker in other colors?

Additional things to try:

  1. Did you remove the power after doing the EC board and start the whole cycle over for the pH board?
  2. Have you inspected the underside of the board for cold solder joints, bridges, shorts between components on the sensor board and the arduino, etc.?
  3. Have you tested the functioning of the switch for the pH board with a scope or multimeter? If you have the sensor board powered off and measure voltage between GND and PGND on the pH board, there should be a small amount of AC from the traces picking up EMI–probably 50Hz or 60Hz hum, etc. If you close the switch, the reading on your scope or meter should go close to 0V. Alternately, you could try a continuity test between GND and PGND.


Sorry & Thanks much for your recommendations. the EZO remains in what i am assuming is the UART state w the flashing Green LED where no other colors are intermittently syncopated. I did start the whole cycle over w/ the PH board and have cycled the EC board back and forth in between. Pins were soldered to the MEGA board and looked like they have good coverage although i never put a meter across any pins. I also tried liberating the Sheild from the Arduino and jumpering the TX & PGND stabs protruding from the back of the board and re-installing w same result–> just Green Blipping. We are now de-soldering EZO PH from shield with the intent to bread board & patch cord in to talk to it via RPi.


That sounds good. I bet you’ll have a much easier time of it when the EZO module isn’t soldered onto the sensor board.


The small switch may be failed.:thinking:
May be the blue LED failed. :sob:
But the EZO still working fine just green LED.

Press and hold SW too long , It will goes back to UART mode again.
I will also try using a small magnifier (mini 8X) to look at the dual colour LED chip. is the blue side of led too dim to see?


@sllo I believe that the switch maybe failing although we have tried to bread board an PH EZO chip w the same issue.–> no change over from Green to Blue.
We are faulting out with the sensor installed. The Blue LED on the EC EZO is as bright or brighter than the Green LED on the PH board.


@epeterson you may try use another broad, may be just standalone Arduino UNO will do, connect to EZO PH , test run the UART MODE on it.
If UART MODE still work, may try to change it to i2c with software way,
Page 38 of the ph_EZO_datasheet

good luck.


Thank you @sllo we yanked the card and got it flipped over to I2C via USB cable :slight_smile: not sure if the shield push button was faulty or not.


Dear, @djantz ,from data sheet ,it said you need the small ezo broads needed to offline to i2c bus and no probe connected to it to switch it from uart(default) to i2c mode .
you may
1 take out the v2 signal broad from arduino mega 2560,
2 take out one ezo broads and
3 give a 5V to the v2 signal
and use s1 (or ,s2) hold down for some seconds( as per data sheet said ) on v2 signal to switching between modes
4 turn off the 5V,
5 redo 1~4 for other ezo broads .


Dear, @epeterson @djantz @wsnook @bleppard I do not have V2 signal broad. I used to bread broad to put EZO PH and EZO EC from UART to I2C mode. Before the items delivery to me, I spend some times on the product data sheet and V2 signal broad schematic. and believed that we can change EZO broad form UART mode to I2C while they are sit on the V2 signal broad.

I soldered a power (only) isolation broad and try to use jumper to switch to I2C mode on it.

I can not switch the EZO PH broad to I2C mode.

I take out the EZO PH broad and use a bread broad to do “Switching mode”. I test the steps . The pull up resistors for the I2C bus should not be there, too.

Without pull resistors TX shorted with Probe GND
the Green LED grows up for 2~3 sec then change to Blue LED grows up.

Yesterday I have a chance to set up on more set for PH Kit and redo the step form UART 2 I2C (again). I wired and soldered a small broad and try to do full data/power isolation on the I2C bus and small jumper to function as the SW2/SW3.


Thank you so much for your inputs on this @sllo . I will look into it.