Releases: aegean-odyssey/mpmd_marlin_1.1.x
"We've been replaced" Release - 119r16
"We've been replaced" Release - 119r16
IMPORTANT CAVEAT! The
mpmd_marlin_1.1.x
firmware is NOT designed for the V2 model of the Monoprice Mini Delta 3D printer. Monoprice recently began selling a V2 model of the printer, and I doubt that this firmware is compatible. Please, do NOT try to install this firmware on the Monoprice Mini Delta V2 printer.
Well there appears to be a new version of the Monoprice Mini Delta printer; the V2 model (which we don't support). So before all interest wanes for the original model, let's get out another release of the mpmd_marlin_1.1.x
firmware.
Notable changes
-
fixed a fairly important regression introduced in
119r12
that would affectG33 P0
andG33 P1
(akaG29 P0
). Discussion is in issue #54; -
the extra fan output on the printer's controller board is now supported! Kudos to @BackwardEcho, @mulcmu, @PurpleHullPeas, and @MatthewUpp for working it out. Opens up some interesting possibilities for the printer, I think. More info is in the wiki.
Please Note
When installing or upgrading, the firmware may not properly detect and correct errors in the flash memory used to store its settings. Bizarre or erratic motion is a strong indication that there is a problem with the settings. The M502
(load factory settings) command followed by the M500
(save settings) command should get the firmware operating from a known "ground" state.
Installation
Please see the wiki for installation instructions -- Wiki Pages
Feedback
Feedback is appreciated.
Status: untested
"2020 is hindsight." Release - 119r15
"2020 is hindsight." Release - 119r15
IMPORTANT CAVEAT
The
mpmd_marlin_1.1.x
firmware is NOT designed for the V2 model of the Monoprice Mini Delta 3D printer. Monoprice recently began selling a V2 model of the printer, and I doubt that this firmware is compatible. Please, do NOT try to install this firmware on the Monoprice Mini Delta V2 printer.
Helluva year, 2020. Good to be started on 2021.
Nothing fancy in this release, but we have some genuine improvements, I think. Discussion and feedback motivated almost all of the changes, and credit goes to @mulcmu, @BackwardEcho, @Jozer99, and others for their participation and patience in this update round.
Notable changes
-
the printer should no longer hang and reboot when cabled through its USB port without an open connection (hoping to fix issues #47, #48, and maybe #5);
-
a tiny error that would accummulate in the z-axis when the printer repeatedly tapped (probed) the print bed has been fixed (issue #38);
-
more information, relevant for delta style printers, is part of the
M114
"position report" code and during theG29
,G30
, andG33
calibration and probing sequences (discussion #46); and -
the printer now displays the A/D converter values with its temperature readings to make it easier to collect measurements used to create customer thermistor tables. Groundwork is also started for custom/ alternate thermistors and more precise and space efficient temperature tables (discussion #45).
Please note: when installing or upgrading, the firmware may not properly detect and correct errors in the flash memory used to store its settings. Bizarre or erratic motion is a strong indication that there is a problem with the settings. The M502
(load factory settings) command followed by the M500
(save settings) command should get the firmware operating from a known "ground" state.
Installation
Please see the wiki for installation instructions -- Wiki Pages
Feedback
Feedback is appreciated.
Status: untested
"Marginal Gains" Release - 119r14
"Marginal Gains" Release - 119r14
Work on improving the machine's auto-calibration has stalled -- this release contains the "prep work" to perhaps overhaul Marlin's auto-calibration process, along with a few other small changes some might find useful. I thought I'd push these small changes out since the current main objective (improved auto-calibration) has been elusive.
Please note: when installing or upgrading, the firmware may not properly detect and correct errors in the flash memory used to store its settings. Bizarre or erratic motion is a strong indication that there is a problem with the settings. The M502
(load factory settings) command followed by the M500
(save settings) command should get the firmware operating from a known "ground" state.
Notable changes
-
SD card contents: include SHA1 hashes for the firmware files, and place M851 setup commands in their own folder (thanks to @mulcmu for these suggestions);
-
change the bed probe tapping for the
G29
,G30
, andG33
codes from three (3) averaged taps to two (2) fast/slow taps and adjust the tap speeds; -
bump the "maximum extrude length" limit from 500mm to 600mm; and
-
tweak the bed probe compensation parameters (more of an experiment than an improvement).
Installation
Please see the wiki for installation instructions -- Wiki Pages
Feedback
Feedback is appreciated.
Status: untested
"Lucky 13" Release - 119r13
"Lucky 13" Release - 119r13
Anxious to release r12
with its big bug fix, I flubbed a fix and missed a few things. So here is 119r13
-- what the previous release should have been.
Please note: when installing or upgrading, the firmware may not properly detect and correct errors in the flash memory used to store its settings. Bizarre or erratic motion is a strong indication that there is a problem with the settings. The M502
(load factory settings) command followed by the M500
(save settings) command should get the firmware operating from a known "ground" state.
Notable changes
-
Fixed where I added but should have subtracted in the
G30
code's calculation of the corrected Z offset (Q
value). -
Split the long
M665 ...
output of theM503
code into two shorter lines. The original line was correct, but it was too long for Marlin to process in the event that it was fed back into the printer. -
Tweaked the printer's emergency stop to send "//action:killed" to the serial host (e.g. OctoPrint) before the printer requires an LED button press to restart the printer; also accept
M108
from the serial host to simulate an LED button press in such a case to restart the printer. -
Renamed the uSDCard .zip file to sort at the top of the "Assets" list on this release page; also include the firmware variants in the
\firmware
folder of the .zip file.
Installation
Please see the wiki for installation instructions -- Wiki Pages
Feedback
Feedback is appreciated.
Status: untested
"It takes a village..." Release - 119r12
"It takes a village..." Release - 119r12
Good suggestions, commentary, and feedback mark this firmware release. Thank you to everyone for your comments, observations, suggestions, and patience. With this release, we have some fixes and generally more useful firmware.
Please note: when installing or upgrading, the firmware may not properly detect and correct errors in the flash memory used to store its settings. Bizarre or erratic motion is a strong indication that there is a problem with the settings. The M502
(load factory settings) command followed by the M500
(save settings) command should get the firmware operating from a known "ground" state.
Notable changes
-
A particularly nasty crashing issue rendered the
-PCfan
variants of the previous release useless. The cause has been identified (stack overflow) and seems to be fixed in this release. -
Usability changes to the
G29
andG30
codes should allow these codes to be much more useful. (see "G/M code Support") -
The
-ACfan
variants of the firmware combine both the automatic hotend fan and the part cooling fan functions into
one fan. When the part cooling fan is disabled (M107
/M106 S0
) the fan operates as the automatic hotend fan.
Otherwise, the fan functions as a part cooling fan. -
Temperature measurements now pass through a smoothing filter with a larger time constant. This should reduce a
fair amount of the noise in the temperature readings. -
Added
CALIBRATE_25MM.gcode
to the setup_gcode commands as an alternate to theAUTO_CALIBRATE.gcode
command that calibrates with a smaller mesh boundary. It is useful for machines that cannot reach the full 55mm print radius.
Installation
Please see the wiki for installation instructions -- Wiki Pages
Feedback
Feedback is appreciated.
Status: untested
"Linear Advance" Release - 119r11
"Linear Advance" Release - 119r11
The firmware now includes Marlin's "Linear Advance 1.5" feature!
IMPORTANT, IMPORTANT, IMPORTANT!
The format of the saved settings has changed with this release. After installing the firmware, it is imperative to restore the factory settings. Simply use the command
M502_FACTORY.gcode
followed by the commandM500_SAVE.gcode
from the contents of the micro SD card.
Please note: when installing or upgrading, the firmware may not properly detect and correct errors in the flash memory used to store its settings. Bizarre or erratic motion is a strong indication that there is a problem with the settings. The M502
(load factory settings) command followed by the M500
(save settings) command should get the firmware operating from a known "ground" state.
Notable changes
-
The firmware now includes Marlin's "Linear Advance" feature. As the feature requires some individual calibration and tinkering, it is disabled by default. (see "Linear Advance 1.5")
-
The Marlin "kill" process now reboots the printer without executing the bootloader. This change avoids some issues with the bootloader.
-
A small change in
AUTO_CALIBRATE.gcode
; don't adjust the tower angles with theG33
command. With this change, the calibration process will NOT override a user's customM665
"trim" values.
Installation
Please see the wiki for installation instructions -- Wiki Pages
Feedback
Feedback is appreciated.
Status: untested
"M665" Release - 119r10
"M665" Release - 119r10
With the controller board's 128k of program space, it's increasing difficult to "shoe-horn" more features into the firmware. I reworked the source code a bit to make room to extend the M665
(delta configuration) command. With this release, the firmware's features pretty-much supersede those of the mcheah/Marlin4MPMD firmware. Alas, this was the not the intent of the mpmd_marlin_1.1.x project. Work on Marlin4MPMD project has stopped, so there is a slight onus on this project to become a substitute.
IMPORTANT, IMPORTANT, IMPORTANT!
The format of the saved settings has changed with this release. After installing the firmware, it is imperative to restore the factory settings. Simply use the command
/setup_gcode/M502_FACTORY.gcode
followed by the command/setup_gcode/M500_SAVE.gcode
from contents of the micro SD card.
Please note: when installing or upgrading, the firmware may not properly detect and correct errors in the flash memory used to store its settings. Bizarre or erratic motion is a strong indication that there is a problem with the settings. The M502
(load factory settings) command followed by the M500
(save settings) command should get the firmware operating from a known "ground" state.
Notable changes
-
Added parameters
A
,B
,C
,D
,E
, andF
to theM665
(delta configuration) code. These parameters individually adjust the diagonal rod length (A
,B
,C
) and effective radius (D
,E
,F
) for each tower in a similar manner to adjusting the tower angles (X
,Y
,Z
). Note that with this change, the calibration radius is now set using theV
parameter instead of theB
parameter -- this is not backward compatible with Marlin. -
Changed a couple of configuration parameters to improve the usability of the
M600
(change filament) code. -
Backported some small changes from Marlin 1.1.9.1 -- one to make the
G2/G3
codes slightly more robust.
Installation
Please see the wiki for installation instructions -- Wiki Pages
What's Next?
Though program space is at a premium, I would still like to include Marlin's linear advance feature in the firmware. So far, the linear advance feature causes the firmware to crash. And with this release, there is no longer sufficient space to build the firmware with the LIN_ADVANCE
feature enabled. So, there's quite a bit of work to do.
For a few more thoughts concerning "what's next?", please see Loose Ends.
Feedback
Feedback is appreciated.
Status: untested
"Extras" Release - 119r09
"Extras" Release - 119r09
With this firmware release, we've fixed a few bugs, updated some documentation, and added a few extras to the contents of the micro SD card image. The big news is that finally, we've an Octoprint plugin and Pronterface script that exploits the firmware's M990
command to quickly upload a G-code file to the printer's micro SD card. These are early versions, but they do seem to work.
Please note: when installing or upgrading, the firmware may not properly detect and correct errors in the flash memory used to store its settings. Bizarre or erratic motion is a strong indication that there is a problem with the settings. The M502
(load factory settings) command followed by the M500
(save settings) command should get the firmware operating from a known "ground" state.
Notable changes
-
The wiki is updated with some tips on using the firmware with 1/8 microstepping versions of the MP Mini Delta printer. We also include a new command in the
/setup_gcode
folder on the micro SD card to provide correct default values for these printers:M92_XYZ57_E48.gcode - set alternate defaults for 1/8 microstepping printers
-
The firmware now displays a message when the manual "jogging" of the E axis is prevented by Marlin's safety checks. Marlin normally does not allow "cold" extrusion by disabling the E axis stepper while the nozzle temperature is below 170°C. We also include a new command in the
/setup_gcode
folder on the micro SD card to (temporarily) override this safety feature:M302_P1_COLD_E.gcode - allow E-axis stepping regardless of nozzle temperature
-
The contents of the micro SD card image now contains an Octoprint plugin to provide faster uploads of G-code files from the Octoprint host to the micro SD card in the MP Mini Delta printer. (see
Octoprint-plugin
) -
The contents of the micro SD card image now contains a Pronterface script and command to provide faster uploads of G-code files from the Pronterface host to the micro SD card in the MP Mini Delta printer. (see
Pronterface tips
) -
We worked around a Marlin issue that causes problems with motion during the G29 (auto bed leveling) command. Specifically, motion commands queued during the G29 command did not execute reliably.
Please see the wiki for installation instructions -- Wiki Pages
Feedback
Feedback is appreciated.
Status: untested
"Calibration" Release - 119r08
"Calibration" Release - 119r08
The printer's seems to be working well. In stand-alone operation, that is printing directly from the micro SD card, we offer "utility" commands (auto-calibrate, save/restore settings, factory reset, etc.) in the form of g-code files that can be run directly from the printer. Using the printer with Octoprint via the USB port also seems to be very reliable. Things to come: more work to bring the wiki documentation up-to-date.
Now we turn to improving the automatic calibration and automatic bed leveling accuracy. To this end, we're testing a couple of strategies: improving the accuracy of measurements made by the probe's tapping; and refining the bed level mesh afterward. This firmware release is our first attempt.
Notable changes
-
Added "compensation" to the bed probe to account for the bed's tilt during the tapping process. The goal is to improve the machine's initial calibration, G33, by providing better probe measurements. It is a highly experimental feature that can be (temporarily) disabled with the debug command, M111 S128. So far, it seems to slightly improve the calibration results.
-
Added G29 C1 command, "fit a plane to the bed level data". Though repeatable, the bed probing on the printer does not seem to be all that consistent, resulting in a map of the bed surface that is far from uniform. This command replaces the existing bed level mesh with a plane the best fits the existing data.
-
Some fixes to Marlin auto bed leveling code, mostly to correct rounding errors. Also added X and Y (in addition to the I,J, and Z) values when displaying the bed level data with the M503 command -- useful possibly to create other ("off" machine) strategies to calibrate the machine and level the bed.
-
Fixed bugs in Marlin's card reader code to clean-up support for long file names (LFN) for the list files (M20), open file (M23), and print file (M32) commands. The changes improve the experience when using hosts such as a simple terminal or Octoprint. Still no LFN support when deleting or creating files, though.
Please see the wiki for installation instructions -- Wiki Pages
Feedback
Feedback is appreciated.
Status: untested
"Refinements" Release - 119r07
"Refinements" Release - 119r07
After a bit more testing, we've adjusted the firmware -- and our expectations. Mainly, the firmware's WIFI support was quite unreliable and could interfere with the LCD display, so it's been disabled for now. But there's good news, too -- in particular, we've "backported" stepper motor control changes from Marlin 2 into our firmware, and fixed a bug or two. Here are the important changes:
Notable changes
-
Replaced the CRC check on the stored settings with a simple pattern test. Since any change to the settings requires all settings to be erased, a CRC test is overkill. Removing the test saves a fair amount of program space.
IMPORTANT
When upgrading firmware that includes this change, the check will fail (first time-only) causing the stored settings to be overwritten with the firmware's factory settings. Your custom calibration and bed-leveling settings will be lost! Please plan accordingly. -
Disabled WIFI support. The experimental support for WIFI in the previous release proved very unreliable, and for the most part, it was not at all useful. The printer could consistently establish and maintain a WIFI connection, but it could not upload files nor reliably return output from executed G/M-code commands (e.g. M503 report settings). Also, the multiplexing aspect of the WIFI seem to interfere with the operation of the serial LCD display from time to time. So for now, WIFI is disabled.
-
Backported changes in the stepper motor control (stepper.cpp, stepper.h) from Marlin 2. These changes take advantage of the hardware's 32-bit processor, increasing peformance and saving program code space. Qualitatively, overall printing motion seems a bit smoother and faster.
-
BUGFIX
Fixed a USART interrupt bug (i.e. an unhandled overrun error) that would occasionally lock-up the printer and eventually cause a watchdog time-out. -
Reworked the USB/CDC driver. Changed the STM32F0's HAL USB driver for slightly better performance, smaller program code space, and improved clarity. Backported a few changes from STM32Cube SDK v11, plus removed unnecessary code. More work to do here.
-
Added a custom M990 code -- support for faster file uploads to the micro SD card via the USB port. With host support, the "simple upload protocol" can transfer a file from the host to the printer (via USB) much than Marlin's standard file copy. In our tests, we achieve rates close to 8M bytes/minute using a python3 script on the host to transfer files to the printer. Hopefully, we'll be able to add support to OctoPrint for this file upload mechanism.
-
Fixed start-up G-code in example G-code files. The modified start-up G-code mitigates issues with thermal run-away for the firmware variants that limit power to bed heater.
see this Issue
Please see the wiki for installation instructions -- Wiki Pages
Feedback
Feedback is appreciated.
Status: untested