avrdude: ser_recv(): programmer is not responding

RandA (Raspberry and Arduino) consente di sfruttare la dotazione hardware e le enormi potenzialità della piattaforma Linux Raspberry Pi e la quantità di shield e sketch per il mondo Arduino.
Rispondi
BellaBill
Messaggi: 4
Iscritto il: 27/09/2017, 14:10
Home_Page: http://

avrdude: ser_recv(): programmer is not responding

Messaggio da BellaBill »

Ciao,
ho un problema con una scheda RandA appena comprata ad un banchetto di Futura Eletttronica in fiera e che sto usando con il mio Raspberry PI 3 Model B.
Ho caricato su SD l'immagine RandAV1.5-Raspbian-jessie-2016-05-27.img dal GitHub ufficiale e mi collego via ssh da Ubuntu Linux.
In pratica non riesco e non sono ancora riuscito a caricare uno sketch su Arduino.

Eseguendo in locale (su Raspberry) il comando (ho abilitato in AUpload.sh il comando avrdude con le opzioni di debug):

Codice: Seleziona tutto

ArduLoad /home/ArduinoUpload/Blink.hex
ottengo:

Codice: Seleziona tutto

Stop listen command!

avrdude: Version 5.11.1, compiled on May 23 2012 at 11:08:25
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/home/raspduino/avrdude.conf"
         User configuration file is "/root/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/Arduino
         Using Programmer              : arduino
         Overriding Baud Rate          : 115200
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: Send: 0 [30]   [20] 
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding

avrdude done.  Thank you.

Avrdude uploading exit code: 1
Restart listen command!
Non riesco a capire se sbaglio qualcosa o se la scheda possa essere guasta.
Alcuni dettagli:
1. La scheda RandA si accende correttamente (led giallo + verde poi solo verde fisso), non ci sono altri led accesi (a parte quelli di Raspberry);
2. L'interruttore è in on come l'ho trovato (a sinistra dal fronte);
3. Non ho collegato alcun jumper;
4. L'RTC sembra funzionare correttamente (set e get) e con la batteria a bottone mantiene data e ora;
5. Il bus GPIO sembra funzionare (ho testato il pin 23 con un led), non so quali altri pin debba testare per la comunicazione seriale con Arduino;
6. Ho provato anche ad abbassare i baud della seriale a 9600;
7. Ho provato anche l'ultima versione di raspbian installando RandA successivamente ed anche avrdude (v6.3) dell'ultimo arduino-core raspberry;
8. Vedo su Raspberry il device /dev/ttyAMA0 ed i link a quest'ultimo /dev/ttySA, /dev/Arduino e /dev/serial0
9. Stesso problema usando l'IDE modificato RandA da Raspberry e l'interfaccia web (non ho provato l'ide modificato per windows perché uso Linux)

Avreste gentilmente qualche indicazione da darmi per risolvere il problema o qualche altro test da fare?
Mi chiedevo in particolare se sia normale che:
- su Arduino di RandA non sia pre-caricato alcuno sketch come test di funzionamento (tutti gli Arduino ufficiali che ho avuto escono con Blink precaricato)
- nel processo di programmazione non si accenda alcun led su Arduino di RandA (in quello ufficiale blinka il led della seriale)

Vi ringrazio in anticipo.
Daniele
Ultima modifica di BellaBill il 29/09/2017, 18:23, modificato 1 volta in totale.
daniele.d
Messaggi: 51
Iscritto il: 11/03/2015, 11:26
Home_Page: http://
Compleanno: 04 feb 1948
Città: Roma
Via: Maria Luigia Tancredi 10

Re: avrdude: ser_recv(): programmer is not responding

Messaggio da daniele.d »

Sinceramente non riesco a capire il possibile problema dai dati che mi ha fornito. Ma cerchiamo di ridurre le variabili:
- partiamo da una condizione stabile, ovvero da una immagine Rasp scaricata dal sito (quella che anche lei riporta)
- provi a collegarsi da terminale (console) su Rasp e provi ad utilizzare l'IDE locale con Blink
- e/oppure provi ad utilizzare temporaneamente un PC Window e l'IDE remota

Se avesse intenzione di approfondire l'argomento, la informo che è appena stato pubblicato (purtroppo con molto ritardo) un manuale di RandA (in Italiano), in cui viene descritto in dettaglio sia l'aspetto hardware che quello software.

PS. la release V1.5 (l'ultima) è sicuramente funzionante; ma è stata testata in queste condizioni: collegamento ssh con PC Window, utilizzo dei comandi predisposti, utilizzo dell'IDE locale, utilizzo dell'IDE remota su Window. Non è stata testata con altri SO ma, a parte l'IDE remoto, non vedo quali problemi potrebbero sorgere.
BellaBill
Messaggi: 4
Iscritto il: 27/09/2017, 14:10
Home_Page: http://

Re: avrdude: ser_recv(): programmer is not responding

Messaggio da BellaBill »

Salve Daniele, la ringrazio innanzitutto per la cortese e sollecita risposta.

Circa i consigli che mi ha dato ho già provato ad usare l'IDE locale su raspberry ed il messaggio che ottengo è esattamente identico.
Proverò per scrupolo anche da IDE su PC Windows ma temo che abbia lo stesso esito.

Da quanto ho capito, leggendo anche l'ottimo suo libro che mi ha consigliato e che avevo già acquistato ed ho appena iniziato, il nocciolo della programmazione di Arduino in RandA è lo script AUpload.sh che aggiunge tra l'altro i comandi per il reset di Arduino tramite il pin 23 della bus GPIO vista la mancanza del reset generato dalla interfaccia USB/Seriale di un Arduino standard.

Per quanto riguarda gli IDE mi sembra di intendere che l'IDE locale su Raspberry sia stato solo modificato per usare lo script AUpload.sh (o ArduLoad che lo richiama) invece che avrdude direttamente proprio per il motivo detto sopra mentre l'IDE Windows sia stato modificato per inviare il file .hex ad un server (Java) su Raspberry (identificato dall'IDE mediante le pseudo porte seriali via TCP/UDP) ed il server su Raspberry non faccia altro che salvare il file .hex in locale e lanciare RAUpload.sh (che a sua volta chiama ancora AUpload.sh).

Non riesco quindi neanch'io a capire perché non funzioni e temo un problema hardware ma avrei ancora le seguenti domande:
  • Volendo escludere problemi al chip Atmel (o al bootloader) sarebbe stato utile avere uno sketch precaricato che ne comprovasse il funzionamento (tipo Blink). Mi conferma quindi che di fabbrica non ci sono sketch precaricati?
  • Volendo escludere problemi alla porta seriale sarebbe stato utile avere come sketch precaricato SerialIO in modo da poter testare subito la comunicazione seriale tra Raspberry e RandA. Mi conferma che nella comunicazione seriale tra Raspberry e RandA non c'è nessun feedback visivo sulla scheda (led lampeggianti o altro)? Quale altro test potrei eventualmente fare sulla porta seriale per escludere interferenze con altri driver/componenti (mi sembra di capire che il bluetooth non sia utilizzabile con RandA installato)?
  • Volevo eventualmente provare come ultima spiaggia a sostituire il chip Atmel con uno di una scheda Arduino standard avente uno sketch precaricato per vedere se questo possa risolvere o viceversa provare a programmare il chip Atmel di RandA su una scheda Arduino standard. Ha qualche consiglio o avvertenza da darmi in merito? Posso avere problemi con la garanzia?

La ringrazio in anticipo e buona giornata.
Ultima modifica di BellaBill il 29/09/2017, 18:28, modificato 3 volte in totale.
daniele.d
Messaggi: 51
Iscritto il: 11/03/2015, 11:26
Home_Page: http://
Compleanno: 04 feb 1948
Città: Roma
Via: Maria Luigia Tancredi 10

Re: avrdude: ser_recv(): programmer is not responding

Messaggio da daniele.d »

Si, l'idea di caricare su Arduino uno sketch spostando il chip su una scheda Arduino è assolutamente fattibile ed opportuno.
No, su RandA non è stato precaricato nessuno sketch perché è stato utilizzato un normale integrato comprensivo di bootloader senza ulteriori passaggi.
No purtroppo non ci sono feedback visivi sulla seriale (per semplificare il layout e per questioni economiche). Ma volendo li può realizzare lei stesso (d'altronde si attestano sempre su D0 e D1) usando dei led con resistenza; oppure può verificare il funzionamento della seriale con un tester.
Si, il caricamento dello sketch avviene sempre tramite lo script che passa a Avrdude il file compilato (.hex).

Sinceramente non capisco perché Avrdude non riesca a collegarsi con Arduino. A questo punto, forse sarebbe più utile caricare sul chip (esternamente) non Blink ma uno sketch che faccia l'eco sulla seriale, e poi provare a comunicare utilizzando gli script predisposti o semplicemente i comandi Linux sulla porta /dev/ttySA.

Confermo che utilizzando la distribuzione completa del SO ultima versione, problemi non ce ne sono. Quindi non escludo un problema hardware.
Parlo della distribuzione completa, perché purtroppo è stato necessario fare alcune modifiche di configurazione (che riguardano la seriale), per cui il processo di adattamento su una distribuzione Raspbian già istallata è più difficile da controllare per eventuali problemi.
Infine c'è una ulteriore possibile spiegazione: il chip Arduino (per qualche errore) è stato montato senza il bootloader (cioè così come arriva da Atmel).
Verificare questo è semplice basta sostituire il chip con uno preso da una scheda Arduino Uno funzionante (ho dedotto che lei ne ha una).
Io, se fossi in lei, farei subito questa prova.
BellaBill
Messaggi: 4
Iscritto il: 27/09/2017, 14:10
Home_Page: http://

Re: avrdude: ser_recv(): programmer is not responding

Messaggio da BellaBill »

Ok, grazie Daniele ho finalmente risolto il problema che alla fine era tanto banale quanto subdolo.

Per la cronaca il chip Atmel funzionava benissimo ed anche il bootloader. Ho provato a spostarlo su una scheda Arduino UNO e sono riuscito a programmarlo normalmente ed a testarlo sia con gli sketch Blink che SerialIO e ho caricato una versione dello sketch SerialIO leggermente modificato in modo da far lampeggiare tre volte il led LD1 all'avvio di Arduino.

Stranamente, rimesso il chip su RandA nessun segno di vita da Arduino, led LD1 spento e seriale morta (testato con dei led sui pin D0 e D1), come se lo stesso non fosse neanche alimentato.
Insospettito dalla cosa ho studiato gli schemi del libro e fatto qualche prova ed alla fine è bastato montare il jumper SW2 (ho preferito R+A).

Problema banale ma il fatto è che la scheda è uscita senza alcun jumper montato e il foglietto di istruzioni che la accompagna non dice nulla in merito tanto più che Raspberry alimentato dalla scheda RandA si accende anche senza il suddetto jumper e questo non aiuta molto ad individuare il problema.

Sarebbe pertanto meglio che la scheda uscisse con i ponticelli necessari già montati (perlomeno SW2 visto che indispensabile per il funzionamento di Arduino).

Grazie ancora non vedo l'ora di sperimentare con questo oggettino.
daniele.d
Messaggi: 51
Iscritto il: 11/03/2015, 11:26
Home_Page: http://
Compleanno: 04 feb 1948
Città: Roma
Via: Maria Luigia Tancredi 10

Re: avrdude: ser_recv(): programmer is not responding

Messaggio da daniele.d »

Sono assolutamente d'accordo!!!
Mi sembra strano che RandA venga distribuito senza il ponticello SW2 nella posizione standard, o che almeno non venga spiegato nei foglietti di accompagnamento.
Riferirò questa cosa allo staff di Futura Elettronica. Grazie comunque dell'ultimo messaggio esplicativo che è utile sia a noi che ad altri utenti.
Rispondi