Laser Cutter Build Night: It's a Fixer-Upper...

So my grand plans of spending this coming Saturday laser cutting amazingly complex and smooth curves, swirls, text, and other shapes isn't exactly going to work out.  The code I modified works, but it is a real fixer-upper.  At first, after a few edits of syntax errors, it did technically move the stepper motors... I would have been dead and gone by the time it actually finished.  I had to place a finger on the motor rotor to feel if it was spinning or not.  It was simply too slow to even notice with the human eye.

After a bit more modification, I "successfully" cut some ovals into some paper using Inkscape and a laser engraving extension to generate gcode.  The Python I modified did make ovals, they just didn't close off and looked more or less scribbled by a toddler.  In addition, the extremes I had to go to to make it work made the movement extremely jittery, although not by the stepper's fault.  I would have taken pictures but it is 11:14 PM and I'd better be off to bed sometime soon.

I will be working to try to salvage this code and if it doesn't work I suppose I will have to think something up.  This is going to get interesting...

Laser Cutter Build Night: Code (Hopefully) Completed!

Tonight I looked over the code and in basically one sitting modified it to a point where I think it should work.  The task was really quite easy, actually!  The man who wrote it was nice enough to leave extensive comments that were helpful in elucidating the meaning of the complex variable names and mathematical equations.  I still don't understand the stuff for drawing circles, but I don't need to modify that code, so who cares?  All I really had to do was change the bipolar stepper motor class to use pulses and direction high/low logic rather than using four inputs to manually step through the motor sequence.  I also deleted the unhold() function that released the holding power on the motors because I didn't have a way to port that to my EasyDriver setup easily and didn't see it as necessary.

A word of warning - I haven't actually tested this code yet!  It is late at night and I have other business to attend to.  Hopefully, I can get the code tested soon.  I noticed that it doesn't use limit switches at all, so I might be able to improve by adding support for those and potentially also for PWM laser modulation to set the intensity of the laser rather than just going faster/slower to engrave/cut.  I didn't bother to post my modded code because it is untested.  However, once I test it, I will post some download links.

Lastly, I sacrificed a black foam food container to the hungry red beam of my laser cutter.  I made five of drawMrSmiley() cut all the way through the foam.  They were pretty sweet looking, but I gave them away to inquisitive people before I photographed them.  This foam cut like butter - even more quickly than the craft foam - I almost couldn't go fast enough to prevent a full cut.  PWM should help!

Laser Cutter Build Night: Hardware Finished!

Tonight I completed all the hardware for the laser cutter and confirmed that everything is working!  I fixed the little issue with the X axis by cutting off the offending portion of the platform support and then retaping the entire platform back on to the moving sled.  Also, just for fun, I engraved drawMrSmiley() on the bottom of one of the MDF supports.  It engraved quite nicely.

I also made some workpiece holders out of small neodymium magnets and hardware nuts.  I saw this idea somewhere online - it wasn't my invention.  These will hold nicely on to the sheet metal platform and hold down the workpiece so it doesn't squirm under the intense heat of the laser. :)

As you can see, the magnets work quite well.  On the right are the seven drawMrSmiley() pieces of cardboard I engraved as a sort of stress test.  They all came out quite well and none of the electronics got too hot.  I ended up giving them to friends.  With the cardboard engraving, I noticed that if I set the speed to be too fast, the laser would sort of "skip" parts of lines because it didn't have enough time to fully burn the path.

I also made a really awesome looking bookmark by cutting (rather than engraving) blue craft paper.  I used some "for" loops to iterate through the area of the bookmark.  The laser cutter ended up making 900 holes.  Heh heh heh.  I like this machine.  :)
I am sure glad I didn't cut those by hand!  Even so, it took a few hours to complete.  However, I like that my laser cutter can cut all the way through the paper.  I'd like to point out that I programmed the code to cut squares, but it ended up making rectangles.  This was because of the slight backlash issue.  Basically, the backlash caused on side of the square to be cut shorter than the other, which affected another side, causing the square to squish just a bit.  Not a big issue, though.  Software to the rescue!

So, all the laser cutter hardware is complete.  I am extremely happy with how it turned out!  I also am looking forward to further enjoying its surprising cutting capabilities.  The tiny laser packs a punch!  Looking into the future, I will be starting to modify the downloaded code that reads gcode and moves the motors.  It shouldn't be a very hard task.

Laser Cutter Build Night: Electronics Attached, Hardware Ready to Go

Tonight was a very productive night!  After the encouraging cutting results of last night, I attached the Raspberry Pi, EasyDriver, and laser driver boards to the laser cutter plywood base.  I used screws and nylon tubing standoffs for the Raspberry Pi and hot glue for the laser driver.  However, since I blindly followed this guide for assembling the EasyDriver pin headers, I had pin headers on the top and bottom of these boards.  This made attachment complicated, because I had wires below the circuit board.  To get around this problem, I raised the EasyDrivers off of the base by sliding their mounting holes over sharpened chopsticks and securing them with hot glue.  I did the same thing for the computer fan that cools these electronics.  I decided not to use an enclosure because of the hassle of managing all the wires inside such a small space and also because of the difficulty of preventing large stresses on the connections.

Looks pretty sweet!  I like how the fan is aligned diagonally to the other boards.  Additionally, I noticed that the LM317 on the laser driver was painfully hot during its tests with the dummy load (this simulates the laser; read the previous post for details), so I used the failed laser diode heatsink to cool it.  I also used a bit of zinc oxide baby cream to stand in for thermal compound.  I believe I read somewhere that this is a good substitute because zinc oxide is the main ingredient in commercial thermal pastes.

As you can see in the pictures, I am using a ribbon cable to attach the control system electronics to the Raspberry Pi.  This will enable me to semi-easily remove and replace the Raspberry Pi if I need it for other projects.  A cheaper controller would have been nicer because then I could just leave it on the laser cutter forever.  However, since I spent upwards of $50 on the Pi and all its extra peripherals and power accessories (and since I only have one), I don't really want to leave it there forever.

I also epoxied the power switch to the edge of the base so it is nicely accessible and stable.

After I completed all these tasks, I looked into the X axis stalling issue.  After a cursory debugging run-through, I found the problem.  The base of the moving platform was running into the Y axix stepper motor when the X axis got to a certain position.  Stupid me.  *Sigh*

Finally, I coded a test function to ascertain the engraving/cutting capabilities of my laser cutter on different materials.  I called it "drawMrSmiley()".  Using this, I can set a cutting speed and an engraving speed and see if it works on different materials and colors of materials.  The square is cut and the face is engraved.  The laser also engraves wood!  I am quite exuberant at these impressive results!

From top to bottom left to right are offwhite paper (engraving speed was too fast), green fabric, green craft foam, and black craft foam.  I also did a cool zipper/zigzag design on wood.  I love this laser cutter!

Laser Cutter Build Night: Permanent Laser Driver Circuit

So, as it turns out, the previous laser diode was totally dead.  That is to say, I really messed up on its soldering, the wires came off, and the stored charge in the capacitor blew it.  However, in a record display of resilience, I removed my 3rd diode from its DVD sled and put it in the Aixiz module after removing the dead one.  Then, I soldered and tested it and it worked!  It can burn!  Bwa ha ha ha ha!

Next, I set about figuring out what current I wanted to run the diode at in the long term.  I had been using 3.3 ohms of resistance for a set current of 375ma, but I read differing views on whether this was too high for a DVD burner diode.  As such, I decided to just try 5 ohms of resistance for a current of 250ma (watch this video for why the current changed with the resistance) and then see if the burning power was significantly decreased.  Using less current, I observed about the same burning power, so I decided to play it safe and go with less current in the long run.  If you have seen other LM317 driver circuits, you know that they use a potentiometer to further control the current.  I am omitting this, because I really don't see why I would adjust the laser power when it is cutting.  Thus, I have set it permanently to be at a good power level.

After that, I planned out how my laser driver circuit would look taken off the breadboard and put on some protoboard stuff I had lying around.  I used graph paper for this.  I wanted to make it as small as possible in order to conserve protoboard for other projects/lasers and also just because I could.  I used this schematic (omitting the reverse voltage diode and potentiometer).  As explained in this post, I also added a transistor to turn the laser on/off.  Eventually, I ended up with this tiny circuit:

It is very small!  However, I would like to point out that small is not necessarily the way to go, nor is soldering at 7 in the morning.  It was somewhat difficult doing the delicate soldering needed to maintain a solder bridge-free circuit.  Additionally, since I soldered at 7 in the morning, I neglected to actually solder the positive of the laser output to the rest of the circuit.  That is only slightly a big deal. :)  I spent a few days saying "Woe is me" etcetera because I couldn't get it to work, no matter what.  Thankfully, I was using a test load to test the driver, instead of the real laser diode.   This is described here.

Anyhow, I eventually got the driver to work, and it works beautifully!  I never knew my laser had so much power!  Maybe the 3.3 ohms of resistance was worse than the present 5 ohms?  Now my laser can easily cut all the way through black craft foam with ease, in one pass.  Clean cut, all the way through!  Slices like butter.  Below is a picture of the foam mincemeat I made while playing with my laser.

As you can see, I thought that the laser deserved a sticker (I got it from free with my order).  I am very happy with its destructive power now! :)  Also, I actually laser cut the right side off of the sticker, because the sticker content was way off center.  Now, my laser cutter has done something useful and shown that it can even cut white paper!  Not plain white paper, though - I tried regular printing paper, but it didn't cut it like it did with the sticker.

Next, I will be securing the electronics of this project onto the plywood base and enclosing them in a box with the computer fan on top for cooling.  I will also be fixing an annoying issue that sprung up (there always has to be some problem, doesn't there?) with the X axis where the motor gets to a certain point and then jitters/stalls.  I am crossing my fingers for WD40 to do its magic.

Finally, for your viewing pleasure, I have included an iPad video taken of the laser cutter decimating a string of bits of craft foam.  Enjoy!

Laser Cutter Build Night: Two Steps Forward and...

So tonight was really an example of the two steps forward and one step back rule, except that I am almost certain I went at least two steps back.  In regard to my two steps forward, I cut the final base for my laser cutter, so now have something permanent to attach things to.  I also attached the XY table and the laser stand.  This laser cutter (rather than one that moves the laser beam itself) is very interesting, as the laser is stationary and the material to be cut moves.  Thus, the laser diode has to be off-center relative to the XY table in order to cut the maximum area of space.
 Also, I made my first successful engraving!  I hard-coded a smiley face into my stepper, laser, & limit swtich test program using basic move X and move Y commands.  I am quite pleased with the results!  The only problem I noticed was a tiny bit of backlash in one cut (click on the image to enlarge and see the backlash on the right eye), but that isn't a big issue right now, as I have far larger problems...
Those are my two steps forward.  Attaching stuff and engraving.  Then, everything went really steeply downhill!  First, I noticed that my cutting area is not one normal sheet of paper, as I had previously predicted.  This laser cutter will actually be able to engrave/cut an area between 1/2 and 1/4 of the size of an 8-1/2"x11" sheet.  The reason is this: even if I have a lead screw for moving the axes that is as long or as wide as the paper, if the sled that moves along the screw and carries the paper is wider than a geometric point (i.e. no width), it will not be able to traverse the whole paper's length without coming off the screw.

To make this clearer, let's say I have a screw 11" long and the sled that moves the cutting table is 5" wide.  The paper's edge is placed at the beginning of the 11" and the 5" sled is at the home position- the paper's edge, the start of the screw, and the beginning of the sled are all in the same position right now.  Then, the sled moves as far as it can, also moving the paper.  It cannot actually move so that the edge of the paper is 11" from its starting position - that would require that the beginning of the sled be at the tip of the lead screw - in other words, disconnected.  So, in reality, the paper can only be cut for 6".  That is basically what happened with my laser cutter.  One step back.

Additionally (this is more of a problem), my laser broke!  I turned it on and it was very dim and intermittenly shone.  Ahhh!  After walking away to "cool down" for a bit, I took off the Aixiz housing.  The laser power wires came off as well.  It seems that whatever problem I had was caused by a soldering defect (me).  Tsk tsk.  One demerit.  Tomorrow I will reattach the wires to the laser leads and try it out again.  The laser may be unharmed, but it is most likely damaged.  I read somewhere that disconnecting the laser diode (or letting its power wires come off) from an energized driver circuit can fry the diode because of the electricity built up in the capacitor.  At least another step back.  :(

"Sometimes, life smiles at you and says, 'I like you.'  Other times, it give you a sneer and says, 'I hate yo' guts, boy!'" -me

Laser Cutter Build Night: Laser Heatsink & Stand

Tonight I machined a nice little heatsink to replace the one that I drilled out too large.  This one is a solid block of aluminum that I salvaged from some machine that was being junked.  It should work well enough without fins, for my purposes at least.  I also made a hole for a setscrew and tapped it.  The whole thing turned out nicely and I like how it looks - clean and professional.  The Aixiz housing goes in the hole and is held in place by the setscrew.
 I also manufactured a stand for the laser.  You say, "A stand?"  Yes, a stand.  When I was building this, I realized that this must be the most unconventional way of building a laser cutter.  In nearly every other machine, the laser (or rather its beam, reflected by mirrors) moves.  My machine, due to its genesis as a CNC machine, moves the platform, not the laser.  This is somewhat annoying for multiple reasons.  One of these is that I may have to further modify the code I am porting to make it work with my unusual setup.  But, I am sure I will make it work!
I may eventually paint this to make it look nicer.  Additionally, I discovered that my laser can cut into black craft foam, slice a green ribbon in two, and etch black CD cases.  Maybe it isn't so underpowered after all!

Lastly, I began to look at the code I will be modifying.  I am using Python code from here.  I need to change the code from controlling bare H-bridges (which take four inputs) to controlling the EasyDriver stepper boards (which take one step input and one direction input).  It may be a challenge, but with the prize of a laser cutter at stake, I am sure I can do it!

Laser Cutter Build Night: Burnage!

It burns!  I finally received my Aixiz housing in the mail and assembled it.  I got mine from  I had also ordered some of their free 650nm (red light) laser safety stickers, but honestly, they were very low quality.  They appeared to have been made on a home laser printer running very low on toner and then cut out by an unskilled toddler.  Hey, I guess they were free.  I would have been severely disappointed if I had paid for them.

Anyhow, the laser stickers are a tangent.  Once I had opened the package, I placed (set; not pressed) the diode into the housing to dissapate heat and desoldered the ribbon cable from the leads.  Then, I pressfit the diode into the housing and soldered on some long power wires.  After that, I assembled the laser housing, double-checked everything, and turned the laser on!

Thankfully, the lens I got focuses the laser instead of collimating its beam.  That way, I can get a very fine point for blasting away at the materials I will be cutting/engraving!  I was able to change where the focal point of the laser was by twisting the lens.

In operation, the laser housing becomes only mildly warm.  This is good, because the hole I made in my heatsink is too spacious.  I do not know if I will be using an external heatsink in the long run.

I tried cutting some electrical tape with the laser, and it smoked, but was nowhere near what I expected its power to be.  Eventually, I was able to cut some tape that was under stress (very slowly).   I also tried lighting a match colored black, and the match smoked, but didn't light.  Very disappointing.  However, with the adjustable focus, I can make black plastic smoke at a fair range.  Fun, but I need a lot more power.  The laser barely scratched some black business card material.

In looking into the problem, I will be evaluating increased current, shortened power wires, and, as a last resort, a $10 glass lens (mine is acrylic) from

Laser Cutter Build Night: Moving Platform and Laser Preparations

Tonight was a bittersweet night.  I had previously attached my really nice build table with double-sided tape and it stayed on really nicely.  However, I failed to plan for the underside supports running into the stepper motor bracket.  To fix the problem, I removed the moving platform (it stuck really well!) and then cut off the offending section of support using a Dremel tool and cutting wheel.  I had heard that MDF dust was bad for one's lungs, so I held my breath for most of the cutting process.  That made it interesting.  After I cut through the board, I chiseled it off.  My perfect purple platform got scraped a bit, but it will still curtail laser reflections.  Pictured is the modified platform.

Additionally, I ordered my Aixiz laser module for heatsinking and protecting my red DVD burner diode.  I will hopefully be receiving this.  However, I haven't gotten it yet, so that sort of tables work on the laser cutter until the package arrives.  :(

As a tiny last bit of work to do, I drilled out an old transistor heatsink to put the Aixiz laser module in for additional cooling.  I used a 31/64 bit, which is the closest I could find to the 12mm module diameter.  I may add heatsink compound to the module before I slide it in, or I may just use a setscrew to hold it in place.
Sadly, that is about all I can do until my Aixiz module arrives.  *Pout face*