MK/MINI404 are simulators of the RAMBO/Einsy Rambo/Buddy platforms. It is developed on and runs natively under Linux. It is possible to build it under Windows using Cygwin, but here we will go the Linux way.
We at Prusa Research use his tool for testing firmware in development and beautiful crisp screenshots for Github changelogs and our Knowledgebase. There is a range of options for automation through scripts, and is a great way to test your own custom builds of the firmware or how community translations format, act and read on our various printer's displays. Or perhaps you simply want to see the printer in action and explore the menu layout and solution we have come up with, should you be considering an Original Prusa printer.
This is a project that is still work-in-progress. Some of the bugs or less streamlined procedures mentioned here may have been fixed by this time and new functionality may have been added. This guide has a goal to be a layman's approach to install and get started playing with this wonderful tool, as well as a shoutout to the creator known as VintagePC.
A distribution of Linux must be installed. Can be installed on a VM, but we will not cover the installation and setup of that here. Note that big graphics issues have been experienced under VirtualBox on Windows 10.
Here, we are running it on Linux Mint (lightweight Xfce version), simply because the writer prefers it. It is actually developed under OpenSUSE, but dependencies and commands outlined here are based and tested on Linux Mint,. However, this guide should cover most Debian/Ubuntu-based distros. Any distro will probably do, but necessary dependencies may differ between distros. If you are unfamiliar with Linux we recommend getting a Debian-based distro as Debian is well documented and is what this guide will cover dependencies for.
One negative of this distro is the rather large install size, so be sure the VM has:
All of them! Or, in this article, we will cover the 8-bit i3 series, and we recommend doing this before moving on to the 32-bit Buddy platform. We will install the MK404 simulator, and cover some basic use. The MK404 is a little easier to get running and the sim can generate some files used in MINI404, which MINI404 can not generate on its own (or at least not as easily).
Be ready to become a super hacker as we enter... The TERMINAL! We will assume you have a fresh install of Linux here, but the procedure shouldn’t matter if you run Linux already. You may just have some of the needed packages already.
Open Konsole or whatever terminal you find (hotkey: ctrl + alt + T) and start updating the system by running:
sudo apt-get update -y
sudo apt-get upgrade -y
This may take some time. Let the lines scroll until you get the command line again. There are probably more surgical ways of doing this, but for the sake of simplicity, this is how we roll. How we go crazy from bugs.
We will install:
The command below should install everything you need to run the simulator.
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
Compile the compiler (or something like that):
sudo apt-get install build-essential -y
Reboot the machine.
sudo reboot
Back into the terminal we go. Just make yourself comfortable. This is mostly where we will stay from now on. We won’t go into what each command does that much, but it is mostly self-evident.
Installing MINI404 is a little different/harder of the two, so we will start with MK404. MINI404 also does not have the built-in tool to create image files to use as a USB/SD card, while MK404 has a single command.
You should be in the home/bottom directory of the user. If in doubt you can always use cd to go to the bottom of the directory tree. cd ../ will bring you one folder back. cd ../../ two folders back, etc.. You can see folders and files in a location with ls. You are now a {linux} wizard, Harry..
git clone https://github.com/vintagepc/MK404.git
Enter the folder
cd MK404
Loading dependencies-ish things (submodules)
git submodule init
git submodule update
These last two commands can be executed as one:
git submodule update --init
Configure then build the program using cmake. It will default to a debug build (cmake ./), but the release build is snappier.
cmake . -DCMAKE_BUILD_TYPE=Release
make
Now the simulator is built and can be set up and launched!
Make sure you are still within the MK404 directory. Terminal should say "~/MK404$" after you the name of the computer. First, we will create an image (Acts as the SD card. We are calling it "FAT32.img" and giving it 1 GB). You can use this file as a “USB stick” for the MINI404 sim also.
./MK404 --sdimage FAT32.img --image-size 1G
Download a G-code to put on the "SD card". I use wget [link] from a link in Prusaprinters, i.e:
wget https://media.prusaprinters.org/media/prints/3121/gcodes/339198_a6baf314-4fdf-4bb3-adf4-75ddae6baab3/batman_02mm_pla_mk3_23m.gcode
Put gcode (batman_02mm_pla_mk3_23m.gcode) in the image file (FAT32.img) image using "mtools".
mcopy -vsi FAT32.img batman_02mm_pla_mk3_23m.gcode ::
Now you can start the sim with the line below. It will not have the latest firmware so we will download and use that in a later step. Let's just see if it works for now. When launched, some new windows will pop up. It can take a moment for it to load. If you are now getting a message saying something like “..No such file or directory..”, you probably forgot to make it. Go back and do it again.
./MK404 -b -f MK3S.afx --sdimage FAT32.img --graphics fancy --terminal
wget https://www.prusa3d.com/downloads/firmware/prusa3d_fw_3_9_3_MK3S.zip
unzip prusa3d_fw_3_9_3_MK3S.zip
./MK404 -b -f prusa3d_fw_MK3S_3_9_3_3556.hex --sdimage FAT32.img --graphics fancy --terminal
Remember keyboard/mouse shortcuts. For instance, before XYZ calibrating you must remove the sheet (Y) for it to not fail. Many key controls are also present in the menu explained below.
https://github.com/vintagepc/MK404/wiki/Key-Controls-Prusa_MK3S
The third mouse-button (mouse-wheel press) on the LCD display window will bring up a menu where you can toggle different scripts, like taking a snapshot, disconnecting/shorting connectors of components like thermistors and fans. You will also find other functions, among them, those covered by key controls.
However, not every command is implemented into this menu, specifically those that require some input, like a variable. You must therefore use the embedded console (terminal) for certain commands/functions. Copy/Paste does not work here, but you can use the Tab key you autocomplete what you start typing. It will suggest how to complete it with slightly darker text.
https://github.com/vintagepc/MK404/wiki/Scripting will give you a list of all printers supported. You will find the scripting commands for MK3S at https://github.com/vintagepc/MK404/wiki/Scripting-Prusa_MK3S. As an example, GLHelper::Snapshot(filename.png), will make a screenshot like see below and save the file as "filename.png" in the MK404 directory.
![]() | ![]() |
![]() | ![]() |
We recommend dragging/scaling the LCD window bigger, then using Windows print-screen to make a snippet (shift+win+S). This allows you a larger resolution than using the built-in MK404 capture function. You may want to change the DPI size using Photoshop or GIMP after saving the screenshot.
There is a lot more you can do with this simulator. We only installed the MK3S, but you can also run it with MMU2S, connect PrusaLink or Octoprint, even the CW1! You are now up and running so check out the Github Wiki for more options, features, and fun.
VintagePC is a volunteer community contributor with great insight into hardware and firmware architecture. If you want to help make the OpenGL stack more modern and performant, port this to other systems (Win binaries exist but require Cygwin to run and mac has worked once someone claimed, but is not the creator's daily driver), or contribute to this project in any way, contact the man through his Github https://github.com/vintagepc/.
If you have a question about something that isn't covered here, check out our additional resources.
And if that doesn't do the trick, you can send an inquiry to [email protected] or through the button below.