Ethernet.h library problem - IDE version 1.5.8

I know I'm missing something but I cannot find it:

Right from the arduino sketchbook:

/*
 * Time_NTP.pde
 * Example showing time sync to NTP time source
 *
 * This sketch uses the Ethenet library with the user contributed UdpBytewise extension
 */
 
#include <Time.h> 
#include <Ethernet.h>
#include <UdpBytewise.h>  // UDP library from: bjoern@cs.stanford.edu 12/30/2008 
#if  UDP_TX_PACKET_MAX_SIZE <64 ||  UDP_RX_PACKET_MAX_SIZE < 64
#error : UDP packet size to small - modify UdpBytewise.h to set buffers to 64 bytes
#endif
/*
 *
 * You may need to modify the UdpBytewise.h library to allow enough space in the buffers for the NTP packets.
 * Open up UdpBytewse.h and set the following buffers to 64 bytes:
 *    #define UDP_TX_PACKET_MAX_SIZE 64
 *    #define UDP_RX_PACKET_MAX_SIZE 64
 */


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; 
byte ip[] = { 192, 168, 1, 44 }; // set the IP address to an unused address on your network

byte SNTP_server_IP[]    = { 192, 43, 244, 18}; // time.nist.gov
//byte SNTP_server_IP[] = { 130,149,17,21};    // ntps1-0.cs.tu-berlin.de
//byte SNTP_server_IP[] = { 192,53,103,108};   // ptbtime1.ptb.de


time_t prevDisplay = 0; // when the digital clock was displayed
const  long timeZoneOffset = 0L; // set this to the offset in seconds to your local time;

void setup() 
{
  Serial.begin(9600);
  Ethernet.begin(mac,ip);  
  Serial.println("waiting for sync");
  setSyncProvider(getNtpTime);
  while(timeStatus()== timeNotSet)   
     ; // wait until the time is set by the sync provider
}

void loop()
{  
  if( now() != prevDisplay) //update the display only if the time has changed
  {
    prevDisplay = now();
    digitalClockDisplay();  
  }
}

void digitalClockDisplay(){
  // digital clock display of the time
  Serial.print(hour());
  printDigits(minute());
  printDigits(second());
  Serial.print(" ");
  Serial.print(day());
  Serial.print(" ");
  Serial.print(month());
  Serial.print(" ");
  Serial.print(year()); 
  Serial.println(); 
}

void printDigits(int digits){
  // utility function for digital clock display: prints preceding colon and leading 0
  Serial.print(":");
  if(digits < 10)
    Serial.print('0');
  Serial.print(digits);
}

/*-------- NTP code ----------*/

unsigned long getNtpTime()
{
  sendNTPpacket(SNTP_server_IP);
  delay(1000);
  if ( UdpBytewise.available() ) {
    for(int i=0; i < 40; i++)
       UdpBytewise.read(); // ignore every field except the time
    const unsigned long seventy_years = 2208988800UL + timeZoneOffset;        
    return getUlong() -  seventy_years;      
  }
  return 0; // return 0 if unable to get the time
}

unsigned long sendNTPpacket(byte *address)
{
  UdpBytewise.begin(123);
  UdpBytewise.beginPacket(address, 123);
  UdpBytewise.write(B11100011);   // LI, Version, Mode
  UdpBytewise.write(0);    // Stratum
  UdpBytewise.write(6);  // Polling Interval
  UdpBytewise.write(0xEC); // Peer Clock Precision
  write_n(0, 8);    // Root Delay & Root Dispersion
  UdpBytewise.write(49); 
  UdpBytewise.write(0x4E);
  UdpBytewise.write(49);
  UdpBytewise.write(52);
  write_n(0, 32); //Reference and time stamps  
  UdpBytewise.endPacket();   
}

unsigned long getUlong()
{
    unsigned long ulong = (unsigned long)UdpBytewise.read() << 24;
    ulong |= (unsigned long)UdpBytewise.read() << 16;
    ulong |= (unsigned long)UdpBytewise.read() << 8;
    ulong |= (unsigned long)UdpBytewise.read();
    return ulong;
}

void write_n(int what, int how_many)
{
  for( int i = 0; i < how_many; i++ )
    UdpBytewise.write(what);
}

getting this error:

TimeNTP.pde:9:22: fatal error: Ethernet.h: No such file or directory
compilation terminated.
Error compiling.

I have this library installed:

UdpBytewise.h

OK, so I discovered Ethernet.h file was somehow deleted...

now I have this error

Arduino: 1.5.8 (Mac OS X), Board: "Arduino Pro or Pro Mini, ATmega328 (3.3V, 8 MHz)"

Build options changed, rebuilding all
Using library Time in folder: /Users/bulldoglowell/Documents/Arduino/libraries/Time (legacy)
Using library Ethernet in folder: /Users/bulldoglowell/Documents/Arduino/libraries/Ethernet (legacy)

/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=8000000L -DARDUINO=158 -DARDUINO_AVR_PRO -DARDUINO_ARCH_AVR -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/variants/eightanaloginputs -I/Users/bulldoglowell/Documents/Arduino/libraries/Time -I/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet /var/folders/r7/cw1jznxs6dj06v6_pgttpkh00000gn/T/build1537711412417436282.tmp/TimeNTP.cpp -o /var/folders/r7/cw1jznxs6dj06v6_pgttpkh00000gn/T/build1537711412417436282.tmp/TimeNTP.cpp.o
In file included from TimeNTP.pde:10:0:
/Users/browerjames/Documents/Arduino/libraries/Ethernet/UdpBytewise.h:70:15: error: conflicting return type specified for 'virtual void UdpBytewiseClass::write(uint8_t)'
virtual void write(uint8_t); // add a byte to the currently assembled packet (if there's space)
^
In file included from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino/Stream.h:26:0,
from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino/HardwareSerial.h:29,
from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino/Arduino.h:223,
from /Users/bulldoglowell /Documents/Arduino/libraries/Ethernet/EthernetClient.h:3,
from /Users/bulldoglowell /Documents/Arduino/libraries/Ethernet/Ethernet.h:7,
from TimeNTP.pde:9:
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino/Print.h:48:20: error: overriding 'virtual size_t Print::write(uint8_t)'
virtual size_t write(uint8_t) = 0;
^
Error compiling.

I have only had these problems since upgrading to 1.5.8 Is that my issue?

Just downloaded all the libraries and attempted to compile (on various versions of the IDE) and I'm getting errors all over the place. At first glance it appears that Ethernet.h and UdpBytewise.h are duplicating definitions. (and hence causing errors)

I'll keep digging.

OK So looking through the Ethernet Library that I have, it appears to cover what is available in the udpBytewise library. Maybe udpBytewise is an old library that's no longer compatible with the new ethernet library?

Anyhow with a few modifications I managed to get it to compile but I'm not especially confident that it'll work. Basically what I did was:
Added
EthernetUDP ethUDP;
Remarked out:
#include <ethUDP.h> // UDP library from: bjoern@cs.stanford.edu 12/30/2008
#if UDP_TX_PACKET_MAX_SIZE <64 || UDP_RX_PACKET_MAX_SIZE < 64
#error : UDP packet size to small - modify ethUDP.h to set buffers to 64 bytes
#endif
In Setup
ethUDP.begin(1800); // just a random port address
Global search and replace of UdpBytewise with ethUDP

Then had to change ethUDP.write commands to specifically cast the arguments as (bytes)
Apparently it's ambiguous otherwise :\

BTW the function unsigned long sendNTPpacket(byte *address) still doesn't return anything! (not my fault)

And if this thing works it'll be a * miracle. But I don't have the hardware to even begin to test it.

/*
 * Time_NTP.pde
 * Example showing time sync to NTP time source
 *
 * This sketch uses the Ethenet library with the user contributed ethUDP extension
 */
 
#include <Time.h> 
#include <Ethernet.h>

EthernetUDP ethUDP;

//#include <ethUDP.h>  // UDP library from: bjoern@cs.stanford.edu 12/30/2008 
//#if  UDP_TX_PACKET_MAX_SIZE <64 ||  UDP_RX_PACKET_MAX_SIZE < 64
//#error : UDP packet size to small - modify ethUDP.h to set buffers to 64 bytes
//#endif
/*
 *
 * You may need to modify the ethUDP.h library to allow enough space in the buffers for the NTP packets.
 * Open up UdpBytewse.h and set the following buffers to 64 bytes:
 *    #define UDP_TX_PACKET_MAX_SIZE 64
 *    #define UDP_RX_PACKET_MAX_SIZE 64
 */


byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; 
byte ip[] = { 192, 168, 1, 44 }; // set the IP address to an unused address on your network

byte SNTP_server_IP[]    = { 192, 43, 244, 18}; // time.nist.gov
//byte SNTP_server_IP[] = { 130,149,17,21};    // ntps1-0.cs.tu-berlin.de
//byte SNTP_server_IP[] = { 192,53,103,108};   // ptbtime1.ptb.de

time_t prevDisplay = 0; // when the digital clock was displayed
const  long timeZoneOffset = 0L; // set this to the offset in seconds to your local time;

void setup() 
{
  Serial.begin(9600);
  Ethernet.begin(mac,ip);
  ethUDP.begin(1800);  
  Serial.println("waiting for sync");
  setSyncProvider(getNtpTime);
  while(timeStatus()== timeNotSet)   
     ; // wait until the time is set by the sync provider
}

void loop()
{  
  if( now() != prevDisplay) //update the display only if the time has changed
  {
    prevDisplay = now();
    digitalClockDisplay();  
  }
}

void digitalClockDisplay(){
  // digital clock display of the time
  Serial.print(hour());
  printDigits(minute());
  printDigits(second());
  Serial.print(" ");
  Serial.print(day());
  Serial.print(" ");
  Serial.print(month());
  Serial.print(" ");
  Serial.print(year()); 
  Serial.println(); 
}

void printDigits(int digits){
  // utility function for digital clock display: prints preceding colon and leading 0
  Serial.print(":");
  if(digits < 10)
    Serial.print('0');
  Serial.print(digits);
}

/*-------- NTP code ----------*/

unsigned long getNtpTime()
{
  sendNTPpacket(SNTP_server_IP);
  delay(1000);
  if ( ethUDP.available() ) {
    for(int i=0; i < 40; i++)
       ethUDP.read(); // ignore every field except the time
    const unsigned long seventy_years = 2208988800UL + timeZoneOffset;        
    return getUlong() -  seventy_years;      
  }
  return 0; // return 0 if unable to get the time
}

unsigned long sendNTPpacket(byte *address)
{
  ethUDP.begin(123);
  ethUDP.beginPacket(address, 123);
  //ethUDP.write(B11100011);   // LI, Version, Mode
  ethUDP.write((byte) 0);    // Stratum
  ethUDP.write((byte) 6);  // Polling Interval
  ethUDP.write(0xEC); // Peer Clock Precision
  write_n(0, 8);    // Root Delay & Root Dispersion
  ethUDP.write((byte) 49); 
  ethUDP.write((byte) 0x4E);
  ethUDP.write((byte) 49);
  ethUDP.write((byte)1);
  write_n(0, 32); //Reference and time stamps  
  ethUDP.endPacket();   
}

unsigned long getUlong()
{
    unsigned long ulong = (unsigned long)ethUDP.read() << 24;
    ulong |= (unsigned long)ethUDP.read() << 16;
    ulong |= (unsigned long)ethUDP.read() << 8;
    ulong |= (unsigned long)ethUDP.read();
    return ulong;
}

void write_n(int what, int how_many)
{
  for( int i = 0; i < how_many; i++ )
    ethUDP.write(what);
}

My errors are down to this:

Using library Time in folder: /Users/bulldoglowell/Documents/Arduino/libraries/Time (legacy)
Using library Ethernet in folder: /Users/bulldoglowell/Documents/Arduino/libraries/Ethernet (legacy)

/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=158 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/variants/eightanaloginputs -I/Users/bulldoglowell/Documents/Arduino/libraries/Time -I/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet /var/folders/r7/cw1jznxs6dj06v6_pgttpkh00000gn/T/build5128148844008357619.tmp/TimeNTP.cpp -o /var/folders/r7/cw1jznxs6dj06v6_pgttpkh00000gn/T/build5128148844008357619.tmp/TimeNTP.cpp.o
In file included from TimeNTP.pde:10:0:
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/UdpBytewise.h:70:15: error: conflicting return type specified for 'virtual void UdpBytewiseClass::write(uint8_t)'
virtual void write(uint8_t); // add a byte to the currently assembled packet (if there's space)
^
In file included from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino/Stream.h:26:0,
from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino/HardwareSerial.h:29,
from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino/Arduino.h:223,
from /Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/EthernetClient.h:3,
from /Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Ethernet.h:7,
from TimeNTP.pde:9:
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino/Print.h:48:20: error: overriding 'virtual size_t Print::write(uint8_t)'
virtual size_t write(uint8_t) = 0;
^
Error compiling.

mind boggling that I cannot find another example of a NTP synced clock (Ethernet.h plus Time.h)

Maybe I need to move this to another category?

I use NTP on my Mega using either an ethernet shield or wifi shield, and it keep great time, even without a system clock (RTC). It stays within a couple seconds of the correct time.

Have you tried the UdpNtpClient sketch in the examples? Does it get the correct time?

I haven't tried this on IDE v1.5.8 tho. Seemed to work on earlier v1.5.x and v1.0.x versions.

thanks Tim... I tried your recommendation on UdpNtpClient and could not compile either:

I must have screwed up my libraries importing UdpBytewise.h or there is a problem with 1.5.8 and these libs

errors from UdpNtpClient

Build options changed, rebuilding all
Using library SPI in folder: /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/libraries/SPI
Using library Ethernet in folder: /Users/bulldoglowell/Documents/Arduino/libraries/Ethernet (legacy)

/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=158 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/variants/eightanaloginputs -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/libraries/SPI -I/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet /var/folders/r7/cw1jznxs6dj06v6_pgttpkh00000gn/T/build5128148844008357619.tmp/UdpNtpClient.cpp -o /var/folders/r7/cw1jznxs6dj06v6_pgttpkh00000gn/T/build5128148844008357619.tmp/UdpNtpClient.cpp.o
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=158 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/variants/eightanaloginputs -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/libraries/SPI -I/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/libraries/SPI/utility /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/libraries/SPI/SPI.cpp -o /var/folders/r7/cw1jznxs6dj06v6_pgttpkh00000gn/T/build5128148844008357619.tmp/SPI/SPI.cpp.o
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=158 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/variants/eightanaloginputs -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/libraries/SPI -I/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet -I/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/utility /Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Dhcp.cpp -o /var/folders/r7/cw1jznxs6dj06v6_pgttpkh00000gn/T/build5128148844008357619.tmp/Ethernet/Dhcp.cpp.o
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=158 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/variants/eightanaloginputs -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/libraries/SPI -I/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet -I/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/utility /Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Dns.cpp -o /var/folders/r7/cw1jznxs6dj06v6_pgttpkh00000gn/T/build5128148844008357619.tmp/Ethernet/Dns.cpp.o
/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=158 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/variants/eightanaloginputs -I/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/avr/libraries/SPI -I/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet -I/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/utility /Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Ethernet.cpp -o /var/folders/r7/cw1jznxs6dj06v6_pgttpkh00000gn/T/build5128148844008357619.tmp/Ethernet/Ethernet.cpp.o
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Ethernet.cpp: In member function 'void EthernetClass::begin(uint8_t*, IPAddress, IPAddress, IPAddress, IPAddress)':
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Ethernet.cpp:65:39: error: no matching function for call to 'W5100Class::setIPAddress(IPAddress::&)'
W5100.setIPAddress(local_ip._address);
^
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Ethernet.cpp:65:39: note: candidate is:
In file included from /Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Ethernet.cpp:1:0:
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/utility/w5100.h:392:6: note: void W5100Class::setIPAddress(uint8_t*)
void W5100Class::setIPAddress(uint8_t _addr) {
^
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/utility/w5100.h:392:6: note: no known conversion for argument 1 from 'IPAddress::' to 'uint8_t
{aka unsigned char*}'
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Ethernet.cpp:66:38: error: no matching function for call to 'W5100Class::setGatewayIp(IPAddress::&)'
W5100.setGatewayIp(gateway._address);
^
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Ethernet.cpp:66:38: note: candidate is:
In file included from /Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Ethernet.cpp:1:0:
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/utility/w5100.h:368:6: note: void W5100Class::setGatewayIp(uint8_t*)
void W5100Class::setGatewayIp(uint8_t _addr) {
^
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/utility/w5100.h:368:6: note: no known conversion for argument 1 from 'IPAddress::' to 'uint8_t
{aka unsigned char*}'
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Ethernet.cpp:67:38: error: no matching function for call to 'W5100Class::setSubnetMask(IPAddress::&)'
W5100.setSubnetMask(subnet._address);
^
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Ethernet.cpp:67:38: note: candidate is:
In file included from /Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/Ethernet.cpp:1:0:
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/utility/w5100.h:376:6: note: void W5100Class::setSubnetMask(uint8_t*)
void W5100Class::setSubnetMask(uint8_t _addr) {
^
/Users/bulldoglowell/Documents/Arduino/libraries/Ethernet/utility/w5100.h:376:6: note: no known conversion for argument 1 from 'IPAddress::' to 'uint8_t
{aka unsigned char*}'
Error compiling.

I can't get to my computer that has the Arduino IDEs on it right now. I do have v1.5.8 installed on it already. It will be several hours before I can get to it, but I will try the UdpNtpClient example sketch for you then. I'll post here when I do the test.

If that works, I'll try my time sketch and if it works, I'll post it here for you.

Thanks Tim. I appreciate it.

FYI, my contents of Ethernet library attached in a photo

Time.h has problems with IDE v1.5.8. My version doesn't throw as many errors as yours does, but it won't compile. It complains about two PROGMEM month and day array variables in the DateStrings.cpp file. It does compile and run with IDE v1.0.6. Would you like my code?

SurferTim:
Time.h has problems with IDE v1.5.8. My version doesn't throw as many errors as yours does, but it won't compile. It complains about two PROGMEM month and day array variables in the DateStrings.cpp file. It does compile and run with IDE v1.0.6. Would you like my code?

no thanks Tim, I just reverted to V1.0.6 of the IDE and was able to get things cooking.

I really appreciate the help

OK. Maybe someone will see this post and fix Time.h for us. I don't know what has changed, and I wouldn't want to mess things up for the new devices that IDE v1.5.x supports.

I fixed the Time library for IDE v1.5.8.
http://forum.arduino.cc/index.php?topic=278525.msg1962895#msg1962895
Both the ethernet and time libraries work now.

SurferTim:
I fixed the Time library for IDE v1.5.8.
Time library and IDE v1.5.8 - #2 by SurferTim - Libraries - Arduino Forum
Both the ethernet and time libraries work now.

nice Tim, thanks for letting me know...

Cannot wait to try!