sam0737 wrote on RepRap forum (some slightly modifications were made):
I use EMC2, it runs on Linux so it's free. I run it on an Ubuntu on my old Thinkpad T40 laptop (6 years old Centrino laptop). I don't think the Mach3 could do the job, as EMC2 offers some very crucial point to extend the GCode to make it work which Mach3 lacks of AFAIK. I will explain it below.
My hardware setup is like this:
- A 3-axis robot driven by 3 steppers. The steppers are powered by a driver box interface with the parallel port. The limit/homing, E-Stop switches are also connected to the parallel ports.
- I bought and assembled an Extruder Controller v2.0 board, hooked up to the COM port (in fact, through a Arduino compatible USB->TTL programer cable)
- The extruder DC motor is driven by the same board. I have an magnetic encoder for position feedback. It's close loop controlled by the firmware on the board (Another way to go is to use EMC2 to close that loop) Depends on your motor, you could probably drive it with the Extruder controller's motor driver. However, my motor produces far too much noises which could even reset the MCU, so i bought another optical isolated DC motor driver board.
- Last but perhaps the most important point: I don't have the Sanguino motherboard in my setup. IMHO, it's not needed as the most important roles - namly digesting GCODE and controlling the motors are taken care by the PC (Mach3 / EMC2). So one less thing to care about.
So now look at the software...I print stuff by doing:
- Export the object as STL file from the 3D authoring software. I use SolidWork.
- Use skeinforge to convert the STL to GCODE
- Print the GCODE with EMC2
The skeinforge will produces some special GCODE like M100, M101 to control the extruder, along with the normal G1 movement code...see here (It's slightly out of date)
So here is why you can't use Mach3. EMC2 allows you to specify any program /script to process the M100+ custom M-code. These apps are traditionally M-Apps. BrendanErwin did that before, but I think his hardware setup assumes using Sanguino motherboard. So I have written another set for my need, as well as some UI integration with EMC2 UI. I have published them here.
On the other hand, the extruder controller firmware were designed to talk with Sanguino. And as of now the firmware is incompleted and cannot handle magnetic encoder feedback. So again I have rewritten it to fit my needs (and also for my hardware...), published here.
Last but not least, the screenshot of the EMC2 UI Axis Screenshot.