MK404 - Printer Not Found

A full-featured simulator for AVR-based Prusa FFF printers; with the capability to easily support any AVR-based machine with modular components.

Download as .zip Download as .tar.gz View on GitHub

CI Build Code Lint Automated Tests Coverage

Introduction

MK404 is a 3D printer simulator. Specifically, it is a very technically oriented simulation, with several specific development-oriented goals in mind:

Why the name?

It’s a bit of nerdy meta-humour, comprised of several components :)

Printers Supported

As of this writing, the following printer models are supported. The MK404 Wiki is more likely to be up to date.

I currently only support the Prusa ecosystem because that is what I have and what I am familiar with. You are welcome to submit a New Printer Request and while I will do my best there are some limitations here - space and money. Unfortunately developing hardware simulation is not trivial and is most easily done if one has the real hardware in question to inspect and manipulate. Data-sheets can only get you so far in terms of weird corner case behaviours.

If you would like to contribute support for your particular printer yourself, feel free to get in touch!

Model Status (Not started, In Progress, Awaiting Merge, or Finished)
Prusa CW1 :heavy_check_mark: Passes self-test
Prusa CW1S :heavy_check_mark: Passes self-test
Prusa MK1 ✔️ Finished ❕ No 3D visuals.
Prusa MK2/MK2S ✔️ Finished
Prusa MK2/MK2S MMU ✔️ Finished
Prusa MK2.5 ✔️ Finished
Prusa MK2.5 MMU2 ❌ Not Started
Prusa MK2.5S ✔️ Finished
Prusa MK2.5S MMU2 ❌ Not Started
Prusa MK3 ✔️ Finished
Prusa MK3 MMU2 ✔️ Finished
Prusa MK3S ✔️ Finished
Prusa MK3S MMU2 ✔️ Finished

What can it do? (Feature Highlights)

Here are a few major highlights:

While we strive to maintain compatibility with stock firmware, this doesn’t mean you cannot run other firmware. In fact, MK404:

Runs Marlin:

Runs Klipper

Supports the MMU2 and MMU1

Advanced Extrusion Visualization

In addition to simple line-extrusion visualization (the default), MK404 supports a volumetric extrusion visualization capability where extrusions can render as rectangles, or “pipes” with widths based on the extruded volume. There are two options for each of these modes depending on your graphics needs and capabilities:

Example of Quad_HR mode

The red spikes you can see are visualizations of the Linear Advance algorithm at work when the print changes direction or starts/stops extrusion. Unlike a real printer there is no fluid physics so an extruded step can “instantly” expand without any back-pressure.

Example of Avg_Pipe mode

Note the linear advance steps are no longer visible and the extrusions are as long as possible along the travel path.

Debugging

avr-insight

Signal Tracing

GTKWave

Scripting

Simulated SD card support and Serial I/O

Much, much more!

I can’t really begin to describe every detail on this page. If you can’t find what you’re looking for, be sure to check out the following resources:

History

For those of you wondering, this project started in early 2020 as a joke in one of the Prusa3D GitHub threads where I mused about the possibility of something like this to debug a particularly annoying Linear Advance issue. Searching turned up a little bit of work surrounding printer simulation, including @buserror (Author of the wonderful SimAVR) whom had started a SimRepRap project. Unfortunately nothing was in active development at the time, and nothing really usable for the desired purposes.

I started playing with SimAVR as it was the most fully featured offering at the time and things just kind of went downhill from there… to the point where you’re looking at a not insignificant amount of work over the better part of a year to get it to where it is today. I do have to credit a few people along the way, especially @wavexx, @leptun, @3d-gussner and @DRracer for their testing, feedback, and contributions to help make the project become a reality.

Be sure to check out the Historical timeline where I have collected some screenshots of notable development milestones in MK404’s history.

Timelapse

This is a time-lapse video I took of a 5-colour MMU virtual print. Note this is an older build so it is still using the older style line visualization for the print. Total simulation time was about 12 hours:

Getting started

See Supported Operating Systems for more information specific to your platform. Using the download the buttons at the top of the page will take you to our “Releases” page where you will be able to download source code, or binary packages for various platforms. The dev tag will always be a build from the latest check-in, whereas the versioned releases will represent a notable collection of fixes or a milestone in the project’s history.

Be sure to check out the main README in the repo if you’re interested in building from source.

Quick Reference

Just a few items you might wish to look at or learn more about, in a convenient HTML hyperlink format:

Controls:

Reference documentation:

Advanced documentation and details are located in the project Wiki.

Some quick links for convenience:

Open Source