 
 
 unsigned long prevStepTime = 0;
-unsigned long prevCounterTime = 0;
 unsigned long prevUpdateTime = 0;
 unsigned long prevReportTime = 0;
 
 void loop(){
   if(millis()-prevStepTime >= WALKER_TIMESTEP){
-    prevStepTime = millis();
-    /*
-    if(--step_period == 0){
-      // step_period is reset inside step_led();
-      step_led();
-    }*/
+    unsigned long error = millis()-prevStepTime - WALKER_TIMESTEP;
+    prevStepTime = millis() - error;
     draw_walker(decaseconds_left--);
-  }
-  
-  if(millis()-prevCounterTime >= 500){
-    prevCounterTime = millis();
-    writeDigits(decaseconds_left/10);
+    if(decaseconds_left%10==0){
+      writeDigits(decaseconds_left/10);
+    }
   }
   
   if(millis()-prevUpdateTime >= UPDATE_TIME){

}

#define UPDATE_TIME 20
#define WALKER_TIMESTEP 25
uint16_t step_period = 1;
uint8_t leds_index = 0;
uint8_t colour_counter=0; //keep track of the remaining colours in led (100-leds_left)

  }
  // Finally, the walking led
  walker_leds[current_pos] = moving_colours[current_colour];
}

void update(){
