Arduino Due non esegue lo sketch in memoria quando viene alimentata

Salve a tutti ho un problema con la mia scheda Arduino Due (originale, s/n X000714417) che non avvia l'esecuzione dello sketch quando viene alimentata ma è necessario premere il pulsante di reset. Il problema si presenta sia alimentando la scheda tramite USB sia alimentandola tramite il connettore di alimentazione. Facendo una ricerca nel forum e su internet ho visto che il problema è diffuso ma non sono riuscito a trovarne la soluzione. La resistenza R23 che è spesso indicata quale causa del problema è del valore corretto, 1k. Ho provato a modificare il firmware del 16U2 come descritto qui: http://forum.arduino.cc/index.php?PHPSESSID=5p9v1i8mlqolg6lsnof0nip1u1&topic=167492.msg1373055#msg1373055 ma senza risultati. Qualcuno ha avuto il mio stesso problema ed è riuscito a risolverlo? Grazie per tutti i consigli Alessandro

Io non ho riscontrato questo problema, ho provato anche adesso 5-6 volte e parte sempre alimentandolo da USB Hai provato a mettere un delay(2000); come prima linea sul setup()?

cosa vuol dire

(originale, s/n X000714417)

ciao

Ho un paio di DUE e non ho riscontrato questo problema. Qual è lo sketch che stai usando?

PS: che poi il problema linkato non è uguale al tuo. Lì si parla di problemi di riconoscimento della scheda da parte del computer, mentre tu lamenti il non avvio dello sketch. Come detto, passa il codice che cerchiamo di capire

Non avevo letto il link in effetti l'argomento non riguarda il tuo problema, mi avevi fatto venire un colpo, l'ho appena comprata :)

ciao

Per curiosità, la tua è con o senza quarzo da 32K esterno? http://forum.arduino.cc/index.php?topic=189726.0

Grazie per le risposte

Lo sketch utilizza il bus I2C per gestire un modulo RTC e un display.

Non avevo assolutamente pensato che il problema potesse essere legato al bus I2C e non avevo provato a caricare uno sketch di base (la foto nel mio profilo ha il suo significato :( ). Ho provato col classico blink che dimostrato che il problema non era legato alla scheda.

Infine, seguendo il consiglio di Pablos, ho aggiunto il ritardo all'inizio del setup e questo ha risolto il problema. Grazie mille Pablos, terrò presente il tuo consiglio in futuro!

(originale, s/n X000714417): significa che è una scheda originale, e non un clone, e il suo numero di serie. Ho aggiunto queste informazioni per identificare la scheda nel caso che ci fosse stata una partita di schede difettose.

Secondo me sarebbe oppurtuno metterlo nel core quel ritardo per default
Non sarai l’unico che in certe circostanze avrà questo problema, tra i 10 utenti che hanno la DUE :slight_smile:

int main( void )
{
	init();
	delay(1500); // default 1

#if defined(USBCON)
	USBDevice.attach();
#endif
	setup();
	for (;;)
{
		loop();
	}
	return 0;
}