ESP32S3 deep sleep mode and ZMOD4410

For battery conservation, we put the ESP32S3 in deep sleep mode but the ZMOD4410 is still powered. 

The ZMOD4410 is consuming 30-100ma during the 4 min of the standard initialization, sampling and deinit.  We want to initialize the ZMOD4410 once but upon wakeup, operate the ZMOD4410 and collect samples.

To support wakup with no ZMOD4410 initialization, we put the ZMOD4410 libraries and data structures used to operated the ZMOD4410 in memory that is still powered so that values set during the initialization are not lost during deep sleep and the ZMOD441 doesn't have to go through the initialization and calibration operations after the first time.  (Specifically, the data structures and libraries were placed into RTC memory.)

As expected for the first time thru, the 10+ "Warmup" values are retrieved and the "valid" result from the first time shows the TVOC is very low and IAQ is 1.  The firmware then goes into deep sleep.

On each wakeup, the ZMOD4410 is read again and, as expected, there are no "Warmup" values only "valid" results but the TVOC for the "valid" result is very high and the IAQ is always 4 or 5.

Testing without sleep and wakeup, the TVOC always is very low and IAQ ranges from 1.0 - 1.8.

We suspect that we missed placing something in powered memory to save the value.

Please advise how to place the ZMOD4410 code and libraries into powered memory so that the ESP32S3 deep sleep mode does not affect the performance and operation of the ZMOD4410.

Or perhaps, there is a better way.

Thanks.

Jay

Parents Reply Children