MK/MINI404 ist ein Simulator für die Plattformen RAMBO/Einsy Rambo/Buddy. Es wird auf Linux entwickelt und läuft nativ unter Linux. Es ist möglich, mit Cygwin unter Windows zu arbeiten, aber hier werden wir den Weg über Linux gehen.
Wir bei Prusa Research verwenden dieses Tool, um Firmware in der Entwicklung zu testen und schöne, scharfe Screenshots für Github-Changelogs und unsere Knowledgebase zu erstellen. Es gibt eine Reihe von Optionen für die Automatisierung durch Skripte und ist eine großartige Möglichkeit, Ihre eigenen benutzerdefinierten Builds der Firmware zu testen oder zu prüfen, wie Community-Übersetzungen formatiert werden, wie sie sich verhalten und wie sie auf den Displays unserer verschiedenen Drucker angezeigt werden. Oder vielleicht möchten Sie einfach nur den Drucker in Aktion sehen und das Menü-Layout und die Lösung erkunden, die wir uns ausgedacht haben, falls Sie einen Original Prusa-Drucker in Betracht ziehen.
Dies ist ein Projekt, das noch nicht abgeschlossen ist. Einige der hier erwähnten Bugs oder weniger optimierten Verfahren könnten inzwischen behoben und neue Funktionen hinzugefügt worden sein. Dieser Leitfaden soll eine Anleitung für Laien sein, wie man dieses wunderbare Tool installiert und damit zu spielen beginnt, sowie ein Lob an den Schöpfer und hervorragenden freiwilligen Community-Mitarbeiter VintagePC.
Eine Linux-Distribution muss installiert sein. Es kann auch auf einer VM installiert werden, aber wir werden hier nicht auf die Installation und Einrichtung eingehen. Beachten Sie, dass unter VirtualBox auf Windows 10 große Grafikprobleme aufgetreten sind.
Hier führen wir es unter Linux Mint (leichtgewichtige Xfce-Version) aus, einfach weil der Autor es bevorzugt. Es wurde eigentlich unter OpenSUSE entwickelt. Die hier beschriebenen Abhängigkeiten und Befehle basieren auf Linux Mint und wurden dort getestet, aber diese Anleitung sollte die meisten Debian/Ubuntu-basierten Distributionen abdecken. Wahrscheinlich ist jede Distribution geeignet, aber die notwendigen Abhängigkeiten können sich von Distribution zu Distribution unterscheiden. Wenn Sie mit Linux nicht vertraut sind, empfehlen wir Ihnen, eine auf Debian basierende Distribution zu erwerben, da Debian gut dokumentiert ist und dieser Leitfaden die Abhängigkeiten abdeckt.
Ein Nachteil dieser Distribution ist die recht große Installationsgröße, stellen Sie also sicher, dass die VM verfügt über:
Wir werden einen Simulator nach dem anderen installieren und die grundlegende Verwendung in einem verlinkten Artikel behandeln. Sie sollten mit MK404 beginnen, da dies etwas einfacher ist und einige in MINI404 verwendete Dateien generieren kann, die MINI404 nicht selbst generieren kann (oder zumindest nicht so einfach).
Seien Sie bereit, ein Super-Hacker zu werden, denn wir betreten... Das TERMINAL! Wir gehen hier von einer Neuinstallation von Linux aus, aber das Verfahren sollte keine Rolle spielen, wenn Sie bereits mit Linux arbeiten. Vielleicht haben Sie ja einige der benötigten Pakete bereits.
Öffnen Sie die Konsole oder ein beliebiges Terminal (Hotkey: Strg + Alt + T) und starten Sie die Aktualisierung des Systems, indem Sie Folgendes ausführen:
sudo apt-get update -y
sudo apt-get upgrade -y
Dies kann einige Zeit dauern. Lassen Sie die Zeilen scrollen, bis Sie wieder die Befehlszeile erhalten. Es gibt wahrscheinlich chirurgischere Wege, dies zu tun, aber der Einfachheit halber machen wir es so.
Wir werden installieren:
Der folgende Befehl sollte alles installieren, was Sie für den Betrieb des Simulators benötigen.
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
Kompilieren Sie den Compiler (oder etwas Ähnliches):
sudo apt-get install build-essential -y
Starten Sie den Rechner neu.
sudo reboot
git clone https://github.com/vintagepc/MINI404.git
cd MINI404
Laden von abhängigkeitsähnlichen Dingen (Submodulen)
git submodule init
git submodule update
Konfigurieren Sie den Build (es können Fehler auftreten, wenn Sie einen vorherigen Schritt vergessen haben)
./configure --target-list=buddy-softmmu --enable-opengl
Dann kompilieren Sie. Ich habe der VM zwei Kerne gegeben (die Hälfte der Gesamtkapazität dieses Laptops), also verwende ich zwei Kerne mit -j2. Dies wird einige Zeit in Anspruch nehmen.
make -j2
Die Ausgabe (build) befindet sich im Unterordner build/ und heißt qemu-system-buddy. Geben Sie dieses Verzeichnis ein. Von hier aus starten wir den Simulator und hier befinden sich alle Firmware-Dateien, der Bootloader, die Screenshots und die Image-Dateien.
cd
cd MINI404/build/
Laden Sie Bootloader und Firmware herunter und entpacken Sie sie mit "wget [url]" und "unzip [Dateiname]". Ich bin auf Probleme gestoßen, bei denen der Dateiname andere Punkte als vor der Erweiterung hatte.
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
Laden Sie die neueste Firmware-Datei von https://prusa3d.com/drivers herunter. Dieses Verfahren ist für jede Zip-Datei gleich. Klicken Sie mit der rechten Maustaste auf die Download-Schaltfläche und "Linkadresse kopieren". Fügen Sie den Link nach wget ein, um ihn herunterzuladen.
wget https://cdn.prusa3d.com/downloads/firmware/prusa3d_fw_4_3_3_MINI.zip
unzip prusa3d_fw_4_3_3_MINI.zip
Sie können nun die Anwendung mit dem folgenden Befehl starten, während Sie sich im selben Verzeichnis befinden (MINI404/build/buddy-softmmu/). Sie kann in diesem Zustand verwendet werden, verfügt aber nicht über einen dauerhaften Speicher, wie z.B. das Speichern von Stahlblechprofilen oder anderen Einstellungen. Das werden wir später einrichten.
./qemu-system-buddy -machine prusa-mini -kernel prusa3d_fw_4_3_3_MINI.bbf -chardev vc,id=p404-scriptcon,cols=80,rows=24
Wenn Sie sich im Stammverzeichnis befinden, können Sie es vermeiden, zuerst das Verzeichnis einzugeben, und stattdessen sowohl die Navigation als auch den Start der Simulation in einem Befehl erledigen:
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
Erstellt Dateien zur Verwendung als SPIflash(8M) und zwei st25dv64k Blöcke (64K).
truncate -s 8M SPIflash.bin
truncate -s 64K st25block1.bin
truncate -s 64K st25block2.bin
Um MINI404 mit diesen Dateien zu öffnen, verwenden Sie:
./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
Zunächst müssen Sie eine Image-Datei haben, die Sie als Laufwerk verwenden können. Bei MK404 geht das ganz einfach, aber bei MINI404 ist es etwas komplizierter. Kurz gesagt, Sie brauchen eine Image-Datei mit der Endung .img und ein FAT32-Dateisystem, das Sie mit mtools mit G-Codes versehen können.
Laden Sie die vorgefertigte 1 GB große Image-Datei mit dem bereits geladenen Schaf-G-Code herunter. Sie ist gezippt und nur 4Mb groß.
wget http://help.prusa3d.com/wp-content/uploads/2021/11/MINIUSB.zip
Entpacken Sie die Datei, die Sie gerade heruntergeladen haben.
unzip MINIUSB.zip
Wenn Sie einen G-Code herunterladen und auf den "USB-Stick" legen möchten, verwenden Sie wget [link] von einem Link in Prusaprinters. Mit den folgenden Befehlen können Sie die bereits vorhandene Datei herunterladen und kopieren!
wget https://media.prusaprinters.org/media/prints/13787/gcodes/339252_4279d4ab-37ae-49d3-bd5e-ee70893b0eec/sheep_pmoews_200um_mini_pla_2h17m.gcode
Fügen Sie die G-Code-Datei mit mtools in das Image der SD-Karte ein.
mcopy -vsi FAT32.img sheep_pmoews_200um_mini_pla_2h17m.gcode ::
Um MINI404 zu starten
./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
Ja, Sie können sich auch aus der Ferne mit dem Rechner verbinden! Im Grunde leiten Sie das Internet der VM zum Drucker. So haben Sie die Möglichkeit, NTP-Server und die Fernsteuerung des MINI404-Druckers zu testen.
./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
Sie finden die IP jetzt unter LAN-Einstellung im Menü des Druckers.
Um das volle Erlebnis zu erhalten, können Sie -append gfx-full hinzufügen, um ein dynamisches 3D-Modell des Druckers zu erhalten. Die Grafikoptionen sind vielfältig, daher finden Sie unter dem folgenden Link eine vollständige Liste der Argumente.
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
Wie Sie sehen können, wird die Zeile zum Starten ziemlich lang. Es gibt ein Online-Tool, um die ganze Zeile zu generieren, je nachdem, was Sie verwenden, aber Sie können auch ein Bash-Skript erstellen, um eine bestimmte Konfiguration zu starten.
Erstellen und bearbeiten Sie eine kleine Textdatei mit dem Nano-Editor.
sudo nano startMINI404.sh
Fügen Sie die folgende Zeile ein (oder was immer Sie haben)
./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
Schließen und speichern
Strg+x -> Ja (Yes) zum Speichern -> Enter zum Bestätigen des Dateinamens.
Machen Sie das Skript ausführbar
sudo chmod +x startMINI404.sh
Von nun an können Sie das Skript aus dem Ordner heraus mit starten:
./startMINI404.sh
Um den Simulator zu steuern, wie z.B. Screenshots zu machen, die simulierte Hardware zu manipulieren (Kurzschließen oder Trennen von Lüftern und Heizungen usw.), müssen Sie Skriptbefehle verwenden (scriptcon).
https://github.com/vintagepc/MINI404/wiki/Scripting-Mini
Die Konsole dafür befindet sich in einer der Registerkarten namens p404-scriptcon (grünes Quadrat). Wählen Sie es aus und trennen Sie es ab (violetter Pfeil). Die einzelnen Befehle sind in dem obigen Link beschrieben. Kopieren/Einfügen funktioniert nicht, aber mit der Tab Taste können Sie den Text automatisch ausfüllen.
Jetzt können Sie eine Ansicht mit der Anzeige auf einer Seite (blaues Quadrat), der Skriptkonsole auf einer anderen (grünes Quadrat) und die Terminalausgabe, die die Erzeugung der Dateien bestätigt (lila Quadrat). Rechts im Screenshot unten sehen Sie den Befehl, um einen Screenshot des Bildschirms zu erstellen und als PNG zu speichern.
Es gibt noch viel mehr, was Sie mit diesem Simulator machen können. Wir haben nur den MINI+ installiert, aber Sie können auch PrusaLink oder Octoprint anschließen, und vieles mehr. Sie sind jetzt startklar, also schauen Sie sich das Github Wiki für weitere Optionen, Funktionen und Spaß an.
VintagePC ist ein freiwilliger Mitarbeiter der Community, der einen großen Einblick in die Hardware- und Firmware-Architektur hat. Wenn Sie helfen wollen, vielleicht das Projekt auf andere Systeme portieren wollen (Win-Binärdateien existieren, benötigen aber Cygwin, um zu laufen, und Mac hat schon einmal funktioniert, ist aber nicht der tägliche Treiber des Erfinders), oder wenn Sie über die Interna von QEMU und die "richtige" Vorgehensweise auf dem Laufenden sind, oder wenn Sie auf andere Weise zu diesem Projekt beitragen wollen, kontaktieren Sie den Mann über sein Github https://github.com/vintagepc/.
Wenn Sie eine Frage zu etwas haben, das hier nicht behandelt wird, sehen Sie sich unsere zusätzlichen Ressourcen an.
Und wenn das nicht ausreicht, können Sie über die Schaltfläche unten oder an die [email protected] eine Anfrage senden.