 RunningAverage avg_throttle(3);
 
 // #######################################################
+
+const char *app_name = "RaceLogger";
+char app_screen_name[16];
+
 // LCD shield
 LiquidCrystal lcd(LCD_PIN_1, LCD_PIN_2, LCD_PIN_3, LCD_PIN_4, LCD_PIN_5, LCD_PIN_6);
-//LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
-
-byte lcd_button;
-byte prev_button = 0;
-unsigned long prev_button_timestamp = 0;
-unsigned long last_none_null_button_timestamp = 0;
-const unsigned long BUTTONS_MAX_INACTIVITY = 5000; // After this delay, the configuration menu is replaced with the running screen
-
-uint8_t custom_hex0[8] = {0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F}; // full square
-uint8_t custom_hex1[8] = {0x02,0x06,0x0E,0x1E,0x1E,0x0E,0x06,0x02}; // square with right empty line
-uint8_t custom_hex2[8] = {0x08,0x0C,0x0E,0x0F,0x0F,0x0E,0x0C,0x08}; // square with left empty line
-
-const int BUTTONS_DELAY = 200; // minimum milliseconds between two buttons events
+// LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
 
 // LCD shield buttons values
 enum {


  set_horizon_value();

  draw("RaceLogger 2.3", "Running...", 1500);
}


/* Main loop */
void loop() {



void setup() {

  strcpy(app_screen_name, app_name);
  strcpy(app_screen_name, " ");
  sprintf(app_screen_name, "%1.1f", VERSION);

  lcd.begin(16, 2);

  lcd.createChar(3, custom_hex1);
