Hi Ruslan,
I can only give you a partial answer :
Gas resistance vs data rate
According to our expertise the gas resistance value is impacted by the data rate, this is why we selected 2 different fixed data rate for BSEC : 1/3 hz and 1/300 hz. Your data rate of 1/1800 hz is not the same supported by our algorithm.
With such a low data rate, it would take quite some time for the pollutants to reach an equilibrium when the sensor is heated. The working mode has to be carefully tuned, so that there isn't an accumulation of pollutants on the sensor due to the extended low temperature phase.
My advice would be to use the RTC ram to batch the the raw data(temp, humidity, gas) every 5min, then every 30min you can run BSEC (by adding the correct timestamps) and save the state to NVM.
I have only 32pcs of 16-bit registers of RTC memory. BSEC needs: #define BSEC_MAX_STATE_BLOB_SIZE (139) /*!< Maximum size (in bytes) of the data blobs returned by bsec_get_state()*/ . If I change 139 to 64 will BSEC work properly? And I must save state after every measurement and then go to deep sleep?