Atmega16U2 MIDI controller

Ciao a tutti, eccomi con un nuovo quesito.
E' da un po che volevo utilzzare il mio Arduino UNO rev3 per creare una rudimentale tastiera midi, ho quindi creato il circuito(banalissimo) e ho creato uno sketch processing con dei sample. Il tutto funziona perfettamente ma ha sostanzialmente due svantaggi: Il tempo trascorso tra la pressione del tasto e la riproduzione del suono e il fatto che si può utilizzare solamente con processing.
Ho cercato in giro è ho trovato questa splendida soluzione http://hunt.net.nz/users/darran/weblog/5b7f8/Arduino_UNO_USB_MIDI_firmware.html, il problema è che io fin ora ho solo programmato gli sketch nell'ide di arduino, non ho mai flashato nessun chip senza l'aiuto del bootloader o simili.
Volevo quindi chiedervi come si procede per mettere quel firmware sull'Atmega16U2 presente sul mio Arduino.

Grazie mille a tutti. :slight_smile:

aleale97:
Ciao a tutti, eccomi con un nuovo quesito.

Mi mancavi :wink: :wink: :wink:

aleale97:
E' da un po che volevo utilzzare il mio Arduino UNO rev3 per creare una rudimentale tastiera midi, ho quindi creato il circuito(banalissimo) e ho creato uno sketch processing con dei sample. Il tutto funziona perfettamente ma ha sostanzialmente due svantaggi: Il tempo trascorso tra la pressione del tasto e la riproduzione del suono e il fatto che si può utilizzare solamente con processing.
Ho cercato in giro è ho trovato questa splendida soluzione http://hunt.net.nz/users/darran/weblog/5b7f8/Arduino_UNO_USB_MIDI_firmware.html, il problema è che io fin ora ho solo programmato gli sketch nell'ide di arduino, non ho mai flashato nessun chip senza l'aiuto del bootloader o simili.
Volevo quindi chiedervi come si procede per mettere quel firmware sull'Atmega16U2 presente sul mio Arduino.

Grazie mille a tutti. :slight_smile:

Devi saldare un conettore a3x2 pin sul connettore ISP del ATmega16U2 (che sta vicino a quello) e con un programmatore ISP puoi caricare il firmware.
Ciao Uwe

però sta attento che dopo devi ricordarti che facendo quella modifica non puoi programmare arduino via usb!

la tua RMK o "rudimentary midi keyboard" è monophonic o polyphonic ?

cioè riesci a trasmettere contemporaneamente le note_on/off di più tasti se prendi un accordo tipo DO maggiore , formato da DO,MI,FA ?

cece99:
però sta attento che dopo devi ricordarti che facendo quella modifica non puoi programmare arduino via usb!

esatto comunque il firmware è flashabile trmaite usb senza usare un programmatore ISP

semplicemente cerca flip e DFU in google :wink:

superlol non lo sapevo. praticamente il ATmega16u2 ha un suo bootloader che fa trasferire i programma nella sua flash. finche non sovvrascrivi o cancelli il bootloader puoi sostituire il suo firmware come vuoi. Una volta tolto il firmware originale non avrai piú collegamento al ATmega328 e non puoi piú sostituire il suo sketch eccetto che lo fai tramite ISP oppure rimetti il firmware originale per fare l' upload e poi rimetti quel firmware che é necessario per il progetto.
Ciao Uwe

uwefed:
superlol non lo sapevo. praticamente il ATmega16u2 ha un suo bootloader che fa trasferire i programma nella sua flash. finche non sovvrascrivi o cancelli il bootloader puoi sostituire il suo firmware come vuoi. Una volta tolto il firmware originale non avrai piú collegamento al ATmega328 e non puoi piú sostituire il suo sketch eccetto che lo fai tramite ISP oppure rimetti il firmware originale per fare l' upload e poi rimetti quel firmware che é necessario per il progetto.
Ciao Uwe

non so però se il bootloader si sovrascrive tramite usb oppure se rimane sotto come negli atmega, l'ultima volta che ho provato a fare un wipe dell'8u2 sotto il bootloader era rimasto...

Quello del link di aleale non è un bootloader per l'Atmega8U2 ma un firmware. Quindi si resetta l'8U2 e lo si fa entrare in modalità programmazione, si flasha il firmware usando il bootloader, che non viene cancellato, e si riavvia. Da quel momento in poi funziona con la nuova modalità di collegamento MIDI.

Attenzione, però! E' per l'8U2, mentre aleale ha la UNO R3, che usa il 16U2. Quel firmware non può essere flashato così com'è ma va ricompilato per il nuovo chip.

uwefed:
Mi mancavi :wink: :wink: :wink:

Posso solo immaginare quanto :grin:

cyclone:
la tua RMK o "rudimentary midi keyboard" è monophonic o polyphonic ?

cioè riesci a trasmettere contemporaneamente le note_on/off di più tasti se prendi un accordo tipo DO maggiore , formato da DO,MI,FA ?

A dir la verità per ora era molto semplice, quando veniva premuto un tasto processing eseguiva un sample di lunghezza pre-definita... Non c'era nessun controllo su quanto sia premuto e per quanto tempo il tasto. Volevo sapere di più sulla possibilità di implementare MIDI in modo da aggiungere anche questa funzionalità.

uwefed:
superlol non lo sapevo. praticamente il ATmega16u2 ha un suo bootloader che fa trasferire i programma nella sua flash. finche non sovvrascrivi o cancelli il bootloader puoi sostituire il suo firmware come vuoi. Una volta tolto il firmware originale non avrai piú collegamento al ATmega328 e non puoi piú sostituire il suo sketch eccetto che lo fai tramite ISP oppure rimetti il firmware originale per fare l' upload e poi rimetti quel firmware che é necessario per il progetto.
Ciao Uwe

Ciò significa che posso fare l'upload di uno sketch via usb al ATmega16u2? Poi come faccio a tornare al firmware standard? (TTL - Seriale USB)

Grazie mille a tutti per le numerose risposte tempestive :smiley:

La procedura è questa:

Però ricordati di quanto ti ho detto (che mi pare tu abbia ignorato):

leo72:
Quello del link di aleale non è un bootloader per l'Atmega8U2 ma un firmware. Quindi si resetta l'8U2 e lo si fa entrare in modalità programmazione, si flasha il firmware usando il bootloader, che non viene cancellato, e si riavvia. Da quel momento in poi funziona con la nuova modalità di collegamento MIDI.

Attenzione, però! E' per l'8U2, mentre aleale ha la UNO R3, che usa il 16U2. Quel firmware non può essere flashato così com'è ma va ricompilato per il nuovo chip.