MK/MINI404 sont des simulateurs des plateformes RAMBO/Einsy Rambo/Buddy. Ils sont développés et fonctionnent nativement sous Linux. Il est possible de le compiler sous Windows en utilisant Cygwin, mais ici nous allons suivre la voie Linux.
Chez Prusa Research, nous utilisons cet outil pour tester le firmware en développement et faire de belles captures d'écran nettes pour les journaux de modifications Github et notre base de connaissances. Il existe une gamme d'options d'automatisation via des scripts, et c'est un excellent moyen de tester vos propres versions personnalisées du firmware ou comment les traductions de la communauté se formatent, réagissent et se lisent sur les différents écrans de nos imprimantes. Ou peut-être voulez-vous simplement voir l'imprimante en action et explorer la disposition du menu et les solutions que nous avons trouvées, si vous envisagez une imprimante Original Prusa.
Il s'agit d'un projet qui est toujours en cours de développement. Certains des bogues ou des procédures moins simplifiées mentionnés ici peuvent avoir été corrigés depuis et de nouvelles fonctionnalités peuvent avoir été ajoutées. Ce guide a pour objectif d'être une approche profane pour installer et commencer à jouer avec ce merveilleux outil, ainsi qu'un hommage au créateur et excellent contributeur bénévole de la communauté connu sous le nom de https://github.com/vintagepc.
Une distribution de Linux doit être installée. Elle peut être installée sur une VM, mais nous n'en couvrirons pas l'installation et la configuration ici. Notez que de gros problèmes graphiques ont été rencontrés sous VirtualBox sur Windows 10.
Ici, nous l'exécutons sur Linux Mint (version légère de Xfce), simplement parce que l'auteur la préfère. Elle est en fait développée sous OpenSUSE. Les dépendances et les commandes décrites ici sont basées et testées sur Linux Mint, mais ce guide devrait couvrir la plupart des distributions basées sur Debian/Ubuntu. N'importe quelle distribution fera probablement l'affaire, mais les dépendances nécessaires peuvent différer d'une distribution à l'autre. Si vous n'êtes pas familier avec Linux, nous vous recommandons d'obtenir une distribution basée sur Debian car Debian est bien documentée et c'est ce que ce guide couvrira pour les dépendances.
Un point négatif de cette distribution est la taille d'installation plutôt importante, donc assurez-vous que la VM a :
Nous installerons un simulateur après l'autre et couvrirons l'utilisation de base dans un article en lien. Vous devriez commencer avec MK404, car c'est un peu plus facile et il peut générer certains fichiers utilisés dans MINI404, que MINI404 ne peut pas générer seul (ou du moins pas aussi facilement).
Soyez prêt à devenir un super hacker alors que nous entrons... dans le TERMINAL ! Nous supposerons que vous avez une nouvelle installation de Linux ici, mais la procédure ne devrait pas avoir d'importance si vous utilisez déjà Linux. Vous avez peut-être déjà certains des packages nécessaires.
Ouvrez Konsole ou n'importe quel terminal que vous trouvez (raccourci clavier : ctrl + alt + T) et commencez à mettre à jour le système en exécutant :
sudo apt-get update -y
sudo apt-get upgrade -y
Cela peut prendre un certain temps. Laissez les lignes défiler jusqu'à ce que vous obteniez à nouveau la ligne de commande. Il existe probablement des moyens plus chirurgicaux de le faire, mais par souci de simplicité, voici comment nous faisons.
Nous allons installer :
La commande ci-dessous devrait installer tout ce dont vous avez besoin pour exécuter le simulateur.
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
Compilez le compilateur (ou quelque chose comme ça) :
sudo apt-get install build-essential -y
Redémarrez la machine.
sudo reboot
git clone https://github.com/vintagepc/MINI404.git
cd MINI404
Chargement des dépendances (sous-modules)
git submodule init
git submodule update
Configurez la compilation (il peut y avoir des erreurs si vous avez manqué une étape précédente)
./configure --target-list=buddy-softmmu --enable-opengl
Puis compilez. J'ai assigné deux cœurs à la VM (la moitié du total de cet ordinateur portable), donc j'utilise deux cœurs avec -j2. Cela prendra un certain temps.
make -j2
La sortie (compilation) se trouvera dans le sous-dossier build/ et s'appelle qemu-system-buddy. Entrez dans ce répertoire. C'est là que nous lancerons le simulateur et il contiendra tous les fichiers du firmware, le bootloader, les captures d'écran et les fichiers image.
cd
cd MINI404/build/
Téléchargez et décompressez le bootloader et le firmware, en utilisant "wget [url]" et "unzip [nom du fichier]”. J'ai rencontré des problèmes où le nom de fichier avait des points autres que celui avant l'extension.
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
Téléchargez le dernier fichier de firmware sur https://prusa3d.com/drivers. Cette procédure est la même pour n'importe quel fichier Zip. Faites un clic droit sur le bouton de téléchargement et "Copier l'adresse du lien". Collez ce lien après wget pour le télécharger.
wget https://cdn.prusa3d.com/downloads/firmware/prusa3d_fw_4_3_3_MINI.zip
unzip prusa3d_fw_4_3_3_MINI.zip
Vous pouvez maintenant démarrer l'application avec la commande suivante tout en étant dans le même répertoire (MINI404/build/buddy-softmmu/). Il peut être utilisé dans cet état, mais n'aura pas de mémoire persistante, comme l'enregistrement des profils de plaque d'acier ou d'autres paramètres. Nous mettrons cela en place plus tard.
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24
Si vous êtes dans le dossier racine, vous pouvez éviter d'entrer d'abord dans le répertoire, et plutôt faire à la fois la navigation et le lancement du simulateur en une seule commande :
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
Créez des fichiers à utiliser comme flash SPI (8M) et deux blocs st25dv64k (64K).
truncate -s 8M SPIflash.bin
truncate -s 64K st25block1.bin
truncate -s 64K st25block2.bin
Pour ouvrir MINI404 à l'aide de ces fichiers, utilisez :
./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
Tout d'abord, vous devez disposer d'un fichier image à utiliser comme lecteur. MK404 peut le faire facilement, mais avec MINI404 c'est un peu plus compliqué. En bref, vous avez besoin d'un fichier image avec la terminaison .img et d'un système de fichiers FAT32, avec lequel vous pouvez utiliser mtools pour mettre des G-codes.
Téléchargez le fichier image tout fait de 1 Go avec le G-code du mouton déjà chargé. Il est compressé et ne fait que 4Mb.
wget http://help.prusa3d.com/wp-content/uploads/2021/11/MINIUSB.zip
Décompressez le fichier que vous venez de télécharger.
unzip MINIUSB.zip
Si vous voulez télécharger un G-code et le mettre sur la "clé USB", utilisez wget [lien] à partir d'un lien dans Prusaprinters. Les commandes ci-dessous téléchargeront et copieront le fichier déjà présent !
wget https://media.prusaprinters.org/media/prints/13787/gcodes/339252_4279d4ab-37ae-49d3-bd5e-ee70893b0eec/sheep_pmoews_200um_mini_pla_2h17m.gcode
Placez le fichier G-code dans l'image du fichier image (carte SD) à l'aide de mtools.
mcopy -vsi FAT32.img sheep_pmoews_200um_mini_pla_2h17m.gcode ::
Pour démarrer 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
Oui, vous pouvez également vous connecter à la machine à distance ! Vous acheminez essentiellement l'Internet de la machine virtuelle vers l'imprimante. Cela vous donnera la possibilité de tester les serveurs NTP et le contrôle à distance de l'imprimante 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
Vous pouvez maintenant trouver l'adresse IP sous Paramètres réseau, dans le menu de l'imprimante.
Pour profiter pleinement de l'expérience, vous pouvez ajouter -append gfx-full pour obtenir un modèle 3D dynamique de l'imprimante. Les options graphiques sont nombreuses, veuillez donc consulter le lien ci-dessous pour une liste complète des arguments.
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
Comme vous pouvez le constater, la commande pour le lancement devient assez longue. Il existe un outil en ligne pour générer toute la commande en fonction de ce que vous utilisez, mais vous pouvez également créer un script bash pour lancer une configuration donnée.
Créez et commencez à éditer un petit fichier texte à l'aide de l'éditeur Nano.
sudo nano startMINI404.sh
Collez la ligne ci-dessous (ou ce que vous avez)
./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
Fermez et enregistrez
Ctrl+x -> Yes pour enregistrer -> entrée pour confirmer le nom du fichier.
Rendre le script exécutable
sudo chmod +x startMINI404.sh
À partir de maintenant, vous pouvez démarrer le script depuis le dossier avec :
./startMINI404.sh
Pour contrôler le simulateur, comme prendre des captures d'écran, manipuler le matériel simulé (court-circuiter ou déconnecter les ventilateurs et les radiateurs, etc.), vous devez utiliser des commandes de script (scriptcon).
https://github.com/vintagepc/MINI404/wiki/Scripting-Mini
La console pour cela se trouve dans l'un des onglets appelés p404-scriptcon (carré vert). Sélectionnez-le et détachez-le afin qu'il soit séparé (flèche violette). Chaque commande est décrite dans le lien ci-dessus. Copier/Coller ne fonctionne pas, mais la touche Tab fera le remplissage automatique.
Vous pouvez maintenant avoir une vue avec l'écran d'un côté (carré bleu), la console de script d'un autre (carré vert), et la sortie du terminal confirmant la génération des fichiers (carré violet). À droite de la capture d'écran ci-dessous, vous voyez la commande permettant de créer une capture d'écran de l'affichage et de l'enregistrer au format PNG.
Il y a beaucoup plus que vous pouvez faire avec ce simulateur. Nous n'avons installé que la MINI+, mais vous pouvez également connecter PrusaLink ou Octoprint, et bien plus encore. Vous êtes maintenant opérationnel, alors consultez le Wiki Github pour plus d'options, de fonctionnalités et de plaisir.
VintagePC est un contributeur bénévole de la communauté avec une grande connaissance de l'architecture matérielle et firmware. Si vous voulez aider, portez peut-être cela sur d'autres systèmes (les binaires Win existent mais nécessitent Cygwin pour s'exécuter et mac a fonctionné une fois que quelqu'un a réclamé, mais n'est pas dans les priorités du créateur), ou aidez à utiliser les derniers composants internes de QEMU et la "bonne" façon de faire les choses, ou contribuer à ce projet de toute autre manière, contactez l'homme via son Github https://github.com/vintagepc/.
Si vous avez une question sur un sujet qui n'est pas traité ici, consultez nos ressources supplémentaires.
Et si cela ne suffit pas, vous pouvez envoyer une demande à [email protected] ou via le bouton ci-dessous.