Skip to content




uThing::iPH™ is an easy-to-use USB, lab-grade, high-precision, isolated pH and ORP meter with integrated pH temperature compensation and calibration algorithms.

The dongle is designed for online continuous process pH and ORP (redox) monitoring. The voltage input range can be configured for pH or ORP measurements.

Automatic pH temperature compensation can be performed either from an onboard temperature sensor or by connecting the water-proof temperature probe in order to obtain the exact temperature of the liquid to measure.

Isolated input

While measuring pH in industrial environments, it's important to avoid errors due to different ground potentials (ground loops), or to protect the systems from high voltages when an error occurs. The uThing::iPH™ was designed with this in mind, and provides isolated power and data paths for to the analog domain and ADC.

The integrated STM32L412 MCU (ARM Cortex®-M4 with DSP instructions) coordinates the data acquisition from the isolated analog frontend and the temperature sensors and use the calibration parameters to convert the raw voltage data into precise PH values. These values are then streamed on a configured time interval over a simple Virtual Comm Port (VCP) on the USB connector in various formats (JSON, CSV or "human-readable") for ease of integration.

Very-high impedance analog frontend

pH and ORP probes can have high impedance values in some cases reaching resistances above 1 GΩ. Therefore, in order to avoid introducing substantial errors, the input impedance of the measuring system has to be much higher than the probe itself. The uThing::iPH™ analog frontend was carefully designed to have an input bias current as low as 20 fA!, or an equivalent input impedance well over the TeraOhm range, achieving insignificant offset error, even with the most demanding probes (i.e. ±0.2 mV for a 1 GΩ probe).

Output data points

Output data points:

  • pH (calibrated and temperature compensated) - last measurement
  • pH (calibrated and temperature compensated) - average
  • Raw Voltage [mV] - last sampling period
  • Raw Voltage [mV] - average
  • Temperature - on-board sensor
  • Temperature - external probe

Block diagram

The figure below shows a block diagram of the dongle:


The 3-pin connector on the bottom side is used for the 1-Wire DS18B20 temperature probe. The BNC connector is widely used in the industry, and directly accepts a wide range of pH and ORP probes.

Detail of the main components:


The blue LED blinks when the processed data is sent to the host.

Output formats

As in all the uThing™ devices, the dongle outputs all the processed sensor data in JSON format by default. JSON allows a seamless integration with a multitude of back-end and front-end applications.

During an initial evaluation, a more "human-friendly" format can be easily configured (which includes the output units for an initial understanding of the generated data).

For applications where a simple mean for data-logging is needed, the board can be configured to output the data in CSV format (comma separated values).

Here it's an example of the three output formats:

[ph_last], [ph_average], [voltage_last], [voltage_average], [temperature_internal], [temperature_probe]
6.378, 6.381, 38.21, 38.07, 23.10, 23.31
pH: [last: 6.378, Average: 6.381], voltage: [last: 38.21 mV, Average: 38.07 mV], temperature: [OnBoard: 23.10 ºC, External: 23.31 ºC]

Check this section for details about sensor outputs and data formats.


The device supports two ways of configuration:

  • Interactive: with a terminal connected to the VCP, simple one-character commands change the behavior of the device (changing output format, reporting frequency, etc.)
  • JSON objects: to keep consistency with the JSON output formats, JSON objects can be sent to the device to query and modify the configuration (turn-on/off leds, change reporting period, etc.)

For a detailed description of the configuration options check this section

Host compatibility

The device can be used with any USB capable host (laptop, embedded PCs, gateways, Android devices, etc.).

The firmware running in the STM32L412 MCU integrates a standard USB-CDC (Communication Device Class).


The CDC is a USB generic composite class that can include more than one interface such as a custom control interface, data interface, audio, or mass storage related interfaces.

In particular, this application uses the CDC-ACM (Abstract Control Mode) to emulate a serial port. This implementation is also known as USB VCP (Virtual Communications Port).

The USB VCP interface is supported “out-of-the-box” in Linux, MacOS, Windows and Android systems without the need of any extra driver installation since this driver comes integrated by default in those operating systems.