ZMOD4410 Reduce Warm Up

Hi, I am using ZMOD4410 sensor with nrf52832 for detecting eCO2 values. 

But I keep getting the same output and after warm up is over, I get an error message 
Error: Sensor probably damaged. Algorithm results may be incorrect.

<info> app: *********** Measurements ***********
<info> app: Rmox[ 0] = 0.10 kOhm

<info> app: Rmox[ 1] = 0.10 kOhm

<info> app: Rmox[ 2] = 0.10 kOhm

<info> app: Rmox[ 3] = 0.10 kOhm

<info> app: Rmox[ 4] = 0.10 kOhm

<info> app: Rmox[ 5] = 0.10 kOhm

<info> app: Rmox[ 6] = 0.10 kOhm

<info> app: Rmox[ 7] = 0.10 kOhm

<info> app: Rmox[ 8] = 0.10 kOhm

<info> app: Rmox[ 9] = 0.10 kOhm

<info> app: Rmox[10] = 0.10 kOhm

<info> app: Rmox[11] = 0.10 kOhm

<info> app: Rmox[12] = 0.10 kOhm

<info> app: Rcda = 0.10 kOhm

<info> app: EtOH = 0.00 ppm

<info> app: TVOC = 0.01 mg/m3

<info> app: eCO2 = 400.00 ppm

<info> app: IAQ = 1.00

<info> app: Rel IAQ = 100.00

How should I verify if the sensor is at fault or is it some coding issue. I tried using Arduino Uno but not able to find the correct lib file for it. Please guide.

What measure should I take to read the correct values and get rid of that error.

Regards,

Yash Gupta

  • Hello Yash,

    Thanks for reaching out Renesas Engineering Community.

    Let me ask you some questions.

    1. First of all which library version are you using to get these results, posted in your thread?

    2. For how long have you left the sensor powered on to report measurements?

    Here it the warm-up time needed for all the different algorithm versions for ZMOD4410:

    For the most common algorithm versions you can see that  the time that it is required until the sensor stabilizes. This is approximately 15 minutes, for the most common used modes, IAQ 2nd generation and ULP.

    Generally the ZMOD sensors are MOX sensors with highly sensitive metal oxide (MOX) chemiresistor. This RMOX resistance value is changing every time depending the concentration of the gases. The specific stabilization time mentioned in the datasheet is the time needed to calculate a baseline resistor in clean air conditions (Rbase). This baseline resistor is used as reference for clean air conditions. When mentioning clean air condition we mean a room , which is not crowded by lots of people and where it is sure that there is good air ventilation and the windows are open.

    So that means that you shouldn't consider the measurements after this 15 minutes as valid and accurate, since it is possible that these measurements  are frozen and the algorithm reports the same measurement and gas concentration values.

    You need to leave the sensor powered on for at least 48 hour and after these 48 hours you should consider the measurement values as accurate.

    Something also very important is that you don't expose the sensor to pollutants earlier then 20 minutes passed since the sensor is powered on.

    So make sure that you have warmed-up your sensor for at least 48 hours and than see what measurements the sensor reports and make your tests.

    Regarding Arduino libraries we provide Arduino libraries in our libraries which can be downloaded from here:

    https://www.renesas.com/us/en/products/sensor-products/environmental-sensors/metal-oxide-gas-sensors/zmod4410-firmware-configurable-indoor-air-quality-iaq-sensor-embedded-artificial-intelligence-ai#design_development

    However our Arduino libraries by default are made to work with Arduino boards that use an Arm Cortex-M0+ core, and you need to make some modifications to make it work with an other MCU target as mentioned in the FAQ below:

    https://en-support.renesas.com/knowledgeBase/20678418

    For Arduino Uno which is using an ATmega328P  you should use the precompiled libraries on this folder:

    However if you will try to compile them you will see that there is not enough flash available and you will get this error message if trying to compile it:

    Since the AI algorithms that are implemented into the libraries we provide to calculate the final eCO2 and TVOC results might need up to 30KB memory. 

    So in your case you should select an Arduino board having bigger flash size.

    In case you would like to use them with another Arduino board and you need further support, please let me know.

    Best Regards,

    Irini 

  • Goodmorning, 

    i'm facing the same problem using the latest version of the library on ZMOD4510 sensor while I was trying to use the library with a STM32 microcontroller. I see the same value of the Rmox reported by @Yash and after a while, i've got the NO2_O3_DAMAGE error from the function calc_no2_o3 . I have no commmunication error reported. I've also noticed that I always have all zeros in the adc_result read by the function zmod4xxx_read_adc_result. This is the zmod4xxx_dev_t strcut I can see from the debugger after initialization:

     

    I've notice that the value of the field mox_er and mox_lr are always zero and I don't know if it is something related with the problem. I control many times but I followed all the example provided to use the software. In the past I was able to use correctly the ZMOD4410 with no problem.

    Best,

    Matteo

  • Hello Matteo,

    Thanks for your feedback.

    Please post a new thread in our Forum Community describing with more details your issue.

    Also we would apreciate it if you have some logs of the sensor operation and the results of the algorithm to make a further analysis to your issue.

    Best Regards,

    IK