        case 11: lcd.setCursor(c,r+1); lcd.write(byte(7)); lcd.setCursor(c,r+2); lcd.write(byte(7)); break; 
     } 
 }
-
 // Count the number of digits in a number
 // used to draw the individual big numbers
 byte countDigits(int num){

    }
    return number % 10;
}

// FREERAM: Returns the number of bytes currently free in RAM  
int freeRam(void) {
  extern int  __bss_end, *__brkval; 

    lcd.createChar(5, x15);                      // digit piece
    lcd.createChar(6, x16);                      // digit piece
    lcd.createChar(7, x17);                      // digit piece (colon)
    // set the time if the RTC is not running
    if (! RTC.isrunning()) {
      Serial.println("RTC is NOT running!");
      // the following line sets the RTC to the date & time this sketch was compiled
      RTC.adjust(DateTime(F(__DATE__), F(__TIME__)));
    }
    // Set Initial state
    state = SHOW_SPLASH;          
    previousState = SHOW_SPLASH;
}

/////////////////////////////////////
// Loop - runs over and over again //
/////////////////////////////////////
void loop() {           
    // Uses the current state to decide what to process
    
    // Clear the LCD if state has changed
    if(previousState != state)
    {
      lcd.clear();
    }
    switch (state)
    {
        case SHOW_SPLASH:
            drawLoadingScreen();
            lcd.clear();
            showSplash();
            delay(6000);
            lcd.clear();
            state = SHOW_TIME;
            break;
        case SHOW_TIME:
            showTime();
            showDate();
            previousState = state;
            break;
        case SHOW_CUSTOM_TEXT:     
            showSerialText();
            showTime();
            previousState = state;
            break;
        case SHOW_SYSTEM_INFO:  
            showSystemInfo();
            previousState = state;
            break;
    } 
    // Read Button States
    button1State = digitalRead(button1Pin);
    button2State = digitalRead(button2Pin);
    button3State = digitalRead(button3Pin);
    // Toggle Switch HIGH - ON, LOW - OFF
    button4State = digitalRead(button4Pin);
    // Handle Button Presses
    if (button1State == LOW || button2State == LOW || button3State == LOW)
    {
