From RepRap
Revision as of 17:00, 28 October 2009 by Casainho (talk | contribs) (Updated the information - I tested what is written now. I just can go further because I don't have yet my plastic extruder.)
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.

Emcrepstrap.jpg EMCRepStrap.jpg

There are at least 2 users that already made an EMCRepStrap and documented and shared their code - brendanjerwin made his EMCRepStrap at 2008 and sam0737 at 2009.

How it works

When we have already a CNC machine and want to be able to use it as a 3D printer like RepRap, we just need to add the plastic extruder and his controller to the CNC. The 3 motor axes of the CNC will be controlled as normal by EMC2 and the same normal hardware controllers.

When we convert the STL files to GCODE files using skeinforge, skeinforge will produces some special GCODE like M100, M101 to control the extruder, along with the normal G1 movement code.

EMC2 allows you to specify any program/script to process the M100+ custom M-code. These apps are traditionally M-Apps. Each one of this M-App will talk with the plastic extruder controller board and make it working as expected.

Config EMC for working with plastic extruder

NOTE: This guide follows the work of sam0737 user.


DISPLAY = axis


PYVCP = /absolute/path/to/repstrap-extruder.pyvcp

  • In your EMC ini, there should be a POSTGUI_HALFILE in the [HAL] section. If not, create one :



HALUI = halui

POSTGUI_HALFILE = custom_postgui.hal

  • In the customZpostgui.hal, include the repstrap-excluder.hal file, like this :

source /absolute/path/to/repstrap-extruder.hal

  • Make a change in the input parameter of "steps_per_mm_cube" in that hal file.

The value is number of encoder steps representing 1mm cube

  • Modify RepRapSerialComm.py, make sure the path to your serial device is correct.
  • Soft link the mcode-inject.py to M101, M102, M103, say in the shell, you do:

ln -s mcode-inject.py M101

ln -s mcode-inject.py M102


ln -s mcode-inject.py M108

  • Make sure all of them are marked as executable, say in the shell, you do:

chmod a+x *.py*

  • Hook up your cable and such.
  • Fire up the EMC amd you should see the image: EMCRepStrap.jpg

Hardware setup

  • Hook up the Extruder Controller board to the COM port (through a Arduino compatible USB->TTL programer cable)
  • Export the object as STL file from the 3D authoring software
  • Use skeinforge to convert the STL to GCODE
  • Print the GCODE with EMC2

Cheap CNC machines

It's important to find cheap CNC machines, Ebay is a good source for cheap CNC machines.

3 axis CNC - $225

There is one CNC on Ebay for $250. Here is the page from the seller with some pictures and information about his CNC($225).