DIY ‘Flatbed’ Laser cutter

This project is a blast!  Check out the video below for some laser cutting action:

This project was inspired by this build on Instructables.  It was also built to test out GRBL and get familiar with the software before committing it to my Celmacs to CNC router conversion.  I decided it would probably be a good idea to make something simple, and a bit safer to get familiar with the software, plus I figured a laser cutter would be fun anyway, as well as useful!  Presently, the machine only has about 1w of laser power, and can only cut a few different materials.  I have successfully cut thin felt, craft foam, some fabrics, and dark paper.  I have recently acquired a 4w laser diode and housing, and I am in the process of upgrading the cutter and power supply to support it!  Stay tuned for updates regarding that!

Build info:

Firstly, I do not recommend that you try this at home!  You can be blinded, burned, or otherwise injured, and may be exposed to Class IV or stronger laser radiation!

I must remind everyone:  Lasers can blind you, especially a laser strong enough to cut things!  You MUST use safety glasses when working with lasers this powerful!  THERE ARE NO SECOND CHANCES HERE!  The laser driver schematic found below can power a suitable diode in such a manner that it will blind you instantly, and even burn your skin and anything else it happens to get focused on!  I am not responsible if you try to build this, and catch something on fire or hurt yourself!  If you do try to build this, you do it at your own risk!  You have been warned!

The first challenge was to find a suitable laser.  DVD burners and CD writers have lasers capable of burning things in them, but not really enough to actually ‘cut’ something.  Thus began the Ebay search.  I found some 808nm 1W diodes and nice little housing with lenses that I figured I would try.  The worst part about 808nm is that you can’t see it with your naked eye very well (it shows up as a very dull red).  A camera, however, can see it just fine, as evidenced by the video above.  The camera I used happens to show it as a bright whitish purple.  This only makes the laser that much more dangerous, as you have no idea how bright it really is with your naked eye!


The electronics package is really pretty simple, and all the parts you need can be purchased from you favorite DIY/Maker supply place such as Adafruit,  Sparkfun, or Pololu.  The only real exception is the laser and driver, but you can pick one up on ebay for a song most of the time if you do some digging.  Read about GRBL to learn about what hardware you need to run it, and how its used to get you started!

Stepper Drivers:

In the project pages, there is a page about a stepper controller that I developed some time ago.  It is for bipolar motors, and has microstep capability.  Since I already had these on hand, I figured they would work great.

Stepper Drivers for X, Y, and Z

Power supply:

I had a small 12V 4.2 A switching supply and an old computer fan in my junk bin. Viola!  Re-purposed like it was meant for it…

Power Supply / w Fan

4.2 amps is more than enough for the 1 W laser and all the motors.

Control System:

Since I already made a GRBL compatible control board for the Celmacs to CNC project, I just decided to use it and make another carrier board:

Laser Cutter Carrier Board

Laser Cutter carrier board - Bottom

It is very simple, and only has a small 5V Power supply, some filtering, and some jumpers and connectors to tie everything together and set up the stepper motor drivers.  I also included some indicators for Motors enabled and other key items like Power good, laser on, etc.

The GRBL control software needs to have g-code streamed to it to perform cutting actions.  You can test it with a terminal program, but to do anything automated, you need a serial streaming program.  I am currently perfecting the one I wrote and use, and will post it on Github or something when I think it is ready, but for now, you are on your own here!  Check out these projects to help get you started:



Both of the above are written in Java, and will run on pretty much any platform that supports it.  I have used GrblGUI on windows with good success.  Check the Project documentation for each to see what is necessary to get them set up and running.  GrblGUI even has an Android port, though I haven’t tried it yet…

To make G-Code, use Inkscape and the G-code tools extension for Inkscape.  It will take some tweaking for your particular laser, and I cannot give you a set of parameters that will always work, so experiment away!  This is where the fun is anyway!

Laser driver:

Since laser diodes have to be driven by a constant current power supply, I designed a suitable one that could be modulated to allow turning the laser on and off with logic level signals.  The schematic can be found here as a PDF.  The theory and discussion about the driver function is beyond the scope of this guide, but will be covered in a separate project page in the future!

The laser driver was constructed on some proto-board, and mounted into a small housing made from styrene plastic to provide forced air cooling for Q2:

Laser Driver Board Here you can see the tiny fan I used to cool q2′s heatsink, and the meter I am using to monitor the output:

Laser Driver - Back Side

Mechanical Assembly:

I opted to use parts from two flatbed scanners to make the X-Y positioning assembly.  This provides a decent work area, and it would also be cheap and fairly high resolution.  Old scanners are a dime a dozen, and my Local thrift store happened to have several.  You can score some cool mirrors, CFL lamps, and inverters, along with some other neat stuff if you are careful.  Just remember that the CFL lamps contain mercury, so don’t break them open!  I used a positioning assembly from an old CD writer to make the Z axis, allowing me to focus the laser on the fly with G-Code, though it probably isn’t necessary for most applications.  Here is a picture showing the major parts of a scanner that I found at the local Thrift store:

Scanner Parts description

I have boxed and labeled the major parts that you need for the laser cutter.  I have found that scanners vary greatly in their mechanisms.  Before you buy them, take a peak inside and see if it has what you need.  Older scanners tend to have more precision parts, and more metal.  This is important for the Y Gantry mechanism on the laser cutter, because you need two rails, or bearings, to keep it square as it moves.  Also, keep in mind, you will need a stepper motor that works with a driver you have or plan to build.  My drivers are for bi-polar motors, so in my case I ended up having to rewind a motor to get it to work.  That is a project in and of itself, so I wont go into details here…

Y Gantry and Carriage Assembly:

I assembled the Y gantry from the parts of one scanner.  The picture above shows the pieces of the scanner head I used to construct the Y Carriage, where the laser mounts.  The motor, belt and bearings were cut to length and mounted on a frame made from angle and strip aluminum stock. the frame was formed by cutting 90 degree corners out of the angle stock and bending the stock , kind of like a picture frame with a strap around the outside.  This made it almost all one piece and fairly rigid, which is what I needed.  Mounts were fabricated from more stock for the motor, and the pulleys and rails/Bearings.  All of this was screwed together using self tapping sheet metal screws.  Everything was found at my local hardware store and the cost of materials was less than $25. After the frame was built, it was screwed to the X carriage, which I will discuss in a minute.  Here are some pictures to give you an idea of how the frame was made:

This picture shows the rod mounting and some frame detail:

 Rod Mount detail for Y axis

In the next picture you can sort of see the glue joint used to hold pieces one and two of the Y carriage together.  Piece three is on the bottom, below the picture:

Y Carriage, Joint detail

The picture below shows the ‘tensioner’ used to keep the y carriage square with the linear slide system.  A scanner with a ‘rail’ like this is best to use for the Y gantry system because the rail can be trimmed and mounted to the frame easily.  You can just see the glue joint for piece number three of the y carriage:

Y carriage tensioner detail

The tensioner was made from an old cassette player capstan roller (The little rubber wheel) and a small music wire spring.  It keeps the bottom of the Y carriage against the rail so the laser stays square as it moves around.  In the scanner, gravity usually does this, but because we have mounted it vertically, it wont anymore!

Here is a picture of the Y-carriage assembly.  You can see how the rod and rail form the linear bearing system to allow the laser to move to the left and right.  The belt was threaded around the pulleys, then glued into some slots on the top of the carriage to couple the motion from the stepper motor to the carriage.

Y Carriage assy

Here is a picture of the Y stepper motor.  This is one that had to be re-wound to a bi-polar configuration, hence the kapton tape around the can, holding it together since I don’t have a spot welder yet!  I wont explain the rewind process here, but possibly later in a new project page or how to sometime:

Y Stepper Motor detail

X Carriage System:

The X carriage was built from the body of another scanner unit.  Most of it was left intact, with only the top half opening cut out to make room for the Y gantry assembly.  I put some felt ‘Fingers’ over the openings to help encourage the airflow to move through the table instead of around it, to help with fume extraction.  Interestingly enough, these fingers were cut with the machine itself!  The laser made parts for the laser!  Cool huh?

Here is a picture showing some details of the X Stepper motor assembly and gears:

X Stepper Detail

To make the base, I basically gutted the scanner, removing the board, optics, etc, and left the head positioning mechanism intact.  I used the actual plastic for the scanner head to mount the Y gantry.  I had to cut the top opening out, where the glass used to go, with a dremel tool to make room for the gantry assembly.

I had some cool punched aluminum left over from another project, and decided to use it for the table:

Bed and Gantry mounting detail

It is porous, but supportive, and the laser can’t hurt it, so it worked out great!  Plus, it just looks cool!  I just tacked it down to the top of the second scanner with some hot glue after I got everything lubed, cleaned and adjusted underneath.

Final Setup and Initial Calibration

Calibration was a bit tricky, and took some time, but I was able to get it very close!  I used the following method to find the step per unit length constants in GRBL:

  1. Get close by guestimation first!  Try some g code moves for x units and check it with a caliper.
  2. Once you get close, measure the actual distance moved.  Use the following method to fine tune it:
    1. If actual distance is less than commanded, divide commanded by actual and multiply the current steps per unit length by the result.  Enter this new number into the GRBL config setting.
    2. If actual distance is greater than commanded, divide actual by commanded and multiply the current steps per unit length by the result.  Enter this new number into the GRBL config setting.
  3. Repeat steps 1 and 2 for all axis of the machine.
  4. Once you think you have it dialed in, make some test cuts and compare the actual length to the commanded length with a caliper and fine tune it further using the steps above.   It works really good if you focus your laser for smallest spot size, then quickly turn it on then off, move some distance, turn it on and off again repeated several times.  This will give you a pattern of ultra fine dots to use for measuring and adjustment.

Acceleration, step pulse length, max feed rate, acceleration, etc and other settings all need to be customized to your machine.  There is a load of information on the net on how to optimize this stuff for your machine in the DIY CNC forums and similar sites.  Just do some google searches, and you should be able to find something that will be helpful.

To focus the laser, I made a special g-code program that draws a horizontal line while moving the Z axis throughout the effective focus range.  I can compare the spot size to the cut width as the laser moved and find a good place to put the laser when I make cuts to get a good result.  This is tricky, and you will need to experiment with your setup to see what works best.

After some playing, it became very apparent that I needed some kind of fume extraction!  Burning stuff doesn’t smell good, especially if that stuff is a plastic or similar material!  To address this need, I built a simple system from dryer exhaust duct from the hardware store and some foam and fans.

Here is a shot of the adapter that hooks to the laser cutter bed itself:

Fume extractor ducting adapter

The duct in all its glory:

Fume duct

The assist fan and mount:

Fume extraction fan and adapter

I initially thought I would be terribly clever and use a cool little squirrel cage blower I had, mounted in the laser cutter itself, but it proved to be too weak, and I ended up needing this assist fan to make the system effective.

The duct slides onto the assist fan assembly, that fits snugly in a foam piece in the opening of the window.  The whole thing is modular, and can be easily taken apart and stored when not in use.

Window mount

Duct mounted to Window Exhaust

The system works very well, albeit a bit noisily.  For now I wont complain!  I just make sure the fan is on when I am going to run the machine, and the fumes are removed from the work area through the base of the laser cutter.

Well, that about sums it up for the laser cutter!  Feel free to drop me a line, or ask questions about it!  Just e-mail me or post it in the comments!


DIY ‘Flatbed’ Laser cutter — 2 Comments

    • It uses a slightly modified version of GRBL (ported to a different MCU), and the gcode plugin for inkscape. I did not use the streaming program that was released on the instructable, as it didn’t seem to work properly with my system. I do have some code that I have been using, but is is really messy. Follow the links above for a bit more info about both the GCODE plugin and GRBL. You can also e-mail with specific questions, and I will try my best to help..

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>