diff --git a/main_fw/src/i2c_impl.c b/main_fw/src/i2c_impl.c
index d53793bb3c813a6b48ab6d44cadb206f78506136..a6518d6420db53f9b86eec0ac93d74cb37eca4b4 100644
--- a/main_fw/src/i2c_impl.c
+++ b/main_fw/src/i2c_impl.c
@@ -61,6 +61,8 @@ extern uint16_t powrs_lin[MAX_PAGE+1];
 extern uint16_t temps_lin[3];
 extern uint16_t frpms_lin[3];
 
+extern uint32_t seconds_up;
+
 uint32_t TMR_ERROR_CNT;
 
 static uint8_t dummy_byte;
@@ -123,6 +125,7 @@ static int8_t cmd_data_length_query = -1;
 static const int8_t ext_cmd_data_lengths[] = {
         1,  // 0x05
         1,  // 0x06
+        4,  // 0x10
         4,  // 0xA0
         1,  // 0xB0
         13, // 0xC0
@@ -156,11 +159,12 @@ static const cmd_t cmds_cmds[] = (cmd_t[]){
         {0x003E, (int8_t *)&cmd_data_lengths[23], (uint8_t *)&setfrpms_lin[2], (fp_t)NULL, &set_frpms, (fp_t)NULL, QUERY_WR | QUERY_FMT_LIN, 0},
         {0xFF05, (int8_t *)&ext_cmd_data_lengths[0], (uint8_t *)&dummy_byte, (fp_t)NULL, &boot_new_fw, (fp_t)NULL, 0, 0},
         {0xFF06, (int8_t *)&ext_cmd_data_lengths[1], (uint8_t *)&dummy_byte, (fp_t)NULL, &uc_reset, (fp_t)NULL, 0, 0},
-        {0xFFA0, (int8_t *)&ext_cmd_data_lengths[2], (uint8_t *)&TMR_ERROR_CNT, (fp_t)NULL, (fp_t)NULL, (fp_t)NULL, 0, 0},
-        {0xFFB0, (int8_t *)&ext_cmd_data_lengths[3], (uint8_t *)&use_pec_tmp, (fp_t)NULL, &set_pec, (fp_t)NULL, 0, 1},
-        {0xFFC0, (int8_t *)&ext_cmd_data_lengths[4], (uint8_t *)&temp_curve_points_data, (fp_t)NULL, &set_tc_curve, (fp_t)NULL, 0, 0},
-        {0xFFC1, (int8_t *)&ext_cmd_data_lengths[5], (uint8_t *)&temp_matrix_row, (fp_t)NULL, &set_tc_matrix, (fp_t)NULL, 0, 0},
-        {0xFFC4, (int8_t *)&ext_cmd_data_lengths[6], (uint8_t *)&tc_on, (fp_t)NULL, &set_tc_onoff, (fp_t)NULL, 0, 0}};
+        {0xFF10, (int8_t *)&ext_cmd_data_lengths[2], (uint8_t *)&seconds_up, (fp_t)NULL, (fp_t)NULL, (fp_t)NULL, 0, 0},
+        {0xFFA0, (int8_t *)&ext_cmd_data_lengths[3], (uint8_t *)&TMR_ERROR_CNT, (fp_t)NULL, (fp_t)NULL, (fp_t)NULL, 0, 0},
+        {0xFFB0, (int8_t *)&ext_cmd_data_lengths[4], (uint8_t *)&use_pec_tmp, (fp_t)NULL, &set_pec, (fp_t)NULL, 0, 1},
+        {0xFFC0, (int8_t *)&ext_cmd_data_lengths[5], (uint8_t *)&temp_curve_points_data, (fp_t)NULL, &set_tc_curve, (fp_t)NULL, 0, 0},
+        {0xFFC1, (int8_t *)&ext_cmd_data_lengths[6], (uint8_t *)&temp_matrix_row, (fp_t)NULL, &set_tc_matrix, (fp_t)NULL, 0, 0},
+        {0xFFC4, (int8_t *)&ext_cmd_data_lengths[7], (uint8_t *)&tc_on, (fp_t)NULL, &set_tc_onoff, (fp_t)NULL, 0, 0}};
 
 cmd_space_t cmds = {
         sizeof(cmds_cmds)/sizeof(cmd_t),
diff --git a/main_fw/src/main.c b/main_fw/src/main.c
index 8e7e40ab5f113386d6eb9606b60161d35e9f930a..9f4438dd80b9ecbfbc8b799c4b5444d34be7a247 100644
--- a/main_fw/src/main.c
+++ b/main_fw/src/main.c
@@ -29,6 +29,8 @@ uint16_t powrs_lin[MAX_PAGE+1];
 uint16_t temps_lin[3];
 uint16_t frpms_lin[3];
 
+volatile uint32_t seconds_up __xMR;
+
 #define TOTAL_PWM_CLOCKS 255
 
 int16_t curr_pwm_duty1000_1 = 10;
@@ -365,6 +367,7 @@ static void __xMR mytimercallback(const struct timer_task *const timer_task)
         update_pwm();
 #endif
         if (iter == 99) {
+                ++seconds_up;
                 iter = 0;
 #if defined(MMFANT) || defined(MMPROT)
                 update_rpm();