MK/MINI404 sono simulatori delle piattaforme RAMBO/Einsy Rambo/Buddy. È sviluppato e funziona nativamente su Linux. È comunque possibile realizzare la build su Windows usando Cygwin, ma qui seguiremo il metodo Linux.
Noi di Prusa Research usiamo questo strumento per testare il firmware in fase di sviluppo e per ottenere schermate belle e nitide per i changelog di Github e le nostre Nozioni base. È disponibile una serie di opzioni per l'automazione tramite script ed è un ottimo modo per testare le proprie build personalizzate del firmware o il comportamento e la lettura delle traduzioni della comunità sui display delle nostre varie stampanti. O magari volete semplicemente vedere la stampante in azione ed esplorare il layout del menu e le soluzioni che abbiamo ideato, se volete prendere in considerazione una stampante Original Prusa.
Questo progetto è ancora in fase di sviluppo. Alcuni dei bug o delle procedure poco efficienti qui menzionate potrebbero essere stati già risolti e potrebbero essere state aggiunte nuove funzionalità. Questa guida ha l'obiettivo di fornire un approccio da profano all'installazione e all'utilizzo di questo meraviglioso strumento, oltre che di ringraziare il creatore ed eccellente collaboratore volontario della comunità noto come VintagePC.
È necessario installare una distribuzione di Linux. Può essere installata su una macchina virtuale, ma non ci occuperemo dell'installazione e della configurazione in questo documento. Da notare che sono stati riscontrati grossi problemi di grafica con VirtualBox su Windows 10.
Qui lo eseguiamo su Linux Mint (versione leggera Xfce), semplicemente perché chi scrive lo preferisce. In realtà è stato sviluppato su OpenSUSE. Le dipendenze e i comandi qui descritti sono basati e testati su Linux Mint, tuttavia, questa guida dovrebbe essere valida per la maggior parte delle distribuzioni basate su Debian/Ubuntu. Probabilmente qualsiasi distro andrà bene, ma le dipendenze necessarie possono differire da una distro all'altra. Se non si ha familiarità con Linux, si consiglia di acquistare una distro basata su Debian, in quanto Debian è ben documentata ed è quella utilizzata in questa guida per le dipendenze.
Un aspetto negativo di questa distro è la dimensione piuttosto grande dell'installazione, quindi assicuratevi che la macchina virtuale disponga di:
Installeremo un simulatore dopo l'altro e illustreremo il funzionamento di base in un articolo collegato. Si consiglia di iniziare con MK404, perché è un po' più semplice e può generare alcuni file utilizzati da MINI404, che MINI404 non è in grado di generare da solo (o almeno non così facilmente).
Preparati a diventare un super hacker mentre entriamo... nel TERMINALE! Presumiamo che abbiate una nuova installazione di Linux, ma la procedura non dovrebbe essere importante se avete già Linux. Potreste semplicemente avere già alcuni dei pacchetti necessari.
Aprite Konsole o il terminale che preferite (tasto di scelta rapida: ctrl + alt + T) e iniziate ad aggiornare il sistema eseguendo i comandi:
sudo apt-get update -y
sudo apt-get upgrade -y
Questa operazione potrebbe richiedere un po' di tempo. Lasciare scorrere le righe finché non compare di nuovo la riga di comando. Probabilmente ci sono modi più chirurgici per farlo, ma per semplicità questo è il nostro modo di procedere.
Andremo a installare:
Il comando seguente dovrebbe installare tutto ciò che serve per eseguire il simulatore.
sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev cmake libsasl2-dev libsdl1.2-dev libseccomp-dev libsnappy-dev libssh2-1-dev libelf-dev gcc-avr libglew-dev freeglut3-dev libsdl-sound1.2-dev libpng-dev libsdl2-dev libgtk-3-dev libstdc++6 g++-7 python2-dev python3-dev libjpeg-dev libwebp-dev libtiff5-dev libsdl2-image-dev libsdl2-image-2.0-0 libusb-1.0-0-dev ninja-build -y
Compilare il compilatore (o qualcosa di simile):
sudo apt-get install build-essential -y
Riavviare la macchina.
sudo reboot
git clone https://github.com/vintagepc/MINI404.git
cd MINI404
Caricamento delle dipendenze (sottomoduli)
git submodule init
git submodule update
Configurare la compilazione (potrebbero esserci degli errori se si è saltato qualche passaggio precedente)
./configure --target-list=buddy-softmmu --enable-opengl
Poi compila. Ho dato alla macchina virtuale due core (la metà del totale di questo portatile), quindi utilizzo due core con -j2. Ci vorrà un po' di tempo.
make -j2
L'output (build) si trova nella sottocartella build/ e si chiama qemu-system-buddy. Entrate in questa directory. È qui che verrà lanciato il simulatore e conterrà tutti i file del firmware, il bootloader, le schermate e i file immagine.
cd
cd MINI404/build/
Scaricare e decomprimere il bootloader e il firmware usando "wget [url]" e "unzip [nome file]". Ho riscontrato problemi quando il nome del file presentava dei punti diversi da quelli che precedono l'estensione.
wget https://prusa-buddy-firmware-dependencies.s3.eu-central-1.amazonaws.com/bootloader-mini-1.0.0.zip
unzip bootloader-mini-1.0.0.zip
Scaricare il file del firmware più recente da https://prusa3d.com/drivers. La procedura è la stessa per qualsiasi file Zip. Fare clic con il tasto destro del mouse sul pulsante di download e "Copia indirizzo link". Incollare questo link dopo wget per scaricare.
wget https://cdn.prusa3d.com/downloads/firmware/prusa3d_fw_4_3_3_MINI.zip
unzip prusa3d_fw_4_3_3_MINI.zip
Ora è possibile avviare l'applicazione con il seguente comando, sempre all'interno della stessa directory (MINI404/build/buddy-softmmu/). L'applicazione può essere utilizzata in questo stato, ma non avrà una memoria persistente, come il salvataggio dei profili delle piastre di acciaio o di altre impostazioni. Questo verrà impostato in seguito.
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24
Se ci si trova nella cartella principale, si può evitare di entrare prima nella directory e procedere alla navigazione e all'avvio del simulatore con un unico comando:
cd MINI404/build/ ; ./qemu-system-buddy -machine prusa-mini -kernel prusa3d_4.3.3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24
https://github.com/vintagepc/MINI404/wiki/Flash-Storage-Persistence
Creare i file da utilizzare come SPIflash (8M) e due blocchi st25dv64k (64K).
truncate -s 8M SPIflash.bin
truncate -s 64K st25block1.bin
truncate -s 64K st25block2.bin
Per aprire MINI404 utilizzando questi file, utilizzare:
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24 -mtdblock SPIflash.bin -pflash st25block1.bin -pflash st25block2.bin
Innanzitutto, è necessario disporre di un file immagine da utilizzare come unità. MK404 può farlo facilmente, ma con MINI404 è un po' più complicato. In breve, è necessario un file immagine con estensione .img e un filesystem FAT32, sul quale è possibile utilizzare mtools per inserire i G-code.
Scaricare il file immagine preconfezionato da 1 GB con il G-code delle pecore già caricato. È zippato ed è di soli 4Mb.
wget http://help.prusa3d.com/wp-content/uploads/2021/11/MINIUSB.zip
Decomprimere il file appena scaricato.
unzip MINIUSB.zip
Se si desidera scaricare un G-code e metterlo sulla "chiavetta USB", utilizzare wget [link] da un link in Prusaprinters. I comandi sottostanti scaricheranno e copieranno il file già presente!
wget https://media.prusaprinters.org/media/prints/13787/gcodes/339252_4279d4ab-37ae-49d3-bd5e-ee70893b0eec/sheep_pmoews_200um_mini_pla_2h17m.gcode
Mettere il file del G-code nel file immagine (scheda sd) utilizzando mtools.
mcopy -vsi FAT32.img sheep_pmoews_200um_mini_pla_2h17m.gcode ::
Per avviare MINI404
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24 -mtdblock SPIflash.bin -pflash st25block1.bin -pflash st25block2.bin -drive if=none,id=usbstick,format=raw,file=MINIUSB.img -device usb-storage,drive=usbstick
Sì, è possibile connettersi alla macchina anche da remoto! In pratica si instrada la rete Internet della macchina virtuale verso la stampante. In questo modo è possibile testare i server NTP e il controllo remoto della stampante MINI404.
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24 -mtdblock SPIflash.bin -pflash st25block1.bin -pflash st25block2.bin -drive if=none,id=usbstick,format=raw,file=MINIUSB.img -device usb-storage,drive=usbstick -netdev user,id=mini-eth,hostfwd=tcp::3333-:80
Ora è possibile trovare l'IP alla voce Impostazioni LAN, nel menu della stampante.
Per ottenere un'esperienza completa, è possibile aggiungere -append gfx-full per ottenere un modello 3D dinamico della stampante. Le opzioni grafiche sono molte, per cui si rimanda al link sottostante per una serie completa di argomenti.
https://github.com/vintagepc/MINI404/wiki/Advanced-Visuals
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24 -mtdblock SPIflash.bin -pflash st25block1.bin -pflash st25block2.bin -drive if=none,id=usbstick,format=raw,file=MINIUSB.img -device usb-storage,drive=usbstick -netdev user,id=mini-eth,hostfwd=tcp::3333-:80 -append gfx-full
Come potete vedere, la fila per il lancio sta diventando piuttosto lunga. Esiste uno strumento online per generare l'intera linea a seconda di ciò che si usa, ma si può anche creare uno script bash per lanciare una configurazione impostata.
Creare e iniziare a modificare un piccolo file di testo utilizzando l'editor Nano.
sudo nano startMINI404.sh
Incollare la riga qui sotto (o quella che si ha a disposizione)
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24 -mtdblock SPIflash.bin -pflash st25block1.bin -pflash st25block2.bin -drive if=none,id=usbstick,format=raw,file=MINIUSB.img -device usb-storage,drive=usbstick -netdev user,id=mini-eth,hostfwd=tcp::3333-:80 -append gfx-full
Chiudere e salvare
Ctrl+x -> Si per salvare -> Invio per confermare il nome del file.
Rendere lo script eseguibile
sudo chmod +x startMINI404.sh
D'ora in poi è possibile avviare lo script dall'interno della cartella con:
./startMINI404.sh
Per controllare il simulatore, ad esempio per fare screenshot, manipolare l'hardware simulato (cortocircuitare o scollegare ventole e riscaldatori, ecc.), è necessario utilizzare i comandi di scripting (scriptcon).
https://github.com/vintagepc/MINI404/wiki/Scripting-Mini
La console si trova in una delle schede denominate p404-scriptcon (riquadro verde). Selezionatelo e staccatelo in modo che sia separato (freccia viola). Ciascun comando è descritto nel link precedente. Il Copia/Incolla non funziona, ma il tasto Tab consente il riempimento automatico.
Ora è possibile avere una visualizzazione con il display su un lato (riquadro blu), la console degli script su un altro (riquadro verde), e l'output del terminale che conferma la generazione dei file (riquadro viola). A destra, nell'immagine sottostante, si vede il comando per fare uno screenshot del display e salvarlo come PNG.
Con questo simulatore è possibile fare molto di più. Abbiamo installato solo MINI+, ma è possibile collegare anche PrusaLink o Octoprint e molto altro ancora. Ora siete pronti e operativi, quindi date un'occhiata alla sezione Wiki Github per ulteriori possibilità, funzioni e cose divertenti.
VintagePC è un collaboratore volontario della comunità con una grande conoscenza dell'architettura hardware e firmware. Se volete dare una mano, magari portarlo su altri sistemi (i binari per Windows esistono, ma richiedono Cygwin per essere eseguiti, mentre quelli per Mac hanno funzionato una volta, ma non sono il mezzo di lavoro quotidiano del creatore), o se siete molto aggiornati sugli interni di QEMU e sul modo "corretto" di fare le cose, o se volete contribuire a questo progetto in qualsiasi altro modo, contattatelo tramite Github https://github.com/vintagepc/.
Se hai una domanda su qualcosa che non è trattato qui, dai un'occhiata alle nostre risorse aggiuntive.
E se questo non dovesse funzionare, è possibile inviare una richiesta a [email protected] o tramite il pulsante qui sotto.