Arduino Leonardo non carica gli sketch (Linux)

Salve, sto combattendo con un Arduino Leonardo appena comprato, originale rev3. Su piattaforma Windows tutto funziona, su Linux .. no.

Al caricamento dello sketch (Blink) viene prodotta una serie di errori, ogni volta diversi:

1)

avrdude: ser_open(): can't open device "/dev/ttyACM0": Device or resource busy
avrdude: ser_send(): write error: Bad file descriptor

2)

processing.app.debug.RunnerException
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:133)
at processing.app.debug.Compiler.upload(Compiler.java:165)
at processing.app.Sketch.upload(Sketch.java:1260)
at processing.app.Sketch.exportApplet(Sketch.java:1202)
at processing.app.Sketch.exportApplet(Sketch.java:1174)
at processing.app.Editor$DefaultExportHandler.run(Editor.java:2471)
at java.lang.Thread.run(Thread.java:745)
Caused by: processing.app.SerialException: Errore durante l'esecuzione del comando touch sulla porta seriale '/dev/ttyACM0'
at processing.app.Serial.touchForCDCReset(Serial.java:92)
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:122)
... 6 more
Caused by: jssc.SerialPortException: Port name - /dev/ttyACM0; Method name - openPort(); Exception type - Port busy.
at jssc.SerialPort.openPort(SerialPort.java:164)
at processing.app.Serial.touchForCDCReset(Serial.java:86)
... 7 more

Questi sono gli errori prodotti dalla Night-build appena scricata, sta mattina gli errori erano altri, stavo sulla versione dei repository di ubuntu 14.04

Su internet non c'è riferimento a questo problema di caricamento sketch su Leonardo tranne qualche sporadico reset della porta seriale fatto tramite abbassamento del BAUD a 1200.

Qualcuno sa cosa posso fare? :'( :'( :'(

Chiaramente utilizzare Windows non è una soluzione ammissibile :D

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento: Regolamento - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili

Non sono esperto di Linux. Hai provato a usare IDE con utente root ?

grazie nid69ita, i link che mi hai fornito sono utilissimi, un sentito ringraziamento al signor pighixxx da tutti i laboratori che frequento.

Cercando in giro su internet ho letto che potrebbe essere un problema di BAUD RATE, andando a visualizzare le info dettagliate di caricamento sono interessanti queste righe:

System wide configuration file is "/home/.../arduino/arduino-nightly/hardware/tools/avr/etc/avrdude.conf"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyACM0
         Using Programmer              : avr109
         Overriding Baud Rate          : 57600
avrdude: ser_open(): can't open device "/dev/ttyACM0": Device or resource busy
avrdude: ser_send(): write error: Bad file descriptor

Intanto che vado a leggere avrdude.conf, mi sapresti indicare se il baud rate 57600 è corretto per un Arduino Leonardo R3?

potrebbe essere un problema di permessi. Prova a copiare qui l'output di questo comando:

ls -l /dev/ttyACM0

Credo che Ubuntu di default non aggiunga gli user al gruppo dialout. Quindi per poter utilizzare una porta seriale devi prima aggiungere il tuo utente con questo comando:

sudo usermod -a -G dialout ilTuoUserName

[quote author=Federico Vanzati link=msg=2169559 date=1428009834] potrebbe essere un problema di permessi. Prova a copiare qui l'output di questo comando:

ls -l /dev/ttyACM0

[/quote]

crw-rw---- 1 root dialout 166, 0 apr  3 09:19 /dev/ttyACM0

Credo che Ubuntu di default non aggiunga gli user al gruppo dialout. Quindi per poter utilizzare una porta seriale devi prima aggiungere il tuo utente con questo comando:

sudo usermod -a -G dialout ilTuoUserName

l'avevo fatto tramite adduser, ma l'ho rifatto. in seguito ho riaperto arduino e non mi faceva selezionare la porta seriale, allora l'ho aperto con i permessi di super utente e l'output di caricamento è stato questo:

System wide configuration file is "/home/.../arduino/arduino-nightly/hardware/tools/avr/etc/avrdude.conf"
   
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyACM0
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Problema di caricamento sulla scheda. Guarda http://www.arduino.cc/en/Guide/Troubleshooting#upload per suggerimenti
Problema di caricamento sulla scheda. Guarda http://www.arduino.cc/en/Guide/Troubleshooting#upload per suggerimenti

ora il baud rate è 115200 prima era 57600.. secondo me il problema è lì

 Using Programmer              : arduino

non è giusto

controlla di aver selezionato la board corretta.

avrdude: Version 6.0.1, compiled on Mar 30 2015 at 11:53:46
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/home/.../arduino/arduino-nightly/hardware/tools/avr/etc/avrdude.conf"
         
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyACM0
         Using Programmer              : avr109
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : butterfly
         Description     : Atmel AppNote AVR109 Boot Loader

Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
    Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.

Programmer supports the following devices:
    Device code: 0x44

avrdude: devcode selected: 0x44
avrdude: AVR device initialized and ready to accept instructions

Reading | avrdude: butterfly_recv(): programmer is not responding
Problema di caricamento sulla scheda. Guarda http://www.arduino.cc/en/Guide/Troubleshooting#upload per suggerimenti

Riprovando con i permessi di super utente e con la scheda giusta questo ↑ è il risultato, niente di funzionante per ora, butterfly_recv() litiga con il programmatore.

grazie Federico Vanzati per la pazienza

avrdude: Version 6.0.1, compiled on Mar 30 2015 at 11:53:46
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/home/.../arduino/arduino-nightly/hardware/tools/avr/etc/avrdude.conf"

         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyACM0
         Using Programmer              : avr109
         Overriding Baud Rate          : 57600
avrdude: ser_open(): can't open device "/dev/ttyACM0": Device or resource busy
avrdude: ser_send(): write error: Bad file descriptor

anche aprendo il monitor seriale a 1200 baud e richiudendolo non da segni di vita. Siamo sicuri che il baud rate giusto sia 57600? In ultima istanza proverei a reflashare il bootloader con un altro Arduino Leonardo Linux-compatibile


Possibile che devo comprare una licenza Windows per usare (questo) Arduino? 0.0

ma se premi il pulsante di reset il led L fa un'animazione tipo respiro?

[quote author=Federico Vanzati link=msg=2173400 date=1428256170] ma se premi il pulsante di reset il led L fa un'animazione tipo respiro? [/quote]

Si, ha un comportamento normale, ma ricorda che su windoz funziona senza problemi.

Se dice che butterfly_recv() non trova il programmer disponibile, non sarà un bug con butterfly_recv()????