bitmanrc:
la riga dove non va più gia al primo utlizzo e questa
setSyncProvider(getNtpTime); //// si blocca a questo comando/riga, quindi NON fa la richiesta
Beh, prima considerazione. Non ho sottomano una Ethernet quindi non posso provare, però mi (ti) chiedo una cosa: la setSyncProvider() serve per specificare la funzione per callback E sincronizzare l'ora, ma perché tu la metti nel loop()? Non so se richiamarla più volte possa dare problemi, ma io quella la metterei nel setup() (come tra l'altro puoi vedere negli esempi allegati alla libreria!), e poi nel loop ti basta chiamare la now().
Poi un'altra cosa per me "strana" è negli include del tuo sketch.
Perché fai anche
#include "utility/w5100.h"
?
Primo, già lo fa la ICMPPing (vedi il .h) quindi non ne hai bisogno, ma secondo, perché con le doppie vigolette (invece di #include <utility/w5100.h>)? Hai una w5100.h "tua" nella cartella dello sketch? Perché?
Insomma, prendi gli esempi sia della ICMPPing sia della TimeLib, se vedi quali #include mettono fai la stessa cosa. In pratica togli la "utility" che non ci va, e lascia solo questi:
#include <SPI.h>
#include <Ethernet.h>
#include <ICMPPing.h>
#include <TimeLib.h>
#include <EthernetUdp.h>
e dimmi che succede.