diff --git a/ampel-firmware/co2_sensor.cpp b/ampel-firmware/co2_sensor.cpp
index d726d28319c889cfceb8137ed3aeefde3830424e..1ec5e189228e6d13fed275712edbe00d1e628424 100644
--- a/ampel-firmware/co2_sensor.cpp
+++ b/ampel-firmware/co2_sensor.cpp
@@ -8,7 +8,7 @@
 #include "src/lib/S8_UART/s8_uart.h"
 
 namespace config {
-  const uint16_t measurement_timestep_bootup = 5; // [s] Measurement timestep during acclimatization.
+  const uint16_t measurement_timestep_bootup = 4; // [s] Measurement timestep during acclimatization.
   const uint8_t max_deviation_during_bootup = 20; // [%]
   const int8_t max_deviation_during_calibration = 30; // [ppm]
   const int16_t timestep_during_calibration = 10; // [s] WARNING: Measurements can be unreliable for timesteps shorter than 10s.
@@ -33,6 +33,8 @@ namespace sensor {
   float humidity = 0;
   char timestamp[23];
   int16_t stable_measurements = 0;
+  // I'm not sure it's possible to change S8 measurement interval (constant 4s). But we can check every check_timestep seconds.
+  uint16_t check_timestep = 0;
 
   /**
    * Define sensor states
@@ -56,7 +58,7 @@ namespace sensor {
       "PREPARE_CALIBRATION_UNSTABLE",
       "PREPARE_CALIBRATION_STABLE" };
 
-  state current_state = READY;
+  state current_state = BOOTUP;
   void switchState(state);
   void setCO2forDebugging(int32_t fakeCo2);
   void calibrateSensorToSpecificPPM(int32_t calibrationLevel);
@@ -92,6 +94,13 @@ namespace sensor {
     Serial.print(F("Auto-calibration is "));
     Serial.println(config::auto_calibrate_sensor ? "ON." : "OFF.");
 
+    // S8 has its own timer (constant 4s)
+    Serial.println();
+    Serial.print(F("Setting S8 timestep to "));
+    Serial.print(config::measurement_timestep_bootup);
+    Serial.println(F(" s during acclimatization."));
+    check_timestep = config::measurement_timestep_bootup;
+
     sensor_console::defineIntCommand("co2", setCO2forDebugging, F("1500 (Sets co2 level, for debugging)"));
 //    sensor_console::defineIntCommand("timer", setTimer, F("30 (Sets measurement interval, in s)"));
 //    sensor_console::defineCommand("calibrate", startCalibrationProcess, F("(Starts calibration process)"));
@@ -169,6 +178,10 @@ namespace sensor {
       }
       switchState(READY);
       Serial.println(F("Sensor acclimatization finished."));
+      Serial.print(F("Setting S8 timestep to "));
+      Serial.print(config::measurement_timestep);
+      Serial.println(F(" s."));
+      check_timestep = config::measurement_timestep; // [s]
     }
 
     // Check for pre-calibration states first, because we do not want to
@@ -228,16 +241,11 @@ namespace sensor {
   bool processData() {
     static unsigned long last_measurement = 0;
     unsigned long now = seconds();
-//    bool freshData = now - last_measurement > config::measurement_timestep;
-    bool freshData = now - last_measurement > 4;
+    bool freshData = now - last_measurement > check_timestep;
     if (freshData) {
-      Serial.println("FRESH!");
       last_measurement = now;
       ntp::getLocalTime(timestamp);
-      s8.co2 = sensor_S8->get_co2();
-      Serial.print(s8.co2);
-      Serial.println(" ppm.");
-      co2 = s8.co2;
+      co2 = sensor_S8->get_co2();
       temperature = 0.0;
       humidity = 0.0;