RepRap-Rays: turning a RepRap into a Laser Cutter

For a long time I’ve been meaning to couple the laser beam to the reprap. Recently the PC driving the laser died giving a perfect excuse to turn my Prusa Mendel into a laser printer…ahem cutter!


First up is to divert the beam towards the reprap using a laser mirror and through a hole cut into the laser enclosure. Guiding the beam around the reprap is a little trickier. I opted to rotate the printer 45 degrees wrt the beam and put a mirror (M1) under and to the left of the x-end-idler to direct the beam vertically upwards to the x-axis. Then another mirror (M2) steers the beam to the left along the x-axis towards the x-axis-carriage where I’ve placed the last mirror (M3) which steers the beam vertically down through the focusing lens and onto the workpiece. Unfortunately this setup did not leave enough z-axis travel to get the beam well focused onto the print bed even with the extruder removed from the x-carriage.

Failed setup below, laser beam comes in from the lower right hand side:

A change was required so I removed the hotend and placed the M3/lens combination on top of the carriage. I then broke and rejoined the M2 carriage to bring the mirror up above the x-axis. I also cut a hole through the centre of this to allow the beam reach mirror M2. One or two other judiciously placed breaks and theres just about enough room for the ~180 mm focal length lens to focus sharply. Modified setup:


The laser can be set to gate on with a 5 V TTL signal and pulse at its own internal rate. This means that M106/7 (fan on/off) can be used to gate the laser. Since the output from the RAMPS board driving the fan is 12 V I used a 10k pot as a voltage divider to feed 5 V to the laser.


I had a quick look at SFACT for generating g-code but I didn’t have any success. I found that bdring previously had some of the same electronics and software issues. He modified a python script called to generate gcode for a reprap-controlled laser so I used that. It struggles with anything beyond simple shapes but is sufficient to get started. I use Qcad for drawing dxf or openSCAD can be used to dump a section of an stl to dxf.

Video Action

Cutting through 4 mm plywood:

Apologies for having to turn your head 90 degrees, I’ll do a better video in a day or two, darn smartphone camera! The faint spot visible before things kick off is a low power CW (not pulsed) guide beam. The shiny upturned biscuit tin lid is there to stop the beam from punching through my dibond print bed! Black anodised aluminium would be better for eye safety but there was nothing suitable to hand. Theres a lot of fluorescence visible wherever the UV beam leaks through/off the  mirrors but I was wearing suitably rated laser goggles of course!


The setup cuts well enough but there is backlash on the x-axis due to slightly loose fitting printable lm8uu bushings which allows the carriage to lift ever so slightly at direction changes (like a see-saw). It has the same effect as backlash even though the belts are nice and taut. I need to print new ones.

Below is a photo of a square cut, a square mark/engraving and a circular mark/engraving on 4 mm plywood:

The effect of backlash can be seen but the cut is clean.

Below is are two engraved squares and an almost-fully-through cut into a scrap blue PLA piece (broken off M3/lens holder earlier!):

Next up

New bushings should improve the geometry but the biggest obstacle for me is generating g-code. works with dxf but only generates useful code for the simplest of shapes. I’ll have another look at SFACT and see if it can’t be used somehow. Triggering the laser off the fan is not ideal but there are plenty of available Arduino pins with RAMPS to tinker with. One thing to think about is how to shut off the laser if the pause button is pressed or if something goes wrong etc…

I’m planning to get a laser diode, either infrared @ 808/975 nm or Blue @ 405/445 nm or both, probably fibre-coupled. This would do away with the need for all those mirrors taking up space and reducing the ‘print volume’ available. The laser could be neatly off to the side with all the electronics and the optical fibre would connect it to a small lens assembly (which I plan raytracing) on the x-carriage,  essentially another ‘tool’. I’ve been looking at suitable driver circuits (laser diodes need constant current and are sensitive to spikes) but I’ll post more on that when I’ve settled on a decent circuit / laser diode / optics. If it all works maybe I should sell a few RepRap laser kits to cover my costs!


7 Responses to RepRap-Rays: turning a RepRap into a Laser Cutter

  1. NumberSix says:

    That’s a great experiment. Combining the two processes into one frame offers excellent expansion of functionality to a hobby set-up, removing the need for a whole other rig.
    Moving away from a mirror dependent design should help improve precision also. I expect the mirrors just amplify the slightest vibration or unwanted movement.

  2. amk says:

    Yeah, I like the idea of adding other tools/processes where possible. Depending on the laser you attach you could do cutting, engraving, sintering or photopolymerisation – I’m hoping to do some experiments on the latter shortly. Vibrations are unwelcome when doing this stuff with lasers so I’d agree that mechanically coupling the laser directly would be a decent improvement over the above mirror/external-laser setup!

  3. Sublime says:

    I am surprised no one has mentioned this yet but there is a plugin for inkscape that generates gcode for milling and laser cutting.

    • amk says:

      Hi Sublime,

      Thanks for that. I actually wrote a small python script to modify SFACT output to drive a laser instead of an extruder. I’ve dug it out and put it on github

      All the best,


  4. Reonarudo says:

    I made some similar experiment about a year ago you can check it here:

    • amk says:

      Hi Reonarudo,

      I remember seeing that at the time, pretty cool stuff! Are you planning any more experiments with your laser?


  5. amk says:

    Neil from the RepRap core team mentioned this blog post at:

    I tried to comment but couldn’t beat the captcha system… ahem… oops 😉
    Anyway, Thanks Neil for reading this and mentioning it! I’ve been distracted by non-RepRap stuff recently but I did manage to avoid the burn unit!

    Regarding the shiny plate – it was all there was to hand to protect the dibond bed from being laser’d to shreds… anodised aluminium is on the shopping list…


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: