loading
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.



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.


<p>Hi Groover, nice pocket laser engraver. I would like to know what the work area is as I could find it in your instructions. Thanks</p>
<p>You dont really need to connect MS1 and MS2 on the Easy Driver to 5 Volts.</p><p>The default step setting is 1/8th step.</p><p>From Easy Driver web site:</p><strong>The Easy Driver is able to operate in 1/8th, 1/4, half, and full<br> step (2 phase) modes. These four modes are selected by the logic<br> levels on the MS1 and MS2 input pins. Normally, the pull-up<br> resistors on the Easy Driver hold MS1 and MS2 high, which results in<br> a default setting of 1/8th microstep mode. You can pull either<br> or both to ground to select the other 3 modes if you want.</strong>
<p>Whats Soft i can use WITHOUT Isnkape? It was very stuped on my PC</p><p>Maybe to be any List of soft on PC for using with <strong>GBRL v09.j</strong> (for Arduino Uno library) ?</p>
<p>@jm.instructable</p><p>I think that the &quot;Adafruit Motor / Stepper / Servo Shield for Arduino Kit - v1.2&quot; you're trying to use is simular to the &quot;Velleman KA03&quot; I have experimented with. I coulden't get this one going as well because one cannot send Gcode to it, it seems. </p><p>You can get the steppers running using the Arduino Sketch, but you have to use GBRL and Gcode to stear the steppers in this project. The easyest way for you I think, is to buy two SchmalzHaus EasyDrivers (the're not expensive). This works! </p><p>See the detailed plan in my comment below and the one of Groover above to lighten up things. In my comment you can also see the adjustments you have to make to a few programs to get them correctly running. </p><p>Greets, </p><p>Venkes.</p>
<p>Hi dear, I'm really excited about your project, I have read and searched for information to use GRBL but I can not make move my engines with it, will that use &quot;Adafruit Motor / Stepper / Servo Shield for Arduino Kit - v1.2&quot; if engines run libraries move, but if I do not work for me GRBL.<br><br>Do any of the users has made this project using the shield named?<br><br>Thanks I hope your understanding and prompt reply, thanks.</p>
<p>Thanks Groover, you've get me going. After a search on the internet your design suits me the best. I've made it mostly like you did but with a few differences.</p><p>First to mention is the laser. I've used a blue laser pulled out of a RGB laser pattern projector. The power lies on approx 250mW, I think (I don't have a LPM). Blue light transfers more energy so there is more burning power. Even on white! paper.</p><p>The programs I used:</p><p>-<strong>GBRL v09.j</strong> (for Arduino Uno library) *</p><p>-<strong>Inkscape 0.91</strong> (for pc)</p><p>-<strong>LaserEngraver</strong> (plugin for <strong>Inkscape</strong>) *</p><p>-<strong>UniversalGcodeSender v1.0.9</strong> (for pc)</p><p><br>Due to version differences of the programs I had to make some adjustments to some of them:</p><p><br><strong>GBRL</strong>, to switch the laser on and off (Gcode M03 and M05) the following has to be done before installation:</p><p><em>1a. Download <strong>GRBL</strong> sourcecode from github ( </em><a href="https://github.com/grbl/grbl" rel="nofollow"><em>https://github.com/grbl/grbl</em></a><em> )<br>2a. Extract zip File<br> 3a. Use Notepad++ and open the file called config.h (Folder: grbl-master\grbl)<br> 4a. Search for a line, that starts with &bdquo;#define VARIABLE_SPINDLE&ldquo;<br>5a. Comment this line out ( Use a double Slash // )<br> 6a. Save the File</em></p><p><br>-<strong>LaserEngraver</strong> plugin for <strong>Inkscape</strong> has a bug, to solve this read the following:</p><p><em>If you&rsquo;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&rsquo;s something like &ldquo;AttributeError: &lsquo;module&rsquo; object has no attribute &lsquo;unittouu&rsquo;&rdquo; or &ldquo;unittouu not part of inkex module&ldquo;. Here&rsquo;s the fix.</em></p><p><em>The bug is on line 3080 of laserengraver.py and broke due to an Inkscape change. Old line:</em></p><p><em>doc_height = inkex.unittouu(self.document.getroot().get('height'))</em></p><p><br><em>New line:</em></p><p><em>doc_height = self.unittouu(self.document.getroot().xpath('@height', namespaces=inkex.NSS)[0])</em></p><p><br><em>Be sure to have the exact same number of spaces/tabs on this line. In Python, whitespace is important, so you can&rsquo;t mix and match spaces and tabs, and all code blocks must have the same whitespace alignment.</em></p><p><em>Problem solved!</em></p><p>Your Gcode sender does not work so I have downloaded <strong>UniversalGcodeSender</strong>. This works fine and is simple to use.</p><p>I've added some foto's to show some details and a Youtube video where you can see some examples of engraving and cutting I did with it.</p><p>Now I know what to do I wil scale things up and start a new project with two flatbed scanner interiors an my 2W blue laser.</p><p>https://youtu.be/6A7YREqS-w8</p>
<p>Thanks Groover, you've get me going. After a search on the internet your design suits me the best. I've made it mostly like you did but with a few differences.</p><p>First to mention is the laser. I've used a blue laser pulled out of a RGB laser pattern projector. The power lies on approx 250mW, I think (I don't have a LPM). Blue light transfers more energy so there is more burning power. Even on white! paper.</p><p>The programs I used:</p><p>-GBRL v09.j (for Arduino Uno library) *</p><p>-Inkscape 0.91 (for pc)</p><p>-LaserEngraver (plugin for Inkscape) *</p><p>-UniversalGcodeSender v1.0.9 (for pc)</p><p><br>Due to version differences of the programs I had to make some adjustments to some of them:</p><p><br>GBRL, to switch the laser on and off (Gcode M03 and M05) the following has to be done before installation:</p><p>1a. Download GRBL sourcecode from github ( <a href="https://github.com/grbl/grbl" rel="nofollow">https://github.com/grbl/grbl</a> )<br>2a. Extract zip File<br> 3a. Use Notepad++ and open the file called config.h (Folder: grbl-master\grbl)<br> 4a. Search for a line, that starts with &bdquo;#define VARIABLE_SPINDLE&ldquo;<br>5a. Comment this line out ( Use a double Slash // )<br> 6a. Save the File</p><p><br>-Laser Engraver plugin for Inkscape has a bug, to solve this read the following:</p><p>If you&rsquo;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&rsquo;s something like &ldquo;AttributeError: &lsquo;module&rsquo; object has no attribute &lsquo;unittouu&rsquo;&rdquo; or &ldquo;unittouu not part of inkex module&ldquo;. Here&rsquo;s the fix.</p><p>The bug is on line 3080 of laserengraver.py and broke due to an Inkscape change. Old line:</p><p>doc_height = inkex.unittouu(self.document.getroot().get('height'))</p><p><br>New line:</p><p>doc_height = self.unittouu(self.document.getroot().xpath('@height', namespaces=inkex.NSS)[0])</p><p><br>Be sure to have the exact same number of spaces/tabs on this line. In Python, whitespace is important, so you can&rsquo;t mix and match spaces and tabs, and all code blocks must have the same whitespace alignment.</p><p>Problem solved!</p><p>Your Gcode sender does not work so I have downloaded UniversalGcodeSender. This works fine and is simple to use.</p><p>I've added some foto's to show some details and a Youtube video where you can see some examples of engraving and cutting I did with it.</p><p>Now I know what to do I wil scale things up and start a new project with two flatbed scanner interiors an my 2W blue laser.</p><p><iframe allowfullscreen="" frameborder="0" height="281" src="//www.youtube.com/embed/6A7YREqS-w8" width="500"></iframe></p>
sry for Spam
und dann kommen die dioden tum Vorschein
be carefull theres a screw behind
first try with dvd drive and am cd
<p>hello, can i use laptop CD drives for this project?</p>
<p>Thank's, very nice job!!<br>Just question, how to differentiate the two led laser in DVD graver ?<br>The red laser we need has &quot;325...&quot; wirte on his case ?<br><br>And sorry for my bad english!</p>
<p>Thank you, sir. Nice job.</p><p>The EasyDriver board is available from www.banggood.com for $2.45 USD. I have purchased from them many times and they seem quite reliable.</p>
<p>Hi!!!</p><p>I made it!</p><p>Thank you Groover!</p><p>I use 2 DVD for X Y axis, arduino nano to control it.</p><p>Base from old FloppyDD</p><p>https://www.youtube.com/watch?v=FmCIZO7if4I</p>
<p><iframe allowfullscreen="" frameborder="0" height="281" src="//www.youtube.com/embed/lnjzDOvffsQ" width="500"></iframe></p><p><iframe allowfullscreen="" frameborder="0" height="281" src="//www.youtube.com/embed/IqdoYIK9t4w" width="500"></iframe></p>
<p>Correct link </p><p><iframe allowfullscreen="" frameborder="0" height="281" src="//www.youtube.com/embed/Rmt_z8QhTWg" width="500"></iframe></p>
<p>Hi,i try to make this project and i have a question for you , what is meen FAN from electronic schematic </p>
<p>hi, i have a problem like this. i dont find answer in internet (google) , please help me!! </p><p>already thanks for all support :DD</p>
<p>SOLVED! Just download older version (32bit) of inkscape. Worked for me on win10</p>
<p>Change your file path ,liks 'C:\Users\admin\Desktop',I think some </p><p>permissions that</p>
Same problem.
<p>Getting the same error messages. I can't get the gcode prog to function properly either. I'm experimenting with J tech's inkscape plugin, but it's weird when I use a universal gcode sender program, the steppers move, stop and then move SUPER slow, like almost unnoticably slow. After about 40 seconds, they start moving fast again, then slow down all over again.</p><p>the link to the inkscape plugin:</p><p><a href="http://jtechphotonics.com/?page_id=2012" rel="nofollow">http://jtechphotonics.com/?page_id=2012</a></p>
<p>Since any printer has already made x/y axis base i used it :) one problem is that if you want to cut out lots of small pieces some of them tend to get stuck in there. Also added cheap 28byj motor to have z axis pen :) </p>
<p>Hello, </p><p>I have assembled the mechanics, but nothing seems to work the right way... I put in GRBL 0.9 and that works with Grbl controller program, but the inkscape plug in doesn't work - I get some error and the .nc file is not created and the g-code sender does not work either. I have tried making the code with CAMBAM suggested in the comments together with Grbl controller and got it to draw me a square (though forgot to check the size so it went overboard...). But like someone mentioned, my laser also does not burn anything... It was the right one, because the other one does not produce visible light at all. Also my question is - if i set the where the zero coordinate is, should it &quot;remember&quot; that? because after making an object it does not go to zero and I have to move it manually. It also seems to ignore the max travel distance setting... Also, how do you get the laser to turn on and off? mine is always on as long as the arduino is on (High on D12). Should I have changed something in the code for the microcontroller?</p><p>Thank you</p>
Got it moving right with grbl 0.8. Tried new laser, but so far still no burning. Moved it up to 0.4 amps. Still nothing. Anyone have any ideas?
What type of material are you trying to engrave and what is the color of your material? Try testing your laser by aiming it at some black electrical tape.<br>Did you put your laser diode in a housing with an adjustable lens? Try tweaking the focal length so that it burns the tape properly. <br>If you did all these thing, but while running gcode it still doesn't burn like it should, maybe you're moving too fast and need to slow the movement down.<br>
<p>Hey, finally got it to burn last night. I have it in a housing yes. Tried 3 different diodes. I was trying to burn paper and after testing various types (what i found on my desk), apparently not all papers get burned. I suppose the nice white paper reflects the laser beam or something. But now some other issues arose... When the gcode is being sent, I always get an error when it tries to define the speed (G1F5.00000). Is it something wrong with the syntax? Also sometimes get an error in the movement code in one command which is no different to me than the rest of them, so its probably just a glitch or something. Also, some parts dont get burned for some reason. The laser passes them, but doesn't burn. Weird. <br>Also, the laser driver with the LM317 is not working properly. when I try to adjust the current (measuring at the laser) it starts on very low end (20 mA) and then jumps up to 250 mA at the very end. No gradual rise is achieved. Any thoughts?</p>
<p>Yes, the problem is, the fixed resistor is 10 ohms and the tunable resistor is 100 ohms. That is a bad design as far as I am concerned. So the range of the trimmer is too large. 8 Ohms fixed and say a 4 Ohms trimmer would be better! </p>
<p>This might better explain what I mean by not cutting parts. The &quot;D&quot; in the &quot;wings&quot; is supposed to be cut out. And some other parts are missing too...</p>
<p>After some digging, it appears that the grbl version was at fault. After upgrading to 0.9 (you need to disable the PWM function they installed) It works Fine. However, The plugin for inkscape in this post need to have one line changed to work on the 0.91 inkscape and the jtech one has a a programming error. It uses G0 instead of G1 for parts that you need to engrave, which causes missing or crappy straight lines. If anyone needs a fixed .py file, pm me. Also GRBL 0.9 has a bug - the dwell function is in seconds, not in milliseconds as it should be. So 100 ms delay is actually 100 s. I also have a fixed code file for that and a .hex for Uno if anyone wants. (PM)</p>
<p>Thanks a lot for mailing me the fix!</p><p>I got it running now too, without the laser(my goggles still haven't arrived T.T).</p><p>But I can see it working properly with a fineliner pen!</p><p>Will let you know when it starts cutting :)</p>
<p>I have uploaded the fixed files to tinyupload, since the OP is not responding. The archive contains fixed plugins for inkscape and fixed grbl 0.9 source and hex</p><p>http://s000.tinyupload.com/index.php?file_id=15359939908683250552</p>
<p>Great project and I got it working. Some hints for other builders:</p><p>1) Use dark paper when focussing the laser. It burns much quicker, so easier to focus.</p><p>2) I used My Larser software (google is your friend), but had problems with the steps per mm settings. Using the GPLcontroller software, that can be fixed.</p><p>3) I found a laser on Aliexpress with the current controller built in, very handy!!</p><p>4) I tested several lasers and as already suggested before in the postings, not all lasers and not all lenses are suitable...</p><p>2</p>
<p>Sort of working :D</p>
Would I be able to engrave a piece of aluminum?
No. <br>Much of the laser's energy will be reflected, and what energy is absorbed will be quickly dissipated due to the aluminium's conductivity.
Hi, great instructables.<br>Can you post models ss STP or IGES files so can be opened in creo or solidworks.<br>Tnx
<p>hi, i made the engraver but i am facing a problem, the motion is working fine just needs some calibration but the laser is not burning anything. it is being turned on and off but it just doesn't burn anything what can be the issue</p>
A few things come to mind:<br>1. It is underpowered. How much current are you passing through it?<br>2. It is unfocused. Do you have a focusing lens? Have you tried adjusting the focal length to suit you rig?<br>3. It's not the right laser. Where did you get it? If you got it from a DVD burner, did you pull out the right one?<br>4. It has 'gone LED'... as they say. If you mistreat a laser, it fails and just becomes a nice bright LED.<br><br>There might be other reasons too, that's just what I can think of right now.
<p>How does this work without limit switches? I dont want the motors to run past the length of the rail, causing problems! Also, how do you calibrate the speed of the print, say if you are using a more powerful laser (1.0 W) and you dont want to set stuff on fire... No limit switches are used here so how do you zero the axes and keep the print from going larger than the print area? Also, how do you calibrate the step/mm because with the 53.333 step/mm command given in the project the movements is not properly scaled to the commands. If i put in X10 it will move more than 10mm... Thanks...</p>
<p>Does anyone know if Marlin could be used on the Arduino to process the Gcode?</p>
Marlin will work fine. You will have to make sure your g-code matches the Marlin setup, i.e. you will have to choose a Marlin output to drive the laser, and if you choose a fan control signal (for example), then the 'laser on/off' codes in your g-code file will have to be changed to 'fan on/off'.
Cool, thanks. I've seen references before to people using the fan control to drive the laser, but I've never attempted to hack raw Gcode before, so I'm a little out of my depth. Do you just slice an STL as close as you can to one layer thick, and then just crack open a text editor and roll your sleeves up with find/replace? How would it work if you wanted to use the fan speed to give a grayscale output for the laser?<br><br>
<p>Raw G-code is mostly quite simple, They are basically codes telling the laser/print-head/etc to move from A to B, and how fast. Open one with a text editor. Look here for some explanations and a look-up table for the codes: http://reprap.org/wiki/G-code</p><p>I use M106 to turn on/off a fan output. (Yep, &lsquo;find and replace&rsquo;)</p><p>I don&rsquo;t use a slicer for laser engraving. I use Inkscape. it&rsquo;s free and the tools are there for g-code generation. I wrote about it here previously. Look through the recent comments to find it. It was a response to StuartB4&rsquo;s question about Inkscape and text. </p><p>As for greyscale, either the laser burns or it doesn&rsquo;t, no greyscale by adjusting intensity. You will have to dither it. I haven&rsquo;t tried it but I think the &lsquo;Raster 2 Laser Gcode Generator&rsquo; can do it.</p>
<p>I have problem with G-code sender when i'm using GRBL v0.9i. I thing it may be the baud rate that is 115200 in v0.9i and in previous versions it was only 9600. What should i do to make it work?</p>
<p>Will this engrave metal? Like a zippo lighter?</p>
<p>While you couldn't directly engrave the metal, you could probable paint it and engrave that.</p>
<p>nope, the laser from a DVD-Rom drive wouldn't have enough power,and it's dangerous to use on a reflective surface.</p>

About This Instructable

1,213,235 views

4,170 favorites

License:

Bio: I'm just a poor lonesome cowboy... Not really, I am divorced and live in the cold country of Sweden. I am not much of ... More »
More by Groover: Steampunk instant sounds Stamps from craft foam. Pocket laser engraver.
Add instructable to: