RepRap-Rays: turning a RepRap into a Laser Cutter

January 6, 2012

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!

Filament Fusion

November 10, 2011

Over the summer Richrap came up with a nice way to do multicoloured printing by joining filament. At the time I figured that automating it would be pretty cool so I did a few quick welding experiments but between one thing and another I haven’t looked at it since. Anyway I decided to take some photos/video and pop it up here in case anyone finds it useful. The two main approaches I tried were with lasers and resistors.

Filament Fuser – resistance welding:

The first thing to do is to heat the PLA in order to weld it. For this I soldered a bunch of SMD resistors in parallel onto some stripboard (18 x 120 Ohms giving 6.6 Ohms and almost 22W @ 12 V). I covered the lot with kapton tape and then taped some thin aluminium strip on to conduct the heat out of the resistors. This was then in contact with an aluminium tube which had a PTFE liner (same as Adrian’s recent RepRap hotend designs) within which the PLA sections to be joined meet. This is the heater and I connected it to my RAMPS setup and set the temperature to 160C for welding as per Richrap’s blog.

The second part of the problem is to cool down the weld so as to move the filament thru …. and continue printing if this was in some sort of automatic setup. For this I attached a heatsink to another Al strip (both strips shaped a little concave to give greater contact with Al tube). Since I want the heatsink in contact most of the time and the heater only during heating I attached both to a relay which is wired in parallel with the heater. This means that the heatsink is not in contact during heating. (Note I also tried nichrome wire wrapped around the Al tube but it took much longer to cool because the wire was always in contact with the Al and so you are waiting for filament, Al and the wire to cool… also the contact with the heatsink was poor due to the wire.)

It works pretty well and is repeatable with decent quality but at the moment takes over a minute to get to 160 C and then back down to 60C (glass transition for PLA…. maybe I could move things at a higher temp?). Also, I have to push the filaments together a little by hand – a feeder system could do that easily and more reliably! Photos below. Note: the ‘housing’ is a bit of a messy hack job and leaves lots of room for improvement!

SMD heater, heatsink and relay

SMD heater on left with heatsink on right. You can see the aluminium strips with the concave shapes (ignore aluminium shims behind stripboard!!!)

Al tube on PTFE liner. Theres a small section of larger PTFE under the Al to stop it slipping down and separate it from more Al which is inserted into the wood. Another idea is to have a longer Al piece but drill holes in it to prevent heat conducting away from the melt zone, both work.

The crude spring loading is for returning the solenoid/heatsink to the cooling position.

Theres room for improvement but results aren’t bad. The join is a little ‘fatter’ than the rest of the filament because the PTFE tube has a 2 mm id and the filament is normally 1.75 mm od. So as I push the filaments together to apply pressure to aid the weld…. the join expands to fill the PTFE tube id. Since the liner is PTFE it usually slips out easily. Usually the 1.75 mm hotends have 2 mm id going down to the hotend (to allow variation on filament od I guess) so it should go through the extruder ok… but I’ve not tested that yet.  One thing to note is that the PTFE can expand but if its snugly fitting in the Al tube that probably shouldn’t happen.

Filament Fuser – laser joining:

I figured this would be a little quicker as you are directly heating the filament so theres no extra thermal mass to heat/cool like SMDs and Aluminium. I’m using 3x 200 mW laser diodes at 808 nm running at ~ 100 mW outputs to (over)ensure I avoid pushing them beyond 200 mW and frying them. I used this circuit from (recommended by the folks at but with a high value resistor instead of the zener.

I borrowed the PTFE liner idea from the resistance version above as this keeps the filaments aligned! Results have varied greatly and this is mostly due to the fact that not having laser goggles for 808 nm I put everything into a box and can’t really get in there to push the filaments together, though more power would likely help too. So its a bit random and as such I haven’t been able to get reliable weld time info. I’ve tried spring loading the filaments but not very neatly. Maybe I’ll have another look at this in the coming weeks….


December 28, 2010

During the past few months I’ve been getting a laser up and running. It has an f-theta scanning lens which has a field of view of about 100 mm diameter so I have to manually position things that are bigger. I’ve been designing an X-Y system to allow me to process bigger parts and I’m currently building this out of plywood (using the laser to cut out the pieces). Anyway, I’ve been following the RepRap movement (open source 3D printers) for quite a few months now and I’d love to build one… but I’m short of cash to buy a full kit… so I’m thinking of using the X-Y stages as the basis for a repstrap which I can use to print a prusa mendel ( before moving the stages to their new home under the laser!