Dandandin.itDandandin.itDandandin.it Dandandin.it
  • Home
  • Forum
  • Corsi
  • Giapponese
    • Esercizi di Giapponese
    • Forum Giapponese
    • Link utili
  • Guide
  • Altro
    • Esperanto
    • Karaoke
    • Note legali e privacy policy
  • Shop
  • Home
  • Forum
  • Corsi
  • Giapponese
    • Esercizi di Giapponese
    • Forum Giapponese
    • Link utili
  • Guide
  • Altro
    • Esperanto
    • Karaoke
    • Note legali e privacy policy
  • Shop
  • Home/
  • Come compilare Marlin 2 per BIGTREETECH SKR mini E3

Home › Forum › Pc – Computer & co. › Come compilare Marlin 2 per BIGTREETECH SKR mini E3

Log In Registrati sul sito Password dimenticata?
Stai visualizzando 7 post - dal 1 a 7 (di 7 totali)
  • Autore
    Post
  • 14 Marzo 2020 alle 13:29 #1792
    Magnetic_dud
    Amministratore del forum

    Questa non è proprio una guida, ma tutti gli step che ho fatto per compilare questo firmware (Marlin 2.0) per questa scheda (la BTT SKR Mini E3 1.2). Così tra 6 mesi la posso rileggere per eventuale ricompilazione, senza dimenticarmi niente.

    Volevo usare Platform.io con Atom, ma dice non è più supportato. Quindi sono passato a VS Code, che ha un download portatile, senza installazione, qui. https://code.visualstudio.com/download

    Mi baso sulla guida pubblicata qui in inglese: https://marlinfw.org/docs/basics/install_platformio_vscode.html

    Vado nelle estensioni, cerco PlatformIO, lo installo, riavvio VS Code.

    Il firmware pubblicato da Bigtreetech è vecchio di mesi, chissà con che bug, non si sa che versione esatta è. Mi baso quindi sul firmware normale Marlin.

    Avrei voluto clonare il repository, ma il pulsante clone in VS Code non funziona. Forse da installare git? Vabbé per ora copio semplicemente i file da https://github.com/MarlinFirmware/Marlin/archive/2.0.x.zip

    Ho provato a usare AutoBuildMarlin, per fare tutto in automatico, ma non sono stato in grado di farlo funzionare. Vabbé, allora faccio a mano.

    Le configurazioni di base, quelle che tutte le guide indicano, non sono più presenti in Marlin-2.0.x/config/, ma all’interno un file di testo chiamato Readme.md indica che sono disponibili su https://github.com/MarlinFirmware/Configurations/archive/release-2.0.5.zip

    Scarico, prendo i file .h contenuti in Configurations-release-2.0.5/config/examples/BigTreeTech/SKR Mini E3 1.2 e li metto in Marlin-2.0.x/Marlin, sovrascrivendo il contenuto.

    Copio anche i due file mancanti da Configurations-release-2.0.5.zip\Configurations-release-2.0.5\config\examples\Creality\Ender-3

    Siccome ho copiato i file per un logo personalizzato al boot, abilito

    #define SHOW_CUSTOM_BOOTSCREEN

    e

    #define CUSTOM_STATUS_SCREEN_IMAGE

    In futuro cambierò anche l’immagine del boot

    I valori del PID del letto riscaldato variano rispetto alla board originale. Li lascio variati.

    Configurare il sensore di livello, ABL. Uso un sensore a induzione su piano in acciaio con PEI. Cavo marrone sul 5V (della ventola interna, altri connettori non funzionano…), cavo blu sul ground, cavo nero sul positivo dello Z-stop (quello di destra, con il quadrato)

    Attivo #define FIX_MOUNTED_PROBE

    Avendo montato la sonda sul guscio Petsfang mini, imposto gli offset di conseguenza.

    #define NOZZLE_TO_PROBE_OFFSET { 48, -2, 0 }

    Cambio anche #define CUSTOM_MACHINE_NAME con uno a mia scelta

    Abilitare #define Z_SAFE_HOMING

    In configuration_adv.h abilito:

    #define ARC_SUPPORT

    Cambio #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 così poi lo tiro a mano invece che aspettare l’espulsione lenta

    Inizialmente ho avuto la genialata di cambiare il file platformio.ini con quello presente in https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/blob/master/firmware/V1.2/Marlin-2.0.x-SKR-Mini-E3-V1.2/platformio.ini

    Però tutto quello che ottengo è un errore nella compilazione, mi dice can’t open file ‘Marlin/src/HAL/HAL_STM32F1/build_flags.py’: [Errno 2] No such file or directory

    Provo su un altro PC. Invece che usare Windows reinstallo tutto su linux e rifaccio tutti gli step da zero.

    In realtà invece no, siccome quel file platformio.ini è vecchio di mesi (quindi: anni nel mondo informatico), non contiene le giuste istruzioni per la compilazione. Cambiare default_envs con STM32F103RC_btt.

    Ora mi dice:

    .pio\build\STM32F103RC_btt\firmware.elf section .rodata' will not fit in regionrom

    perché il firmware è troppo grosso per la memoria… devo quindi trovare un’altra alternativa… mi mancano poco meno di 4k…

    14 Marzo 2020 alle 13:39 #1793
    Magnetic_dud
    Amministratore del forum

    Ci sono riuscito!

    Ho fatto tre cose:

    Ho cambiato la lingua dei menu in italiano:

    #define LCD_LANGUAGE it

    Ho disattivato ARC_SUPPORT

    //#define ARC_SUPPORT

    E tolto il bootscreen

    //#define SHOW_BOOTSCREEN

    Finalmente, dopo tre ore ho il file firmware.bin!!! Se solo riuscissi a trovare il lettore di microsd per poterlo caricare nella stampante 3d…

    14 Marzo 2020 alle 13:40 #1794
    Magnetic_dud
    Amministratore del forum

    Ah, il file si trova in: Marlin-2.0.x\.pio\build\STM32F103RC_btt

    15 Marzo 2020 alle 12:17 #1796
    Magnetic_dud
    Amministratore del forum

    Ancora non ho trovato un lettore usb di microsd, quindi non ho provato.

    Mi sono accorto che non ho attivato il sensore di fine filamento. Da togliere il commento a:

    #define FILAMENT_RUNOUT_SENSOR

    Il sensore di fine filamento (un pulsante NC) va connesso al pin PC15, indicato sulla scheda come E0-STOP

    Dopo aver interrotto il circuito, lo faccio proseguire per 25 mm decommentando:

    #define FILAMENT_RUNOUT_DISTANCE_MM 25

    Inoltre, ho commentato //#define MESH_BED_LEVELING e abilitato

    #define AUTO_BED_LEVELING_BILINEAR

    #define RESTORE_LEVELING_AFTER_G28

    Sembra che non ci sia abbastanza memoria per ABL UBL, che in teoria sarebbe migliore. Penso che comunque con un piano da 23 cm non ci sia grande differenza.

    Il sensore di livello va collegato a PC14, indicato sulla scheda come PROBE, il pin di destra

    16 Marzo 2020 alle 11:36 #1797
    Magnetic_dud
    Amministratore del forum

    Funziona! Ho collegato il +5V della sonda (filo marrone) al +5V del connettore SPI, che sarebbe quello in alto a dx (gruppo di 6)

    Non funziona l’auto home. Probabilmente devo invertire il segnale della sonda:

    #define Z_MIN_ENDSTOP_INVERTING true

    e

    #define Z_MIN_PROBE_ENDSTOP_INVERTING true

    Siccome #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN non è commentato, va usato il pin Z-STOP invece del pin PROBE.

    Nessuna speranza  di avere una schermata di boot personalizzata, non c’è abbastanza spazio nemmeno per un loghetto 40×40 pixel…

    Dopo aver aggiornato il firmware, il file firmware.bin non viene rinominato in firmware.cur e quindi viene flashato tutte le volte. Rimuovere il file manualmente dalla microsd altrimenti viene reinstallato a ogni singolo avvio, con perdita di tempo molto grande

    16 Marzo 2020 alle 16:08 #1799
    Magnetic_dud
    Amministratore del forum

    I problemi non sono finiti. Nemmeno il tempo di finire la calibrazione dello Z-offset e la scheda si bloccava, facendo un ronzio stranissimo. Dopo un’oretta di troubleshooting sono riuscito a capire che si trattava di surriscaldamento del processore: era bollente! (Anche se ci avevo messo un dissipatore in alluminio). La ventola che è posizionata sopra al processore però non partiva subito, partiva solo quando si mandava un file in stampa. Ho quindi capito che, rispetto alla board originale, FAN0 è la ventola di stampa, FAN1 è la ventola per la scheda madre. Ho scambiato i connettori, ora è molto più stabile in quanto ha dissipazione attiva.

    Altro problema è il calcolo del piano, è estremamente inaffidabile. Forse la temperatura influisce sull’affidabilità del sensore, che è a induzione. Quindi, abilito il comando M48 per poter vedere l’affidabilità:

    // Enable the M48 repeatability test to test probe accuracy
    #define Z_MIN_PROBE_REPEATABILITY_TEST

    Poi farò le misurazioni solo all’avvio della macchina, con il piano freddo, e non a ogni file. Così posso usare anche una matrice di 5×5 misurazioni per maggiore precisione (se no si perderebbe un sacco di tempo)

    Dico di spegnere il riscaldamento durante le misurazioni:

    #define PROBING_HEATERS_OFF       // Turn heaters off when probing
    #if ENABLED(PROBING_HEATERS_OFF)
    #define WAIT_FOR_BED_HEATER     // Wait for bed to heat back up between probes (to improve accuracy)
    #endif

    e

    // Warn on display about possibly reduced accuracy
    #define DISABLE_REDUCED_ACCURACY_WARNING

    Abilito anche l’opzione per fare più misurazioni e fare la media:

    #define MULTIPLE_PROBING 3
    #define EXTRA_PROBING    1

    Purtroppo con queste funzioni in più, mi mancano 7k di memoria

    Cerco cosa disattivare, ma attivo #define G26_MESH_VALIDATION che potrebbe essere molto utile. Ora mi mancano 12k di memoria.

    Disattivo #define SLIM_LCD_MENUS e risparmio 6k di memoria

    Disattivo #define INDIVIDUAL_AXIS_HOMING_MENU e risparmio altri 0.5k

    Disattivo anche il bootlogo

    Disattivo:

    #define LEVEL_BED_CORNERS

    #define EEPROM_CHITCHAT

    #define LCD_BED_LEVELING

    #define STATUS_CHAMBER_ANIM (in advanced)

    Ma niente, #define G26_MESH_VALIDATION non può essere attivato. Disattivandolo si risparmia un sacco di spazio, si può riattivare il boot logo

    23 Marzo 2020 alle 9:51 #1822
    Magnetic_dud
    Amministratore del forum

    L’estrusore salta troppi step. Disabilito #define STEALTHCHOP_E in configuration_adv.h

  • Autore
    Post
Log In Registrati sul sito Password dimenticata?
Stai visualizzando 7 post - dal 1 a 7 (di 7 totali)
  • Devi essere connesso per rispondere a questo topic.
Accesso

Dimostra che sei un essere umano


Articoli recenti

  • TechCrunch hackerato?
  • Nintendo e la scarsità artificiale
  • Email.it chiude le caselle gratuite
  • Il nuovo stile di Pokémon
  • PS2: dopo 20 anni trovato exploit per eseguire giochi masterizzati senza modifica

Categorie

Archivi

Questo blog non rappresenta una testata giornalistica in quanto viene aggiornato senza alcuna periodicità.
Copyright © 2009 - 2019 Dandandin