-
Notifications
You must be signed in to change notification settings - Fork 19
Home
an open-source upgrade for the Monoprice MP Mini Delta 3d printer
The mpmd_marlin_1.1.x project is a port of the very popular Marlin firmware. This port, the Aegean Odyssey port (AO), specifically targets the 32-bit motherboard found in the Monoprice MP Mini Delta 3d printer. It is Marlin firmware tailored to the strengths and weaknesses of the Mini Delta.
PLEASE NOTE mpmd_marlin_1.1.x is a work in progress. There is a great deal of experimenting, testing, and refinement in the works. Though the firmware seems to work well, it is largely untested -- use at your own risk.
I'd like to say everyone with a Monoprice MP Mini Delta should try this firmware upgrade, BUT in truth it is not for everyone. Here is some information to help you decide.
-
The firmware derives from the Marlin firmware codebase (bugfix-1.1.x branch), with most safety features of Marlin enabled. Plus, it prints well.
-
Compile-time options for 5-amp 10-amp power adapter limits - two variants of the firmware. The 60-watt (5A@12v) power adapter that ships with the printer cannot provide the power to heat the hotend and bed simultaneously. The (5-amp) firmware distributes its power demands to keep with-in the limits of the 60-watt power adapter. The 10-amp variant of the firmware removes this limitation allowing the hotend and bed to heat much faster (of course, you must be using a 120-watt (10A@12v) power adapter).
-
Compile-time options to choose "part-cooling" fan or "automatic control" fan. The single fan at the hotend of the Mini Delta printer serves two functions: it cools the hotend (to prevent heat creep) and it cools the part being printed. Two variants of the firmware allow which type of fan control will be used in the printer. Automatic control keeps the fan on fully whenever the hotend temperature is above 50C. Part cooling control provides the M106 and M107 m-codes to control the speed of the fan.
-
The firmware provides a "kill" switch function missing in the stock Monoprice firmware. Pressing the LED/pushbutton switch will halt the printer. Pressing the pushbutton again will cause the printer to reboot.
-
Additional G/M-code support (see G/M-code Support). The firmware adds:
- long file name support for list SD card (M20) m-code;
- filament change (M600) g-code, using the LED/pushbutton switch for its user interface;
- pause for user (M0/M1) m-codes, using the LED/pushbutton swith for its user interface;
- arc movement support (G2/G3) g-codes; and
- the manual progress update (M73) g-code.
-
The firmware improves LCD and SD card operation (compared to Marlin4MPMD firmware). These changes allow additional commands (e.g. calibrate, save settings, etc.) to be executed from .gcode files stored on the micro SD card. Also, "pause" and "cancel" from the LCD display has been improved. The "pause" request moves the hotend away from the part being printed, and the "cancel" request moves the hotend to its home position.
-
The firmware contains Marlin's improved delta calibration (G33) gcode and automatic bed leveling (G29) gcode. The printer can be automatically calibrated and adjusted via g-code "utilities" on the micro SD card.
-
(mainly for developers) This mpmd_marlin_1.1.x project uses the Travis-CI service to build its firmware releases. So it is possible to "tweak" and build custom versions of this firmware without installing the development tools on your local computer (see Development).
-
WIFI is NOT supported. The M-codes to configure and use the wifi connection are not included in this firmware. And though the wifi can be configured via the mobile app and the printer can establish wifi connections, the wifi connection, as is, is not reliable enough to do anything useful. (much more work and understanding are needed here to find a solution)
-
Monoprice MP Mini Delta printers are not all wired in the same way! In particular, the directions of the stepper motors may be inverted from one printer to the next. Rather than wire their printers consistently, Monoprice includes an M-code in its stock Monoprice firmware to configure the direction each stepper motor -- our Marlin-based firmware does not. The directions of the steppers motors are configured at compile-time, so this means that you must chose a variant of the firmware compiled for your printer's stepper motor wiring. So far, we have seen printers wired in two different configurations and believe two more are likely. Along with two other compile-time options, we end up compiling sixteen (16) variants of the firmware from which to choose. (see Which Firmare?)
-
In theory, upgrading the printer's firmware is easy: place the firmware on an micro SD card; pop it in the printer; power up the printer; and violá, the printer upgrades its firmware. In practice, however, the printer is quite finicky about the micro SD card when performing a firmwware update. Micro SD cards that work fine for the printer's normal operation often will not work when updating firmware. The problem seems to a be combination of factors related to the card type and how the card is formatted. This can lead to one of three scenarios:
- the card is not recognized, nothing happens; or
- the card is recognized, old firmware erased, but new firmware not installed; or
- the card is recognized, firmware updates successfully.
The second scenario above is dreadful, since your printer will no longer operate at all ("bricked" in the vernacular, until the micro SD card issue is resolved). On the upside, all is not lost -- once you have a properly formatted, compatible card the upgrade process works quickly and reliably. (see Installing the Firmware)
-
There is no support from Monoprice. Upgrading your firmware likely voids any warranty that comes with the printer.
Despite these "Cons", we believe this open-source alternative is worthwhile. Naturally, the choice is yours. To give it a try. please see the wiki page, Quick-Start, for instructions.
It all began with my effort to understand the build process for the Marlin4MPMD project. You see, I wanted to tinker with the firmware of my Monoprice MP Mini Delta 3d printer and studied the Marlin4MPMD project to learn how to proceed. During one of the many periods of confusion, self-doubts, and desperation, I turned to the Marlin firmware project as an alternative. Of course, there really is no substitute for actually understanding how things work, so after poring over both projects, I figured I'd developed enough understanding to attempt a "new" port of Marlin firmware for the Monoprice MP Mini Delta 3d printer.
The mpmd_marlin-1.1.x project is the result.
BTW, the mpmd_marlin_1.1.x project would not be possible without the extensive information curated by @mcheah in the Marlin4MPMD source code and at the Marlin4MPMD GitHub repository (mcheah/Marlin4MPMD).