V2 Success

A project log for Monoprice Mini Marlin 2.0 Support

Getting Marlin to run on the Monoprice Mini/Malyan M200.

J.C. NelsonJ.C. Nelson 05/13/2019 at 17:2811 Comments

Last night I was able to successfully do a few test prints of the lucky cat and butterfly using the V2 (STM32F070) MCU. This means this project is drawing to a close, of sorts. Marlin main now supports the printer, V1 and V2 both click-compile for the most part. The sample config will work if I update the documented settings on how to compile, or I may update the sample config. 

V3 (with auto-level) is a matter of defining the probe pin (I believe it's PA3) and configuring ABL, but to do that, I'd need to re-enable EEPROM emulation. It doesn't currently work under ST's core using the unified HAL. It's really one of the last things to be needed, and once it's done, short of adding WIFI printing to Marlin Main, and Malyan's custom GCODE, there's not much left.

I created a config for the Malyan M300 delta /MPMD and may do a test with it as an extension of this, but the delta more or less just works. We'll see once I draw the V2 work to a close.

V3 is a possibility, enabling ABL, except I don't have a V3 - I'll need to use my V1 + probe or the bl-touch I wired to a V2. 

Delta is a possibility.

Soon I'll get back to the Lerdge project.


mojocorp wrote 12/06/2019 at 10:04 point

The hotend fan is now working, I had to change the pin from PB8 to PA8. But then, homing does not work anymore....

Did you already tried the extruder ? I cannot make it work. Same for the bed heater. Any idea what could be wrong ?

  Are you sure? yes | no

mojocorp wrote 12/05/2019 at 18:32 point

I've compiled using the M200 V2 variant and it's close to work. Your branch only compile with STM32 cores 1.6. I've rebased your branch onto the current marlin bugfix-2.0.x and compiled it with STM32 cores 1.7.0.

Use compile option Optimize "Smallest (-Os) with LTO" otherwise it won't fit in flash.


- XYZ motors

- min/max end stops

- lcd

- hotend + temperature

- bed temperature

- auto bed leveling

NOT working:

- hotend fan (pin must be PA8 and not PB8, but then the xyz motors don't move anymore)

- sdcard => Recv: echo:SD init fail  (blocking)

- extruder (blocking)

- bed heater (major)

- endstops status led (cosmetic)

- eeprom (M500 is ok, but M503 does not reflect the changes after restart)

NOT tested:

- print via usb (no hotend fan...don't want to melt my extruder)

  Are you sure? yes | no

J.C. Nelson wrote 12/05/2019 at 20:29 point

By default, optimizations may not be at the smallest - I always set the options to smallest, with float printf support. Extruder should work. Fan is likely an issue with E0 AUTO FAN in configuration_adv.h  In regards to your question below - the M300 and the M200 use the same variant - you set your part to the V2 (STM32F070) and your board to the M300.

  Are you sure? yes | no

J.C. Nelson wrote 12/05/2019 at 20:48 point

Oh, and the SD card usually works if you removed the card and reboot, then put it in. The flashign process leaves it partially initialized.

  Are you sure? yes | no

J.C. Nelson wrote 12/06/2019 at 05:12 point

I have the same problem as you do with the fan, I'm not sure what's wrong yet. Setting SPI speed to half fixed the SD card init errors.

  Are you sure? yes | no

J.C. Nelson wrote 12/06/2019 at 05:21 point

Setting the auto fan pin in configuration_adv.h to PB8 fixed the fan (I also enabled soft pwm, as you should).

  Are you sure? yes | no

mojocorp wrote 12/06/2019 at 12:59 point

I'm confused: do you mean the right pin is PB8 or PA8 ? To me , PB8 does not work at all.

When using PB8 or PA8, the homing stopped working....

And for soft pwm, do you mean 

#define FAN_SOFT_PWM ?

The extruder is not working actually. I think at least the right enable pin is PB0. Then the motor engage but does not move at all.

  Are you sure? yes | no

J.C. Nelson wrote 12/06/2019 at 15:32 point

I've opened a github issue to make communication on this easier -

  Are you sure? yes | no

mojocorp wrote 12/04/2019 at 19:02 point

I already discovered the M300 branch but the M300 variant is missing from STM32 Cores. Should I use a M200 V2 instead or do you have a M300 variant ?

  Are you sure? yes | no

J.C. Nelson wrote 12/02/2019 at 06:02 point

One of my github branches (I think named M300) has a pins and config file for it, but it isn't tuned the way Mickey's Marlin4MPMD is.

  Are you sure? yes | no

mojocorp wrote 12/01/2019 at 14:46 point


Do you have any instruction on how to build the M300 version ? Thx.

  Are you sure? yes | no