diff --git a/ampel-firmware/co2_sensor.cpp b/ampel-firmware/co2_sensor.cpp
index 6707d5543c7a9aa332666aed2f02d7aa12373bcc..436b36b06f85da4a5c031c5d02a8eb31f3b66276 100644
--- a/ampel-firmware/co2_sensor.cpp
+++ b/ampel-firmware/co2_sensor.cpp
@@ -25,11 +25,10 @@ namespace sensor {
   uint32_t waiting_color = color::blue;
   bool should_calibrate = false;
 
-  void printCO2(void *data) {
-    int parameter = *(uint16_t*) data;
-    Serial.print("NICE! HELLO FROM SENSOR.");
-    Serial.print("CO2 : ");
-    Serial.println(parameter);
+  void setCO2forDebugging(int32_t fakeCo2) {
+    Serial.print(F("DEBUG. Setting CO2 to "));
+    co2 = fakeCo2;
+    Serial.println(co2);
   }
 
   void initialize() {
@@ -76,7 +75,7 @@ namespace sensor {
     Serial.print(F("Auto-calibration is "));
     Serial.println(config::auto_calibrate_sensor ? "ON." : "OFF.");
 
-    sensor_commands::defineCallback("co2", printCO2, &co2);
+    sensor_commands::defineCallback("co2", setCO2forDebugging);
   }
 
   //NOTE: should timer deviation be used to adjust measurement_timestep?
diff --git a/ampel-firmware/led_effects.cpp b/ampel-firmware/led_effects.cpp
index 5aa2d01f6b136543e4c978dacd4777f3cf74f283..cf130ce674eeef634404637ef9596113c46799c6 100644
--- a/ampel-firmware/led_effects.cpp
+++ b/ampel-firmware/led_effects.cpp
@@ -70,7 +70,7 @@ namespace led_effects {
     onBoardLEDOff();
   }
 
-  void helloRing(void *c) {
+  void helloRing(int32_t x) {
     Serial.print("HELLO FROM LED RINGS!");
     Serial.print("I have ");
     Serial.print(NUMPIXELS);
@@ -83,7 +83,7 @@ namespace led_effects {
     pixels.setBrightness(config::max_brightness);
     LEDsOff();
 
-    sensor_commands::defineCallback("led", helloRing, 0);
+    sensor_commands::defineCallback("led", helloRing);
   }
 
   void toggleNightMode() {
diff --git a/ampel-firmware/sensor_commands.cpp b/ampel-firmware/sensor_commands.cpp
index 9108b91b40de365b380324f5a382399a16525bd0..868f37ec30a9c91936c4a8d4305324452e681715 100644
--- a/ampel-firmware/sensor_commands.cpp
+++ b/ampel-firmware/sensor_commands.cpp
@@ -8,19 +8,18 @@ namespace sensor_commands {
 // A callback contains both a function and a pointer to arbitrary data
 // that will be passed as argument to the function.
   struct Callback {
-    Callback(const char *s = 0, void (*f)(void*) = 0, void *d = 0) :
-        name(s), function(f), data(d) {
+    Callback(const char *s = 0, void (*f)(int32_t) = 0) :
+        name(s), function(f) {
     }
     const char *name;
-    void (*function)(void*);
-    void *data;
+    void (*function)(int32_t);
   };
 
   Callback callbacks[MAX_CALLBACKS];
 
-  void defineCallback(const char *n, void (*f)(void*), void *d) {
+  void defineCallback(const char *n, void (*f)(int32_t)) {
     if (callbacks_count < MAX_CALLBACKS) {
-      callbacks[callbacks_count] = Callback(n, f, d);
+      callbacks[callbacks_count] = Callback(n, f);
       callbacks_count++;
     } else {
       Serial.println(F("Too many callbacks have been defined."));
@@ -31,7 +30,7 @@ namespace sensor_commands {
     return !strncmp(a, b, strlen(b));
   }
 
-  bool parseCommand(const char *command, char *function_name, long &parameter) {
+  bool parseCommand(const char *command, char *function_name, int32_t &parameter) {
     char split_command[MAX_COMMAND_SIZE];
     strlcpy(split_command, command, MAX_COMMAND_SIZE);
     Serial.print(F("Received : '"));
@@ -69,7 +68,7 @@ namespace sensor_commands {
 
   void run(const char *command) {
     char function_name[MAX_COMMAND_SIZE];
-    long parameter;
+    int32_t parameter;
     if (parseCommand(command, function_name, parameter)) {
       listAvailableCallbacks();
       return;
@@ -79,14 +78,13 @@ namespace sensor_commands {
     Serial.print("'. Parameter : ");
     Serial.println(parameter);
 
-    // Test all the callbacks.
     for (uint8_t i = 0; i < callbacks_count; i++) {
       if (!strcmp(function_name, callbacks[i].name)) {
         Serial.print("Function found!!!");
         Serial.print("Trying '");
         Serial.print(callbacks[i].name);
         Serial.println("'");
-        callbacks[i].function(callbacks[i].data);
+        callbacks[i].function(parameter);
         return;
       }
     }
diff --git a/ampel-firmware/sensor_commands.h b/ampel-firmware/sensor_commands.h
index e94ec31bba611db2791af8cf9e5a0c1814b62c7a..cecbcf37a74f3f9d7163e6048a1618f9b58071e5 100644
--- a/ampel-firmware/sensor_commands.h
+++ b/ampel-firmware/sensor_commands.h
@@ -7,5 +7,5 @@
 
 namespace sensor_commands {
   void run(const char *command);
-  void defineCallback(const char *command, void (*f)(void*), void *d);
+  void defineCallback(const char *command, void (*f)(int32_t));
 }