Arduino Laser Engraver Wood Design!




Introduction: Arduino Laser Engraver Wood Design!

Hi everybody, my name is Michiel and I am going to show you how to make an awesome looking laser engraver!

A couple of months ago, there was a CNC challenge here at instructables, while checking out the entries of that contest, I saw some pretty cool engraving machines and I thought: "Why shouldn't I make my own?". And so I did, but I didn't want to make someone else's project, I wanted to make my own. And so my story began... :)

This laser engraver uses a 1.8W 445nm laser module, of course, this is nothing compared to the industrial laser cutters who use lasers of (a lot) more than 50W. But this laser will do well for us. It can cut through paper and cardboard and it can engrave all kinds of wood. I haven't tested other materials yet, but I'm sure it can engrave many other materials. l will let you know! It has a large engraving surface of about 500x380mm.

Who can make this laser engraver? Everybody, if you are an engineer, a lawyer, a teacher or a student like me, you can build this thing! All you have to do is follow this instructable.

It took me about three months to design and build this engraving machine, including waiting for about a month for parts. I said three months, but, I'm only 16 years old, so I could only work in weekends.

++ As you may already know, this 'machine' uses a 1.8W laser with a wavelength of 445nm, the radiation of this laser is very dangerous for your eyes, even a reflection of it! So I strongly advise you to use safety goggles with the wavelength of the laser you use! ++

Step 1: Bill of Materials

You can't make a laser engraver without the parts, so I made a BOM-list with almost everything you need to make it. Almost everything in the BOM is bought from because it's cheap and it has free shipping for most items. Other parts like the threated rods and the wooden sheets were purchased at my local DIY company. I ordered the laser and the laser driver on ebay.

UPDATE: I've uploaded the BOM in two formats: one .pdf and one .xlsx since not everybody could open the BOM.

I tried to find the cheapest products for all the parts (shipping not included).

Step 2: Design

Well, It took me a lot of time before I came to this design, first I made a few others, but this one was truly the nicest design i've made (if i may :)). I have drawn all of the parts you need to make on my computer and I uploaded them somewhere in this step (go find them!). If there are missing a few dimensions on some of the drawings, it's because I will tell you later in this instructable or because it really doesn't matter :).
The whole machine is made of MDF sheets with a thickness of 18mm and 12mm.

I made this design also because it would be very easy to attach a Z-axis and a dremel rorary tool so you can convert it to a cnc router.

UPDATE: Do you want to make the parts with a cnc router? No problem! I've uploaded STL files of all the parts so you can easily make them with a laser cutter or cnc router.

**Sorry for the names of al the parts, I thought they would be better.

Of course, I could have made an other simpler design... But hey! Where's the fun of that!

This step in one sentence: Print the drawings! :)

Step 3: Make the Wooden Parts

When you have printed the drawings, draw them on your wooden sheets (the right ones!) and saw them out with a jigsaw. If you don't have a jigsaw, go ask one to your brother, neighbour, cousin, colleague, santa, or go fetch one in your local store. When all the parts are sawed in the right form, it's time to drill the holes.

- The electronics case front and top: These parts don't have a flat side, so I drawed the angle with a pencil on the other sides and used a dremel rotary tool with that sandy bandy thing on it, I don't really know the name of it. If you don't have a dremel yourself, please don't bother your friends again and buy your own dremel! Just kidding, a rotary tool is a very handy tool and you should really buy one.

- The X- and Y-Axis nut supports: These parts have a hexagonal hole in it so they can hold a nut. To make that hexagonal hole, you need to drill a hole with a diameter of 11 mm through the part. Next, put the threated rod in the hole and screw the nuts on both sides, take a pencil and draw the shape of the nut on the part. Remove the nut and the threated rod. Now, take again your dremel and with a little cutter thing on it (see images), cut out that hexagonal hole with a depth of 6 mm and put a nut in it. Have a look at the images, they show wat you need to do.

Step 4: Assemble Your Laser Engraver!

Now, you have all the parts you need to assemble it. The first thing I did here was mounting the door in the electronics case left side with a lock and a hinge (that's the easy part, so I did that first :p ). To assemble the electronics case I used a lot of those L-formed iron pieces with holes in it, I don't know what they're called in English but you'll know what I'm talking about when you see the pictures. If someone knows how to call them, please leave it in a comment, for now, I will just call them 'those things'.

UPDATE: Appearently these L-formed iron pieces with holes in it are called L-brackets. ;)

First, take again the left side of the electronics case and mount the front and the back of the electronics case on it with some of those things I talked about. I didn't use screws or nails to mount the top and the control panel, I just mounted some of those things again and laid the top and the control panel on those things, because when you want to put al the electronics in it, you won't have problems. Don't forget to mount some of those things to the right side of the electronics case, and mount it to the rest of the case.

Put the electronics case away for a second and take the base plate and the X-Axis shaft support pieces and mount them like you see I did in the pictures, make sure the X-Axis shaft + motor support is on the right side of the engraver. Now, you can mount the electronics case the same way you see in the pictures.

Take the two 700mm shafts, slide two linear bearing things on each shaft, put a shaft support on each end of each shaft and mount them to the engraver.

Now you should become something that looks like the 7th picture. If not? Go back a few steps and find out what you did wrong. If yes: keep up the good work!

Put this half laser engraver away for a minute and take the X-Axis moving part and the Y-Axis shaft supports and mount the shaft supports to the X-Axis moving part with some nuts and bolts and attach the two X-Axis nut supports to it. Now, take the two 500mm shafts, slide one linear bearing thing on each shaft, put a shaft support on each end of each shaft and mount them to the engraver.

Mount the Y-Axis nut support to the Y-Axis moving part with nuts and bolts and attach it to the linear bearings with some bolts and attach the threated rods and the stepper motor.

Mount this whole thing to the other half of the engraver and attach the threated rods and the stepper motor.

Now you should become something that looks like the 11th picture.

I've also mounted a wooden piece in the electronics case to mount the stepper drivers.

I've attached the electronics case top, control panel and working sheet after I had put in the electronics, or you can just lay them on your engraver to admire your work and the magnificent design. :)

Step 5: Put in the Electronics

The only thing that's missing now are the electronics, the wires may look like a mess, but if you take your time and lay one wire at a time, it's a quick and easy step.

First, attach all the boards, power supply, relay, laser and control buttons (start, pause and stop) like in the fourth, the fifth and the sixth picture. Also, I used two fans I got from an old computer, these are necessary for the cooling of the laser and the stepper motor drivers.

Secondly, set the stepper drivers like I did in the third picture, these switches let the driver know what the current of your motors is and if you use microsteps. Wtih microsteps, the driver divides every step in multiple steps (the motor needs for example to turn four microsteps to have the effect of one normal step). I decided not to use the microsteps, because one normal step is for my engraver 0.0075mm.

Now, just print the first image and put one wire at a time and note on the printed image which wire you've done and which not. This picture uses other stepper motor drivers because the program I made it with doesn't support the driver I use.

Laser Driver: I didn't really knew what driver I needed to use for the laser, so I looked a little bit around here on instructables and I saw that FamousMods, an other author here on instructables, just used a LED driver from ebay in his instructable.

Stepper motor driver: The stepper motor driver says some weird things like EN-, EN+, CW-, CW+, CLK- and CLK+. You can combine EN-, CW- and CLK- and attach them with a wire to a GND-pin on your arduino. EN+ can go to pin 8. CW+ stans for direction and CLK+ stands for step pulse.

Limit switches: These switches make sure the engraver stops working when one of the axes pushes one of them, this is to prevent damage to the engraver in case something goes wrong. These switches are also used to find the home position of the engraver.

Step 6: Configure Grbl

The software is the only thing left now, so let's begin!

Go to this website and download the latest version of grbl (grbl-master), this is the software we use for our laser engraver.
You also need to download the latest version of arduino IDE.

When you've downloaded grbl, search for the config.h file in the folder named 'grbl' and replace that file with the file I uploaded here somewhere in this step.

When you've done this, open the arduino IDE and go to 'sketch' -> 'import library' -> 'add library' and select the folder named grbl. Select again 'import library' and click on 'grbl'. Now you should become something like the first picture.

Now press, while in the arduino IDE, ctrl+shift+M. This is the serial-monitor, set the baud rate (right bottom of the window) to 115200. You should see something like the second image now.

Press '$$', hit enter and you will see some settings, change them to this:

$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=0 (dir port invert mask:00000000)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.010 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=1 (soft limits, bool)
$21=0 (hard limits, bool)
$22=1 (homing cycle, bool)
$23=3 (homing dir invert mask:00000011)
$24=50.000 (homing feed, mm/min)
$25=500.000 (homing seek, mm/min)
$26=244 (homing debounce, msec)
$27=3.000 (homing pull-off, mm)
$100=133.333 (x, step/mm)
$101=133.333 (y, step/mm)
$102=250.000 (z, step/mm)
$110=500.000 (x max rate, mm/min)
$111=500.000 (y max rate, mm/min)
$112=500.000 (z max rate, mm/min)
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)
$130=500.000 (x max travel, mm)
$131=400.000 (y max travel, mm)
$132=200.000 (z max travel, mm)

And upload it to your arduino.


Step 7: Create and Send Gcodes

To let our laser engraver engrave something, we need to send it some codes, these codes are called gcodes. To create these codes, we will use a program called Inkscape and an extension for it.

To download inkscape, just go to this page and download the stable version 0.48.5 (!), this is very important, because the extension doesn't work in later versions.

Now, download the files I uploaded in this step and place them in the folder C:\Program Files (x86)\Inkscape\share\extensions. Now you can make some gcodes.

*NOTE: Before you make a file or start to engrave, note that the engraver will not colour the picture, you will only see the lines.

1. To create a gcode, first find a line drawing in google images and copy it in inkscape.

2. Select the image and go to Path -> Trace Bitmap and click on OK. Now the image looks a lot sharper (see picture 3). Delete the old image.

3. Choose how large it needs to be.

4. Go to the tab Extensions -> Laser engraver -> Laser. Set the speed, the name and the location of your file and click on OK.

Now all you need to do is send the file to your engraver. To do that , you need to download GRBL controller 3.0

UPDATE: I've seen that GRBL controller 3.0 gives an error when you try to download it, so I have found a good alternative for it named gcodesender.

Before you can send the file to your engraver, you need to let the engraver find his zero position. Click on unlock grbl and send $h to the engraver, after that, click on zero position.

Before you can engrave now, you need to focus the laser, to do that, just click on 'spindle on' and take a little screwdriver and turn the left POT so the laser only has 0.1 amps. Now you can turn the lens until the laser is focussed in one little point. Turn the POT back to 1 - 1.6 amps. Don't give it more than two amps or you will damage the laser!! *experience :)

Now, you can select the file and start to engrave.

If you notice the engraved picture is upside down, just switch the wires of one coil of of the stepper motors.

Step 8: Go Print Some Things!!

Congratulations! You've now made your own laser engraver! The only thing left is to engrave some things, here you have got some examples I've made with my engraver.

If you made this project, don't forget to send me a picture of it, I'd love to see yours
and if you have any questions, you can always send me a mail or leave a comment.

Thanks for reading my instructable!! ;)

Full Spectrum Laser Contest 2016

Second Prize in the
Full Spectrum Laser Contest 2016

Arduino All The Things! Contest

First Prize in the
Arduino All The Things! Contest

Plywood Contest

Participated in the
Plywood Contest

7 People Made This Project!


  • Baking Contest

    Baking Contest
  • Block Code Contest

    Block Code Contest
  • Game Design: Student Design Challenge

    Game Design: Student Design Challenge



3 months ago



7 months ago on Step 8

Very pretty and cool design!
Only thing I would've changed is the laser driver. A relay is a bad choice here cz it's just too slow and can't do pwm switching. Just use a mosfet driver here to make everything faster and be able to change the laser power in lightburn/etc.


1 year ago on Step 5

Love the design and look of your engraver. I'm trying to adapt it to suit my needs and have a few quick questions:
1. The push buttons for the limit switches - are they NO or NC? From the wiring diagram they look like they should be NC but want to confirm.
2. Is the relay and voltage regulator part of the laser driver?



Question 2 years ago

Yo tengo una maquina, de corte de papel que usa blazer(navaja) desmontable.. mi pregunt es...como podria adaptarle el laser ?


Question 3 years ago on Step 1

I'm a super beginner DIY hobbist. I would really appreciate if you can have details description of each materials like a laser drive, step motor drive, etc... when I follow the link, many items's link doesn't work and I can't see the detail description of the items. Please please help me so I can find the alternatives of those! I'm very excited to make this but I just want to be sure what I am getting will work with your instructions! Thanks a bunch! cheers.

mario mimeault
mario mimeault

3 years ago

Can not open your .stl documents.


Reply 3 years ago

i don"t know


Reply 5 years ago

Still not working. Anyone have an alt?


3 years ago

what is the surface of this sheets?? how much wood do i need?


Question 4 years ago

Great tutorial, very nice. One question please, what settings should the constant voltage be set at? I just fried my laser diode trying to guess and I can't find any reliable info on them. I have the same laser your BOM links to. Thanks in advance.


Answer 3 years ago

If anyone else reads this, ITGamerGeek was correct. I was able to contact the laser manufacturer and he confirmed around 5v and 1.0-1.5 Amps. So I took both pots on the LED driver down to zero. I then turned the Voltage to 5v with the laser off. Then I fired the laser (which dropped the voltage down to zero which is normal, don't panic) and slowly brought the amps to 1.2 while watching the voltage rise as well to about 4.6. The important part is to set the Amps all the way down first before turning on the laser. They come from the factory completely random and may have even been played with by a person at the warehouse so don't assume.


Answer 4 years ago

The laser in the BOM needs 5V, so I would set the voltage just below this, so at 4.9V.


4 years ago on Step 8

Excellent project, it has shown me all the steps needed to make my own!
A small area of confusion though, is the stepper motor drivers. These look to be the easy drive type, with a direction and step input, in the first photograph, and a different type in the 3rd photograph which you say you must adjust the switches for the correct current.
I guess you started with the easy driver and moved on to the more complex one, is that correct?

Having successfully programmed the Arduino with the GRBL library then communicated with the board via the terminal window, my next step is to use LEDS on the output pins to check they are pulsing correctly, before getting the drive boards.I intend to make sure everything works as expected before actually spending cash to buy the parts needed!. If it's OK with everyone, I will update this comment as I progress.

I seem to have hit a snag, When following your instruction:-

4. Go to the tab Extensions -> Laser engraver -> Laser. Set the
speed, the name and the location of your file and click on

All I get is a small box that won't open so presumably the inx, and py files I downloaded and put in the inkscape folder have a problem. On the bright side, gcode sender works fine, and communicates OK. I just need to somehow make inkscape create a gcode file


Reply 4 years ago

I have fixed the problem by installing the latest inkscape version, (Inkscape 0.92.3) which has gcodetools installed in the extensions. Directions as follows:-

Using inkscape 0.92.3, make another layer with
either shift/ctrl+L or hit the little + sign in the layers panel. (it seems gcodetools needs this)

put the drawing on this layer, (switch the layer off and on
with the little "eye" symbol to check it's on this layer) select the drawing, path/trace bitmap/ make sure
the image is simplified and delete the original.

make sure the simplified drawing is selected, (box with resizing/move
arrows on it) and press extensions/gcodetools/path to gcode

Press "preferences" and set the directory path to somewhere you will find the output file, in my case it's c:\users\norman\desktop
(yours will be different, just type in your own path to your desktop) and give the file a name you will be able to find ok.

Press "path to Gcode" and hit apply , the g code
file will be created.

Change it's extension from .ngc to .txt (for gcode sender to
recognise, and using a text editor, delete the useless comments at the start of the file)

Output it with gcode sender to the Arduino uno by connecting the uno, and pressing "print"
I will update with a more streamlined version, soon as I have found one


Question 4 years ago

Has anybody had any luck in getting this going?? I started building mine few months ago. Had the basics going but since lost all the files and software I had so back to square one :( Want to get it up & running again...


Question 4 years ago

I'm looking to buy this laser engraving machine.

Does anyone know who to get in touch with?

4 years ago

I would like to modify DIY 3d printer (ardiuno mega) into this type laser engraver.

seeking help in regards to modification required for electronics parts.