Quick, Dirty and Cheap Laser Engraver




After playing a while with the "pocket laser engraver" I've fabricated folowing the instructable made by Groover, I want to make something bigger with things I already have in my possession. The only thing I've bought is a scanner (7 Euro's at the second hand stuff shop). All the other things I have already in the house.

This instructable is'nt an 1,2,3 step build plan because of the differences of things one has on theire shelf. It's merely a guide on how you can do things.

The things I used:

  • An old scanner;
  • An old printers ink cardridge carriage
  • Two steppermotors I've extruded many years ago from scanners/printers
  • An Arduino UNO board
  • Two EasyDriver stepper driver boards
  • Some aluminum tubing
  • bit of aluminum sheet

    A 2W blue laser

  • And my big friend: HOT GLUE!


Step 1: Testing

First of all I tested the motors of the scanner and printer seperately. It turns out that they where unuseable (one of them was'nt a stepper at all), and therefore I have replaced them with two steppers I already have. If you are Lucky you wil find scanners and/or printers with suitable motors, mostly the older ones, so you don't have to spend time on changing them.
The greater part of the time in this project was spend on doing nothing but looking at the parts and thinking of how to put things together.

On the left of the first picture you see the printers ink cardridge carriage with the new motor installed, on the right the aluminum tubing. They lie on the scanner interior. These things has to be put together.

On the second photo I have the aluminum bolted down and on the third photo the ink carriage is bolted on the aluminum tubing.

In this stage you can test if the movements are working fine. The ink carriage rail works ok with the motor replacement but the scanner steppermotor does not due to the fact that there are geares between the motor and the drivebelt.

Step 2: Installing the Donor Motor

Pic1 the donor motor is waiting for replacement

pic2 the black square has to come out

pic3 does it fit... after some adjustments... Yes!

pic4 Bolt the new motor down with the spindle on the right height and the spindles axis on the same linear line as the old spindle.

The Original timing belt was'nt usable because of different tooth spacing so I installed one I had on the shelf. I had to make a length adjustment of course.

The procedure for replacement of the ink carriage motor (I forgot to make pictures) was the same with differences of course but the photos of the other one give you an idea of how and what.

Step 3: And Finaly, the Laser.

I could not find a good way to bolt the laser down on the ink carriage so I hot glued first a bit of aluminum sheet to it to make a flat surface and on that I hot glued the laser driver housing and the laser it self. Nice stuff, hot glue. It does the job and is very quick.

Here you can also see the hole I cut in the bottom of the scanner. Its important that the hole is not too big, otherwise the scanner bed is'nt parallel with the table and the laser won't be in focus on some spots.

This concludes the mechanical construction.


I have used a 2W laser, but a less power one (to reduce costs if you don't have one on the shelf) should work fine as well, but a bit slower.

Step 4: Electronics

On the first picture you see the driverboard I made. I've made connectors on the motor wires for easy connect and disconnect them and simply connected the wires to the motor wires (pic2) . the Arduino board lies under the driverboard. On the driverboard you see also a laser driver board. This one is not used here because this driverboard is the one I've used for the Pocket laser engraver. For more info about the wire plan see:


And go to my comment ( search for venkes). Here, amongs other things, you can find a plan of how I hooked all things togheter.

In this instructable I have used a TTL switched laser so the little breadboard (the one with the mosfet) on the schematic is redundant because I connected Arduino pin 12 directly to the positive TTL lead and common ground to the negative TTL lead of the laser driver. In this way you don't have to use a relais.

Step 5: Software

The following text is a copy of the text I entered in the comment I've made for the Pocket laser engraver. See the previous page for the link.


"The programs I used:

-GBRL v09.j (for Arduino Uno library) *
-Inkscape 0.91 (for pc)
-LaserEngraver (plugin for Inkscape) *
-UniversalGcodeSender v1.0.9 (for pc)

Due to version differences of the programs I had to make some adjustments to some of them:

GBRL, to switch the laser on and off (Gcode M03 and M05) the following has to be done before installation:
1a. Download GRBL sourcecode from github ( https://github.com/grbl/grbl )
2a. Extract zip File
3a. Use Notepad++ and open the file called config.h (Folder: grbl-master\grbl)
4a. Search for a line, that starts with „#define VARIABLE_SPINDLE“
5a. Comment this line out ( Use a double Slash // )
6a. Save the File

-LaserEngraver plugin for Inkscape has a bug, to solve this read the following:
If you’ve tried to use the modified Inkscape laser engraver plugin mentioned in this blog post about building an engraver, you may have run into an error trying to do the export. It’s something like “AttributeError: ‘module’ object has no attribute ‘unittouu’” or “unittouu not part of inkex module“. Here’s the fix.
The bug is on line 3080 of laserengraver.py and broke due to an Inkscape change. Old line:
doc_height = inkex.unittouu(self.document.getroot().get('height'))

New line:
doc_height = self.unittouu(self.document.getroot().xpath('@height', namespaces=inkex.NSS)[0])

Be sure to have the exact same number of spaces/tabs on this line. In Python, whitespace is important, so you can’t mix and match spaces and tabs, and all code blocks must have the same whitespace alignment.
Problem solved!"


In Inkscape you can set preferences so that it matches the maximum engrave size. In my case 18x20cm. If you zero the x- and y-axis everytime you power up the machine you don't have to use limit switches. But be carefull: it's easy to forget to check the zeroing.

On the picture you see the GRBL values I use. You can find on internet plenty of info how to figure these out but for two of them I like to explane how I did that.

For the calibration of $100 (x, step/mm) and $101 (y, step/mm) I did the following:

  1. I filled in the value 80 or so for both $100 and $101
  2. then I draw a square of a given size, say 25mm in Inkscape and start to engrave
  3. The first result shall not be a square with the right size, 25x25mm
  4. start with the x-axis:
  5. let's say that A is the value you want for $100 and B is the value of $100 (80) and C is the value in Inkscape (25), and D is the value you measure on the engraved square (40 or so)
  6. then A = Bx(C/D)

Then, in this example the new value for $100 (A) is 80x(25/40)=80x0,625=50

The same you can do with the y-axis ($101).

The result is fairly accurate.

If you use exactly the same motors and belt and spindles the values of $100 and $101 shall be the same. Mine are not due to motor and spindle differences.

Step 6: Result Video

On the video you'l see the result of it all. Frankly, the contraption is'nt pretty but the engraving results are not bad at all.

I hope this instructable lighten up some things and get you going.



  • Frozen Treats Challenge

    Frozen Treats Challenge
  • Sensors Contest

    Sensors Contest
  • Pets Challenge

    Pets Challenge

17 Discussions


2 years ago

This is amazing and inspiring. Very well done!!

1 reply

2 years ago

Nice! I like it!

You build like I do. LOL

That was meant as a compliment. LOL

1 reply

2 years ago

Thnks for inspired instructable, good job! great!

1 reply

2 years ago

Awesome Project! I may need to make a goodwill run for some scanners.

What exactly did you buy from DTR's Laser Shop? I am very familiar with Arduino, GBRL, Steppers, & Drivers....... Lasers, not so much, I am a little overwhelmed by all the options.

2 replies

Reply 2 years ago

It's been a while when I bought my laser at DTR's, Idon't see mine on their website anymore. What I had purchased at DTR's lasershop was:

- A blue 2Watt laser diode, already pressed in a copper module;

- A good lens (glass not plastic);

- A suitable driver.

The driver is very important because you can't hook the laser diode directly to a normal powersuply. They need to be current controled. The driver I had has to be tweaked to make sure there was not slow start. But you can find how to do that, on their website as well.

Second important is the ability to switch the laser on and of by TTL, so you can use Arduino's pin 12 to switch directly the laser on and off.

Cooling is very important too, so you have to buy an adaptor for the 12mm brass module or make one yourself. Thats what I did.

On the other hand, you can buy a complete module with laser, driver, lens, cooling, TTL etc. You can find them on the web. But pay attention to the TTL: I've had seen lasers that switch the laser off with TTL high. You must have one that switch the laser on with TTL high. And no slow start!

I hope this helps.


Reply 2 years ago

Thanks for the helpful information and quick response! I'll start looking more in depth as this is very interesting.


2 years ago

Awesome! Do you have a link to where yo ubought the laser diode?

1 reply

Reply 2 years ago

Thnx for the reply. I've bought this laser at DTR's laser shop. You can order there and they ship worldwide.