compilazione firmware ed esportazione in formato .hex

salve a tutti chiedo aiuto per avere qualche delucidazione, anche se ormai e' un po' di tempo che mi imbatto questi lavori non ho mai capito fino in fondo.

1)vorrei postarvi il log della compilazione fatta di un firmware.c'e' un modo migliore invece di copiare tutto in un file .txt?
2)ho scaricato e compilato il firmware per una stampante 3d artillery genius che si chiama marlin 2.0.6.1, durante la compilazione vengono riportate righe arancioni con indicazione di errore ma comunque la compilazione arriva a termine. posso caricare il firmware comunque oppure il log deve essere tutto "pulito" da errori?
3) la compilazione l ho fatta selezionando la scheda arduino mega 2560 , sheda che utilizzavano le mie vecchie stampanti ma ora la nuova ne utilizza un altra che non fa parte della lista "arduino" (nuova scheda mks gen L). e' comunque corretto lasciare quel tipo di scheda? il firmware e' comunque scritto per funzionare tutt ora con arduino mega 2560.
4)le attuali guide per caricare il firmware su questa nuova stampante utilizzano il file .hex. io ho trovato il file .ino , e la cosa mi va benissimo perche posso modificare i valori, ho visto che dall ide e' possibile esportarlo in .hex ma come output mi da due file con lo stesso nome ma in uno c'e' aggiunto con bootloader. quale va usato?

grazie a tutti appena mi suggerite come riportarvi il log ve lo attacco

Schermata 2020-12-01 alle 09.19.10.png

Marlin.ino (2.07 KB)

Schermata 2020-12-01 alle 09.19.10.png

2. spesso le righe arancioni NON sono messaggi di errore (nel qual caso la compilazione NON andrebbe a buon fine), ma o messaggi introdotti dal programmatore per dare delle informazioni o dei "warning", ovvero avvertimenti che qualche cosa NON è conforme agli standard.
Su programmi di dimensioni del Marlin immagno che ce ne siano parecchi ... ma spesso sono del tutto ininfluenti.

3. Il sorgente 'C++' è unico, ma la compilazione DEVE essere fatta per la MCU su cui il codice dovrà girare, quindi ... o la nuova MCU di cui parli è solo un clone del ATmega2560 (cosa che NON credo, dato che non mi risulta esistano) o, se è una MCU differente, DEVI trovare ed installare il "core" Arduino per detta MCU. NON puoi compilare per una MCU, caricare su un'altra MCU e sperare che vada ... ciascuna ha il suo proprio linguaggio macchina, i suoi port di I/O, i suoi registri, ecc. ecc.

4. Devi vedere tu, trovata la giusta MCU per cui compilare, se la scheda che è montata sulla tua stampante prevede o meno il bootloader. Se permette il caricamento da USB, allora probabilmente ci vuole il bootloader, se invece si carica attraverso un programmatore dedicato su un connettore apposta, allora potrebbe non servire.

Metti un link alla stampante di cui parli e vediamo se, nelle specifiche, è indicata la MCU che usano.

Guglielmo

gpb01:
3. Il sorgente 'C++' è unico, ma la compilazione DEVE essere fatta per la MCU su cui il codice dovrà girare, quindi ... o la nuova MCU di cui parli è solo un clone del ATmega2560

Si tratta di una custom board che monta un ATmega2560, quindi dovrebbe andar bene (ammesso che l'OP ha configurato correttamente le opzioni del firmware)
Qui c'è il repo ufficiale (anche se utilizza una versione obsoleta del firmware Marlin)

cotestatnt:
Si tratta di una custom board che monta un ATmega2560 ...

Ah ... perché invece lui dice che la MCU NON è più ATmega2560 ...

motorimicro:
3) la compilazione l ho fatta selezionando la scheda arduino mega 2560 , sheda che utilizzavano le mie vecchie stampanti ma ora la nuova ne utilizza un altra che non fa parte della lista. ....

... quindi NON si capisce bene che MCU monta ... ::slight_smile:

Guglielmo

Probabilmente si aspetta di trovare nella lista dell'ide il nome della scheda (MKS Gen L).
Io temo che si stia avventurando un po' alla cieca in questo aggiornamento del firmware senza avere tutte le necessarie informazioni su come procedere...
Tra l'altro il Marlin 2.0 è un repository pensato per essere aperto con platformio, che semplificherebbe un bel po' la faccenda.

cotestatnt:
Io temo che si stia avventurando un po' alla cieca in questo aggiornamento del firmware senza avere tutte le necessarie informazioni su come procedere...

... purtroppo ho la stessa sensazione ed il rischio è che, alla fine, si ritrova con una stampante NON più utilizzabile e NON più programmabile da USB ... :confused:

Guglielmo

grazie delle risposte.ho gia fatto su stampanti che utilizzavano le schede arduino questo tipo di procedimento. comunque direi che rientro nella definizione "va un po alla cieca".
confermo che la scheda e' mks gen L.

fondamentalmente quello che vorrei e' aggiornare il firmware a marlin al 2.0.6.1 che ho trovato da scaricare dal sito thingiverse qui:

sono presenti piu versioni di firmware che prevedono un tastatore o meno ed e' anche presente un "codice" da caricare per far funzionare lcd

come facevo precedentemente mi piacerebbe poter accedere al firmware per variare determinati valori e caricarli.
se con il vostro aiuto la procedura si delinea molto chiaramente escludendo rischi procedero altrimenti per il momento rimando. invece di gestire il tutto da arduino ide pensate che passando a platformio possa migliorare la cosa? intanto lo scarico e vediamo se e' un programma accessibile.

Scusa, ma ti sei già studiato la loro GUIDA per la scheda “MKS-gen-L” ? ? ?

Perché, molte risposte alle tue domande, sono già la dentro, come, ad esempio, che MCU selezionare nell’IDE … ::slight_smile:

Guglielmo

Ho dato un'occhiata al Thingiverse che hai linkato.
Nell'archivio che ti fa scaricare c'è sia il file compilato .hex che il sorgente del Marlin con le diverse opzioni abilitate.
Per caricare il file .hex direttamente hai bisogno di un tool "esterno" (come ad esempio Xloader) oppure fare tutto da riga di comando.

Se invece vuoi ricompilare il firmware per customizzarlo, ti consiglio di aprire il progetto con Visual Studio Code + plugin platformio perché in questo modo te lo ritrovi già configurato correttamente (quanto necessario si trova nel file platformio.ini). Va bene anche l'IDE Arduino selezionando il Mega2560, ma a mio avviso è meno "pratico": platformio ad esempio installa in automatico tutte le dipendenze necessarie per compilare.

Per quanto riguarda il display TFT è un secondo firmware a parte, ma già compilato (e senza sorgente in questo caso). Devi prendere tutto il contenuto e copiarlo nella scheda SD del display che al successivo riavvio eseguirà in autonomia l'update.

grazie delle risposte, queste ultime due sono state molto incoraggianti. no non avevo visto la guida ,ora ho dato un occhiata veloce alle immagini e effettivamente ho avuto gia molte risposte.
ho appena scaricato platformio ora con un po di tempo spero di riuscirmi minimamente a gestire come facevo con ide arduino.
il file .hex...... solo ora che me lo dici mi accorgo che lo avevano gia abbinato...perche sono andato a cercarlo. grazie mille.
comunque anche se gia presente il file .hex gia' da ora sono che devo cambiare tre parametri,il nome stampante, il bed size ed il linear advance (k) quindi ora provero tramite platformio. ora mi ci metto

E' semplice: installi Visual Code e aggiungi il plugin platformio.

Poi file -> open folder ed apri direttamente la sotto cartella dove dentro c'è il Marlin (il file platformio.ini deve essere nella radice della cartella aperta).
Quando premi il pulsante per la compilazione ci metterà un po' perché scarica anche tutti i tool e le librerie necessarie.

perfetto...nel senso che mi sono ritrovato le cartelle configuratio.h etc.; insomma quello script che ero abituato a vedere.
ho apportato le modifiche a quei valori a cui ero interessato.
il mio attuale punto oscuro e' come farlo girare (run).devo cliccare su una specifica cartella e poi spingere sul tasto play che mi porta in una nuova videata e cliccare nuovamente su pio debug?
Poi eventualmente come esportarlo in .hex.
Anche in platformio va selezionata la scheda sul quale si intende caricarlo?

allego la videata dove sulla sinistra ci sono le cartelle in modo da capirci meglio

Per compilare puoi cliccare sul baffetto in basso a sinistra, mentre per fare l'upload della scheda il pulsante con la freccia subito a destra.

Gli stessi comandi te li ritrovi nelle tab di platformio (l'icona con l'alieno)

ho trovato dei video tutorial e con un po di tempo me li guardo e studio. intanto grazie ...ma ne arriveranno altre di domande. :slight_smile:

direi che e' d'obbligo linkare questi due video collegati tutorial che trattano l argomento in modo sintetico e chiaro per coloro che vogliono installare un qualsiasi firmware su stampante 3d