Is it possible to use a Creality3D board to run the mpcnc?

Short story, I am replacing the main board on my Ender with an MSK Gen L card, and I have long wanted an mpcnc.

Ideally I could just use the old board to run the mpcnc, or will it be to weak in any way? There isnt a lot of memory on it, but it’s been enough for the Ender until now.

Thanks in advance.

It’s fine, same drivers as the Rambo, and more memory than an arduino uno, so yes, you can use it.

Yes, I think so too. Should do the work. (But beware the missing bootloader and different UC on the Creality/melzi board)


I added a bootloader a while back so I should be good there thanks.

Yeah, was looking for CPU … :frowning:

Here’s a possible fly in your ointment: how many motors does the Ender have? I have an Ender 3 and my board has room for 4 motors - X,Y,Z and E.

MPCNC has 2X, 2Y, and Z. That’s 5, right?

Only if you’re doing dual end stop. Otherwise X and Y are wired in series, and Z is all by itself(and lonely…).

MKS Gen L boards offer improvements over Creality’s Meizu board and is reasonably priced ($20 USD). A popular mod is to replace the stepper driver board with TMC2208 trinamic drivers (to make printer more silent and perhaps improve the print quality).

Has anyone had any luck using the Creality stock motherboard for the MPCNC? I am trying to set it up but I’m a little lost. I want to use Marlin firmware but I’m unsure about what configuration and settings to use in the firmware. I’m also unsure of what method to use for loading the firmaware to the board. I have a boatloader burned already. Should I stick with the Arduino IDE or can I use PlatformIO? Does anyone have experience with using the stock creality board with their MPCNC? Any advice would be greatly appreciated.

I’m also interested in the answer to this. I have an ender 3 I’m thinking of salvaging for a new build.

1 Like

Slowly building mine with creality 1.1.3 board and RepRap Discount screen. I haven’t connected the steppers, but I have uploaded 2.0.3 Marlin (PlatformIO) with the changes from Ryan’s code, except the higher amperage stepper settings. So far there are no issues, the board boots and screen appears to be functional. Will be ordering steppers and adding them with serial connectors.

1 Like

How did you upload using platformIO and what did you copy from Ryan’s code?

Visual studio code with platformio project has an upload button. When I connected creality board to USB, it appears as com port 6. Then I added upload_port = com6 into platformio.ini. I used the melzi_optiboot environment.

Forgot to answer your second question. I downloaded the Marlin firmware. Inside is an example configuration.h and configuration_adv.h for Ender 3. I used winmerge to determine which sections to edit. I also copied _bootscreen.h and _statusscreen.h to the marlin folder.

Please keep us updated on the status of this

I am running my MPCNC with an Ender 3 Board through Proterface without an LCD and with no Endstops.
No Problems at all…at least with the board and driving the machine through it.

“But why no Endstops?” Easy: Use dual or don’t use any. Dual won’t work with that board so dumped them completely. A CNC doesn’t need them to do its work, apart from safety concerns (well… ¯_(ツ)_/¯ ) its more a 3d Printer thing, that we got used to. With a CNC your 0/0/0 is usually the corner of your stock and no endstop will help you find that. You can recycle the Pins for touchoff plate though (wip on my end).

The only files i edited are configuration and configuration_adv

If you dont wanna mess with the Firmware you can even run the machine with an untouched board. Just jumper the Endstops (they are NC by default) and disable software endstops (M211 S0).
More than enough for a quick test.


What did you edit in configuration and configuration_adv?

Hi! I’m also interested in using my old Creality board for the MPCNC. Could you let us know how you edited the firmware to make it work? Thanks!


To get rid of any Temp errors

#define TEMP_SENSOR_0 999
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0
#define TEMP_SENSOR_BED 998
// Dummy thermistor constant temperature readings, for use with 998 and 999

To prevent any false Alarms:

//#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
//#define THERMAL_PROTECTION_BED // Enable thermal protection for the heated bed

Endstops to NO:

// Mechanical endstop with COM to ground and NC to Signal uses “false” here (most common setup).
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.

Machine Size:

// The size of the print bed
#define X_BED_SIZE your_size_in_correct_units
#define Y_BED_SIZE your_size_in_correct_units


more time to do stuff before loosing 0.0.0 after a job has finished

#define DISABLE_INACTIVE_Z true // set to false if the nozzle will fall down on your printed part when print has finished.

Use at you own discretion.
I take no responsibility for anything you do or do not.
If you don’t understand what’s going on here, don’t do it and read the marlin documentation first.


Thank you so much @Jansetsfire,
I have a Creality3D V1.1.4 board here and I can confirm that I was able to compile Marlin 2.0 successfully to use it with my MPCNC.
Most work was to add the bootloader. This here helped me out to flash via raspberry pi.
The only thing that I added is some changes to the acceleration values from the latest Ramps Firmware from the V1 Engineering GitHub Repo.
That’s it. Worked perfectly.