Arduino Forum

International => Italiano => Software => Topic started by: PaoloP on Oct 26, 2012, 05:18 pm

Title: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: PaoloP on Oct 26, 2012, 05:18 pm
Stavo ca@@eggiando sulle pagine della DUE e ad un certo punto leggo questo:

Quote
The Programming port is connected to an ATmega16U2, which provides a virtual COM port to software on a connected computer (To recognize the device, Windows machines will need a .inf file, but OSX and Linux machines will recognize the board as a COM port automatically.). The 16U2 is also connected to the SAM3X hardware UART. Serial on pins RX0 and TX0 provides Serial-to-USB communication for programming the board through the ATmega16U2 microcontroller. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the ATmega16U2 chip and USB connection to the computer (but not for serial communication on pins 0 and 1).


e poi questo:
Quote
Programming port: To use this port, select "Arduino Due (Programming Port)" as your board in the Arduino IDE. Connect the Due's programming port (the one closest to the DC power jack) to your computer. The programming port uses the 16U2 as a USB-to-serial chip connected to the first UART of the SAM3X (RX0 and TX0). The 16U2 has two pins connected to the Reset and Erase pins of the SAM3X. Opening and closing the Programming port connected at 1200bps triggers a "hard erase" procedure of the SAM3X chip, activating the Erase and Reset pins on the SAM3X before communicating with the UART. This is the recommended port for programming the Due. It is more reliable than the "soft erase" that occurs on the Native port, and it should work even if the main MCU has crashed.


quindi la domanda mi sorge spontanea.
Posso mettere il firmware che si usa sulla DUE nel 16U2 dell'Arduino UNO R3 e ottenere lo stesso comportamento per la programmazione della Leonardo. Ovvero senza il reset del micro ogni volta che apro la seriale?

Non ho ancora controllato se i collegamenti tra il 16U2 delle DUE e quello della UNO R3 sia identici (Seriale e Reset), ma nel caso, ci sarebbero delle modifiche da fare al firmware prima di sostituirlo?

Poi bisognerà istruire anche l'IDE per trattare la programmazione della UNO come una Leonardo? Giusto?

@ArduinoTeam
E' una modifica che farete sulla UNO R4?

UPDATE:
E' stato creato da Astro un apposito bootloader --> http://arduino.cc/forum/index.php/topic,130621.msg982176.html#msg982176
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: menniti on Oct 26, 2012, 05:35 pm
Non mi sono messo a tradurre i tuoi quote :smiley-sweat: ti dico quello che so: l'impulso di RESET all'apertura del serial monitor lo manda l'IDE tramite un segnale al convertitore USB-Seriale che gli fa semplicemente generare un DTR; la cosa l'ho scoperta quando ho fatto sperimentazione con l'MCP2200 che NON ha il DTR bensì l'RTS; in questo caso continuo ad avere le normali funzionalità di RESET ma quando apro il SM Arduino NON si resetta.
L'IDE manda entrambi i DTR e RTS (ovviamente le istruzioni per farli eseguire al convertitore) quando deve resettare la scheda solo nel caso del SM invece manda DTR ma non RTS.
In conclusione penso che agendo sul convertitore si possa disabilitare completamente il RESET, cosa peraltro facilmente fattibile interrompendo il jumper a saldare previsto o mettendo un C da 10µF tra 3,3V e RESET, ma non bloccare il comando proveniente dall'IDE SOLO nel caso del SM.
Sono interessato alla discussione :)
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: mbanzi on Oct 26, 2012, 09:39 pm
Il firmware che gira sul 16U2 della Due non è per nulla compatibile con la Uno.. Quel processore fa una sequenza di Erase/Reset per riprogrammare la scheda che non sono quelli necessari alla Uno.

Per eliminare il reset basta tagliare la pista in mezzo ai due pad vicino a RESET_EN

Non è in programma una Uno R4 a questo punto.

m
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: cece99 on Oct 26, 2012, 09:43 pm

Il firmware che gira sul 16U2 della Due non è per nulla compatibile con la Uno.. Quel processore fa una sequenza di Erase/Reset per riprogrammare la scheda che non sono quelli necessari alla Uno.

Per eliminare il reset basta tagliare la pista in mezzo ai due pad vicino a RESET_EN

Non è in programma una Uno R4 a questo punto.

m

La DUE non è di certo adatta ai principianti, volete dismettere la UNO che è il punto di partenza? =(
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 26, 2012, 09:56 pm

La DUE non è di certo adatta ai principianti, volete dismettere la UNO che è il punto di partenza? =(

Semplicemente la UNO verrà lasciata com'è, immagino senza più evoluzione.

Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: PaoloP on Oct 26, 2012, 10:06 pm

Il firmware che gira sul 16U2 della Due non è per nulla compatibile con la Uno.. Quel processore fa una sequenza di Erase/Reset per riprogrammare la scheda che non sono quelli necessari alla Uno.

Peccato.
Un sistema come quello della Leonardo, importato sulla UNO lo troverei più comodo che non tagliare la pista.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 26, 2012, 10:20 pm

Un sistema come quello della Leonardo, importato sulla UNO lo troverei più comodo che non tagliare la pista.

Il sistema della Leonardo si basa sull'uso di una circuiteria interna al micro stesso. Attivando uno specifico fuse, si può fare in modo che all'apertura e chiusura della seriale il micro si autoresetti. In questo modo può partire il bootloader e scrivere l'eventuale nuovo firmware in arrivo.
Sui 328 non c'è nulla di simile all'interno del microcontrollore.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: PaoloP on Oct 26, 2012, 10:27 pm
Ok per la Leonardo. Ma lo stesso sistema è usato sulla DUE che usa il 16U2. Ecco perché pensavo che si potesse modificare il firmware per adattarlo alla UNO in modo che si potesse programmare come la Leonardo.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 26, 2012, 10:30 pm
Vediamo se ho capito.
Tu vorresti riscrivere il firmware del 16U2 della UNO per far sì che esso invii il segnale di reset all'Atmega328 solo in determinate condizioni, modificando opportunamente l'IDE.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 26, 2012, 10:31 pm

Attivando uno specifico fuse, si può fare in modo che all'apertura e chiusura della seriale il micro si autoresetti. In questo modo può partire il bootloader e scrivere l'eventuale nuovo firmware in arrivo.


Non esiste nessun fuse del genere nei 8/16u2, esistono due fuse dedicati al reset, il primo è BOOTRST che consente di specificare se dopo un reset, hardware, il program counter parte dall'indirizzo 0 oppure dall'indirizzo in cui è posto il bootloader, dipende dalle dimensioni dell'area riservata (vedere relativa tabella sul datasheet).
Il secondo fuse è HWBE e consente di utilizzare il pin PD7 del micro per scegliere se dopo un reset il program counter parte dall'indirizzo 0 oppure da quello in cui si trova il bootloader.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: PaoloP on Oct 26, 2012, 10:34 pm

Vediamo se ho capito.
Tu vorresti riscrivere il firmware del 16U2 della UNO per far sì che esso invii il segnale di reset all'Atmega328 solo in determinate condizioni, modificando opportunamente l'IDE.

Esatto. Anche se al momento non sono in grado di fare queste modifiche. Almeno credo.  :smiley-roll:
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 26, 2012, 10:36 pm


Attivando uno specifico fuse, si può fare in modo che all'apertura e chiusura della seriale il micro si autoresetti. In questo modo può partire il bootloader e scrivere l'eventuale nuovo firmware in arrivo.


Non esiste nessun fuse del genere nei 8/16u2, esistono due fuse dedicati al reset, il primo è BOOTRST che consente di specificare se dopo un reset, hardware, il program counter parte dall'indirizzo 0 oppure dall'indirizzo in cui è posto il bootloader, dipende dalle dimensioni dell'area riservata (vedere relativa tabella sul datasheet).
Il secondo fuse è HWBE e consente di utilizzare il pin PD7 del micro per scegliere se dopo un reset il program counter parte dall'indirizzo 0 oppure da quello in cui si trova il bootloader.

Mi riferivo alla Leonardo, che ha il 32U4. Tempo fa ho indagato come funziona il reset ed è come ho descritto io.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 26, 2012, 10:45 pm
la soluzione e' molto piu' semplice, e non capisco perche' l'ArduinoTeam non se ne faccia carico.
Bisogna sistemare la RXTXSerial che e' vecchissima.
Con la versione modificata che ho postato tempo fa non c'e' questo problema

Visto che questa .dll e' alla base delle comuniczioni arduiniche sarebbe buona cosa iniziare ad inserire quella modificata nell'IDE prossimo, e poi magari contribuire al suo sviluppo, ad esempio servirebbe un porting 64bit
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 26, 2012, 10:51 pm

la soluzione e' molto piu' semplice, e non capisco perche' l'ArduinoTeam non se ne faccia carico.
Bisogna sistemare la RXTXSerial che e' vecchissima.
Con la versione modificata che ho postato tempo fa non c'e' questo problema

Visto che questa .dll e' alla base delle comuniczioni arduiniche sarebbe buona cosa iniziare ad inserire quella modificata nell'IDE prossimo, e poi magari contribuire al suo sviluppo, ad esempio servirebbe un porting 64bit

Hai le modifiche che hai apportato? Non voglio l'eseguibile perché tu hai Windows ed io Linux.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 26, 2012, 10:53 pm

Mi riferivo alla Leonardo, che ha il 32U4. Tempo fa ho indagato come funziona il reset ed è come ho descritto io.


Sto guardando adesso il datasheet e non vedo nessun fuse che fa quello che dici tu, per il reset ci sono solo i due BOOTRST e HWBE presenti nel 8/16u2.

Code: [Select]

27.5 Entering the Boot Loader Program
The bootloader can be executed with three different conditions:

27.5.1 Regular application conditions.
A jump or call from the application program. This may be initiated by a trigger such as a com-mand received via USART, SPI or USB.

27.5.2 Boot Reset Fuse
The Boot Reset Fuse (BOOTRST) can be programmed so that the Reset Vector is pointing to
the Boot Flash start address after a reset. In this case, the Boot Loader is started after a reset.
After the application code is loaded, the program can start executing the application code. Note
that the fuses cannot be changed by the MCU itself. This means that once the Boot Reset Fuse

27.5.3 External Hardware conditions
The Hardware Boot Enable Fuse (HWBE) can be programmed (See Table 27-5) so that upon
special hardware conditions under reset, the bootloader execution is forced after reset.


Non parla di fuse speciali, parla di una ben precisa azione comandata da software in risposta ad un comando ricevuto da una periferica, oppure l'uso del pin reset eventualmente abbinato a PE2 per scegliere da dove far partire il program counter.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 26, 2012, 10:54 pm
non le ho apportate io  :)
cerca ERIED, e' un utente cileno, ha fatto un capolavoro, non solo si risolve l'autoreset, ma anche i problemi con bluetooth.
il tutto compatibile anche con processing.

Ho postato tutti i miei test nel topic bluetooth
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 26, 2012, 10:56 pm
@astrobeed:
adesso non ricordo ma tempo fa ho studiato la cosa perché volevo replicare anch'io lo stesso modo di reset della Leonardo e pensavo che ci fosse qualcosa nel bootloader ma poi, guardandolo, non trovai nulla. Studiando il datasheet ho trovato invece che era una cosa a livello di microcontrollore.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 26, 2012, 11:00 pm
@astro:
ecco, qui ho spiegato come avviene la cosa:
http://arduino.cc/forum/index.php/topic,121632.msg916326.html#msg916326
Non è un fuse, mi ero confuso, ma una R su un determinato pin.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 26, 2012, 11:06 pm

Non è un fuse, mi ero confuso, ma una R su un determinato pin.


Viene settato HWBE che consente di scegliere tramite lo stato logico presente su PE2, durante il reset è un input, se parte il programma utente oppure il bootloader, in pratica consente di avviare Leonardo senza passare per il bootloader se non è necessario.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: PaoloP on Oct 26, 2012, 11:16 pm
Ho visto su Git che c'è il codice del 16U2 per la UNO (https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/atmegaxxu2 (https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/atmegaxxu2)), però non trovo quello della DUE (https://github.com/arduino/Arduino/tree/ide-1.5.x/hardware/arduino/sam (https://github.com/arduino/Arduino/tree/ide-1.5.x/hardware/arduino/sam))
Manca la cartellina Firmware. Probabilmente la metteranno in seguito.  =(
Volevo verificare le differenze a livello di codice.  :~
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 26, 2012, 11:30 pm
Non sono in hardware\arduino\firmwares ?
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 27, 2012, 01:26 am

non le ho apportate io  :)
cerca ERIED, e' un utente cileno, ha fatto un capolavoro, non solo si risolve l'autoreset, ma anche i problemi con bluetooth.
il tutto compatibile anche con processing.

Ho postato tutti i miei test nel topic bluetooth


Ho trovato solo la .dll già compilata ma nessun accenno a cosa ha modificato.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 27, 2012, 11:41 am
Lui ha modificato solo la dll ? Quindi niente linux ?

Ricordo un topic in merito sul sito internazionale dove aeva spiegato. Appena lo trovo lo posto.
Anche lesto parlo dell abbandono di serialrxtx, un interesse in tal senso sarebbe un bel progetto.
Ho delle mail personali con eried dove mi disse varie cose.
Appena metto mano al pc posto qui.

Lo ontattai perche volevo creare la versione 64bit, poi ho iniziato ad usare la 32 e non ne ho piu parlato
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 27, 2012, 11:58 am

Lui ha modificato solo la dll ? Quindi niente linux ?


Vediamo un attimo di chiarire meglio la questione, quella dll modificata è utilizzabile solo con il terminale seriale del IDE ed eventuali programmi utente sviluppati sotto Processing/Java previa specifica inclusione, il problema autoreset rimane sempre se si utilizzano altri software per l'emulazione di un terminale seriale come HyperTerminal o Putty, oppure si si usano software generici che comunicano con Arduino.
La vera soluzione è gestire la disattivazione dell'autoreset direttamente sul 8/16u2, ovvero deve ignorare i segnali DTR/RTS e non resettare l'ATmega, questa funzionalità deve essere attivabile/disattivabile a piacere, il modo più semplice sarebbe utilizzare un pin del 8/16u2 collegato ad un jumper, a seconda dello stato l'autoreset è attivo o disattivato.
Dato che sulle varie revisioni della UNO e della MEGA2560 è sempre presente il connettore per la programmazione ISP del 8/16u2 si può utilizzare una coppia di pin collegati a questo per il jumper selezione autoreset, non si deve modificare nulla a livello di hardware e non si perde la possibilità di programmare l'8/16u2 tramite ISP.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 27, 2012, 12:04 pm

si può utilizzare una coppia di pin collegati a questo per il jumper selezione autoreset,


Mi sono espresso male, va utilizzato il pin 6, connesso a GND, e il pin 4, connesso a PB2 (MOSI), a livello software si setta PB2 come input con pull attiva, se all'avvio risulta a 1 logico (jumper tra 4 e 6 non inserito) l'autoreset si comporta in modo normale, se PB2 risulta a 0 logico (jumper inserito) l'autoreset è disattivato.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: PaoloP on Oct 27, 2012, 01:58 pm
Ma se devi modificare il software, ovvero il firmware del 16U2, per aggiungere questa funzione tanto vale farlo uguale a quello della DUE (senza l'erase perché non c'è) che attiva la programmazione e resetta il micro quando la seriale viene aperta e chiusa a 1200 baud.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 27, 2012, 02:04 pm

che attiva la programmazione e resetta il micro quando la seriale viene aperta e chiusa a 1200 baud.


Su questo sistema non mi esprimo altrimenti mi bannano  :D
In tutti i casi poi dovresti modificare anche l'IDE per poter utilizzare tale sistema con la UNO visto che non è previsto per questa scheda.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: PaoloP on Oct 27, 2012, 02:06 pm
Certo, ma basta dirgli che questa UNO si programma come la Leonardo.
Non so se si possa inserire l'indicazione nel file board.txt.  :smiley-roll-sweat:
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 27, 2012, 02:11 pm

Certo, ma basta dirgli che questa UNO si programma come la Leonardo.


Non credo sia possibile, senza modificare l'IDE, vista l'enorme diversità tra le due schede, a partire dal micro che nella seconda è un 32u4 invece di un 328.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: PaoloP on Oct 27, 2012, 02:15 pm
Quello che volevo dire è che l'IDE prevede già questa modalità di programmazione perchè la usa con la Leonardo. Quindi non occorre altro che dirgli di utilizzarla anche per questa UNO modificata, con i corretti parametri.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 27, 2012, 02:58 pm
scusa Astro, non son d'accordo.
Arduino in se non si resetta a piacere suo, si resetta quando glielo si dice.
Quindi perche' modificarlo ?
Se uso putty e mando DTR voglio che si resetti, se non lo mando non si resetta.
Quindi il problema non e' sull'harduino ma sull'IDE e su Processing, che a loro volta non hanno problemi, ma li ha rxtxserial
la dll modificata evita questa cosa, senza perdere la capacita' di programmazione dell'IDE

questo topic e' di Eried:
ha vari riferimenti interni http://arduino.cc/forum/index.php/topic,50986.0.html
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 27, 2012, 03:03 pm

scusa Astro, non son d'accordo.
Arduino in se non si resetta a piacere suo, si resetta quando glielo si dice.


Si resetta ogni volta che apri la porta seriale, di questa cosa abbiamo discusso più volte, ed è un difetto di Arduino dovuto all'uso del segnale DTR, che fa parte dello standard RS232, per comandare l'autoreset.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 27, 2012, 03:11 pm
di questa cosa ne avete sempre parlato, ed avete sempre sbagliato.
Eried spiega bene il rpoblema e ti confermo che e' come dice lui.

io apro tutte le seriali che voglio ora e non ci sono autoreset, e contemporaneamente programmo da IDE senza problemi
Qui spiega il rpoblema ed infatti dice che era andato fuori strada http://arduino.cc/forum/index.php/topic,46977.0.html

sul suo sito, in cileno, ha fatto una cronistoria di questo problema e spiega come lo aveva affrontato inizialmente, partendo dalla modifica dell'IDE, cosa che invece non serve.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 27, 2012, 03:32 pm

di questa cosa ne avete sempre parlato, ed avete sempre sbagliato.


Non credo proprio, la modifica di Eried riguarda solo l'IDE di Arduino, o meglio una dll che utilizza, però non risolve il problema in senso assoluto, se io apro la Vcom di Arduino da un mio applicativo, non importa con che linguaggio è scritto, Arduino resetta a meno che io non blocco DTR dal mio software, cosa che non sempre è fattibile o che non tutti sanno fare.
DTR è uno dei segnali di handshaking della RS232, non lo devi gestire, cambia automaticamente come serve perché è controllato in hardware, o in software a seconda dei casi, dal sistema di controllo della porta seriale.
Tu riduci la questione al solo terminale seriale di Arduino, io la vedo sotto l'aspetto generale che è decisamente molto più ampio del ristretto mondo dell'IDE di Arduino.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 27, 2012, 03:56 pm
interessante posizione,
pero' si aprono troppe strade contemporaneamente.
Il DTR, e nelle ultime versioni anche RTS, e' stato usato da arduino per resettarsi.
Capisco che sono segnali della seriale, ma e' il programmatore a decidere se usarli o meno.
Se tu scrivi un applicativo che usa DTR per "qualcosa" e' normale che questo poi resettera' arduino.
Non potevano creare un nuovo standard, sempre uno dei due dovevano usare per il reset, perche' gli altri segnali sono tutti "in entrata" verso il pc e quindi non usabili.

In questi casi qui c'e' gia' la soluzione, il ponticello saldato sulla pcb, e' li' apposta.
Ma quando parliamo di applicazioni nuove scritte da zero, se si ci vuole interfacciare ad arduino lo si deve considerare e non si useranno quei segnali.

Ma la maggior parte delle richieste che arrivano sul forum non sono quelle di programatori che stanno usando il DTR per altro e quindi gli da fastidio, ma programmatori in erba, da me il primo, che aprendo il serial monitor o usando processing, hanno problemi, anche usando correttamente i segnali DTR RTS, e questo e' dovuto alla rxtxserial.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 27, 2012, 04:15 pm

hanno problemi, anche usando correttamente i segnali DTR RTS, e questo e' dovuto alla rxtxserial.


Stai facendo una interpretazione tutta tua della cosa, le cose non stanno come dici tu e non sempre è possibile interdire DTR/RTS, e poi oltre alla questione software scritto dall'utente c'è la questione software fatto da altri pronto all'uso che si deve collegare ad Arduino tramite seriale, p.e. un banale data logger.
Tu stai generalizzando tutto alla mera questione di una dll usata solo dal IDE e/o eventuali applicativi processing/java, il mondo informatico è un tantinello più grande di questa dll  :)
Comunque sei liberissimo di tenerti le tue idee, io non ho alcuna intenzione di imbarcarmi ulteriormente in discussioni di questo tipo, per giunta già fatte diverse volte, dalle quali non c'è via di uscita senza andare mettere mano direttamente su Arduino, una possibile, e semplice, soluzione l'ho prospettata, funziona con tutto e non serve fare nessuna modifica all'ambiente di lavoro di Arduino.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: menniti on Oct 27, 2012, 05:48 pm

interessante posizione,
pero' si aprono troppe strade contemporaneamente.
Il DTR, e nelle ultime versioni anche RTS, e' stato usato da arduino per resettarsi.

veramente è l'opposto, l'RTS era previsto con l'FT232RL, con la sostituzione di questo chip il segnale è scomparso nella fase di apertura del SM mentre continua a fare il suo lavoro nella fase di programmazione; questa è la chiara prova che è l'IDE a gestire questi due segnali e lo fa in assoluta autonomia. Nel mio Programmatore HV ho usato l'MCP2200 come convertitore USB-Seriale, che ha l'RTS ma NON ha il DTR, funziona tutto senza problemi ma non resetta il micro se apro il Serial Monitor. Immagino che i convertitori ATMEL intercettino il comando RTS e lo trasformino in DTR, nel senso che lo mandano al RESET del micro. Se ti vai a guardare gli schemi elettrici della 2009 e della UNO ti sarà chiara la cosa.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 27, 2012, 05:59 pm

veramente è l'opposto, l'RTS era previsto con l'FT232RL


Non è nemmeno così, anche la 2009 con l'FTDI usa DTR, RTS è solo linkato a livello di schema per retrocompatibilità con le vecchie versioni di Arduino, quelle con la seriale RS232 per capirci, però non è fisicamente collegato sulla scheda, il componente marcato come R2 con valore 100 in realtà è un condensatore da 100 nf e non è montato sul pcb della 2009.
L'IDE non comanda nulla relativamente a DTR/RTS, e l'ho detto 1000 volte.
DTR e RTS Sono segnali standard della RS232 ed è la parte di gestione della seriale sul pc, non importa se hardware o software, a cambiare  stato a questi segnali in accordo con il protocollo RS232 che ne stabilisce il funzionamento.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: PaoloP on Oct 27, 2012, 06:10 pm

Non potevano creare un nuovo standard, sempre uno dei due dovevano usare per il reset, perche' gli altri segnali sono tutti "in entrata" verso il pc e quindi non usabili.


Infatti hanno deciso di far resettare la Leonardo e la DUE quando si apre e si chiude la seriale a 1200 baud.
Ho aperto il topic solo per sapere se modificando opportunamente il firmware del 16U2 della UNO R3 si possa ottenere lo stesso comportamento.  ]:D ]:D
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 27, 2012, 08:57 pm


che attiva la programmazione e resetta il micro quando la seriale viene aperta e chiusa a 1200 baud.


Su questo sistema non mi esprimo altrimenti mi bannano  :D

Prima di esprimermi una considerazione. Secondo me basta aprire la seriale a qualunque velocità. Non ho trovato nulla nel datasheet del 32U4 in cui si parla della possibilità di scegliere a che velocità di trasmissione attivare il reset.

Ora mi esprimo. Mi pare un sistema un po'... rozzo. Ogni volta che la scheda si resetta, il sistema la vede sconnettersi e riconnettersi, e la numerazione della porta salta. Mah...
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 27, 2012, 09:34 pm

Non ho trovato nulla nel datasheet del 32U4 in cui si parla della possibilità di scegliere a che velocità di trasmissione attivare il reset.


E non lo troverai mai perché è una cosa gestita a software e non dal micro.

Quote

Ora mi esprimo. Mi pare un sistema un po'... rozzo.


Per me è una vera "bischerata", ci sono metodi di gran  lunga migliori, senza nessuna controindicazione, per far resettare l'ATmega a comando.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 27, 2012, 09:53 pm


Non ho trovato nulla nel datasheet del 32U4 in cui si parla della possibilità di scegliere a che velocità di trasmissione attivare il reset.


E non lo troverai mai perché è una cosa gestita a software e non dal micro.


Voglio capire meglio questa cosa. Chi è che lato 32U4 "guarda" se la seriale è stata aperta a 1200 bps? A me pare nessuno.

EDIT:
aspetta, non dirmelo.... vuoi vedere che sta nell'unico posto in cui non ho guardato, ossia direttamente nel core (nel codice che gestisce la seriale)?
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 27, 2012, 10:00 pm
Ho fatto tombola!  :smiley-yell:
Dal file CDC.cpp:
Code: [Select]

// auto-reset into the bootloader is triggered when the port, already
// open at 1200 bps, is closed.  this is the signal to start the watchdog
// with a relatively long period so it can finish housekeeping tasks
// like servicing endpoints before the sketch ends
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 27, 2012, 10:01 pm

Voglio capire meglio questa cosa. Chi è che lato 32U4 "guarda" se la seriale è stata aperta a 1200 bps? A me pare nessuno.


La USB, o meglio il software che gestisce il device CDC della USB, tra i parametri disponibili c'è anche la velocità della seriale, viene comunicato dal HOST quando apri la Vcom, in realtà non serve a nulla dal lato USB perché i dati viaggiano sempre alla massima velocità possibile, si usa per settare in modo corretto l'UART.

Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 27, 2012, 10:03 pm

La USB, o meglio il software che gestisce il device CDC della USB, tra i parametri disponibili c'è anche la velocità della seriale, viene comunicato dal HOST quando apri la Vcom, in realtà non serve a nulla dal lato USB perché i dati viaggiano sempre alla massima velocità possibile, si usa per settare in modo corretto l'UART.



L'ho trovato da solo... che fava che sono, non pensavo affatto che c'era ancora una cosa che non avevo controllato, il codice per gestire la seriale lato Arduino.  :smiley-sweat:
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: menniti on Oct 27, 2012, 10:07 pm

L'IDE non comanda nulla relativamente a DTR/RTS, e l'ho detto 1000 volte.

e vuol dire che non c'ero, che ci puoi fare? :P
Quote

DTR e RTS Sono segnali standard della RS232 ed è la parte di gestione della seriale sul pc, non importa se hardware o software, a cambiare  stato a questi segnali in accordo con il protocollo RS232 che ne stabilisce il funzionamento.

Lungi da me l'idea di insistere, però riporto due constatazioni inoppugnabili:
1 - Se apro il Serial Monitor dell'IDE l'RTS dell'MCP2200 NON resetta l'ATmega328P
2 - Se apro Windows HyperTerminal l'RTS dell'MCP2200 RESETTA l'ATmega328P
certamente mi sbaglio, ma io sarei portato a dedurre che una qualche influenza il software deve averlo altrimenti i due programmi si dovrebbero comportare allo stesso modo no? :smiley-roll:
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 27, 2012, 10:09 pm

che fava che sono, non pensavo affatto che c'era ancora una cosa che non avevo controllato, il codice per gestire la seriale lato Arduino.  :smiley-sweat:


Comunque rimane lo stesso una bischerata  :smiley-mr-green:
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 27, 2012, 10:12 pm

Comunque rimane lo stesso una bischerata  :smiley-mr-green:

Mi piace leggere "bischerata", mi fa sentire a casa  XD
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 27, 2012, 10:17 pm

certamente mi sbaglio, ma io sarei portato a dedurre che una qualche influenza il software deve averlo altrimenti i due programmi si dovrebbero comportare allo stesso modo no? :smiley-roll:


Sia DTR che RTS sono bloccabili da software, anche di questa cosa ne abbiamo già discusso molto relativamente a come fare per bloccare l'autoreset da un programma utente, pertanto è possibile che il serial monitor venga attivato con RTS bloccato.
Questo non cambia l'essenza del discorso, sono segnali che fanno parte del protocollo UART/RS232 e cambiano stato automaticamente, non è necessario intervenire manualmente per controllarli.

Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: mbanzi on Oct 28, 2012, 04:29 pm
@astrobeed  "ci sono metodi di gran  lunga migliori, senza nessuna controindicazione, per far resettare l'ATmega a comando."
quali sono? considerando che devono funzionare senza problemi su tutte le piattaforme.

m
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 28, 2012, 04:48 pm

quali sono? considerando che devono funzionare senza problemi su tutte le piattaforme.


Io il problema dell'autoreset l'ho risolto ad hardware, e un pizzico di software, sulla Luigino 328, e non è certo un mistero come ho fatto, oltretutto la mia soluzione consente di tenere collegata la seriale ad un utilizzatore esterno e di poter programmare l'ATmega senza dover staccare nulla.
Però esistono anche soluzioni totalmente software per la UNO e successive dove siete passati all'uso di un micro dedicato per la gestione della USB invece del FTDI.
Io sono disponibile per risolvervi la questione in modo definitivo e valido per tutte le piattaforme Arduino (con micro per la USB) e tutti i sistemi operativi senza dover operare nessun intervento hardware, solo alcune piccole modifiche al software del 8/16u2 e all'IDE, non voglio ne soldi ne alcun tipo di benefit per questa cosa, salvo il riconoscimento ufficiale del lavoro svolto, eventualmente sentiamoci in privato che ti spiego i dettagli..
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 28, 2012, 07:31 pm


veramente è l'opposto, l'RTS era previsto con l'FT232RL

Non è nemmeno così, anche la 2009 con l'FTDI usa DTR, RTS è solo linkato a livello di schema per retrocompatibilità con le vecchie versioni di Arduino, quelle con la seriale RS232 per capirci, però non è fisicamente collegato sulla scheda, il componente marcato come R2 con valore 100 in realtà è un condensatore da 100 nf e non è montato sul pcb della 2009.
L'IDE non comanda nulla relativamente a DTR/RTS, e l'ho detto 1000 volte.
DTR e RTS Sono segnali standard della RS232 ed è la parte di gestione della seriale sul pc, non importa se hardware o software, a cambiare  stato a questi segnali in accordo con il protocollo RS232 che ne stabilisce il funzionamento.


Il DTR e' presente in tutti ghli schemi, anche sulla seriale single side (quella chiamata Arduino Severino), indi per cui e' stato il primo ad essere usato per il reset.
Il RTS, come dice astro, e' solo presente su alcuni schemi, e non sapevo fosse non connesso.
Sulla UNO c'e' solo il segnale DTR, pero' effettivamente se si usa un programmatore con il solo RTS funziona ugualmente il reset come confermato anche da Michele.

Io ho construito un adattatore usb seriale a cui ho aggiunto un bel monitor di tutti i segnali. Con questo ho notato che ci sono dei programmi che fanno da Terminale che all'apertura della porta attivano il solo RTS, altri che attivano entrambi, altri che non li attivano.
La rxtxserial modificata fa in modo che non vengano attivati questi segnali durante il serial monitor.
La cosa interessante e' che questa funzionalita' l'ho scoperta io, perche' l'autore non ne fa menzione, lui ci ha lavorato per eliminare il problema della lentezza del menu Tool, che cmq e' lento perche' va a enumerare le seriali, secialmente le bluetooth che sono quelle che danno piu' problemi.

In attesa della proficua collaborazione Astro-Banzi si potrebbe iniziare ad includere la rxtxserial modificata per windows nell'ide (come richiesto dall'amministratore del forum in inglese) e poi se qualche programmatorer di buona volonta' volesse applicare quelle modifiche alla versione linux del file sarebbe ancora meglio. Quelli con gli apple lasciamoli fuori  :smiley-yell:
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 28, 2012, 09:15 pm
Se non ricordo male, astrobeed si era già offerto un bel po' di tempo fa per fare questa modifica, ma senza riscontro. Vediamo se questa è la volta buona  ;)

@Testato:
ricompilare una libreria è una bischerata, basterebbe avere le modifiche che il tipo ha fatto. Il problema è che mi pare sia un po' "restìo" a divulgare certe cose. Vedo infatti che distribuisce gli eseguibili già compilati ma non sono riuscito a trovare i sorgenti modificati né cosa ha effettivamente modificato.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: menniti on Oct 28, 2012, 10:00 pm
Veramente Astro si è offerto anche per altri interventi, ma non c'è stato seguito, sarei curioso di capire perché, soprattutto in considerazione del fatto che ha sempre detto espressamente che non vuole denaro :smiley-roll:
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 29, 2012, 08:36 am

Veramente Astro si è offerto anche per altri interventi, ma non c'è stato seguito.


Per il momento tutto tace  :)
Chissà forse all'Arduino Team hanno paura di fare brutta figura se "uno qualunque" gli risolve dei problemi che si portano avanti da sempre  :smiley-mr-green:
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: brainbooster on Oct 29, 2012, 08:50 am
avete provato con i canali ufficiali? sul git ecc...
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 29, 2012, 09:04 am

avete provato con i canali ufficiali? sul git ecc...


In tutta franchezza non vedo perché devo essere io a correre dietro a loro, qui leggono agli Admin e Banzi in persona, se sono interessati mi contattino direttamente.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 29, 2012, 08:38 pm
Astro si propone a sistemare il piu grave problema cumunicativo di arduino e Massimo non lo accoglie a braccia aperte ? E' impossibile     :smiley-eek:

Astro si e' messo in gioco, che giochi anche Arduino team, non si finisce mai di imparare, ed anche il team deve farlo.

Per la rxtxserial: leo ma nei due link che ho postato c e del codice, nel sito cileno, che si capisce anche per un italiano, mi sembra spiega il tutto. Ci hai guardato ? Anche perche Astro ha detto che la sua modifica non è applicabile al ft232, tagliando fuori sia i vecchi arduini, ma principalmente gli stand alone
Quindi fornire una soluzione ai poveri linuxiani ed ai windowsiani 64ttristi sarebbe sempre utile (anche se limitatamente a Ide arduino e Processing
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 29, 2012, 09:27 pm

Per la rxtxserial: leo ma nei due link che ho postato c e del codice, nel sito cileno, che si capisce anche per un italiano, mi sembra spiega il tutto. Ci hai guardato ? Anche perche Astro ha detto che la sua modifica non è applicabile al ft232, tagliando fuori sia i vecchi arduini, ma principalmente gli stand alone

Ci ho guardato ma non posso stare a rivoltare quel sito ed a cercare del codice.
Hai tu il link diretto? Sono 2 giorni che te lo chiedo...  ]:D

Quote

Quindi fornire una soluzione ai poveri linuxiani ed ai windowsiani 64ttristi sarebbe sempre utile (anche se limitatamente a Ide arduino e Processing

Questa la devi spiegare.  ;)
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 29, 2012, 11:08 pm

Non ricordo se per linux esistono versioni 32 e 64bit della rxtxserial, ma su windows si, ed eried ha modificato solo la 32bit. Poveri 64tristi in tal senso  :)

Questa fu la sua risposta via PM in merito alle modificje fatte
Quote
hehe good luck.here is a detailed info about the patch if you need more details: http://erwin.ried.cl/?modo=visor&elemento=265


E poi, scusami se insisto, ma il link che ti ho postato prima, un paio di pagine fa, si intitola Road to solve ....
A me sembra ci sia scritto tutto, ma il promgrammatore sei tu  :)
Se mi dici che non va bene, non va bene  :)
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: mbanzi on Oct 29, 2012, 11:54 pm
Credo che il comportamento attuale sia un buon compromesso delle funzionalità che richiedono i vari utenti di Arduino.
Non rende tutti felici ma è un po' difficile accontentare tutti.

La procedura per contribuire è mandare una pull request e cristian la verifica e nel caso la incorpora oppure spiega perchè non la vuole.

Incoraggio tutti a fare come noi, pubblicate il codice che avete senza troppe remore (spesso non è perfetto ma poi con l'aiuto della comunità si migliora tutto) :)

m

Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 29, 2012, 11:55 pm


Non ricordo se per linux esistono versioni 32 e 64bit della rxtxserial, ma su windows si, ed eried ha modificato solo la 32bit. Poveri 64tristi in tal senso  :)

Ora ho capito.

Quote

Questa fu la sua risposta via PM in merito alle modificje fatte
Quote
hehe good luck.here is a detailed info about the patch if you need more details: http://erwin.ried.cl/?modo=visor&elemento=265


E poi, scusami se insisto, ma il link che ti ho postato prima, un paio di pagine fa, si intitola Road to solve ....
A me sembra ci sia scritto tutto, ma il promgrammatore sei tu  :)
Se mi dici che non va bene, non va bene  :)

Io in quel megathread che hai linkato ho solo trovato un link ad un paccheto autoinstallante per Windows per mettere l'IDE modificato. Altro non ho visto.
Lo spagnolo poi io non lo capisco quindi non ho capito nulla di cosa faccia sul suo sito, anche se a me pare che abbia lavorato solo sulla questione del menu Strumenti che si apre con eccessiva lentezza su Windows quando c'è un dispositivo bluetooth. Dove l'anti-autoreset di cui parli tu?  
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 30, 2012, 07:56 am
Il link al sito cileno e' in spagnolo, ma il link Road to solve, topic su forum arduino e'  in inglese. C e punto per punto le modifiche. E' il primo che ho postato due pagine fa.

Come gia detto lui non sa della situazione sul reset, e' una conseguenza positiva della sua modifica, l ho scoperta io  :)

Sostituisci un attimo su winxp la dll, dai tiralo fuori  :), e vedrai che apertura del serial monitor non resetta arduino.

Questione Banzi: si sta sulla difensiva, sembra come se ci fosse paura a creare un mito, astro ha gia risolto via hardware la questione su arduinift232, e sappiamo quindi che non bleffa sul 16u2
Astro invece vuole la soddisfazione di essere interpellato. Sappiamo che potrebbe sottoporre la modifica, ed aspettare, ma non si fida. La paura di avere la sua proposta "rubata", senza menzione è forte.
Magari non rubata nel senso vero del termine, ma che passi invisibile negli aggiornamenti. Risolvere il piu grave problema di arduino merita articolo su blog, richiesta di aiuto ufficiale, ringraziamenti ufficiali.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 30, 2012, 08:00 am

, e vedrai che apertura del serial monitor non resetta arduino.


Si ma vale solo per il serial monitor, ovvero un caso particolare che si usa solo durante la fase di sviluppo del software, in tutti gli altri casi il reset rimane.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 30, 2012, 08:19 am
Lo so, l ho sottolineato, sono due cose diverse questa risolverebbe sia serial monitor che processing, ed in piu la cattiva gestine del menu tool e i problemi co BT, la tua modifica risolve in generale il problema, ma non su ft232.
La cosa da fare è seguire entrambe le modifiche, perche da un lato anche a te con 16u2 fa bene avere gestione corretta di bt virtuali com, di processing, del menu tool, ecc. Mentre a chi usa ft232, quindi tua modifica non applicabile, riceverebbe oltre ai gia citati vantaggi anche il serial monitor senza reset e processing senza reset.

La tua modifica non rende inutile questo lavoro, lo completa
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: PaoloP on Oct 30, 2012, 09:58 am
@Massimo Banzi
Dove trovo il firmware del 16U2 montato sulla DUE?
Ho cercato su GitHub ma non l'ho trovato.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 30, 2012, 10:33 am

ed in piu la cattiva gestine del menu tool e i problemi co BT, la tua modifica risolve in generale il problema, ma non su ft232.


Ovviamente il problema con il BT, e credo sia solo con Windows, è una bella scocciatura quindi è un bene che ci sia questa dll modificata, per quanto riguarda l'FT232 la soluzione c'è, basta che guardi la mia Luigino 328 che usa l'FTDI, però non puoi implementarla semplicemente con una modifica software, serve anche dell'hardware.

Quote

La tua modifica non rende inutile questo lavoro, lo completa


Io non ho detto che il lavoro di Eried è inutile, ho detto che non risolve in assoluto il problema, del resto lui stesso l'ha fatto per correggere un problema diverso, la questione del autoreset è solo un "danno collaterale"  :D
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 30, 2012, 02:47 pm

Il link al sito cileno e' in spagnolo, ma il link Road to solve, topic su forum arduino e'  in inglese. C e punto per punto le modifiche. E' il primo che ho postato due pagine fa.

Come gia detto lui non sa della situazione sul reset, e' una conseguenza positiva della sua modifica, l ho scoperta io  :)

Sostituisci un attimo su winxp la dll, dai tiralo fuori  :), e vedrai che apertura del serial monitor non resetta arduino.

Questione Banzi: si sta sulla difensiva, sembra come se ci fosse paura a creare un mito, astro ha gia risolto via hardware la questione su arduinift232, e sappiamo quindi che non bleffa sul 16u2
Astro invece vuole la soddisfazione di essere interpellato. Sappiamo che potrebbe sottoporre la modifica, ed aspettare, ma non si fida. La paura di avere la sua proposta "rubata", senza menzione è forte.
Magari non rubata nel senso vero del termine, ma che passi invisibile negli aggiornamenti. Risolvere il piu grave problema di arduino merita articolo su blog, richiesta di aiuto ufficiale, ringraziamenti ufficiali.

Sei Testone, oltre che Testato  :smiley-yell:
Su quel link si parla solo di modifiche alla libreria rxtx, che risolve solo il problema delle chiavette bluetooth enumerate su Windows (su Linux non ho provato).
Forse ha modificato qualcosa nell'IDE per evitare il reset dell'Arduino all'apertura del monitor seriale ma questo non risolve la questione, indi per cui è una cosa che a me non interessa: 1) perché non ho Windows, 2) perché del reset della scheda all'apertura della seriale me ne importa poco o nulla dato che non uso nei miei progettini la comunicazione col PC.

Se avrò un ritaglio di tempo proverò a vedere se c'è il problema bluetooth anche su Linux, nel caso apporterò le modifiche che lui ha citato alla rxtx.
;)
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 30, 2012, 08:16 pm
Tu hai la testa dura quanto me, ed in piu non mi ascolti  :P

1 la soluzione del reset lui non la menziona pervhe non lo sa, quelle modifiche fatte da lui risolvono il reset come effetto collaterale, come lo ha chiamato astro, fino ad oggi solo io ho riportato questo miglioramento. Quindi non troverai nessuna sezione che ne parla.
2 non ho provato di persona su linux quindi non ho prove, ma a memoria ricordo di lamentele sulla apertura menu tool, con vcom bt. Credo la situazione sia la stessa visto che la rxtxserial è la sressa, ma si deve provare.
Visto che il tuo interesse puo passare solo dalla necessita di sistemazioni linux, posso se vuoi installare ubuntu e fare le prove. Io purtroppo non so come ricompilare una dll per farla diventare 64bit
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 30, 2012, 10:19 pm
1) E' chiaro. Ma io ti ho anche detto che a me del reset del monitor seriale poco me ne importa. Sarebbe bello invece poter abilitare/disabilitare il reset non voluto su tutto. E questo la modifica di Eried non lo fa.
2) una libreria la compili partendo dai sorgenti, dovresti quindi scaricarti i sorgenti della lib e compilarla con un qualche ambiente di sviluppo che non so quale possa essere su Windows.



Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 31, 2012, 08:04 am

Questione Banzi: si sta sulla difensiva, sembra come se ci fosse paura a creare un mito, astro ha gia risolto via hardware la questione su arduinift232, e sappiamo quindi che non bleffa sul 16u2


Domani, al massimo dopodomani, rilascio la versione modificata del software del 8/16u2 per la UNO e la MEGA256 che permette di disattivare l'autoreset tramite il ponticello sul connettore ISP di questo micro, non è la soluzione ottimale però almeno è una soluzione reale, senza controindicazioni, che funziona con tutti i sistemi operativi, con tutti i software applicativi e non richiede nessuna modifica dell'IDE.
Di più non ho intenzione fare visto il totale disinteresse da parte dei diretti interessati e visto che quasi sicuramente questo lavoro andrà "perso" in breve tempo dato che non è possibile mettere in evidenza le librerie e le modifiche di alto interesse ed utilità fatte da noi "comuni mortali".
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: menniti on Oct 31, 2012, 03:49 pm
Nel momento in cui lo rendi pubblico chi potrebbe impedire allo staff di implementarlo nel software originale? la mia è solo curiosità, non voglio certo innescare questioni, solo capire come funziona questa cosa.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Oct 31, 2012, 04:14 pm

Nel momento in cui lo rendi pubblico chi potrebbe impedire allo staff di implementarlo nel software originale? la mia è solo curiosità, non voglio certo innescare questioni, solo capire come funziona questa cosa.


Dato che lo farò con licenza gpl nessuno gli vieta di farlo, però sono obbligati a citarmi come autore della modifica.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: menniti on Oct 31, 2012, 09:37 pm


Nel momento in cui lo rendi pubblico chi potrebbe impedire allo staff di implementarlo nel software originale? la mia è solo curiosità, non voglio certo innescare questioni, solo capire come funziona questa cosa.


Dato che lo farò con licenza gpl nessuno gli vieta di farlo, però sono obbligati a citarmi come autore della modifica.


ah, e allora si torna al punto di prima, quindi hai ragione tu, questa cosa si perderà nel tempo.... peccato, non per me che non sono all'altezza di usare una DUE e quindi non la comprerò, ma per tanti esperti che vorrebbero vederla funzionare al meglio.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: PaoloP on Oct 31, 2012, 09:42 pm
Prof. la DUE non ha il problema dell'autoreset perchè funziona come la Leonardo.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: menniti on Oct 31, 2012, 09:52 pm
Hai ragione, ho fatto confusione, scusate  :~
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Oct 31, 2012, 10:25 pm
Son curioso anch'io di vedere questa modifica.
;)
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 31, 2012, 11:52 pm
Prono al test  :)
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: menniti on Oct 31, 2012, 11:53 pm

Prono al test  :)


è una riverenza? :smiley-eek:
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Oct 31, 2012, 11:55 pm
senza ombra di dubbio, supino, sottomesso  :)
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Nov 02, 2012, 08:54 am
La modifica al software del 8u2 è fatta, sta funzionando bene sulla mia UNO R1, prima di pubblicare il tutto devo preparare la versione per la UNO R3, scattare qualche foto per illustrare il funzionamento e qualche screen capture della procedura di installazione, che poi è quella standard tramite dfu e si fa da USB, in realtà il grosso del lavoro è questo  :D
Oggi devo lavorare tutto il giorno e non posso mettere mano alla cosa, se ne parla durante il weekend e non appena pronto pubblico tutto in megatopic, presumibilmente domani nel tardo pomeriggio.

Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Nov 02, 2012, 10:14 am
Codice sotto licenza GNU GPL, documentazione e filmati e foto e tutto il resto sotto licenza CC BY-SA-NC 3.0 per evitare ogni dubbio  ;)
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Nov 02, 2012, 07:04 pm
Cosa c è di diverso tra R1 e R3  ? Ci sono firmware diversi nel 8u2 delle due versioni ?
La modifica sarà applicabile alla Leonardo con qualche modifica ?
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: PaoloP on Nov 02, 2012, 07:19 pm
C'è di diverso che uno ha il 8U2 (R1 e R2) e l'altro ha il 16U2.

Perchè vuoi applicarlo alla Leonardo? Non ha il problema del reset. Si resetta solo se apri e chiudi la seriale a 1200.
Ho aperto il topic proprio per vedere se era possibile modificare il firmware della UNO R3 e renderlo uguale a quello della Leonardo e della DUE.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: leo72 on Nov 03, 2012, 07:40 am

Cosa c è di diverso tra R1 e R3  ? Ci sono firmware diversi nel 8u2 delle due versioni ?

Ci sono circuiti diversi per la gestione del reset (lo hai riportato anche nella tua guida  :P ), c'è un chip differente (la UNO R1 usa l'Atmega8U2 mentre la R3 usa l'Atmega16U2).

Quote

La modifica sarà applicabile alla Leonardo con qualche modifica ?

A che ti serve? La Leonardo gestisce il reset in maniera diversa e funzionante.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: testato on Nov 03, 2012, 09:45 am
Prima o poi devo leggerla quella guida  :smiley-yell: :smiley-yell:

Credevo che il passaggio ad 16u2 fosse solo per questioni di reperibilita, ma che poi il firmware incluso fosse uguale, cosi come quandi si è passati da 8 a 168 o da 168 a 328.

Sulla leonardo mi sono perso, scusate, non ne ho mai comprata una.

Mi riservo la domanda provocatoria per eccellenza al dopo pubblicazione del lavoro  :)
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: astrobeed on Nov 03, 2012, 10:05 am

Credevo che il passaggio ad 16u2 fosse solo per questioni di reperibilita, ma che poi il firmware incluso fosse uguale,


Diciamo che è quasi uguale, in tutti i casi deve essere ricompilato per quel micro e cambia il PID tra la UNO R1-R2 e la R3, infatti c'è file .inf (solo per Windows) dedicato per quest'ultima versione.
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: menniti on Nov 03, 2012, 10:09 am

Mi riservo la domanda provocatoria per eccellenza al dopo pubblicazione del lavoro  :)

ahiii, sento odore di ban :D
Title: Re: Modificare firmware 16U2 dell'Arduino Uno per eliminare l'autoreset
Post by: PaoloP on Nov 04, 2012, 03:17 pm
Il topic prosegue qui --> http://arduino.cc/forum/index.php/topic,130621.msg982176.html#msg982176