Your mother warned you: if you play with your laser, you will go blind! Please google laser safety before even considering using one. They cause permanent damage beyond just blindness. The high energy can react with some materials to create toxic compounds like hydrofluoric acid (see Wikipedia for deadly consequences). Don’t do it!
If you are still reading, this is an example solution for use with Prusa Original i3 MK3. It may not work for other printers. But I will share my learning, as there is a crap ton of misinformation on the web. First, the pwm is driven through a mosfet, not straight off the micro controller. This leads to a logical inversion and drive incompatibility. The TTL input stage on the laser driver I received (and I suspect all others) is a resistor tree feeding an op-amp off 12V, which leads to more problems. And the schematics for my printer controller has errors. And the other header choice uses timer1 which has been repurposed by Marlin so can no longer do pwm. And on and on it went.
I wanted a solution that is mostly plug-n-play and allows easy switching between 3d printing and laser engraving/cutting and is completely reversible if desired. Here is what I came up with. When you are done, all parts stay in place except the laser and driver which are easy to install / remove for simple conversion. Feel free to mod away, but please share so we all benefit. There are a lot of words here, but it is surprisingly simple. Just need to take time to understand things and do it correctly the first time. If you don’t understand these instructions, you really should not attempt this.
In addition to the laser diode/heatsink and laser driver (and SAFETY GOGGLES!), you will also need:
- DC-DC buck to convert from 24V (MK3 PSU) to 12V (laser driver)
- An optocoupler to handle translation from fan pwm to pseudo-TTL on the laser driver
- Rocker switch for power kill. I used Philmore 16605 SPST with press fit.
- Oh, and a pull-up resistor, and wires and connectors.
- I also cut out a new magnetic bed cover from sheet steel.
But these are all very inexpensive. You will have to do some light soldering.
PDF shows simple hook up. Hopefully that is clear. IMPORTANT: Marlin fires up fan on reboot, which means laser would fire for a few seconds. You really need to use a power switch as shown, so you can leave disabled right up until you hit print. Plus it is there for emergency kill if something goes wrong. You will be wearing your safety goggles though, right?
So what are all these parts? There are two sets. One is a handy circuit box to hold the buck and coupler and can mount to the Z frame (and really to have a sturdy and easily accessible place to have the kill switch). The others are the mount to hold the laser and driver on the extruder, along with safety shield of sorts. See photos. They can all be printed in PLA without supports at 0.2mm layer.
The circuit box is tight quarters, by design. The power rocker snap fits into hole on side. Note that this size clears the X motor while printing, so measure that if you go with a different model. The buck goes down on the left with the optocoupler above it on the right. You need to tuck wires around and push through bottom hole. Lid has pins to hold boards in place. Two screw holes are for 2 M3x10 to mount to Z frame above Rambo box. You can screw it down first, before assembly, but I managed to do it after the fact. I recommend flat blade fork terminals so slide under the existing flanged terminals from the psu. Use the middle bed power input as shown.
You will be sending 4 new wires from the controller to the extruder. I added these into my umbilical loom with pin connectors on each end. The outputs from the circuit box (+12V and TTL control) will connect to the wires in the umbilical. Double check your wiring using a multi-meter. Without laser attached, check the you get 12v and 5v. You will probably need to adjust the buck since it supports a wide range of conversion. Turn the tiny screw pot until you get 12V. Use and cheap LED to check the fan pwm input to the optocoupler and the output both respond to M106 S0 and S255 (need USB connected to Pronterface or similar).
Inside the Rambo, you get power off the spare header (which can stay connected even in printing mode) and connect to input to circuit box. For the fan PWM, you have two choices. You can disconnect the fan every time you convert and connect to pin 1 (which may get tiring if you do it a lot). Or you can create a short extender, plug the fan into that and tap off pin 1 wire. This way you will not ever have to open the Rambo box again. The specific locking connectors are hard to find, but Ultimachine sells them.
The mount comes in several parts to facilitate printing. You will need a new extruder cover to get the mounting holes for the bracket. Bonus is you get support for garter screw which is probably my best idea ever (but need my cooling with view solution). Also note you could have trouble removing old e cover, but not too bad; see notes in my cooling project. Key fits into bracket to form one piece and screws on side of new extruder cover. This stays permanently and does not interfere with printing. The laser screws to the mount using 3 M3x8 using spacers. The hanger clips on the the top of the mount and mates to the base for the laser driver board. The shield tube press-fits on the focus ring of the laser. This doubles has a grip for tuning the laser focus without burning yourself.
Hey! Your done! Let’s get to burning stuff.
When you attach the laser to the extruder, watch the pinda cable closely as it needs to tuck between the mount and x carriage. The top tab slips over filament entry tube. Connect the laser driver to the other end of the umbilical wires. Make sure you get this correct, or even better, use a single 4 pin keyed solution. I used two 3 pin connectors I had lying around which you can see in the photo.
Make sure kill switch is off before you power on printer!
[This could really use a video, wink, wink, nudge, nudge] You need to do a focus calibration the first time. Make sure you have your cheap sheet metal bed cover in place and put on your safety goggles.. Turn on printer and go into settings and turn off “fan detect”. Since the fan isn’t running the printer would abort your print. Auto home and watch carefully that nothing catches. Hit reset before shield hits bed This will give you a good baseline Z. It doesn’t have to be perfect. Raise the Z a little to slip in a target, like piece or corrugated cardboard. Leave a small gap between shield and target. Turn on laser power switch on circuit box. In settings, turn on fan to a low value, like 20. You should see a spot of light. You want this to be as small as possible. Being very careful, turn the shield tube until you get a tiny spot. Mark tube with sharpie to you know for future. Turn off kill switch and return fan to zero.
Use your favorite image-to-gcode workflow, typically Inkscape with plug-ins (google is your friend here, M106 for on and M107 for off), load up your SD card. When you go to print, firmware may complain the gcode is incomplete, but will give option to continue. At this point I turn on laser power and hit yes.
You will have to experiment a lot. Different speeds and strengths depending on your laser power and the target material. Good luck.
Things to note:
Laser engraving / cutting is done at one height, so there is no Z movement. This is assumed in the design such that you cannot run Calibrate Z with laser attached as there is no clearance to top frame.
Also, each laser is different and you will find an optimal height for best focus. If you want to adjust the length of the shield tube, you can scale in slic3r in the Z direction.
You lose some range on X and a bit on Y, so keep your working dimensions in Inkscape to 200x200mm.