How to turn (almost) any 3D printer into a laser engraver/cutter

A while ago I bought a cheap Chinese 3D printer, a Tevo Tarantula for about USD $200. It was great fun to put the many pieces together into a relatively complex working machine. Putting it together by myself helped me a lot to understand where problems in the print could come from. And it also reduced the fear to constantly change parts to improve quality and reliability of the prints. Now the time felt right to take another step by adding a new tool to the 3D printer mechanics: a 2.5W laser module. 

With this mod you won’t be able to cut thick plywood but thin plywood, balsa wood, EVA foam, card board and paper should be no problem. And you can engrave and etch many materials for instance leather. With this mod you can switch within seconds from 3D printer mode to laser cutter/engraver mode. So let’s get started!

The Laser Module

After watching many youtube videos and reading blog posts about the topic I came to the conclusion that a 2.5W module would be a good place to start. The beauty about the module I chose is that it comes with just one barrel jack power connector. No additional regulator board needed. You just connect it to the part fan pins of your printer driver board.

Also the laser module has a focus ring which is great to adjust the focal length to the currently set Z height of the module. To cool the laser module during continued operation there is a tiny fan on it’s top.

Originally my Tevo Tarantula configuration didn’t have a part cooling fan but I added it a while back to improve printing quality. The voltage on fan pins can be regulated by software. Sometimes you want the fan to cool the part as much as possible and sometimes a light breeze is enough. This also is great for our little laser module: we can adjust the intensity of the laser from the driver software! It’s not just on or off but 255 levels in between.

2.5W Laser Module with female barrel jack

When I bought the module it was available for around USD $60 on Banggood, but I think it was on sale at the time. Here is the shopping link.

Don’t forget to order safety goggles to protect your eyes from the intense laser light:


You can buy them on Banggood for just a couple of dollars: shopping link


The Power Connections

I’m not using the part fan while I’m using the laser cutter and vice versa. But they both use the same pins on the driver board. So I put just one two wire connection from the fan pins of the MKS Gen board to the hot end/ laser carriage with a male barrel jack at the end. I then soldered a female barrel jack to the part fan cable. Now to switch between the laser and the part fan I can just switch the barrel jacks which takes less than a few seconds.

The cable coming from the driver board (left), the fan connector (middle) and the laser connector (right)

The Laser Mount

There are many clever designs out there to easily replace one tool head with another. There you usually remove the hot end to add another tool. The sophisticated designs use magnets to do this quickly. But I didn’t really want to “endanger” the quality of my carefully adjusted print head. So I decided to mount the laser module and other potential future tool heads to the back of the X carriage. The advantage of this design is that I don’t have to touch the print head at all to use the laser module. The disadvantage is that I theoretically loose a couple of centimeters of build volume in Y direction. But this can be compensated by a longer print bed.

Another reason to design the mount myself was to use Fusion 360. I recently followed a great tutorial (watch it here) to design snap fit boxes for 3D printing in Fusion 360. This tutorial closed a few gaps in my knowledge and I was finally capable of design something myself.

I started with a schema I had of the laser module and designed the part which would be attached to the module. Then I designed the part which would be attached to the X carriage

You can get the STL files on Thingiverse:


There’s one thing I had to change in the firmware. Before the change my Tarantula would shortcut all round shapes. By looking at the terminal I  saw that the Marlin firmware complaint that the G2 and G3 commands are not supported. To do so I had to uncommend the line

#define ARC_SUPPORT 

in Configuration_Adv.h. After uploading the modded firmware the laser cutter started to work fine.


Controlling the Beast

I’m controlling my 3D printer from OctoPrint running on a Raspberry Pi. This works also very well with the laser cutter/ engraver. You just need a program creating GCode for you, then you load the GCode into OctoPrint and off you go. You can also control the laser manually by entering

M106 S30

The first command turns the laser on with an intensity of 30 (with a total of 255). I usually use this command to adjust the focus and the starting point on the object to be cut. The second command turns the laser off.

Of course running the laser manually would not be so much fun. To turn a vector graphic into GCode I use a InkScape plugin (Instructions). This plugin creates movements following the outline of your vector shapes. This is great for cutting outlines or texts or a cardboard glider:

Laser cut card board glider

If you want to engrave a photo then you need another tool, which “sets” dot on the object according to the brightness of the source image. In that case you can use a not very pretty but useful web tool:

Another nice thing you can do with a laser cutter is to create puzzles. There is a little online tool to create the vector data for puzzles: You then have to import the SVG vector file into InkScape and convert it into GCode. This is how it looks like after cutting thin card board:


You can also send messages to your loved ones:

Toast for Mami


I hope this very brief write up gave you the important first hints and links to get started. The first things I cut or engraved worked out really well. I started making stamps but this deserves it’s own blog post…

Posted by Daniel Eichhorn

Daniel Eichhorn is a software engineer and an enthusiastic maker. He loves working on projects related to the Internet of Things, electronics, and embedded software. He owns two 3D printers: a Creality Ender 3 V2 and an Elegoo Mars 3. In 2018, he co-founded ThingPulse along with Marcel Stör. Together, they develop IoT hardware and distribute it to various locations around the world.


  1. I found this post is very informative and personally you have done the really great experiment with loved it. Thank you for sharing this information keep it up.

  2. Bravo! I have the same problem with G2 and G3 commands but I don’t see where is #define ARC_SUPPORT in Configuration_adv.h. I’m using Tevo Tarantula Marlin 1.1 (easy configuration) firmware. Can you help me?
    Many thanks

Leave a Reply