Alla fine ci sono riuscito!
Ho deciso che per forza di cose l'unica modalità sufficientemente affidabile era il watchdog, pertanto armato di santa pazienza ho fatto alcune prove.
Diagnosticato ad oltranza che il problema non poteva essere lato applicazione (programma principale) ho preso in mano il codice sorgente del bootloader.
Per prima cosa ho fatto in modo che compilandolo ne avessi una versione che perlomeno funzionasse come quello precedente (cosa che in automatico non era possibile in quanto chi aveva fatto il fork aveva 'smanettato' nel frattempo e non si ricordava bene cosa e dove!)
Una volta ottenuto il bootloader SD funzionante da mia compilazione avevo finalmente una buona base di partenza per risolvere il problema.
Mi sono messo alla ricerca del probabile problema, che altro non poteva essere se non il watchdog , in quanto se non lo usavo non avevo alcun problema!
A seguito di fortuna,ma sicuramente anche di tanta pazienza e audacia, mi sono imbattuto in una interessante lettura inerente i cani da guardia :
http://www.nongnu.org/avr-libc/user-manual/group__avr__watchdog.htmlDove ad un certo punto si legge chiaramente :
'Note that for newer devices (ATmega88 and newer, effectively any AVR that has the option to also generate interrupts), the watchdog timer remains active even after a system reset (except a power-on condition), using the fastest prescaler value (approximately 15 ms)'
Mi si è accesa subito una lampadina, e ho pensato , vuoi vedere che porca di quella miniotta il watchdog rimane attivo (a velocità pazzesca mi permetto di aggiungere) e mi va in loop subito dopo il caricamento delle prime righe del main del bootloader??
Riarmato di santa pazienza e energizzato da una scarica di ave marie che la metà basta e avanza ho analizzato bene la lettura che mi ha portato alla deduzione e ho partorito una serie di modifiche al bootloader che alla fine mi hanno dato ragione e regalato finalmente il mio obbiettivo finale:
Avere un webserver su ArduinoEthernet con la quale interagire le funzionalità della scheda e dal quale ho la possibilità di aggiornare da web anche il suo stesso firmware senza avere alcun tipo di accesso fisico alla scheda.
Sono contento,perchè oltre ad averne veramente bisogno sul campo , ora posso dedicarmi ad un altra cosa molto interessante che ho iniziato a vedere oggi... ma questa è un altra storia e ve la racconto un altro giorno!
Per stasera vado a dormire... me lo sono meritato!