From RepRap
Revision as of 18:54, 11 November 2009 by Casainho (talk | contribs)
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.png

There are at least 2 users that already made an EMCRepStrap and documented and shared their code - Sam at 2009 (Sam blog message) (Sam shared files) and Brendan Jerwin at 2008.

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.png

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).

Possible to use parallel port outputs?

Is it possible to get the outputs via the parallel port instead of using an adapter to allow setup from within EMC?

A: What adapter? the USB<->serial?