3D Printing or CNC Mill – Getting Started

Last year I purchased my first 3D-Printer kit.  Now I built a MPCNC from parts I ordered online.  This is a guide for getting started in 3D-Printing or CNC milling.


You don’t need a printer or mill to get started!

Don’t get me wrong, having one on-hand and seeing it operate is the best way to gain true understanding but even if you purchase a fully functional 3D-Printer with support you won’t be printing anything original.

The power of a 3D-Printer or CNC Mill comes from the ability to realize what you imagine in physical form. To accomplish this you define and model using Computer Aided Drafting and Computer Aided Manufacturing (CAD CAM) programs.


Luckily there is a free package that will get you started.  It takes some time and effort to learn but provides a visual workbench which I found useful.   FreeCAD works for both CNC and 3D design work with a complete Workbench called PATH for CNC CAM work but I haven’t actually successfully worked through the workflow.  I understand you can use FreeCAD from start to finish for CNC milling.

The scripting in FreeCAD is Python and various support libraries.  By design it is incredibly flexible and powerful but I don’t have enough experience with it to rate it.  I only started looking into it’s scripting capabilities and find myself back in OpenSCAD.


OpenSCAD is my preferred package.  OpenSCAD is a scripting language that manipulate the creation and placements of objects.  FreeCAD introduced me to parts (ie, objects) in a visual way. I found that once I had the basics of Part Design, that is, Cylinders, Cubes, Unions, Differences, Intersections, etc.   OpenSCAD made sense.  Scripts can be parametric and reusable.  Scripting is much more efficient that point, click, drag, setting properties over and over again.


While I’ve seen that FreeCAD offers PATH, and Inkscape has a PATH tool, with my limited experience I’ve found ESTLCam to be the easiest and most complete offering.  For a person with 3D printing experience, these are the equivalent to the  ‘Slicer’ (Cura, Slic3r, etc).

ESTLCam is not free!  That said, it is the only one I looked at that out-of-box (OOB) offers Marlin.   There are so many unknowns for me that was comforting.

While ESTLCam is not free you can use it without paying money.  There is a timer that will waste 30 seconds of your time as a reminder every time you save a CNC file (generate gcode).  This is annoying enough that if you are  using the product you will pay for it.


Maybe you don’t want to be an expert but you need to understand how your printer works to configure Marlin. A typical controller is the Arduino Mega.  Most have a built in Ramps controller board for four to six steppers but the base processor it an Arduino.

FYI: The Arduino community is very open and robust.  If you want to fully understand how a printer or mill does what it does try building a few Arduino projects.  Arduinos are a great introduction to the circuits design that anyone with an interest can pursue.

Ramps boards provide the means to control several steppers.  Stepper motors work with high currents and need special circuits referred to as drivers.

There are many choices for printer controllers, not all of them based on the Arduino (or Ramps 1.4 boards).  I am only going to talk about RepRap boards, specifically the Rumba.


I’ve worked with several boards now and don’t feel it makes a big difference, at least from a programming view.  The main difference is the number of stepper’s supported.  I like the Rumba because it supports six steppers.  This configuration seems to be ideal for everything I’ve done.

A cheaper board may only offer four steppers and have inadequate MOSFETs.  In addition many boards have open slots for the drivers and can work with many of the available drivers.

The point to take away is that the controller board is an Arduino setup to run a printer.  The Rumba, with six motor controllers, makes a good choice for any robotics project.

Rumba for MPCNC

The MPCNC uses Marlin for firmware.  In Marlin you must have at least one extruder.  The MPCNC has two steppers on both the X and Y axis. Because the Rumba has six drivers it is not necessary to run two steppers on the same driver.  In addition the extruder is ready if you ever want to use the MPCNC as a printer. You don’t even have to install a driver for E1, and I’m sure you could tweak Marlin if you really needed to use the E1 driver.

I also used the Rumba on my project printer.  It supported the dual Z motors on the i3 design and I can easily expand to add a second extruder.

On my Cube I have the MKS board which has five drivers.  It also has dual Z so with two extruders it has both Z motors on one driver.  I’ve ordered a MKS Rumba so I can either go with a Diamond (3 head mixing head) or use the spare driver for the Z axis.

My take-away is that I’ve found the Rumba board with six drivers a great all-purpose controller.  It is more capable, cheaper, and versatile and readily available than the Rambo and has become my first choice for an inexpensive controller.


Design is the first step to mastering 3D Printing.  This does not require a 3D-Printer or any additional purchases.  To experience what your printer is capable of you will need to learn CAD.

3D-Printing and CNC Milling use almost identical hardware and firmware.  The basis for all robotics is control of motors through programmatic handling of inputs and outputs.   Surprisingly the simple little Arduino is often the brain.

Finally, a controller for a Printer (or mill)  consists of an Arduino and RAMPS board.  There are many of these available, Rambo, Rumba, MKS and many more but for the most part they are all setup and programmed the same way.

Start with free software unless you already know CAD and have selected a package.  There are many good free and inexpensive choices to get started with.

Author: Marc

Leave a Reply