Microfire LLC Mod-EC Datasheet
Copyright © 2023 Microfire LLC
This documentation is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND).
Release | Date | Description |
2.0.0 | 3/24/2023 | Updates for version 2 of hardware. |
1.1.0 | 8/13/2021 | Added additional reflow procedures. |
1.0.0 | 4/23/2021 | Initial |
TECHNICAL AND RELIABILITY DATA FOR MICROFIRE LLC PRODUCTS (INCLUDING DATASHEETS) AS MODIFIED FROM TIME TO TIME (“RESOURCES”) ARE PROVIDED BY MICROFIRE LLC "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW IN NO EVENT SHALL MICROFIRE LLC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE RESOURCES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MICROFIRE LLC reserves the right to make any enhancements, improvements, corrections or any other modifications to the RESOURCES or any products described in them at any time and without further notice.
The RESOURCES are intended for skilled users with suitable levels of design knowledge. Users are solely responsible for their selection and use of the RESOURCES and any application of the products described in them. User agrees to indemnify and hold MICROFIRE LLC harmless against all liabilities, costs, damages or other losses arising out of their use of the RESOURCES.
HIGH RISK ACTIVITIES. MICROFIRE LLC products are not designed, manufactured or intended for use in hazardous environments requiring fail safe performance, such as in the operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, weapons systems or safety-critical applications (including life support systems and other medical devices), in which the failure of the products could lead directly to death, personal injury or severe physical or environmental damage, or business loss (“High Risk Activities”). MICROFIRE LLC specifically disclaims any express or implied warranty of fitness for High Risk Activities and accepts no liability for use or inclusions of MICROFIRE LLC products in High Risk Activities.
Microfire LLC Mod-EC Datasheet
MEASURE_EC_TASK - EC Measurement
CALIBRATE_LOW_TASK - Low Point Calibration
CALIBRATE_MID_TASK - Middle Point Calibration
CALIBRATE_HIGH_TASK - Middle Point Calibration
CALIBRATE_SINGLE_TASK - Single Point Calibration
A module for interfacing with EC probes. It has been designed to be flexible and simple to incorporate into new or existing electrical designs.
The Mod-EC module is a single-sided 25x15 mm 0.8 mm thick PCB with dual castellated/through-hole pins around the east and west edges. It is designed to be usable as a surface mount module as well as in Dual Inline Package (DIP) type format, with the 12 pins on a 2.54mm pitch grid with 0.9mm holes.
Figure 1. Physical dimensions of the module.
The pinout of the module has been designed to provide as many interface options as possible.Figure 2. Pinout of the module.
Pin 1: Probe 1 input. Provides a connection to the first electrode of a EC probe.
Pin 2: Probe 2 input. Provides a connection to the second electrode of a EC probe.
Pin 3: Not used in this module.
Pin 4: Not used in this module.
Pin 5: Not used in this module.
Pin 6: Not used in this module.
Pin 7: Not used in this module.
Pin 8: Not used in this module.
Pin 9: I²C SCL. Clock line for I2C interface.
Pin 10: I²C SDA. Data line for I2C interface.
Pin 11: VIN. 3.3-volt power supply.
Pin 12: Ground. Ground for the module.
The following figure shows the recommended footprint for mounting the module through reflow processes. It provides for a Class 1 connection (IPC-A-610G § 8.3.4 Castellated Terminations).
It is recommended that the stencil be 8 mil in thickness to ensure enough solder paste can flow into the castellations.
The module is assembled with Chip Quik SMD291SNL50T3 (Sn96.5/Ag3.0/Cu0.5) solder paste, a lead-free paste with a 249-degree Celsius peak reflow temperature. Reflowing the module multiple times can cause malfunction, to avoid the issue, if it is possible, use a lower melting-point temperature solder paste.
Temperature:
When approaching the absolute temperature ratings, it should be noted that the module’s temperature will begin to affect measurements, the extent of which will need to be characterized to the specific environment the module will be deployed in.
Voltage:
The module requires 3.3 volts for proper operation. It can be supplied with less and still communicate through the various peripheral interfaces, but this will not allow the analog circuitry to operate correctly. Voltage should not exceed 5.5 volts.
There is no reverse polarity protection on the module.
Due to the nature of electrochemical sensors, galvanic isolation between the probe from other parts of the circuit is needed to eliminate or reduce interference from external sources. The simplest way to achieve this is to use an isolated power supply and isolated peripheral coupler device.
All modules are designed to be low-power. Power usage has been characterized at two points, idle and active sensor measurement.
The module provides an I²C interface.
The module supports speeds of 10kHz, 100 kHz, 400 kHz, and 1 MHz at 3.3 volts.
The I²C interface uses the following pins:
The module has no pullup resistors on the I²C bus. For reliable communication, appropriate resistors must be chosen for the SDA and SCL lines.
The default address is 0x0A by default. It can be changed through firmware.
Writing is done by sending a start condition followed by the module’s address with the write bit set. The master device then sends data 8 bytes at a time. The first byte received is considered to be the register address. Successive writes will automatically increment the register address by one byte. Transmission is finished with a stop condition.
Reading is done by sending a start condition followed by the module’s address with the read bit set. The master sets the register to read from and then requests data. The device then sends the appropriate number of bytes as determined by the register being read.
Adding the module is a straightforward process.
A suitable power supply must be supplied. Ideal solutions will provide an isolated, low-ripple, low-EMI, 3.3-volt supply.
The module operates at the same ground potential as what Pin 11: Ground is connected to, so a low-impedance connection is needed.
An EC probe that is compatible with the module consists of two wires. This is most commonly provided with a BNC, SMA, or U.FL connector.
Any unused pins should be left unconnected to any other trace or net.
Conductivity is the ability of water to conduct electricity, which is determined by the concentration of ions present. In the ocean or hydroponics, the ions of interest are typically chloride, but they can come from many other sources. The higher the ion concentration, the higher the conductivity.
Conductivity has been a useful measure of water for a long time. During this time, there have been many techniques and advancements in the measurement. Due to this history and varied methods, there are several units of measure.
The modern SI unit of conductivity is Siemens per meter, notated as S/m. Like any SI unit, it can be specified in larger or smaller units like micro- or milli- Siemens. Typically, micro or millisiemens are used.
There is a length aspect of the measurement. It is due to the fact that resistance is dependent on the length of a conductor, so a set length needs to be specified for results to be reproducible and standardized. In practical use, the length portion is determined by the probe geometry and is nearly always in centimeters.
Because conductivity is heavily influenced by temperature, it is an important element of the measurement. There are no standards for notating measurements, but oftentimes, if no temperature is associated with a conductivity measurement, 25 C can be assumed. When conductivity measurements are given with a specific temperature, it is referred to as specific conductance.
TDS stands for total dissolved solids and is typically notated in parts-per-thousand, or part-per-million. TDS is determined by taking a specific measure of water, allowing it to dry, and weighing the remnants. TDS can be roughly converted into Siemens through various conversion factors. The factor can vary based on the main constituent of the water but can also vary based on where in the world it is taken (for example, in the US, 500 is most often used, regardless of what is being measured). Due to the inherent uncertainty of this conversion factor and that it is typically derived from a Siemen unit-of-measure anyway, this unit of measurement should be avoided.
Mho is equivalent to Siemens. It is Ohm spelled backward since ohm measures resistance, and conductivity is the reciprocal of resistance. This unit is redundant as it is essentially the same thing as a Siemen but with a different name. It is somewhat commonly used despite not being in the International System of Units.
Measuring EC is relatively straightforward, but it is important to keep some things in mind.
EC probes are electrochemical devices. They don’t react instantly as a purely electrical device would. The probes need some time to reach an equilibrium. This is especially true when calibrating since it moves the probe through a very wide range of values.
An EC probe operates in the millivolt range. The signal is then carried through the wire of the probe, where it is measured. This leaves a lot of opportunities for the signal to experience interference. Other probes, faulty electrical equipment, poor grounding, strong sources of EMI, and any number of other sources may contribute to a faulty reading. Isolation can help with some sources, but not all of them.
The temperature of a solution strongly affects the EC. For example, a solution at 25°C may measure 1.413 mS/cm, and the same solution at 20°C may be 1.29 mS/cm. The change in conductivity is affected by the nature of the ions in the solution. Generally, conductivity increases with an increase in temperature. The change is typically characterized by a percentage change in conductivity per degree change in temperature. With this characterization made, a temperature compensation factor can be formulated.
Since the same solution can measure over a relatively wide range as the temperature changes, it is difficult to compare the measured value to some other value. As an example, suppose a tank of water is needed to maintain an EC value of 1.0 mS/cm. The tank is exposed to the weather, and the temperature increases and decreases throughout the day. The conductivity will also increase and decrease throughout the day with the temperature. To have a reliable method of comparing the current conductivity to the setpoint, the temperature must be compensated for. This is done by choosing a particular temperature to adjust all readings to. This is typically 25 °C. The compensation would have the effect of changing the conductivity measurement taken at the current temperature and adjusting it so that it would represent what it would have been at 25 °C.
Several points of data are needed for this calculation:
The solution’s temperature and the temperature to adjust to have been discussed above. The temperature coefficient is the percent change per degree. The coefficient is different for every solution and is determined by its composition. Sometimes the solution being measured is known, and a temperature calibration characterization can be done, oftentimes the exact composition isn’t known, and an estimation is required. For freshwater, the most typical coefficient is 0.019. For seawater, it is around 0.021, and for pure water, 0.052.
Because the coefficients are estimations, they introduce a small amount of uncertainty. It is important to note that a chart of the measurement won't be perfectly flat, indicating that all the temperature effects have been fully eliminated. It will still move with the temperature, but not nearly as much.
The module uses the following formula to calculate the compensated conductivity measurement.
where EC is the uncompensated measurement, is the coefficient, and T = is the solution’s temperature.
Calibration is needed to obtain accurate measurements. Each module is very slightly different from the next, and each EC probe will have a slightly different response from another. For these reasons, neither modules nor probes are interchangeable without both being calibrated together.
Following good lab procedures is important to obtain the best results while also staying safe. Aside from safety considerations, the following is a step-by-step process calibration:
When calibrating, use the labeled value, not the temperature-adjusted value.
The module supports three methods of calibration.
Single point is the least useful and should generally not be used. It uses one point and is only accurate for a small range around that one point.
Dual point calibration is used for measuring between two set points. To determine the points, decide on the lowest point to be measured and the highest point. After calibrating between those two points, the measurements can be expected to be very accurate between them. Outside the two points, the measurements will get increasingly inaccurate the further from the calibration points the measurement gets.
The module’s response is not perfectly linear throughout the entire range of possible measurements. To get the most accurate measurements over the widest range, triple point calibration can be used. It is similar to dual point, but uses three points rather than two. A good starting point for a very large range would be a low of 0.1 mS, a mid of 1.0 mS, and a high point of 10.0 mS.
The module will select the best calibration type from the available calibrated points as follows:
Conductivity probes come in several different cell-constants (K). A cell-constant allows current to flow more or less easily, thereby allowing different ranges of conductivity to be measured. To measure high conductivity, a probe with a cell-constant of K10 is chosen. The electrodes of a K10 probe are small and spaced further apart than a K1 probe which is typically used for mid-range measurements.
The choice of which cell-constant to use is heavily based on the hardware reading the probe. For Mod-EC use, the following table should be used for the selection:
Measurement Range | Cell-constant |
0.05 to 5 uS | 0.01 |
2 to 100 uS | 0.1 |
0.1 to 20 mS | 1 |
10 mS to 1 S | 10 |
The module’s I²C interface operates similarly to many common I²C sensors. There are several registers which hold values such as calibration, EC and temperature, or version information. The registers are used to pass information both to the module and the controlling device. Tasks are performed by writing a specified value to a certain register.
All registers are either 1 byte or a float which is 4 bytes formatted as an IEEE 754 32 bit floating point, little-endian. The firmware will allow the registers to be read and written.
Register Name | Value | Type | Description |
HW_VERSION_REGISTER | 0 | byte | Hardware version |
FW_VERSION_REGISTER | 1 | byte | Firmware version |
TASK_REGISTER | 2 | byte | Task register |
STATUS_REGISTER | 3 | byte | Status of measurement |
MS_REGISTER | 4 | float | Measured conductivity in mS |
PSU_REGISTER | 8 | float | Practical Salinity Units |
TEMP_C_REGISTER | 8 | float | Measured temperature in Celsius |
CALIBRATE_REFLOW_REGISTER | 16 | float | Reference-low calibration data |
CALIBRATE_READLOW_REGISTER | 20 | float | Read-low calibration data |
CALIBRATE_REFMID_REGISTER | 24 | float | Reference-mid calibration data |
CALIBRATE_READMID_REGISTER | 28 | float | Read-mid calibration data |
CALIBRATE_REFHIGH_REGISTER | 32 | float | Reference-high calibration data |
CALIBRATE_READHIGH_REGISTER | 36 | float | Read-high calibration data |
CALIBRATE_SINGLE_OFFSET_REGISTER | 40 | float | Single-offset calibration data |
COEFFICIENT_REGISTER | 44 | float | Temperature coefficient |
CONSTANT_REGISTER | 48 | float | Temperature constant |
K_REGISTER | 51 | float | Probe cell-constant |
KPA_REGISTER | 56 | float | Pressure in kilopascals |
All the CALIBRATE_* registers are automatically saved when written.
When a particular value is written to TASK_REGISTER, it starts an operation within the module.
For example, an EC measurement is performed when MEASURE_EC_TASK is written to the TASK_REGISTER register. To read the resulting measurement, you would read the EC_REGISTER register.
Task Name | Duration | Value | Description |
MEASURE_EC_TASK | 750 ms | 80 | EC measurement |
CALIBRATE_LOW_TASK | 750 ms | 20 | Low-point calibration |
CALIBRATE_MID_TASK | 750 ms | 10 | Mid-point calibration |
CALIBRATE_HIGH_TASK | 750 ms | 8 | High-point calibration |
CALIBRATE_SINGLE_TASK | 750 ms | 4 | Single-point calibration |
I2C_TASK | 1 ms | 2 | I²C address change |
Starts an EC measurement. It takes 750 ms to complete a measurement.
Parameter | Description |
TEMP_C | The solution-under-test’s temperature in Celsius. If the temperature is unknown, pass 25.0 |
TEMP_COEF | The temperature coefficient is used for temperature compensation. Typically 0.019 for freshwater and 0.021 for seawater. |
TEMP_CONSTANT | The temperature constant used for temperature compensation. |
CELL_CONSTANT | The cell-constant, or K value of the attached EC probe. Typically 0.1, 1.0, or 10.0. |
PRESSURE_KPA | The pressure in kilopascals at which the measurement is being made. Used in salinity and density calculations. If salinity or density measurements aren’t needed, 0 can be used. |
Parameter | Description |
EC_MS | The solution-under-test’s conductivity in mS/cm². Formatted as a floating point number with up to 3 decimal places. |
PSU | Practical Salinity Unit. Calculated according to PSS-78. 0 returned if the calculated salinity is less than 2 or greater than 40. |
DENSITY | Density in g/cm3. Calculated according to EOS-80. 0 returned if salinity is 0. |
STATUS | An error code for the measurement. Can be one of the following: 0: no error 1: no probe detected or outside range 2: system error 3: config error |
Performs a low-point calibration. It takes 750 ms to complete a measurement.
Register | Description |
EC_REGISTER | The calibration solution’s conductivity in mS/cm². |
TEMP_C_REGISTER | The calibration solution’s temperature in Celsius. If the temperature is unknown, pass 25.0 |
Register | Description |
CALIBRATE_REFLOW_REGISTER | Reference-low calibration data |
CALIBRATE_READLOW_REGISTER | Read-low calibration data |
STATUS_REGISTER | An error code for the measurement. Can be one of the following: 0: no error 1: no probe detected or outside range 2: system error 3: config error |
Performs a mid-point calibration. It takes 750 ms to complete a measurement.
Register | Description |
EC_REGISTER | The calibration solution’s conductivity in mS/cm². |
TEMP_C_REGISTER | The calibration solution’s temperature in Celsius. If the temperature is unknown, pass 25.0 |
Register | Description |
CALIBRATE_REFMID_REGISTER | Reference-mid calibration data |
CALIBRATE_READMID_REGISTER | Read-mid calibration data |
STATUS_REGISTER | An error code for the measurement. Can be one of the following: 0: no error 1: no probe detected or outside range 2: system error 3: config error |
Performs a high-point calibration. It takes 750 ms to complete a measurement.
Register | Description |
EC_REGISTER | The calibration solution’s conductivity in mS/cm². |
TEMP_C_REGISTER | The calibration solution’s temperature in Celsius. If the temperature is unknown, pass 25.0 |
Register | Description |
CALIBRATE_REFHIGH_REGISTER | Reference-high calibration data |
CALIBRATE_READHIGH_REGISTER | Read-high calibration data |
STATUS_REGISTER | An error code for the measurement. Can be one of the following: 0: no error 1: no probe detected or outside range 2: system error 3: config error |
Performs a single-point calibration. It takes 750 ms to complete a measurement.
Register | Description |
EC_REGISTER | The calibration solution’s conductivity in mS/cm². |
TEMP_C_REGISTER | The calibration solution’s temperature is Celsius. If the temperature is unknown, pass 25.0 |
Register | Description |
CALIBRATE_SINGLE_OFFSET_REGISTER | Single-offset calibration data |
STATUS_REGISTER | An error code for the measurement. Can be one of the following: 0: no error 1: no probe detected or outside range 2: system error 3: config error |
Changes the device’s I²C address.
Register | Description |
EC_REGISTER | Used to temporarily store the new I²C address. |
Register | Description |
None |
Microfire LLC ㅡ Justin Decker, CEO 61190 Deronda Ave Whitewater, CA 92282 justin@microfire.co | 17 May 2021 Certificate of ComplianceRoHS 3 Directive 2015/863/EUMicrofire LLC certifies to the best of its knowledge and belief that the products listed herein conform with RoHS 3 Directive 2015/863/EU and its subsequent amendments. This declaration further certifies that Microfire LLC has obtained RoHS Certificates of Compliance from each applicable supplier of materials and parts used in the assembly and manufacture of these goods. Modules Mod-EC Mod-pH Mod-ORP Mod-ISO Mod-NTC Development Boards Isolated Dev Board Mod-EVAL Mod-EVAL_ISO Probes Industrial pH Probe Industrial EC Probe Industrial ORP Probe Lab pH Probe Lab EC Probe Lab ORP Probe Justin Decker |