Buongiorno a tutti!
Ho una decina di Arduino Mega 2560 dislocati in un ambiente produttivo, che rilevano impulsi digitali ed accendono delle lampade di segnalazione. Tutti gli Arduino Mega hanno la Ethernet Shield, e inviano-ricevono dati con dei Pc client(un pc ogni 4 Arduino), attraverso messaggi Socket.
La mia necessità è quella di poter caricare lo sketch da remoto da un singolo pc, attraverso la rete, in modo da poter apportare modifiche al programma da remoto, senza recarmi necessariamente dal cliente.
Ho fatto diverse ricerche in internet, ma in nessun caso si utilizzavano Arduino Mega per lo scopo, ma solo Uno o 2009, con bootloader modificati, e forse per questo motivo sono riuscito a briccare una scheda.
Spero di aver dato tutte le informazioni necessarie per capire la mia esigenza.
Grazie mille
Per sloccare la Mega brikkata usa la programmazione ISP.
Naturalmente ti puoi anche iscrivere a Codebender, link in firma, e flashare le board tramite la rete via Web.
Codecender a volte è un po skizzinoso con alcuni codici per cui non è possibile compilare e inviate la totalità degli sketch.
Ciao Paolo P. ,
grazie per la risposta, credo che quella indicata da te con Ariadne Bootloader sia la strada giusta.
Sono due giorni però che provo a caricare il bootloader, ma senza risultati.
Anche caricando il bootloader originale, riscontro degli errori.
Per la programmazione dell' Arduino Mega(MEGA2) utilizzo un Arduino Mega con Sketch Arduino ISP(MEGA1), con il seguente collegamento:
-Pin 53 MEGA1 --> Reset MEGA2
-Pin 51 MEGA1 --> Pin 51 MEGA2
-Pin 52 MEGA1 --> Pin 52 MEGA2
-Pin 50 MEGA1 --> Pin 50 MEGA2
-Pin GND MEGA1 --> Pin GND MEGA2
-Pin +5V MEGA1 --> Pin +5V MEGA2
Appena parte, i led TX-RX del MEGA1 cominciano a lampeggiare velocemente, con il LED del pin 13 Fisso, mentre sull'Arduino da programmare, rimane il LED del pin 13 fisso.
Dopo circa 3 minuti e mezzo si fermano e sull'Ide compare il seguente messaggio di errore:
Ho riprovato seguendo la Guida del Prof. Menniti, ma nulla. Testato con programmazione da porta parallela con Adattatore Autocostruito come da indicazioni sul sito ufficiale Arduino, ma nulla.
Ciao,
l'unica cosa che riesco a dirti al volo, poi ci sentiamo con calma in serata, se non risolvi, è sul messaggio d'errore:
0xff != 0x0d
Nella board che hai selezionato al momenti di caricare il bootloader dovresti trovare l'extended fuse settato a ff o 0d, cambialo con l'altro valore e vedi cosa succede.
Scusa ma in questo momento non faccio in tempo a leggere il Topic. Più tardi riuscirò e leggere l'esito di questa prova.
Confermo il consiglio di lasciar perdere altri tipi di programmazione, arriviamo prima a fare tutte le prove ISP
Figurati
quindi stai usando AVRDUDE.....A me pare che non stia scrivendo nemmeno i fuse, visto che escono failed di qua e di là.
Ho letto ora tutto il Topic, se il micro è bricked non c'è niente da fare, è possibile applicare solo la programmazione HV, ma nel caso di quel micro è un lavoro da squilibrati, in quando dovresti dissaldarlo dalla mega, risaldarlo su una scheda appositamente creata per la programmaziome HV, quindi la domanda di conferma è:
una delle due schede non funziona più correttamente con l'IDE? Perché ritieni di averla brickata, hai fatto in precedenza prove ISP con fuse sballati?
Ho usato AVRDUDE solo per provare a scrivere i fuse (non sapendo come fare altrimenti).
La scrittura del efuse a FF va a buon fine, ma non quella a 0D.
Se adesso provo a scrivere il bootloader originale , quando termina in errore(byte 0x1e000 0xff != 0x0d), ho il led del pin 13 che lampeggia a intermittenza.
Nonostante questo errore, se lo collego via usb e invio lo sketch del blink, lo upload e funziona( per essere sicuro ho impostato il blink a 100 ms invece di 1000).
Quindi in teoria non dovrebbe essere brikkato.
Il tutto è nato quando ho provato a caricare il bootloader Adriadne.
$0D può non essere accettato perché passi al chip il valore di fuse che non esistono. Secondo il sito Fuse Calculator: http://www.engbedded.com/fusecalc
Sì, è come dice Leo, allora puoi provare 0x05 o 0x07, tanto incidono solo sul BOD level.
Però il blink come prova non è idoneo, quel cavolo di LED lampeggia per la qualsiasi; impostalo su un pin diverso e aggiungi una R + led al volo, oppure carica uno sketch che mostri qualcosa sul serial monitor, insomma una prova più seria, ok?
Se risponde all'IDE non c'è ragione per la quale non funzioni l'ISP....
ma i fuse sono identici alla board originale!!!
Fai una cosa, con avrdude leggi tutti e tre i fuse e cerchiamo di capire cosa dobbiamo sistemare, certamente l'extended che è FD e non FF, ma vediamo gli altri due