Connecting an Arduino GIGA R1 to an EZO complete pH via an microUSB-UART adapter (Waveshare CP2102)

Hi everyone,

I'm a complete beginner working on my first Arduino project and need some help troubleshooting. My goal is to build a pH controller for leaching experiments. Here's the hardware I'm using:

The Issue:
When I connect everything as shown in the attached pictures, I cannot receive data from the pH Meter on my Arduino GIGA R1. Nore can I send commands from the Arduino to the pH Meter.

Here's what works so far:

  • Connecting the pH Meter directly to my PC via a micro-USB to USB-A cable allows me to observe and control it using Termite (e.g., sending commands like "R" or "C,1").
  • The data output is visible, and the meter responds to commands correctly in this setup.

However, when I try to interface the pH Meter (via the EZO Complete pH Circuit's micro-USB) with my Arduino using a Waveshare CP2102 USB-to-UART module, I don't receive any data on the Arduino.

What I've Tried:

  • Checked all connections thoroughly.
  • Verified the baud rate and communication settings between the devices.
  • Confirmed that the CP2102 module is functioning by testing it with other devices.
  • Uploaded test sketches to the Arduino to ensure the serial communication is set up correctly.

Despite these efforts, I still can't get any data from the pH Meter to the Arduino.

Questions:

  1. Has anyone successfully interfaced the EZO Complete pH Circuit (micro-USB output) with an Arduino using a USB-to-UART adapter?
  2. Are there specific configurations or libraries I might be missing to make this work?
  3. Could the issue be related to the GIGA R1's serial ports or the Waveshare CP2102 module?

Any guidance or suggestions would be greatly appreciated!

Thanks in advance!

Show us the sketch in code tags you are using to 'talk' to the device.

I don´t really know how to provide tags of code, but here is the whole code. For testing reason, it is very basic and I just wanted to check if I can get a response of the ph Meter to the Arduino.

void setup() {
  Serial2.begin(9600, SERIAL_8N1);

  Serial.begin(9600);
  Serial.println("Arduino is ready to communicate with EZO pH meter.");
}

void loop() {
  Serial2.println("R"); // "R" is the command for a single pH reading
  Serial.println("Sent command: R");

  // Wait for a response
  delay(2000);

  // Check if any data is available from the EZO
  if (Serial2.available() > 0) {
    String response = Serial2.readString(); // Read the response
    Serial.println("Received response: " + response);
  }

  delay(2000); // Wait before sending the next command
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.