Examples for an MPCNC
On this page, I present various configurations and setup options for controlling the MPCNC ("Mostly Printed CNC"). Different combinations of hardware and software are introduced to optimally adapt the machine to different applications and requirements. Whether for beginners or advanced projects – here you will find inspiration and practical tips for your MPCNC.
Use as a Milling Machine
When the MPCNC is used as a milling machine, sufficient power is essential to achieve precise and reliable results. Therefore, I recommend using more powerful external drivers instead of plug-in drivers like the DRV8825. I personally use DM556 drivers.
For this application, the OCS2 Mini is particularly well suited.
For the software, I personally use Estlcam for all milling operations. This software is not only user-friendly but also very efficient. However, if a different control system is preferred, the software can easily be adjusted by swapping the controller module. This flexibility makes it possible to tailor the MPCNC to individual requirements and preferences.
See also my documentation post about this configuration: Example MPCNC
€76.00
No longer available
This controller is specifically designed for use with the software Estlcam, developed by Christian Knüll, which perfectly meets the requirements of hobbyists and semi-professional users. The controller module utilizes the latest Estlcam hardware and offers the extended features of the XL terminal adapter. Technical Data: Compatible only with Estlcam version 12.100 or higher. For older Estlcam versions, the ControllerModule Estlcam with Arduino Mega can be used. 3 axes (one axis can be operated with two individual motors for aligning a gantry milling machine via Estlcam) For motors/drivers/power stages with 5V step and direction signals 16 inputs 8 outputs 7 analog inputs, e.g. for temperature sensors, pressure sensors, etc. Pulse measurement, e.g. for flow sensors... Use of the original Estlcam Mini-Din handwheel or OCS2 handwheel Connection to PC via galvanically isolated USB-C port Protects the computer from short circuits Increased stability and interference suppression of the connection Spindle on/off Spindle speed control (0–5V, 0–10V, or 5V PWM) Optional: driver enable can be switched via an Estlcam output Supports the following external control elements: Handwheel / encoder Motor start button Program start button OK button (for zeroing the axes) Feedrate potentiometer (machine speed) Rotation speed potentiometer (spindle speed) Joystick for easy manual movement Additional functions directly on the ControllerModule 7 analog inputs 3 × resistance measurement (labeled 1R, 2R, 3R) 2 × 0–20mA current measurement (labeled 4I, 5I) 2 × 0–10V voltage measurement (labeled 6U, 7U) Connection for the original Estlcam handwheel via Mini-Din socket 5V step signal for a stepper driver This output generates precisely timed pulses, e.g. for mist cooling with injector valves or central lubrication with magnetic pumps. Frequency/pulse counting input (5V TTL) e.g. for monitoring spindle coolant flow using a turbine flow meter. Scope of Delivery: ControllerModule with all bootloaders and firmware preinstalled Required for operation OCS2 Mainboard or OCS2 Mainboard Mini Further Links Documentation Configuration example with an MPCNC
This ControllerModule is an expansion board for the OPEN-CNC-Shield 2.x for operation with the Estlcam control software. It is also possible to flash GRBL with a customized pinout onto the Arduino Mega, allowing the use of software such as LaserGRBL. Technical Specifications: 16 inputs 8 outputs 3 axes (axes on the mainboard can be paired, e.g. two X-axes) Spindle On/Off Spindle speed (0–5V, 0–10V, or 5V PWM) Support for the following external control elements: Handwheel / encoder Motor Start button Program Start button OK button (for zeroing the axes) Feedrate potentiometer (machine speed) Rotation Speed potentiometer (spindle speed) Joystick for easy manual movement Selection buttons for each axis (used with the handwheel) No longer supported by Estlcam v12 Two different speed settings (Speed 1 and Speed 2 – configurable in Estlcam) No longer supported by Estlcam v12 Pinout for remaining Estlcam functions: Speed 3–6 No longer supported by Estlcam v12 Motor Stop and Program Stop (unnecessary, as pressing the Start button again also stops the process) LED X, Y, and Z to indicate which axis is currently selected Scope of Delivery: ControllerModule Additionally Required for Operation: Arduino Mega 2560 OCS2 Mainboard PCB Further Links Documentation Video Tutorial
This PanelModule is an expansion board for the OPEN-CNC-Shield 2. This module provides an RJ45 (LAN) interface for connecting a handwheel to the OPEN-CNC-Shield 2. The connection is currently used primarily to supply power to the handwheel. Technical Specifications: RJ45 connector Scope of Delivery: PanelModule Further Links: Documentation
The ESP32 Panel Integrated Battery Board is designed for building external control panels. The ESP32 on the board communicates via WiFi with the OPEN-CNC-Shield 2. Its functionality is tailored for use with the Estlcam ControllerModule. When using a different controller, functionality may be significantly limited. Please refer to the documentation of each ControllerModule for details. Functions: WiFi communication - 2.4GHz - ESPNOW protocol Power supply via RJ45 or USB-C Dedicated signal line for the encoder in the RJ45 cable (the encoder signal is not transmitted via WiFi. A connection via RJ45 cable to the PanelModule RJ45 is required) Power supply possible through 2 x 18650 batteries Charging electronics with safety cutoff for 18650 batteries Battery charging via RJ45 connection to OCS2 or USB-C All inputs can be conveniently remapped in the ESP32 web interface software and used for other functions Various optional connection options: 4-pin - 5V encoder 3-axis joystick with OK button (for axis zeroing) Motor Start/Stop button Program Start/Stop button Feedrate potentiometer (feed speed) Rotation speed potentiometer (spindle speed) Autosquare button Axis selection X, Y, and Z (to select the axis for the encoder) No longer supported by Estlcam v12, but inputs can be remapped in software for other functions 4 free buttons (e.g., for power-off function or Speed1/Speed2) Connection for I2C, typically for a display Scope of delivery: ESP32 Panel Integrated Battery Board Commissioning: Examples of wiring can be found in the documentation. When new batteries are inserted, power must first be connected briefly via USB-C. Normal operation will then function afterward. Further links: Documentation Software / Firmware Connection diagram
ESP32 Devkit DOIT V1 USB-C or Micro-USB connection (depending on stock) Links: Blog post: Firmware for my products ESP32 Panel Flash Tool OPEN-CNC-Shield 2 ESP32 Flash Tool
This is a housing for the ESP32 Panel Board with cutouts for Estlcam control elements. Note This is an empty housing; no control elements, cables, or circuit board are included The housing is 3D printed and may have minor cosmetic imperfections that do not affect functionality The exact color tone may differ from the example photos Multicolored variants consist of random color combinations 3D Printing Settings Material: PLA Printed with 25% infill Cutouts for the following control elements 4 x Button/Switch 16 mm 2 x Potentiometer 1 x 4-axis joystick (3-axis + button/switch) 1 x 60 mm encoder/handwheel 1 x 0.96" I2C OLED display 1 x On/Off switch See the matching set in this shop: Control Element Set 4 with Encoder Scope of delivery 3D printed empty housing incl. front, cover, power bank holder, and display holder. Model: Thingiverse Pre-applied labeled film, see pictures 8 x 3D inserts (already installed) 19 x M3 V2A pan head screws Further links Thingiverse 3D Model Blog post: CNC Handwheel OPEN-CNC-Shield 2 - Estlcam YouTube video of a similar handwheel
Use as Laser
When operating a laser on the MPCNC, the requirements for motor control are significantly lower, as the motors experience much less load compared to milling. In this case, the inexpensive DRV8825 plug-in drivers are completely sufficient. For this application, I therefore recommend the OPEN-CNC-Shield 2 Mainboard, as it provides space for 6 plug-in drivers.
For laser applications, I exclusively use LightBurn. This software is extremely user-friendly and offers a wide range of powerful features that enable precise and creative laser engravings. I can highly recommend LightBurn — both for beginners and experienced users.
€59.95
No longer available
This ControllerModule is an expansion board for the OPEN-CNC-Shield 2.x for use with FluidNC. FluidNC is CNC firmware optimized for the ESP32 controller. It is the next-generation firmware from the creators of Grbl_ESP32. It includes a web-based user interface and offers the flexibility to control a wide variety of machine types, including the ability to operate machines with multiple tool types such as laser + spindle. Technical Specifications: 6 axes 8 inputs 8 outputs Connection to PC via USB or web interface Spindle speed control: 0–5V, 0–10V, or 5V PWM Spindle On/Off connection for switching a relay or frequency converter Micro SD card slot Connection for OLED display (unfortunately no longer supported by FluidNC; instead, a UART display is required) Scope of Delivery: ControllerModule FluidNC Additionally Required for Operation: ESP32 Devkit V1 OCS2 Mainboard PCB Further Links Documentation YouTube Video Tutorial
ESP32 Devkit DOIT V1 USB-C or Micro-USB connection (depending on stock) Links: Blog post: Firmware for my products ESP32 Panel Flash Tool OPEN-CNC-Shield 2 ESP32 Flash Tool
This DriverModule is an expansion board for the OPEN-CNC-Shield 2.x and is designed for use with plug-in drivers. This module is compatible with all Pololu drivers, including: DRV8825 (also available here in the shop) A4988 Various TMC drivers, e.g., TMC2209 Technical Specifications: Microstepping selectable via jumpers Connection via 4-pin header or 4-pin screw terminal Jumper for 5V on A4988 drivers or FLT on DRV8825 Scope of Delivery: DriverModule Further Links: Documentation Fan mount
This In/Out Module is an expansion board for the OPEN-CNC-Shield 2.x. Up to two of these modules can be connected to the mainboard. Technical Specifications: Number of inputs: 8 Number of outputs: 4 Maximum output current: 500 mA per output Output voltage selectable between 5V, board input voltage, or user-supplied external voltage Inputs can switch with either GND or 5–24V — both PNP and NPN sensors are supported Scope of Delivery: InOut Module Jumper connectors Further Links: Documentation
This In/Out Module is an expansion board for the OPEN-CNC-Shield 2.x. Up to two of these modules can be connected to the mainboard. Technical Specifications: Number of inputs: 8 Number of outputs: 4 (two of them with 5A relays) Maximum current for relay outputs: 5A – approximately 1 kW on a 230V mains supply Maximum current for other outputs: 500 mA per output Output voltage selectable between 5V, board input voltage, or user-supplied external voltage Inputs can switch with either GND or 5–24V — both PNP and NPN sensors are supported Scope of Delivery: InOut Module Jumper connectors Further Links: Documentation
This In/Out Module is an expansion board for the OPEN-CNC-Shield 2.x. Up to two of these modules can be connected to the mainboard. Technical Specifications: Number of inputs: 8 Number of outputs: 4 Maximum output current: 500 mA per output Output voltage selectable between 5V, board supply voltage, or custom external voltage Inputs can switch with either GND or 5–24V — both PNP and NPN sensors are supported Scope of Delivery: InOut Module Screw connectors Further Links: Documentation
This PanelModule is an expansion board for the OPEN-CNC-Shield 2. This module provides an RJ45 (LAN) interface for connecting a handwheel to the OPEN-CNC-Shield 2. The connection is currently used primarily to supply power to the handwheel. Technical Specifications: RJ45 connector Scope of Delivery: PanelModule Further Links: Documentation
The ESP32 Panel Integrated Battery Board is designed for building external control panels. The ESP32 on the board communicates via WiFi with the OPEN-CNC-Shield 2. Its functionality is tailored for use with the Estlcam ControllerModule. When using a different controller, functionality may be significantly limited. Please refer to the documentation of each ControllerModule for details. Functions: WiFi communication - 2.4GHz - ESPNOW protocol Power supply via RJ45 or USB-C Dedicated signal line for the encoder in the RJ45 cable (the encoder signal is not transmitted via WiFi. A connection via RJ45 cable to the PanelModule RJ45 is required) Power supply possible through 2 x 18650 batteries Charging electronics with safety cutoff for 18650 batteries Battery charging via RJ45 connection to OCS2 or USB-C All inputs can be conveniently remapped in the ESP32 web interface software and used for other functions Various optional connection options: 4-pin - 5V encoder 3-axis joystick with OK button (for axis zeroing) Motor Start/Stop button Program Start/Stop button Feedrate potentiometer (feed speed) Rotation speed potentiometer (spindle speed) Autosquare button Axis selection X, Y, and Z (to select the axis for the encoder) No longer supported by Estlcam v12, but inputs can be remapped in software for other functions 4 free buttons (e.g., for power-off function or Speed1/Speed2) Connection for I2C, typically for a display Scope of delivery: ESP32 Panel Integrated Battery Board Commissioning: Examples of wiring can be found in the documentation. When new batteries are inserted, power must first be connected briefly via USB-C. Normal operation will then function afterward. Further links: Documentation Software / Firmware Connection diagram
ESP32 Devkit DOIT V1 USB-C or Micro-USB connection (depending on stock) Links: Blog post: Firmware for my products ESP32 Panel Flash Tool OPEN-CNC-Shield 2 ESP32 Flash Tool
This is a housing for the ESP32 Panel Board with cutouts for Estlcam control elements. Note This is an empty housing; no control elements, cables, or circuit board are included The housing is 3D printed and may have minor cosmetic imperfections that do not affect functionality The exact color tone may differ from the example photos Multicolored variants consist of random color combinations 3D Printing Settings Material: PLA Printed with 25% infill Cutouts for the following control elements 4 x Button/Switch 16 mm 2 x Potentiometer 1 x 4-axis joystick (3-axis + button/switch) 1 x 60 mm encoder/handwheel 1 x 0.96" I2C OLED display 1 x On/Off switch See the matching set in this shop: Control Element Set 4 with Encoder Scope of delivery 3D printed empty housing incl. front, cover, power bank holder, and display holder. Model: Thingiverse Pre-applied labeled film, see pictures 8 x 3D inserts (already installed) 19 x M3 V2A pan head screws Further links Thingiverse 3D Model Blog post: CNC Handwheel OPEN-CNC-Shield 2 - Estlcam YouTube video of a similar handwheel
Switching Between Laser and Milling
Combination of Milling and Laser Operation
There are two possible approaches for combining milling and laser operation:
Option 1:
The use of the OCS2 Mini in combination with a ControllerModule Arduino Mega and external drivers. In this case, the software on the Arduino Mega can be reprogrammed as needed. For laser operation, GRBL is installed, while for milling, the Arduino is reprogrammed with Estlcam.
Although this solution works technically, it is not optimal in my view. Repeatedly reprogramming the Arduino Mega is cumbersome and increases the likelihood of errors. In addition, switching between modes can be time-consuming.
Option 2:
A more elegant solution is provided by the OCS2 Mini with a Dual Adapter and two separate ControllerModules. The Dual Adapter allows two controllers to be operated simultaneously on the OCS2 Mini. Using a switch, it is possible to toggle between the active modules, eliminating the need for reprogramming.
This variant is not only more efficient but also significantly more user-friendly, as it allows for a fast and simple switch between milling and laser operation. Below, I present the individual components for this option in more detail.
€76.00
No longer available
This controller is specifically designed for use with the software Estlcam, developed by Christian Knüll, which perfectly meets the requirements of hobbyists and semi-professional users. The controller module utilizes the latest Estlcam hardware and offers the extended features of the XL terminal adapter. Technical Data: Compatible only with Estlcam version 12.100 or higher. For older Estlcam versions, the ControllerModule Estlcam with Arduino Mega can be used. 3 axes (one axis can be operated with two individual motors for aligning a gantry milling machine via Estlcam) For motors/drivers/power stages with 5V step and direction signals 16 inputs 8 outputs 7 analog inputs, e.g. for temperature sensors, pressure sensors, etc. Pulse measurement, e.g. for flow sensors... Use of the original Estlcam Mini-Din handwheel or OCS2 handwheel Connection to PC via galvanically isolated USB-C port Protects the computer from short circuits Increased stability and interference suppression of the connection Spindle on/off Spindle speed control (0–5V, 0–10V, or 5V PWM) Optional: driver enable can be switched via an Estlcam output Supports the following external control elements: Handwheel / encoder Motor start button Program start button OK button (for zeroing the axes) Feedrate potentiometer (machine speed) Rotation speed potentiometer (spindle speed) Joystick for easy manual movement Additional functions directly on the ControllerModule 7 analog inputs 3 × resistance measurement (labeled 1R, 2R, 3R) 2 × 0–20mA current measurement (labeled 4I, 5I) 2 × 0–10V voltage measurement (labeled 6U, 7U) Connection for the original Estlcam handwheel via Mini-Din socket 5V step signal for a stepper driver This output generates precisely timed pulses, e.g. for mist cooling with injector valves or central lubrication with magnetic pumps. Frequency/pulse counting input (5V TTL) e.g. for monitoring spindle coolant flow using a turbine flow meter. Scope of Delivery: ControllerModule with all bootloaders and firmware preinstalled Required for operation OCS2 Mainboard or OCS2 Mainboard Mini Further Links Documentation Configuration example with an MPCNC
This ControllerModule is an expansion board for the OPEN-CNC-Shield 2.x and provides the option to switch between two different ControllerModules. This adapter is mounted on the controller module slot of the OCS2 and provides space for two additional modules. This allows two different controller modules to be operated on one OCS2. A switch on the dual adapter makes it easy to toggle between the two modules. However, note that the machine can only be controlled by one module at a time. A practical example would be using the FluidNC controller module for laser applications while the Estlcam controller module is used for milling operations. Overview Use of two ControllerModules without replugging Switch which module is active with a toggle switch The following signals are switched/disconnected: STEP and DIR for all 6 axes Spindle on/off Spindle PWM All 8 outputs The following signals are present on both ControllerModules (generally all input signals): Input 1–16 Encoder A/B Motor Start (control panel) Program Start (control panel) OK button (control panel) Feedrate (control panel) Rotation Speed (control panel) Joystick X/Y/Z (control panel) Selection X/Y/Z (control panel) Speed 1/2 (control panel) ENA/Enable of motor drivers ALARM_ALL of motor drivers I2C from ESP32 Compatibility: Not all combinations of controllers and configurations have been tested. Please refer to the notes in the documentation regarding compatibility! Scope of delivery: ControllerModule Dual Adapter 6 x M3 screws 6 x M3 nuts 4 x spacers 2 x 3D printed brackets Required for operation: An additional ControllerModule to control the CNC Further links Documentation Blog post YouTube video 3D print files for brackets
This ControllerModule is an expansion board for the OPEN-CNC-Shield 2.x for use with FluidNC. FluidNC is CNC firmware optimized for the ESP32 controller. It is the next-generation firmware from the creators of Grbl_ESP32. It includes a web-based user interface and offers the flexibility to control a wide variety of machine types, including the ability to operate machines with multiple tool types such as laser + spindle. Technical Specifications: 6 axes 8 inputs 8 outputs Connection to PC via USB or web interface Spindle speed control: 0–5V, 0–10V, or 5V PWM Spindle On/Off connection for switching a relay or frequency converter Micro SD card slot Connection for OLED display (unfortunately no longer supported by FluidNC; instead, a UART display is required) Scope of Delivery: ControllerModule FluidNC Additionally Required for Operation: ESP32 Devkit V1 OCS2 Mainboard PCB Further Links Documentation YouTube Video Tutorial
This PanelModule is an expansion board for the OPEN-CNC-Shield 2. This module provides an RJ45 (LAN) interface for connecting a handwheel to the OPEN-CNC-Shield 2. The connection is currently used primarily to supply power to the handwheel. Technical Specifications: RJ45 connector Scope of Delivery: PanelModule Further Links: Documentation
The ESP32 Panel Integrated Battery Board is designed for building external control panels. The ESP32 on the board communicates via WiFi with the OPEN-CNC-Shield 2. Its functionality is tailored for use with the Estlcam ControllerModule. When using a different controller, functionality may be significantly limited. Please refer to the documentation of each ControllerModule for details. Functions: WiFi communication - 2.4GHz - ESPNOW protocol Power supply via RJ45 or USB-C Dedicated signal line for the encoder in the RJ45 cable (the encoder signal is not transmitted via WiFi. A connection via RJ45 cable to the PanelModule RJ45 is required) Power supply possible through 2 x 18650 batteries Charging electronics with safety cutoff for 18650 batteries Battery charging via RJ45 connection to OCS2 or USB-C All inputs can be conveniently remapped in the ESP32 web interface software and used for other functions Various optional connection options: 4-pin - 5V encoder 3-axis joystick with OK button (for axis zeroing) Motor Start/Stop button Program Start/Stop button Feedrate potentiometer (feed speed) Rotation speed potentiometer (spindle speed) Autosquare button Axis selection X, Y, and Z (to select the axis for the encoder) No longer supported by Estlcam v12, but inputs can be remapped in software for other functions 4 free buttons (e.g., for power-off function or Speed1/Speed2) Connection for I2C, typically for a display Scope of delivery: ESP32 Panel Integrated Battery Board Commissioning: Examples of wiring can be found in the documentation. When new batteries are inserted, power must first be connected briefly via USB-C. Normal operation will then function afterward. Further links: Documentation Software / Firmware Connection diagram
ESP32 Devkit DOIT V1 USB-C or Micro-USB connection (depending on stock) Links: Blog post: Firmware for my products ESP32 Panel Flash Tool OPEN-CNC-Shield 2 ESP32 Flash Tool
This is a housing for the ESP32 Panel Board with cutouts for Estlcam control elements. Note This is an empty housing; no control elements, cables, or circuit board are included The housing is 3D printed and may have minor cosmetic imperfections that do not affect functionality The exact color tone may differ from the example photos Multicolored variants consist of random color combinations 3D Printing Settings Material: PLA Printed with 25% infill Cutouts for the following control elements 4 x Button/Switch 16 mm 2 x Potentiometer 1 x 4-axis joystick (3-axis + button/switch) 1 x 60 mm encoder/handwheel 1 x 0.96" I2C OLED display 1 x On/Off switch See the matching set in this shop: Control Element Set 4 with Encoder Scope of delivery 3D printed empty housing incl. front, cover, power bank holder, and display holder. Model: Thingiverse Pre-applied labeled film, see pictures 8 x 3D inserts (already installed) 19 x M3 V2A pan head screws Further links Thingiverse 3D Model Blog post: CNC Handwheel OPEN-CNC-Shield 2 - Estlcam YouTube video of a similar handwheel