Instructables

Pocket laser engraver.

FeaturedContest WinnerContest Winner
Picture of Pocket laser engraver.
I have been trying to get my hands on a laser cutter for some time but they always seem out of reach. All the great things that can be done with a real laser cutter tickle the imagination.

I feel it's time to share my latest project - a low cost laser engraver,. The workspace is a bit small but none the less it works and comes so cheap that most will be able to replicate the result. I did take a few shortcuts, as I feel I don't have the knowledge to do all the electronics I opted for readymade but low cost in favor of trying to make my own (and most likely fail). All parts used are however easy to find.

I am pleased with the end result even if there is room for improvements. The small size and low power is a bit limiting but I have made allot of fun things already. Paper cutouts, plant markers and stamps among some. The engraver itself might not fit in a pocket but the workspace limits what you can do with it to fit in the pocket.

A word of warning is in place . This instructable is using a ~200mW red laser. It might nut cut through chunks of wood but it will make you go blind if you are not careful. Never look into the beam, even reflections can be dangerous if focused. Please be careful.



 
Remove these adsRemove these ads by Signing Up

Step 1: Acquire the parts.

Most of the hardware comes from my junk bin. The aluminum profiles, the piece of MDF and various nuts, bolts and wires. But some things need to be acquired. Most of the electronics can be found over at Sparcfun and the rest on e-bay or a swap meet.

- Arduino - this is the heart of the control electronics.
- Easydrive - stepper driver.
- Two DVD-rom drivers - Maybe more if you’re unlucky, and at least one DVD-R to salvage the laser from.
- Laser housing - singles can be found on e-bay.
- Laser driver - There are lots of alternatives here, I use a simple LM317 based circuit.
- Various nuts, bolts and other building materials.


Step 2: Rip apart the DVD-Roms.

All you need from the DVD-Roms are the stepper motor assembly and one laser diode. I had a bit of bad luck and found that one of my DVD-Roms had a plastic assembly that would be very hard to work with. Thus I ripped apart three DVD-Roms and only used parts from two of them. It is pretty strait forward and most DVD-Roms I have opened works more or less the same way.

After removal of the screws at the bottom of the drive you can lift it of like a lid. Underneath you will most likely find two circuit boards and none of them are any use to us. But remember to salvage other useful parts that can be used for other projects. For example under the front circuit board there is a small dc motor worth saving. This is when it is time to remove the front together with the front of the tray; the front comes loose after you pull out the tray (just use a hairpin and the small hole in the front). The next step can include some screws and/or mild force. Remove the two circuit boards. Be careful with the ribbon cable to the stepper motor. If you turn the DVD-Rom right side up and remove the cover, you should find what we are looking for, the stepper motor assembly. Remove the screws and just lift it out.

Now that we have the assembly out it needs to be cleaned up a bit. Remove the spindle motor, it could be useful but I feel they are hard to drive and thus don't keep them. They are usually hold in place by three very small screws but sometimes they are part of a larger assembly so be careful that removing it won’t compromise the two rods holding the lens.

The lens is another story, just remove it best possible way, we need a smooth surface to attach other parts to later. Be careful to not harm the DVDR laser diode. It can come to good use if you don't want to buy a new powerful laser later. See the next step.

Step 3: Putting a laser together.

IMG_0318.JPG
IMG_0320.JPG
IMG_0321.JPG
There are so many good instructables on this subject, I will just make this part a quick one and let the pictures do most of the talking.

Removing the laser from the DVDR is not hard but most lens assemblies look different. Locate the diodes (there will be two, one IR and one red) and remove them from the assembly. There are some optics and two magnets that can be saved for future projects. Once you have removed the two diodes you must be careful. The two diodes are very small and fragile. Remove the small connecting PCB strips from the diodes and use two AAA batteries to check for the red diode.

Now that you have the bare diode it is time to mount the diode in the housing. Place the diode in the housing and use the back of the housing to press down the diode very carefully using a vice. When you get this far you are on the home stretch. Solder the wires to the positive and negative pins, screw in the lens and you are done.

Step 4: Construct the mechanics.

IMG_0226.JPG
IMG_0227.JPG
IMG_0228.JPG
To make this as easy as possible I got hold of a piece of MDF just a little bit larger than the DVD-Rom stepper assembly. This will work as the base to hold both the X and Y axis. I found some spacers to hold the Y axis but bolts with a couple of nuts would work just as well. The measurements here are not critical but it is important that every axis is square to the other entire axis. I found that mounting the first assembly level with the MDF would make it easier to align everything.

The workspace is mounted on the old laser diode assembly. Make sure it is flat and level then glue something on that will serve as workspace. I found a piece of 1/4" acrylic that worked out just fine. It made this workspace stable enough but as the laser can shine through it I was not sure if this would be a security hazard or not. Later I found the solution I think works out for the best. I cut a piece of the DVDR metal case to the same size as the acrylic and glued it on. This way it still very stable and you get a workspace that will be tough. One positive side effect is that you can secure whatever you are engraving with small magnets.

For the X axis I found some aluminum profiles in my junk bin but just about anything could be used as long as it is stable. Measure the height you feel will be right for what you want to engrave. I opted for 7.5" long pieces for the support. This would give me a little under 2" clearance.

One important thing, the mounting holes on the assembly are not symmetrical. Be sure to measure the distance from the bottom end of the supports to the linear guides. That way you will be sure to get everything aligned. Where you mount the X axis will be dependent on the laser mounting. The laser should be in the center of the work area when the Y axis is in the middle position. When you mount the axis to the base plate drill a small guide hole for the screws after you made sure that everything is square.

Now you should have the X and Y axis done and square to each other.

The laser mount does not have to be very sophisticated, mine is made from a small piece of plastic sheet and a clip then everything is glued together. Using a clip to hold the laser lets me change the focus point by simply slide the laser up and down. As with all other parts the size is not that important as long as everything is square. There are just one measurement you need to think about here, the laser should be in the center of the work area when the Y and X axis is in the center position.

Step 5: Electronics

I started soldering the steppers. I used a ribbon cable to connect the steppers and solder them to the existing connections from the DVD boards. On the other end I solder a four pin header so that it could be used with a breadboard. The same thing goes for the Easydriver, solder pin headers and use them with the breadboard. Ribbon cable can be found in abundance around old computer shops and service centers. All those old disk drive cables can be of good use.

In the schematics I have added a relay for use with a fan. This can come in handy as the engraving produces some smoke.

The Easydriver have two pins called MS1 and MS2, these sets the step sequence. Tie them both to the five volt output from the Easydriver. This sets the step sequence to micro stepping . The four pins from the stepper connect to the motor output. All steppers I have found have all had the same pinout on the small connecting PCB. Connect the pins in the same order to the Easydriver as on the connecting PCB. The control pins (step, dir, gnd) goes to the Arduino. Besides this the Easydriver needs motor power connected. I use a twelve volt wall wart that drives the motors, fan and Arduino. There is a potentiometer that controls the power to the motors, I just set this to the lowest setting and turn it up a tad if the steppers don't have enough force. I don't know the rating on the steppers, if they gets to hot you’re driving them to hard.

The fan just needs to be connected to the fan output. A small computer fan works well, just connect the positive and negative leads to the correct output.

The laser driver is an LM317 based circuit with no specials. This will work fine but it is far from optimal. I am driving the laser diode far too hard at about 300mA and if you do that you can’t expect a very long life for the diode. The best solution would be to find a stronger laser and better driver but to keep to the spirit of things I wanted to use the laser from the DVDR itself. Laser on/off is controlled by the same relay as the fan.

If you want to simplify you could skip the whole laser driver and use a readymade driver. Then all you would have to do would be to connect the power to the fan relay. Of course this would probably be a little bit more expensive.

The whole thing evolved into a new Arduino shield, the Laser Shield. I have included the schematic and board layout in Eagle format . Creating a circuit board is a bit out of the scope for this instructable, but there are lots of really good guides here on Instructables.
If you want to make your own layout with Easydrivers I have made a Eagle library with the driver, it can be downloaded here .

Step 6: Prepare the Arduino.

Picture of Prepare the Arduino.
For the Arduino I started out writing my own software. But while searching for a good way to control movement from the serial port I stumbled upon something called "Grbl ". This is a g-code interpreter with lots of nifty functions. As I already had everything connected to the Arduino I had to ether change my connections or change the software. Luckily it is easy to change control pins in the software. I did however have to download Winavr and then the code from github.com . It is not that hard to do. After downloading and extracting the code you have to change the port numbers in config.h and make sure you get them in the right order. Then all you have to do is start a command window, enter the correct folder and type "make". If all goes to plan you should end up with a .hex file ready for the Arduino.

I have however changed the pin-out since then and here in the instructable I use the default pin-out of Grbl. This will make it a lot simpler to follow and setup. You can just download the prepared hex file from the Grbl download page .

Important:
The current version of Grbl (0.6b) has a bug in the queue system. The laser on and off (M3, M5) commands are not put in the queue and the laser will be turned on and off as soon as the Arduino receives the commands. This is resolved in the edge branch. You can download and the source from here , or grab the compiled hex I am using from here . This should resolve the issue until the next version of Grbl.

Any way you choose to do it you will end up with a .hex file that you must get into the Arduino. I have tried a couple of different ways and the one I like the most is by a program called XLoader . The programming is pretty straight forward; select the correct serial port for your Arduino. Select the hex file and type of Arduino and press upload. If you are using the new Arduino Uno the XLoader doesn’t work, you will get an upload error. In that case I recommend using ARP/Arduino Uploader but even this uploader has some issues with the Uno. When programming the Arduino select the com port and microcontroller in the respective dropdown. After that you will have to make a change in the “AVR Dude Params” text. Erase the “-b19200” (without the quotes) part and click on the upload button. In any case, a couple of seconds later you are done and are ready to try it out. Exit the XLoader and get to the next paragraph.

The Arduino needs to be set up for the job. Start your favorite serial terminal and open the port your Arduino is connected to. You should get a welcome message:

Grbl 0.6b
'$' to dump current settings"

If you enter $ followed by return you will get a list of options. Something like this:

$0 = 400.0 (steps/mm x)
$1 = 400.0 (steps/mm y)
$2 = 400.0 (steps/mm z)
$3 = 30 (microseconds step pulse)
$4 = 480.0 (mm/sec default feed rate)
$5 = 480.0 (mm/sec default seek rate)
$6 = 0.100 (mm/arc segment)
$7 = 0 (step port invert mask. binary = 0)
$8 = 25 (acceleration in mm/sec^2)
$9 = 300 (max instant cornering speed change in delta mm/min)
'$x=value' to set parameter or just '$' to dump current settings
ok

You must change the steps/mm for X and Y axis to 53.333 on both. Just enter "$0=53.33" followed by return and then "$1=53.333" followed by return. Z axis can be ignored as it is not used. The acceleration can be ramped up to something like 100 ("$8=100" and return). As we move really slowly with this machine acceleration can be high. Another side effect of low acceleration can be that curves get a lot more burnt than straight lines as the controller constantly tries to accelerate and decelerate but never reach full speed. If you build this like me one of your axis might be mirrored. This is easy to fix. Option $7 lets you change direction on axis. I wanted to change direction on the X axis so I type in "$7=8" as I want to change bit 3 (8 = 00001000 binary) if you want to change direction on Y axis you type in 16 (00010000) or 24 (00011000) to change both. The complete documentation of the invert mask can be found here .

Now you are ready for the computer setup. If you want to try some movement you can type "G91 G28 X0 Y0 [return]" to zero the axis. Followed by "X10 Y10 [enter]". You should see 10mm movement on each of the axis.

Step 7: Getting the software ready.

Picture of Getting the software ready.
I will just go through the basics here. What software you need, how to set it up and the basic tool chain. I will only talk about windows based systems, all you Linux people will have to do some digging around (even if Inkscape and the extension should work fine on Linux as well). First you will have to download three files:

Inkscape - this is open source vector editing software. (download )
Laser engraver extension - This generates the g-code needed to control the laser. (download )
G-code sender - A small windows program I wrote to communicate with Grbl. (download )(source )

Install Inkscape by following their instructions. This should be a pretty painless process. And any help on the subject should be easy to find in the documentation on their web page. Next up is the extension; this is a little harder but not much. Open the .zip file in your favorite unpacker and copy all the files to "c:\Program Files\Inkscape\share\extensions". You have to restart Inkscape for the extension to show up. The extension is a heavily modified version of "Gcodetools ". That is it for setting up Inkscape. You can leave the "G-code sender" on your desktop or any other place where you will find it later. It does not need to be installed.

One important word about the extension, I am not a python programmer and there might be some kinks in the code.

I assume you have everything installed and ready to use by now. Here is a quick screencast of the work flow.




I hope this was not too quick. There are loads of guides on how to use Inkscape out there. I will not go into any details on how to use it.

The G-code sender is another story; there is no documentation as I just made the program. All the documentation is in this instructable, but feel free to ask if you have any questions. When you open the program it should be pretty self explanatory. The only strange thing is the radio buttons "\n\r" and "\r\n". Depending on what version of Grbl you are using the line ending are different. If the one doesn't work try the other one. Choose your serial port, and if you do forget to plug in your laser engraver, plug it in and hit the refresh button and your serial port should show up. Hit the "open" button to open hailing frequencies. Once the port is open you can type in commands like any terminal software in the text box above the open button. To start engraving a file you can ether type in the file path or click on the browse button and select a file.
When you click on "print" your file transfer will begin. The file will be transferred until the buffer on the Arduino is full, about 20 rows or so. When the buffer is ready for more data another row will be transferred. When you hit stop the transfer will end but the Arduino will not stop until the buffer is empty. When you hit the "close" button or exit the program the serial port will be closed and any transfer will be stopped.

Sometimes there will be a G-code that Grbl can’t interpret and will return an error. Most of the times these errors can be ignored but they will show up in the sender. This can be comments or the start and end "%" sign. If there is a comment after a command there will be an error but the command will still be executed. For example "G21 (All units in mm)" the G21 command will be executed but the comment will give an error.
 

Step 8: Final assembly and extras.

To finish the small engraver I made a small box from the Masonite board I found in a picture frame. It is just glued together. In the front there is a small fan from an old graphics card. The cooling is necessary for the Easydrivers when you mount them in any kind of housing. They get hot when out in the open and even hotter in some sort of housing. In the box I glued some threaded spacers; this allows me to screw on the bottom. The Arduino is in turn screwed to the bottom. It makes the engraver into a useful and easy to handle little tool.

Some small extras have been added along the build. First of is the fan that keeps smoke away from the workspace. This is a small 40mm computer fan connected to the laser relay that I wrote about in the electronics step. The fan is pointed away from the workspace and gently sucks away smoke.

Another small but very useful extra are the magnets to hold down paper and other light weight objects. I got these from an old toy . After gluing some nuts on top of them they are done.

To change the focus you can screw in and out the lens. Or you could set the focus once on the workspace and then slide the laser up and down in the mount. This is how I do it. I have a set focus when the laser is at the lowest possible position in the mount. Then all I have to do is measure the thickness of the material and raise the laser the same amount. Most times I just hold the material next to the laser mount and move the laser to the correct height.

Step 9: Final results.

Here are some of the things I made with this little engraver so far. I will let the images tell most of the story. The only limit is your imagination (besides the low power and small work area).

Key chain.
I found some paint stirrer sticks at my local DIY shop. I liked the look of the wood and they were cheap. I saw of a piece and drilled a small hole. After some sanding I engraved the Binford logo from the sitcom "Home improvement".

Plant marker.
A normal Popsicle stick engraved with the plants name.

Personalized matches.
I'm just trying to show off ;)

Memo note holder.
A clothespin engraved and with a small neodymium magnet glued to the back makes a great way to stick a bunch of notes together on the fridge or any other metal surface. I like clothespins they are very versatile.

Stamp.
Cut out of a small foam sheet and glued to a piece of Masonite.

Airplane.
Thanks to scriptster who made the G-code for the model. Check out his model here .

RobertWa15 hours ago

I am having problems with circles being boxy (flat) on the top and sides. Have you run into this problem?

test_burn.jpg
Tesla619yesterday

Ummm, is this a rip off of your DIY project but for sale ?

http://v.youku.com/v_show/id_XNjUzODI5MzUy.html

BTW i found this on eBay

fcojav15 days ago

Hi, i live in Guatemala central america and i interest in one but in my country not exist the parts for this project.... you help me? my email is mr_tagys@hotmail.com

thakala20 days ago
Hello, I'm excited to start work on my laser engraver this weekend.

I'm just curious if anyone has tried to use this on leather? I got an idea for a leather cuff this morning and I was wondering if this would work to add the design to the leather.

Thanks!
Groover (author)  thakala19 days ago

I did try it on a piece of leather and it did leave a mark. The only problem was that it where a black piece of leather and not that easy to see might work better on tan leather. (engraving pattern, cutting there is no way to weak laser)

thakala Groover18 days ago
Good to know! I'll have to experiment with mine when I finish it.

Unfortunately, this weekend flew by without any chance to work on it. I'm hoping to break open the DVD drives tonight.

Thanks.
lex luther1 month ago
Hi! I'm having relay latching problem. I replaced a relay, the transistor, cable. After i put 3 ferite filters on the cable it looked ok, but the latching hapened again. The laser doesent turn on. After i tap on the relay it works aggain for a few times. PLEASE HELP!
Alex
IBH1 month ago

Please can somebody provide the circuit for laser shield in pdf format?

Groover (author)  IBH1 month ago

Here is the board, silkscreena and schematic.

IBH Groover1 month ago

Thanks! But to make the circuit I used ratsnest and it said 2 Airwires and I did not understand this?

Groover (author)  IBH1 month ago

Unfortunately I don't know either. There is one place where I used a jumper wire, that might be what is meant? Hopefully someone else knows and can give a proper answer.

IBH Groover1 month ago

Please can you tell me how you made the circuit?And that is the attached circuit correct if made using toner transfer method?

Groover (author)  IBH1 month ago

It looks about right and should work but I have not gone over it in detail. I used a board with photoresist and printed out the trace on overhead paper, exposed in uv light and etched. I have never used the toner transfer method myself.

atymkow1 month ago
I have set $0 and $1 to the value you listed, just double checked. So I guess it must be the easy driver. I'll recheck my soldering tomorrow. Thanks for the suggestion.
Once again, great instructable. Really inspired me to make it.
Groover (author)  atymkow1 month ago
Thank you. If you can not find anything in the hardware to explain it you can compensate in software but I would recommend to have a look at the drivers first. If you want to compensate in software you will have to change the steps per mm to a value more suitable. I don't recall the exact value but if it moves 15 mm when you enter ten you would want to reduce it by about a third of what it is now.
atymkow1 month ago

hi there.

i think this is a great project, so much so that i have built on of my own. Just having a bit of a problem though. My prints are coming out stritched.

When you tell it to move X10, it dose. When you tell it to move Y10, it moves 15.

Both motors and drives are exactly the same.

any ideas?

Groover (author)  atymkow1 month ago

Check what your steps per mm is set to. Start a serial terminal and open the port your Arduino is connected to and enter $ followed by enter and you will see the current settings ($0 and $1). If they are the same the only thing I can think of is if the easydriver (or whatever driver you use) is not set up properly, one in microstepping and the other one not or something similar.

dmagryta1241 month ago
could I use a DC motor with a small drill bit attached instead of a laser? would it be able to carve floral foam? are the motors unipolar or bipolar? what is the work area size?
IBH dmagryta1241 month ago
no you cannot use a dc motor because then you would need a z axis to move the drill up and dowm , with the laser it just turns on and off with the relay.The motors are bipolar. The work area is about 1.5"x1.5" inches.
dmagryta124 IBH1 month ago

Ok, thanks.

rjkorn6 months ago
(removed by author or community request)
rjkorn rjkorn6 months ago
sites back online now thanks.. seems to work good with my old dot matrix printer frame machine. only problem is my laser is best on dark materials. it will easily cut through a black plastic cd case but it wont burn light colored wood. did you coat the wood with anything?

try placing a black piece of paper electical tape on top of the wood or anything else light in color

IBH1 month ago

HI, I rely love your Instructable.I have been trying to make my own micro laser engraver but i cannot understand how to wire the stepper motors and also can i use Arduino motor shield instead of easydrivers?

Thanks in advance

Regards

IBH

DBender1 year ago
Hello friend, first I would like to congratulate you on an excellent project.
Well I am Brazilian and I have difficulty understanding English, would aid her.
I'm struggling to understand how to download the files to the arduino, control the motors, which files should I download?
You could pass them to me by email?
Thank you.

olá amigo Dbender você conseguiu construir o projeto quero muito consegui faze esse projeto, voce poderia me dar algunas dicas,desde já grato

Yes my friend.... My questions in email: Deivesdb2@gmail.com
Davebmx1 month ago

Hi always look at this wanting to make one but dont have the time is anyone in the UK able to make it for me if i supply all the parts or £ for all the parts thanks

rcerchier2 months ago

hi, i make the circuit but when i put laser in the terminal it doesn't work..If someone would help me on this problem my e-mail is riccardo.cerchier@gmail.com

508Parkour2 months ago

Could I upgrade this to something like a 1W laser diode? How would I make the changes?

Bashey2 months ago
hi, can i 'print' circuit boards with it or is i to less power? wich power do i need to laser a circuit board? or is it easier to take a cnc?
Hinesdarrel2 months ago

Hey this is something very exciting and interesting. Amazed to see something like this.Never imagined this sort of creativity.

http://www.analogtechnologies.com/products.html

lex luther2 months ago
Hi guys! Does anybody know how to engrave photos on a machine like this? So arduino-grbl laser.

Thanks!
Alex
kgaurkhede2 months ago

suggest me some other stepper motor driver other than easydrive

plz help me

rply asap

thnx in advnce

the easydrivers are the best, but if you want something else try the a4988 stepper drivers, you will need to redesign the board

kawa384 months ago
Hello,

Can I use de grlb to a XY pen plotter ?

Thanks
Zaund kawa382 months ago

You could basically turn this project in to anything, including GRBL. Instead of the laser just mount a sharpie or ink pen on the Y axis.

jatinbatra3 months ago
Heyy Hi, I'm trying to make 4 or 3 axis bipolar stepper motor driver with L293d (H bridge ). I'm having a hard time figuring it out how to use it with grbl.
As you said I have configured many things, have uploaded the hex and change the settings like
$0=53.3 etc
My motors are not working
Zaund jatinbatra2 months ago

If your motors aren't working either there is a wiring issue with polarity or you need to change the pins they are connected to on the Arduino board. If you're not using the EasyDriver or something similar I would highly recommend switching. I began this project with an Adafruit motorshield and found the library was very limiting. EasyDriver knock-offs can be had for about $7 off of ebay.

Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!