 
 // Third Party Libs
 #include <Ethernet2.h>          // https://github.com/adafruit/Ethernet2
+#include <EthernetUdp2.h>       // https://github.com/adafruit/Ethernet2
 #include <LiquidTWI2.h>         // https://github.com/lincomatic/LiquidTWI2
 #include <DS3232RTC.h>          // https://github.com/JChristensen/DS3232RTC
 #include <Time.h>               // https://github.com/PaulStoffregen/Time
+
+// NTP Details
+unsigned int secsSinceLastNtpReq = 32000;
+const unsigned int secsBetweenNtpReqs = 10;   // Four Hours
+//const unsigned int secsBetweenNtpReqs = 21600;   // Four Hours
+unsigned int ntpLocalPort = 8123;
+char ntpServer[] = "tranquil.home.thanhandjared.net";
+const int NTP_PACKET_SIZE = 48;
+byte ntpPacketBuffer[NTP_PACKET_SIZE];
+EthernetUDP ntpUdp;
 
 // Setup the Pins
 // Reserved Pins:

  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02
};

bool show_date = true;

void LCD_clearLine(int line) {


    while (Ethernet.begin(mac) != 1) {
        Serial.println("No response from DHCP. Sleeping."); 
        delay(5000);
    }
    LCD_clearLine(1);
    lcd.print(Ethernet.localIP());
    Serial.print("Got IP: ");
    Serial.println(Ethernet.localIP());
    delay(5000);
    lcd.clear();

    ntpUdp.begin(ntpLocalPort);

}

// Maintainbe our DHCP Lease
// Based on examples from the Ethernet2 Library
void dhcp_maintain() {
    switch (Ethernet.maintain()) {
