New Home › Forum › Software Development › Estlcam firmware + Arduino Uno + Protoneer CNC shield › Reply To: Estlcam firmware + Arduino Uno + Protoneer CNC shield
Since this post I’ve started using the spindle enable feature of the Protoneer board and ESTLCAM’s GUI. I’m using a homemade plug box with a high quality solid state relay built-in that is toggled by the +5V output of the Protoneer. It won’t control AC motor speed but it does automatically turn my Makita on/off which is handy because the router’s toggle switch is inaccessible when installed facing the Z-axis in the Universal Mount. My next move may be to use the six end-stop inputs on the Protoneer, but so far I’ve really not found much need. If you carefully set the ESTLCAM work area size and simulate the tool run before going live you shouldn’t bump into the limits.
The Uno that comes with the $35 kit on eBay is a Chinese knock-off. You will probably have to carefully straighten the pins before mounting the CNC shield. You may also have to load a driver to get the USB/serial connection going as it uses a less expensive driver chip than the FTDI part on official Arduino/Genuino boards. I got it working on XP and OSX after some fiddling. I strongly suggest you get the basic UNO talking to your PC before you mount the CNC shield. One step at a time. Also, as with all stepper drivers (including RAMPS) be sure you tune each stepper’s (the tiny potentiometer) power level using the instructions here. Not doing this will cause motor skipping, driver overheating, cooked motors, and/or other bad stuff.
Based on my research so far there seem to be three paradigms for driving your MPCNC.
Path 1: ESLCAM + Arduino IDE + Marlin + Repetier Host [on Arduino Mega + RAMPS hardware]
If you want maximum flexibility, if you embrace the RepRap philosophy, or if you plan to do 3D printing (need extruders or heated beds) then the best path is as explained in the main instructions on this site. The downside is a rather complex workflow and a high “fiddle factor” as you tweak and recompile the Marlin firmware and play with Repetier Host. I’m comfortable doing this as I built my own Prusa i3 using a RAMPS clone and later a RAMBo, but the prospect of setting all my parameters in the ESTLCAM GUI in meaningful CNC terms and units and having it configure and load the UNO was pretty attractive. I actually got my MPCNC working with a RAMPS clone first and then decided to try another approach. I figured all those CNC DIYers must have some good stuff so why not try it?
Path 2: Mach3 [with parallel port + CNC controller hardware]
You could use Mach3 (or similar) PC CAM software communicating with a CNC stepper controller (like this) over a legacy parallel port. The host control people (Mach style) are devotes of the parallel port because it is the only way to do millisecond accurate timing directly from a desktop/tower PC. However, IMO, that approach is ultimately a dead-end as the parallel port will inevitably become unavailable (note: most USB to parallel converters do NOT work because the required precise timing gets buffered-out.) If you like tower PCs with PCI slots and plug-in boards with parallel ports then maybe Mach is for you! I’ve never used it but the CNC world still seems to think it offers the most control options. If you get super-serious about 6-axis metal milling it might be the only choice. Maybe one day?
Path 3: ESTLCAM [on Arduino UNO + GRBL compatible CNC shield]
GRBL is Arduino firmware designed to offload the PC from having to deal with the millisecond timing problem and eliminating the parallel port dependency. That’s what GCODE was all about: it’s a motion control language that enables a PC/laptop to send aynchronous commands to firmware running on a micro-controller. The micro-controller regenerates the isochronous timing required to control stepper motors. Remember that Marlin is based on GRBL (read the credits at the top) and DIY CNC machines predate 3D printers by a decade or so! My setup described above is basically “Path 3”. It will only cost $35 to give it a try. If it isn’t what you want, or if you later “upgrade” to the MPCNC “standard approach” that should be no big deal. In fact, flipping back and forth is no big deal either: just put reliable connectors on your wiring. BTW, the Protoneer is just one of several “GRBL compatible” CNC shields that “should” work just the same.