Consigli Arduino Fio V3

Però è strano che il vecchio bootloader del Fio V3 funziona e il nuovo no. Secondo voi può essere un problema di versione dell'IDE?

Scusa ma sono andato a guardare nella sezione "products" del sito principale e non ho trovato nessuna FIO V3 con un chip diverso dall'Atmega328. Men che meno una FIO rossa. Il rosso è il colore usato di solito da Sparkfun, non è che è un prodotto realizzato da questa ditta?

Comunque se tu dici che la FIO V3 (che per me non esiste fra le schede ufficiali) ha il chip della Micro, allora si tratta di un Atmega32U4 e non può certo funzionare con un bootloader compilato per un Atmega328.

leo72: Scusa ma sono andato a guardare nella sezione "products" del sito principale e non ho trovato nessuna FIO V3 con un chip diverso dall'Atmega328. Men che meno una FIO rossa. Il rosso è il colore usato di solito da Sparkfun, non è che è un prodotto realizzato da questa ditta?

Sì, il Fio V3 è rosso ed è della SparkFun. Comunque anche il Fio normale dovrebbe essere prodotto in collaborazione con la Sparkfun perchè, anche se è blu, ha sempre il logo di questa ditta stampato dietro.

leo72: Comunque se tu dici che la FIO V3 (che per me non esiste fra le schede ufficiali) ha il chip della Micro, allora si tratta di un Atmega32U4 e non può certo funzionare con un bootloader compilato per un Atmega328.

Io non ho mai parlato dell'Atmega328. Ho detto che il vecchio bootloader del Fio V3, che è scaricabile da questa pagina https://www.sparkfun.com/products/11017 dal link "Arduino Addon and Driver Files" viene caricato correttamente, mantre il nuovo bootloader, sempre del Fio V3, scaricabile da questa pagina https://www.sparkfun.com/products/11520 dal link "Arduino Addons File" non si carica e mi esce quell'errore.

Entrambi sono per Atmega32u4 e le differenze sono descritte qui https://dlnmh9ip6v2uc.cloudfront.net/datasheets/Dev/Arduino/Boards/32U4Note.pdf

Ho risolto il problema del bootloader combinando e rinominando qualche file :D

Ora devo capire un'ultima cosa, ricollegandomi a qualche post che avevo scritto precedentemente. Quando ho collegato insieme touch shield (i2c) e mp3 shield all'Arduino Micro e avevo selezionato il pin di interrupt dell'mp3 shield collegato al pin D7, corrispondente a INT4 tutto ha funzionato; con il Fio V3 invece no. Così ho provato a collegarlo Sul pin D2 (INT1 e anche SDA) insieme al pin SDA della touch shield, ma quando premo un qualsiasi tasto della shiled la musica si blocca e non riparte più. Provando invece a collegare il pin di interrupt dell'mp3 shield al pin D3 (INT0 e anche SCL) del Fio V3, insieme all'SCL della touch shield, tutto funziona correttamente e quando premo i tasti touch non si blocca niente e va tutto bene.

Ora mi chiedo: questo collegamento è stabile o funziona solo apparentemente e potrebbe avere problemi?

I link per le due shield li trovate nei post precedenti, ma li rimetto qui per sicurezza: mp3 shield ---> https://www.sparkfun.com/products/10628 touch shield ---> https://www.sparkfun.com/products/10508

Grazie in anticipo.

Non va bene, il bus i2c se è usato deve restare esclusivo per il collegamento dei segnali scl SDA. Mettere in parallelo ad essi la rilevazione di un interrupt non è corretto. La fio v3 devi gestirla come fosse una leonardo

Testato: La fio v3 devi gestirla come fosse una leonardo

Allora perchè il pin D7 del Fio V3 non corrisponde a INT4, come nel Leonardo? ---> http://arduino.cc/en/Reference/AttachInterrupt

Il case del chip ? È diverso e cambia piedinatura ? Da cell non posso approfondire.
Gestiscila come Arduino micro invece di Arduino leonardo

Testato:
Gestiscila come Arduino micro invece di Arduino leonardo

Ho provato anche così e non va.

vectorel: Io non ho mai parlato dell'Atmega328.

Mea culpa. Ne seguo troppe di discussioni, e poi finisce che mescolo mentalmente le cose. Scusa ancora :sweat_smile:

leo72: Mea culpa. Ne seguo troppe di discussioni, e poi finisce che mescolo mentalmente le cose. Scusa ancora :sweat_smile:

Non ti devi scusare, volevo solo chiarire meglio. Magari mi sono espresso male io in qualche post precedente.

Comunque se provo a caricare il programma selezionando il Leonardo e non il Fio V3 nel menu dell'IDE, il programma si carica e funziona correttamente, però poi il Fio non viene più riconosciuto da Windows. Aggiungo anche che il problema è relativo solo al pin D7/INT4. Gli altri (INT0, INT1, INT2 e INT3) funzionano correttamente.

Ricordati che l'Atmega32U4 ha un convertitore USB/seriale integrato ed opera in maniera particolare, ossia ogni volta che viene resettato esso rinegozia la porta logica con la quale si collega al computer. Dopo l'invio dello sketch il micro viene sempre resettato per far partire il nuovo programma, e questo reset sposta la porta. Quindi se prima era ttyACM0 o COM6 (a seconda dei sistemi) dopo diventa ttyACM1 o COM7, per esempio. Controlla se non ha solo cambiato di porta, altrimenti ti tocca sfilarlo e reinfilarlo nuovamente.

leo72:
Controlla se non ha solo cambiato di porta, altrimenti ti tocca sfilarlo e reinfilarlo nuovamente.

No, la porta non cambia (nel mio caso rimane sempre COM11) e se provo a togliere e rimettere l’USB non viene riconosciuto comunque.
Ho provato anche a metterlo ad un altro computer su cui ho installato i driver e l’IDE Arduino e a provare a caricare un programma, ma non funziona comunque. Mi compare il Fio in “gestione dispositivi” di Windows ma la porta COM non viene visualizzata nell’IDE Arduino.

Può sembrare strano, ma ricaricare il bootloader è stata l’unica soluzione per far riconoscere nuovamente la scheda dal computer.

Ma su quella scheda c'è un programma? Oppure si comporta così anche da "vergine", ossia con il solo bootloader sopra?

leo72: Ma su quella scheda c'è un programma? Oppure si comporta così anche da "vergine", ossia con il solo bootloader sopra?

Se carico il bootloader del Fio V3 tutto funziona. Ma è possibile che il pin D7/INT4, che funziona correttamente su Micro e Leonardo, sia stato volutamente disabilitato attraverso il bootloader del Fio V3? Anche se non vedo un senso in questo.

Ma come posso modificare il bootloader?

Se si tratta di un bootloader di quelli distribuiti con l'IDE di Arduino, i sorgenti sono in /hardware/arduino/bootloaders.

leo72: Se si tratta di un bootloader di quelli distribuiti con l'IDE di Arduino, i sorgenti sono in /hardware/arduino/bootloaders.

Grazie. Ci sono due file .c: caterina.c e descriptors.c (oltre ai rispettivi header) quale devo compilare ed eseguire per creare il file .hex?

Se li apro e li compilo con eclipse va bene?

Come quale devi compilare? :sweat_smile:
Devi compilare tutto il bootloader… E poi con Eclipse? Ma perché? Basta aprire un terminale e dare “make” una volta che hai apportato le modifiche che ti servono ai sorgenti.

Ho provato a compilare il bootloader del Fio V3 seguendo questa guida http://n0m1.com/2012/04/01/how-to-compiling-the-arduino-bootloader/ ma dopo che uso il comando make mi escono dei messaggi di errore.

vectorel: ma dopo che uso il comando make mi escono dei messaggi di errore.

Se li metti... magari si capisce cosa è successo.