             break;
 
     }
+}
+
+void sendNtpRequest(char* ntphost) {
+
+    // Initialise the Packet
+    memset(ntpPacketBuffer, 0, NTP_PACKET_SIZE);
+
+    ntpPacketBuffer[0] = 0b11100011;    // LI, Version, Mode
+    ntpPacketBuffer[1] = 0;             // Stratum
+    ntpPacketBuffer[2] = 6;             // Polling Interval (Really? What is this measured in, is it realistic?)
+    ntpPacketBuffer[3] = 0xEC;          // Peer Clock Precision (WHAT IS IT)
+    // 8 bytes of zero
+    ntpPacketBuffer[12] = 49;           // I justs love random magic numbers!
+    ntpPacketBuffer[13] = 0x4E;
+    ntpPacketBuffer[14] = 49;
+    ntpPacketBuffer[15] = 52;
+
+//    ntpUdp.beginPacket(ntphost, 123);
+    IPAddress tranquil(192, 168, 0, 249);
+    ntpUdp.beginPacket(tranquil, 123);
+    ntpUdp.write(ntpPacketBuffer, NTP_PACKET_SIZE);
+    ntpUdp.endPacket();
+    Serial.println("Sent an NTP Request");
+}
+
+
+void processNtpResponse() {
+
+    ntpUdp.read(ntpPacketBuffer, NTP_PACKET_SIZE);
+    //the timestamp starts at byte 40 of the received packet and is four bytes,
+    // or two words, long. First, esxtract the two words:
+
+    unsigned long highWord = word(ntpPacketBuffer[40], ntpPacketBuffer[41]);
+    unsigned long lowWord = word(ntpPacketBuffer[42], ntpPacketBuffer[43]);
+    // combine the four bytes (two words) into a long integer
+    // this is NTP time (seconds since Jan 1 1900):
+    unsigned long secsSince1900 = highWord << 16 | lowWord;
+    Serial.print("Seconds since Jan 1 1900 = " );
+    Serial.println(secsSince1900);
+
+    // now convert NTP time into everyday time:
+    Serial.print("Unix time = ");
+    // Unix time starts on Jan 1 1970. In seconds, that's 2208988800:
+    const unsigned long seventyYears = 2208988800UL;
+    // subtract seventy years:
+    unsigned long epoch = secsSince1900 - seventyYears;
+    // print Unix time:
+    Serial.println(epoch);
+
+    // print the hour, minute and second:
+    Serial.print("The UTC time is ");       // UTC is the time at Greenwich Meridian (GMT)
+    Serial.print((epoch  % 86400L) / 3600); // print the hour (86400 equals secs per day)
+    Serial.print(':');
+    if ( ((epoch % 3600) / 60) < 10 ) {
+      // In the first 10 minutes of each hour, we'll want a leading '0'
+      Serial.print('0');
+    }
+    Serial.print((epoch  % 3600) / 60); // print the minute (3600 equals secs per minute)
+    Serial.print(':');
+    if ( (epoch % 60) < 10 ) {
+      // In the first 10 seconds of each minute, we'll want a leading '0'
+      Serial.print('0');
+    }
+    Serial.println(epoch % 60); // print the second
+
 }
 
 void loop() {

    }
    lcd.setCursor(0, line);
}

void setup() {


            lcd.print(year());
            show_date = !show_date;
        }

        // See if we have an NTP response
        if (ntpUdp.parsePacket()) {
			Serial.println("Something is waiting for us");
            processNtpResponse();
        }
        secsSinceLastNtpReq++;
    }

    if (secsSinceLastNtpReq > secsBetweenNtpReqs) {
        Serial.println("NTP Update Required");
        sendNtpRequest(ntpServer);
		secsSinceLastNtpReq = 0;
    }

    dhcp_maintain();
