From RepRap
Revision as of 07:26, 23 October 2009 by Casainho (talk | contribs) (Added information taken from RepRap forum.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

If you have a CNC machine which you control using EMC2 on GNU/Linux, you can just mount the plastic extruder and start printing using EMC2. See here a video that shows EMC2 printing.


There are at least 2 users that documented and share their code. brendanjerwin made his EMCRepStrap at 2008 and sam0737 at 2009 (follow the links to get the authors instructions and code).

sam0737 wrote on RepRap forum (some slightly modifications were made):

Pictures of my cnc and of my RepStrap.

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.