Step 7: 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.
<p>i am using arduino uno and L293D shield...where do i connect the laser??</p><p>This is my first electronic project. I really dont know much about the circuit</p>
<p>Hi, geceng! In my first attempt, I build this engraver on L293D, but there is no compatible software to use it. All standard CNC working with controllers with &quot;DIR-STEP-GND&quot; control signals, and no way to use L293D without problems. May be - add another ArduinoMini for &quot;Dir-Step&quot; signals emulation. One Arduino - with GRBL software, and another - with dir-step controller emulation on L293D.</p>
<p>no need to add another arduino... use L297 controller...(see sample using ULN2003)</p>
<p>Hi I want to know what is the segment that lies between Alardueno <a href="http://www.sparkfun.com/products/10267" rel="nofollow">Easydrive</a> and what their function is and whether Zerorah</p>
<p>I'm having a whale of a time getting anything to print right at all! My prints are all wonky no matter where I set the potentiometers on the EasyDrivers, I've tried every level of microstepping, including full-step. In full-step mode, my motors are taking only 6.5 steps per mm, which is ridiculously low-res! Here is my attempt at printing a tiny circuit:</p><p></p><p>It's supposed to look like this:<br></p><p>I'm using grbl 0.9j, FlatCAM to make the paths and a python script to turn Z movements into laser toggle commands. </p><p>Help Please!</p>
<p>Maybe I have not read it pretty well, but I can not find anywhere how much voltage should be marked in the image introduced into the circuit? If you need one at all. The answer Thank you in advance!</p>
<p>That jumper is just an alternative connection for the laser. If you follow the paths you will find they connect to the same as the laser screw terminal. The laser circuit will draw power from the arduino and the Vin pin.</p>
<p>This is very awesome! Thanks for this instructable.</p><p>We want to help you to complete your new project, and now there are some products about arduino and 3d printer on our website.</p><p>we can send them to you for free.Here is link:</p><p><a href="http://www.gearbest.com/3d-printer-parts-c_11400/" rel="nofollow">http://www.gearbest.com/3d-printer-parts-c_11400/</a></p><p><a href="http://www.gearbest.com/development-boards-c_11297/" rel="nofollow">http://www.gearbest.com/development-boards-c_11297/</a></p><p>Or this:</p><p><a href="http://www.gearbest.com/3d-printers-3d-printer-kits/pp_242560.html" rel="nofollow">http://www.gearbest.com/3d-printers-3d-printer-kits/pp_242560.html</a></p><p>My email:luffy@gearbest.com </p><p>Luffy</p>
<p>how concerned should i be about eye protection.</p>
<p>Will Inkscape work with text? I'm after a simple text to engraver with as few steps a possible. I'm afraid I haven't a clue how to program and I'm too old to learn :-) Also is the somewhere on-line where I can download .nc files to use with my 500mw Laser engraver. Thank you in advance.</p>
<p>Find a program called CAMBAM, there is a free version that does a lot. It takes a bit of learning (there are some tutorials and a forum) but you can make text of all kinds, there is an add-in to do curved text. You can import dxf files you make in other CAD programs, and you can do some minimal things right in it. Once you have your design or text or some combination of all the above, you can select them, generate gcode to engrave, pocket carve, or some other operations. Then just use those gcode files. No programming necessary but you will have to spend a bit of time to learn how to use it.</p>
Thanks for the info on CAMBAM. I'm not too sure if I have the patience to tackle yet another program, but I'll certainly download it and try my hand at using it. Who knows, I might just be able to handle it. I'm still looking for a download library of ready made engraving files. I'm surprised nobody has thought of it. Oh to be 40 years younger :-)
Thanks RTChoke, I'll go searching for it right now. I appreciate your help. Stu
<p>I actually just set up my machine the other day and used CAMBAM to generate some test text to try it out. I made some text, selected the CAM function to &quot;engrave&quot; and it did that operation, then generated gcode from that. Loaded the gcode into the laser engraver software and ran it, burned the image fine except that the controller needs the proper gcode commands to turn the laser on/off as moves around -- it never turned off so there are burn lines where it went from one letter to another. I think that is easy enough to do by editing the gcode (just open the gcode file in a text editor of some sort) to replace the up/down commands (CAMBAM is set up for CNC routers so tells the router to move in the Z axis, the laser controller ignores that but the Z move commands can be replaced with &quot;laser off&quot; &quot;laser on&quot;) with the M commands (M04 M05 maybe? I have not looked at other code yet to see what the proper commands are) that the laser controller expects. I have not fooled with it yet but will try. Don't be intimidated StuartB4, it is not hard just takes a bit of digging and learning to make things work! I also need to see how the controller and software works to see if I can control the speed and intensity of the laser. More fun!</p>
<p>Inkscape with work with text. There are a couple of ways I have used Inkscape to engrave text. </p><p>To engrave the outline: <br>Type the desired text. Select the text. (Important bit) Select Path-&gt;Object To Path. Select Extensions-&gt;Gcodetools-&gt;Path to Gcode (you could use other options, this is what I use). Go through the various tabs of the dialogue box and set it up how you like (you might need to experiment), but (another important bit) when you hit 'Apply', make sure you are on the first tab (the 'Path to Gcode' tab). </p><p>To engrave solid text:<br>I added an extension for this. It is 305 Engineering's 'Raster 2 Laser Gcode Generator' (you'll find it on the web if you go looking for it). This method takes much longer. I use the slowest setting of 10 pixels per mm - it looks the best. Once you have installed the extension:<br>Type the desired text. Select Extensions-&gt;305 Engineering-&gt;Raster 2 Laser Gcode Generator... Go through the dialogue box and set the parameters you want (default is ok for most). This outputs a number of files, one being the gcode file, another being a preview which is very useful. It will create gcode for everything on the page, so I work in layers and show only the layers I want printed when I do this. </p><p>Though I was inspired by Groover's instructable, I did some things a little different. I have Marlin running on my Arduino instead of grbl. So I make some manual changes to the gcode files to get the it to turn the laser on and off, etc.</p><p>But in answer to your question: Inkscape works with text. </p><p>I will put a photo in of some text engraving I did with Inkscape 'Wooden Spoon' was done with Gcodetools (so it is an outline). 'FIJI' was done with 305 Engineering's extension.</p>
Thanks for that very detailed tutorial. I'll definitely give it a go as soon as I sort out my laptop. It won't recognize it's built in graphics card for some reason. I'll download the latest driver and see if that sorts things out. Sometimes I have to wonder what I did with my spare time before computers. :-)
<p>Can any1 describe the parts in the circuit layout please?</p><p>I'm a total newbie to electronics and don't know the codes.</p>
<p>The relays and other things there are unnecessary unless you want the fans to be controlled, otherwise just wire it to a power source. Also do not use a LED driver for lasers-Their wattage types are different. Just use a lm317 with a 3ohm resistor across the ADJ and VOUT of the regulator. Otherwise if you're lazy like me, simply rely on the Arduino's regulation of 200ma. Hope it helped!</p>
<p>First, sorry for the silly question (Electronic newbie here)</p><p>Second, If I didn't missunderstand, all the components in the circuit layout (Besides the arduino and easydrivers, in the red box at the image), are for controlling the fan and the laser?<br>I mean, can I simply replace all that components with a readymade driver or with the circuit from the instructable that IT-Wizard has linked? (http://www.instructables.com/id/DIY-Laser-Diode-Driver-Constant-Current-Source/?ALLSTEPS) I want to learn what I'm doing, and that instructables is more explained, hahaha (Can I have a little more information in using the LM317 with the 3ohm resistor? That seems to be a lot more simple, and cheap, for a newbie like me)</p><p>Thanks for all the help</p><p>PS: Great Instructable!! :D</p>
<p>Also, if I replace that components with a readymade driver (Or any other method for controlling the laser), what connections I need to make to connect it to the arduino and the easydrivers?</p><p>Thanks</p><p>PS: Sorry also for the bad english, it's not my first languaje</p>
<p>yep you can directly connect fans to the 12v rail and put a driver in between the transistor and the laser. An easier schematic for the arduino nano is attached. Its the bare minimum!</p>
<p>Thanks for the easier schematic, but I have some more questions (Probably they're mostly silly questions, so please, excuse my ignorance).</p><p>- The stepper drivers don't need connections in their 5V pin to work?</p><p> - I can't see the resistances value very well. Are they 100 ohms, 22 ohms and 4.7 ohms? What electric power (In W if I'm not mistaken) they need to have?</p><p>- What represents the &quot;boxes with circles&quot; int he circuit (Marked in red in the attached image)? My understanding says that they are simply connections to the fans and their 12V power source but, why are they represented with that symbol, unlike, for example, the connection to the laser, in blue in the image, that don't have the &quot;box&quot; around the &quot;circles&quot; representing the connection?</p><p>- Also, what are the &quot;box&quot; marked as Interlock switch (Yellow in the image), and what it's his function? I have never heard if that kind of switch but, as I can see in Google, they are some kind of security switch for electronic installations, if is that, what kind exactly i will need?</p><p>- What values have the diode marked in orange? I can't barely see anything in the image.</p><p>- The laser driver doesn't suppose to have a LM317 in it?</p><p>- Aside the fans, all the circuit (Even the laser) are powered with the 5V pin of the Arduino (Powered by USB)?</p><p>Excuse me for so many questions but, as I said before, I want to learn and understand all before attempting anything haha.</p>
<p>Excuse me, I forgot to attach the image</p>
<p>The boxes are just symbols for connectors but they are for the fans, the interlock switch is unnecessary but i have it in my design, you can by pass it if you want, your ohm readings are correct and the diode from the transistor is necessary to connect to the rest of circuit. Everything except the stepper drivers and fans are powered by arduino. The resistors are there to lower the voltage to the laser. The stepper driver's 5v to my knowledge is it's output.</p>
<p>Woah, thanks for the answers, all is a lot clearer now.</p><p>Only three little questions more (Sorry):</p><p>- What type of diode is needed to use? By the symbol I sopose it is a regular one, I mean, not zener or something like that, but also, I'm looking to buy it and there is various types (As I see they only vary in the voltage, but I'm not sure if it is the only difference, and I don't know what kind buy)</p><p>- What Watt value does the resistors need to have? I know that you can calculate it assuming the 5V from the arduino and the Amps needed by the laser (But honestly, I don't know the Amps from the laser or how many can you use as &quot;average&quot; for most of the laser diodes from DVD-R)</p><p>- With this setup, you don't need the LM317 regulator? I've seen it in all the laser drivers schematics I've found so far.</p><p>Excuse the new questions and, as always, thanks for all the help.</p>
<p>As a electronic newbie myself, I bought a laser driver on ebay.</p><p>works fine.</p>
<p>can this work?</p><p>http://www.ebay.in/itm/BTREE-1W-LED-DRIVER-350-MA-1-X-1W-VERY-HIGH-QUALITY-PYROTECH-INDIAN-MADE-/111647275241?pt=LH_DefaultDomain_203&amp;hash=item19feb238e9</p>
<p>It is wierd. It looks like an average power supply.</p><p>Plus, you won't be able to drive it via the arduino. What I have is a PCB laser diode driver.</p>
<p>check this DIY laser driver : http://www.instructables.com/id/DIY-Laser-Diode-Driver-Constant-Current-Source/?ALLSTEPS</p>
<p>I do have the driver but it does't have the relay.</p><p>Can u suggest anything?</p>
<p>There is no relay on mine.</p><p>(see pic) 2 power in, and 2 power out.</p>
<p>Please which pins of the arduino did you connect the laser driver power input (+ve and -ve) to?</p>
<p>Hi,</p><p>For the laser connection, I set the + to the pin 12 of arduino, and negative ti GND.</p>
<p>Alright, I'll do it your way! One more question though, my ready made laser driver has an input rating of 4.2V, please how do I make pin 12 give out 4V or less, this is my first arduino project</p>
<p>Hi,</p><p>Can u please upload the pic of your pcb?</p><p>I mean how you wired it to pin 12 of arduino with GND and VIN.</p><p>I have nearly completed the assembly of whole unit except the laser driver :(<br>I have attached the picture for reference of my assembly.</p>
<p>In the Groover's diagram there is a relay from the arduino data pin#12.</p><p>You are using a ready to use board on your own.</p><p>You can help other newbies like me on how does your arduino turn the laser on off without the relay.</p><p>Did u modified any code and using +5v pin from arduino itself?</p>
<p>I guess the relay on the schema is for the Fan not for the laser.</p>
<p>the software from http://www.banggood.com/300mW-Mini-DIY-Laser-Engraving-Machine-Picture-Logo-CNC-Laser-Printer-p-958368.html?utm_source=youtube&amp;utm_medium=youtube_direct&amp;utm_campaign=300mWMiniDIYLaserEngraving%201223&amp;utm_content=sami seems to work for me, does it for you?</p>
<p>hello, im very new to all this, just got myself a laser cutter/engraver to make projects I designed on solidworks, but im having problems with everything from once I leave solid works! very good work done by you and iv been following the steps on ur video and when I hit apply on the laser option I get- directory does not exist! please specify existing directory at preference tab! im a little clueless to all this and ur help would be most appreciated</p>
<p>Great work!. I'm new to this and hopefully you could assist me with my query.can you use this to etch a circuit on a PCB? or is the laser powerful enough to etch through the copper of your PCB?... Thanks &amp; best regards</p>
No. The copper will reflect the laser rather than absorb the heat. And what heat it does absorb will be quickly dissipated to the surrounding copper.
<p>I am having a weird problem. I created a file. Using a program called All To G-Code Converter, I created G-Code. Then, sending the file to the engraver, it moves in X-Y axis but later doesn't engrave. I ca't make it work using Laser Engraver software at all. Help!</p>
<p>you need to edit file &quot;laserengraver.py&quot; probably located &quot;C:\Program Files\Inkscape\share\extensions&quot; and change starting and ending (M04, M05) command to M03, M04. It should look like this:</p><p><br>&quot;gcode before path&quot;: &quot;\nM04&quot;,</p><p> &quot;gcode after path&quot;: &quot;M03\n&quot;,</p>
<p>Did your laser ever light up? Is it connected correctly ?</p>
<p>AMAZING job! </p>
<p>hi,thank you so so much for nice job.i make it and now i have a <br>problem.i can not send my g code to arduino.</p><p>please helpe me how to send g code to arduino with g code sender and grbl cotroller.</p><p>please introduce vidoes On this problem.</p><p>my email:kambiz3221@gmail.com</p>
<p>Good job</p>
<p>Hi I am trying to use your gcodesender, but when i try to open the COM port, it says the COM port does not exist. What should I do? I am using Grbl 0.9 if that makes any difference.</p><p>Thanks</p>
i have problems with grbl 0.9.<br>i use v0.8c
My version of your Pocket Laser Engraver

About This Instructable


3,841 favorites


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: