Vai al contenuto

Compilare Marlin alcune domande per Ender 5 s1


Messaggi raccomandati

Inviato (aggiornato)
16 ore fa, dnasini ha scritto:

Cercati due video su youtube di Dazero "Come Installare Marlin 2 su Qualsiasi Stampante ( o quasi )" che ti spiegano passo passo cosa devi recuperare e come configurare i file

Per capire se il tuo ambiente di compilazione e' pronto, una volta che hai spostato i file di configurazione sotto la cartella Marlin, prova a compilarli utilizzando i parametri di default. Se tutto va come deve, puoi cominciare a customizzarli. Per impostare i parametri che hai nella stampante ora, collegato alla stampante via usb dal PC e lancia il comando M503. Salvati l'output e utilizza quei parametri come valori nel fw che andrai a configurare

 

Grazie mille, chiarissimo

 

11 ore fa, Killrob ha scritto:

ti serve anche il plugin PlatformIO per Visual Studio code

ok, grazie.

 

Un'altra domanda, se qualcosa dovesse andare storto posso tornare indietro rimettendo il firmware come indicato da Creality per gli aggiornamenti (ovvero attraverso la SD)?

Modificato da LuckyFPV
Link al commento
Condividi su altri siti

37 minuti fa, LuckyFPV ha scritto:

Un'altra domanda, se qualcosa dovesse andare storto posso tornare indietro rimettendo il firmware come indicato da Creality per gli aggiornamenti (ovvero attraverso la SD)?

Se tutto va come deve si, devi procurarti il compilato della tua attuale release e flashiarlo. Tieni presente che ogni operazione di questo tipo comporta comunque dei rischi. Tra questi c'e' il Brick della scheda (scheda bloccata che nn risponde) che puo' avvenire per diverse cause tra cui, interruzione di un caricamento o configurazione errata dei parametri. Non e' una cosa che accade di frequente ad ogni modo nn e' impossibile.

Detto questo, se ti sei documentato bene prima di fare questa operazione e se non hai impostato parametri di sistema ad-minkiam, il processo e' piuttosto veloce e senza conseguenze

  • Like 1
Link al commento
Condividi su altri siti

Comunque, se ti sei documentato bene e tutto quanto: non bisogna temere perché in questo campo, secondo me, se si teme l'elettronica\"programmazione" non si fa più nulla e non si impara nulla. Non risica non rosica.

Link al commento
Condividi su altri siti

Inviato (aggiornato)

Allora, totale disastro. Visual Studio restituisce una valanga di errori. Installato plugin Marlin Auto Build e Python.

Al che ho tentato di compilare l'ultimo Marlin già fatto da Creality, specifico per la Ender 5 s1 (https://github.com/CrealityOfficial/Ender-5S1/tree/main) senza toccare alcun file ed ho ricevuto anche qui una ventina di errori e non si compila. 

Alcuni degli errori :

- "format '%d' expects argument of type 'int', but argument 3 has type 'double' [-Wformat=]"

- "unused variable 'leveling_restore_state' [-Wunused-variable]"

- "'temp_cutting_line_flag' defined but not used [-Wunused-variable]"

- ... .pio/build/STM32F401RE_CREALITY/src/src/gcode/gcode.cpp.o: in function `GcodeSuite::process_parsed_command(bool)':

- \Desktop\Ender-5S1-main/Marlin\src\gcode/gcode.cpp:1035: undefined reference to `GcodeSuite::M2000()'

-collect2.exe: error: ld returned 1 exit status
*** [.pio\build\STM32F401RE_CREALITY\firmware.elf] Error 1

ecc.

Alcuni mi sembra di aver capito che sono solo avvertimenti, gli ultimi 2 bloccano la compiulazione.

Modificato da LuckyFPV
Link al commento
Condividi su altri siti

47 minuti fa, LuckyFPV ha scritto:

senza toccare alcun file ed ho ricevuto anche qui una ventina di errori e non si compila. 

allora, Marlin e' un linguaggio interpretato, il che significa che viene letto riga x riga. Nella stragrande maggioranza delle volte, se correggi l'errore in cima, i successisi tendono a sparire. Concentrati sulle linee rosse (errori) e lascia x ultime le linee gialle (warning)

come hai fatto (che e' il modo a mio avviso migliore) solitamente gli errori nascono da path non trovati non da problemi sui settaggi. Controlla quindi le prime linee rosse e cerca di correggerle, il resto dovrebbe, tendenzialmente, andare bene

  • Like 1
Link al commento
Condividi su altri siti

Gli if hanno una certa struttura e quella dell'M2000 è diversa.

Vai nel file: gcode.cpp e trova questo if:

 #if ENABLED(DEBUG_M2000)
 case 2000: M2000(); break; 
 #endif

e cambia tutto in questo:

#if ENABLED(DEBUG_M2000)
	case 2000: M2000(); break; 
#endiF

Prova e vedi cosa dice.

Il problema è del linker che non trova la funzione. Bisogna sbattersi un po'.

Modificato da Anfove
Link al commento
Condividi su altri siti

2 ore fa, Anfove ha scritto:

Gli if hanno una certa struttura e quella dell'M2000 è diversa.

Vai nel file: gcode.cpp e trova questo if:

 #if ENABLED(DEBUG_M2000)
 case 2000: M2000(); break; 
 #endif

e cambia tutto in questo:

#if ENABLED(DEBUG_M2000)
	case 2000: M2000(); break; 
#endiF

Prova e vedi cosa dice.

Il problema è del linker che non trova la funzione. Bisogna sbattersi un po'.

Grazie. a parte la F maiuscola finale di endiF mi sembra uguale. In ogni caso mi da un errore lo stesso, sicuramente legato alla F maiuscola. Anche mettendo la minuscola da lo stesso errore. In ogni caso togliendo quella parte gli alert rimangono ma la compilazione termina con successo:

 

Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [==        ]  23.3% (used 15280 bytes from 65536 bytes)
Flash: [=====     ]  47.7% (used 245308 bytes from 514288 bytes)
========================================================================================= [SUCCESS] Took 9.32 seconds =========================================================================================

Environment           Status    Duration
--------------------  --------  ------------
STM32F401RE_CREALITY  SUCCESS   00:00:09.317
========================================================================================= 1 succeeded in 00:00:09.317 ========================================================================================= 
 *  Terminal will be reused by tasks, press any key to close it. 

 

Ma sì dai, sarà una cosa in più che non serve a niente 😁

Link al commento
Condividi su altri siti

1 ora fa, LuckyFPV ha scritto:

Grazie. a parte la F maiuscola finale di endiF mi sembra uguale. In ogni caso mi da un errore lo stesso, sicuramente legato alla F maiuscola. Anche mettendo la minuscola da lo stesso errore. In ogni caso togliendo quella parte gli alert rimangono ma la compilazione termina con successo:

 

Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [==        ]  23.3% (used 15280 bytes from 65536 bytes)
Flash: [=====     ]  47.7% (used 245308 bytes from 514288 bytes)
========================================================================================= [SUCCESS] Took 9.32 seconds =========================================================================================

Environment           Status    Duration
--------------------  --------  ------------
STM32F401RE_CREALITY  SUCCESS   00:00:09.317
========================================================================================= 1 succeeded in 00:00:09.317 ========================================================================================= 
 *  Terminal will be reused by tasks, press any key to close it. 

 

Ma sì dai, sarà una cosa in più che non serve a niente 😁

Errore mio per la F.

Si, perché quell'errore te lo da in quanto il linker non trova la funzione che viene chiamata in quell'if. Bisognerebbe indagare per capire perché e se c'è un effettivo bug. Alcuni compilatori/interpreti se non si usa la formattazione corretta danno errore e per questo motivo ho pensato a quello come possibile problema.

Comunque, secondo me, si sono scordati di implementare la funzione. M2000 non esiste in Marlin originale quindi potresti fare una prova innocua, ovvero:

vai in: gcode.h e sotto agli #include inserisci: static void M200(); e riprova a compilare con però il ripristino dell'if che hai tolto\commentato. 

Se ci provi fa sapere... pura curiosità ma se compila significa che il codice sta richiamando una funzione che non esiste e pertanto da quell'errore. A quel punto leva quel pezzo di codice senza alcun problema.

Modificato da Anfove
Link al commento
Condividi su altri siti

Inviato (aggiornato)
57 minuti fa, Anfove ha scritto:

Errore mio per la F.

Si, perché quell'errore te lo da in quanto il linker non trova la funzione che viene chiamata in quell'if. Bisognerebbe indagare per capire perché e se c'è un effettivo bug. Alcuni compilatori/interpreti se non si usa la formattazione corretta danno errore e per questo motivo ho pensato a quello come possibile problema.

Comunque, secondo me, si sono scordati di implementare la funzione. M2000 non esiste in Marlin originale quindi potresti fare una prova innocua, ovvero:

vai in: gcode.h e sotto agli #include inserisci: static void M200(); e riprova a compilare con però il ripristino dell'if che hai tolto\commentato. Oppure, secondo me, per provare lo puoi inserire anche nel file gocode.cpp sopra all'if.

Se ci provi fa sapere... pura curiosità ma se compila significa che il codice sta richiamando una funzione che non esiste e pertanto da quell'errore. A quel punto leva quel pezzo di codice senza alcun problema.

no, sia dichiarando static void M2000(); prima che nell'altro file mi da vari errori. Provato con static void DEBUG_M2000(); ma niente.

L'unica soluzione è eliminare quell'if. 

Un'altra domanda, nello .zip dell'upgrade ufficiale di Creality noto che ci sono tutti i file di immagini dell'LCD. Ecco quello come lo gestisco? Io ora ho il file compilato del firmware .bin, ma tutta la roba relativa all'lcd?

 

Modificato da LuckyFPV
Link al commento
Condividi su altri siti

Partecipa alla conversazione

Puoi pubblicare ora e registrarti più tardi. Se hai un account, accedi ora per pubblicarlo con il tuo account.

Ospite
Rispondi a questa discussione...

×   Hai incollato il contenuto con la formattazione.   Rimuovere la formattazione

  Sono consentiti solo 75 emoticon max.

×   Il tuo collegamento è stato incorporato automaticamente.   Mostra come un collegamento

×   Il tuo contenuto precedente è stato ripristinato.   Pulisci editor

×   Non puoi incollare le immagini direttamente. Carica o inserisci immagini dall'URL.


×
×
  • Crea Nuovo...