Picture of The MicroSlice V1 | A tiny Arduino laser cutter

A few years ago I saw an Instructable where Groover had used a pair of DVD-RW drives to make a pocket laser engraver. Inspired by the idea, driven by the recent purchase of a full-sized 50 watt CO2 laser cutter, and roused by the launch of the Microcontroller contest I took the decision to have a crack at making my own mini laser engraver.

I have called the project the MicroSlice.

What are the features of the MicroSlice?

  • The MicroSlice has a work area of 50mm x 50mm (2" x 2").
  • It can cut paper and engrave wood & plastic.
  • Open Hardware.
  • Uses the Arduino UNO R3.
  • All the software used by the MicroSlice, including the graphics program, is Open Source, and free to use!
  • There is a 300mw 635nm Red Laser Diode, like you'd find inside a DVD-RW drive, which does the cutting & engraving.
  • It comes as a kit to build at home, at a Hackspace, or with your local Maker group.
  • There are 97 Laser-Cut parts in the kit!
  • It will work with your Raspberry Pi.

The MicroSlice won the Grand Prize in the 2013 RadioShack Microcontroller Contest!

Massive thanks to everyone who voted, and of course to Radioshack for the super prizes :)

The MicroSlice V2.0 is now available from The LittleBox Company |

Remove these adsRemove these ads by Signing Up

Step 1: To Begin

Picture of To Begin
The basis for Groover's axis was the two mini stepper motors from the DVD-RW drives. The motors drive the DVD head mechanism which either moved the laser cutting head, or the cutting table. My first starting point was to find a similar set of motors, and a reclaimed laser diode.

However I wanted a slightly different design. Where Groover has the cutting table move on the Y Axis, I wanted a fixed cutting table. To do this I took my inspiration from a gantry crane.

As the cutting table would be fixed, the cutting head must move along the Y Axis instead, but it must also accommodate the X Axis. So the whole cutting head, and the X Axis, must move along the Y Axis. Like a gantry crane moves up and down the dockside.

So I need two stepper motors with threaded shafts. The longer the shaft the larger the potential work-area for the cutting head. I'd also need a pair or runners for the Y Axis gantry to move along.

To cut a long story short I couldn't find what I wanted from the DVD-RW drives I found. The stepper motors had no threaded bolts which could move along the threaded shafts and the laser diodes were firmly pressed into their housings that I was unable to remove them from the DVD-RW without causing damage. So in the end I turned to old faithful eBay to find the parts.

1 x Arduino UNO R3
1 x X Axis Motor
1 x Y Axis Motor
1 x Dual Relay
2 x Easydriver
2 x 5v LDO  
1 x 3.3V LDO
2 x Heat-Sinks
1 x 45x45x10 Fan (12v)
4 x Stop Switches
9 x Magnets  
4 x Rubber Feet
5 x Thumb Screws
1 x Laser Diode   Alternative
1 x Laser Module
1 x Laser Driver
1 x Laser Lens
1 x 4mm Aluminium Tube
2 x 3mm x 150mm Steel Rod
1 x 3mm x 100mm Steel Rod
17 x M3 Microbarbs
6 x M2 Countersunk (6mm)
6 x M2 Nuts
6 x M2 Pan-head (6mm)
8 x M2 Pan-head (8mm)
4 x M3 Nylon Screws (6mm)
4 x M3 50mm Standoffs
7 x M3 Cap-Head Screw (8mm)
8 x M3 3mm Nylon Spacers
97 x Laser-cut parts!

The Microslice parts have been arranged to be laser cut out of two 3mm x 400mm x 300mm sheets of plywood or acrylic. The MicroSlice plans are attached as a zip file below. A pre-cut set of either Plywood or Acrylic laser parts are available from The LittleBox Company.

The MicroSlice uses a 300mw 635nm Laser Diode. It will hurt you if you are not careful. Please take care when handling the laser. Do not look at the beam, do not point it at yourself or anyone else. Do not be an idiot.

Step 2: The First Steps

Where do we start? Well firstly we need to establish a datum; a point at which all other measurements are made. I'll be using the X Axis motor's range of motion, the distance between each end of the stepper motor's shaft, as our datum. I have picked this as we'll need to position the middle of the range inline with the centre of the cutting table. From there we can measure the location of the three bolts holes for the stepper motor, and we'll also be able to set a height above the cutting table.

The motor comes fixed to a backing plate which will be removed and disposed of. The gantry must have several features; it must be able to have the X Axis motor attached to it, it must provide a cross-bar to steady the slider, somewhere for the laser module, and it must also have runners for the Y Axis.

As I'll be cutting the parts from 3mm plywood I'll be using vector graphics to design the parts. There are several programs available to help you with this part. Inkscape is an Open Source vector graphics editor, it works on several platforms including Linux and the Raspberry Pi.

The gantry is to run along two 3mm x 150mm ground steel rods. There will be two sections of 4mm aluminum tube pressed inside the gantry which the rods fit down. The steel rods will take the weight of the assembly meaning that the motors only have to handle position changes and don't have to battle the weight.

There are a total of ten different revisions of the gantry, with the tenth being part of the final build. To begin I kept it simple; mount the motor, get the correct heigh above the cutting table, and make sure it was wide enough to manage the full length of the X Axis.

Each new iteration of the gantry added something new, or corrected an error, or was most often the case it did both; improve, and add to the design.

Version 1 : Added the motor, set the height & width.

Version 2 : Reduced weight with cut-outs.

Version 3 : Corrections.

Version 4 : Increased the depth of the lower cross-bar from 15mm to 30mm to increase stability. The weight of the laser module was causing the gantry to tip forward and bind on the runners.

Version 5 : Added space & boltholes for the X Axis end-stops.

Version 6 : Corrections.

Version 7 : Added space & boltholes for the Y Axis end-stops.

Version 8 : Cut-outs made to the lower cross member allowing clearance for the Y Axis stepper motor.

Version 9 : Added brackets for the cables. This was used in the first dry-run of the MicroSlice.

Version 10 : Corrections made. Final version.

Step 3: Gantry Platform

Picture of Gantry Platform
The gantry platform had to serve two main purposes; support the runners for the gantry, and mount the Y Axis motor. The design constraints were limited to the width of the gantry, and to the length of travel of the Y Axis. I wanted a lightweight platform for the gantry, I also needed to fit the cutting table.

Step 4: The Cutting Table

Picture of The Cutting Table
Everyone loves a honeycomb cutting table on their laser cutter, and I though the MicroSlice should have one.

For extra strength I used two layers of 3mm sheet glued together. There are two teeth at each end which interlock with two sockets on the Gantry Platform preventing the cutting table from moving.

I've pressed some neodymium magnets into the cutting table to help keep any paper secure while engraving / cutting. The area exposed to the laser has been covered with thick aluminium foil. This will protect the table from the laser's heat.

Step 5: Heat-Sinks

The heat-sinks for the two LDOs come from a single reclaimed BGA heat-sink.

1 | Remove the heat-sink from the old BGA.

2 | Add 2.54mm pins to the two LDOs.

3 | File down the pins on the underside of the PCB.

4 | Cut the heat-sink into strips. I measured the width of the LDOs and cut a strip along the line with the screw hole. We'll later use the screw holes to mount the LDOs to the MicroSlice.

5 | Shorten the strip to match the LDO.

6 | Clean up the edges, and remove the black from the surface where the LDO will be attached.

7 | Glue the LDOs to the heat-sinks using thermally conductive adhesive.

8 | Allow the glue to set.

You could also use thermal adhesive tape to attach the LDOs.

I have since found a source for new heat-sinks, check the parts list at the beginning of this instructable.

Step 6: The Lower Deck

Picture of The Lower Deck
The lower deck contains the electronics, and holds up the Gantry Platform.

On the bottom plate goes the Arduino and the dual relays for the fan & laser. On the upper plate sits a 5v LDO to power the fan, and a 3.3v LDO to drive the laser. In front of the LDOs are two EasyDriver motor controllers, they will manage the stepper motors.

The Arduino and the dual relays sit on 3mm M3 spacers. I found that the screw-hole near the reset switch on the Arduino was too close to the connectors to take a screw! I attached the M£ spacer with some double-sided sticky tape, both to the Arduino and the base-plate.

I'll demonstrate how it all goes together during the final assembly.

Step 7: Test Wiring

Before I commit to a final version I wanted to make sure everything worked; so I assembled all the parts, fitted the electronics and set about wiring it all together.

I have used ribbon cable and DuPont connectors for the cabling. I amde sure to label all the wires with little strips of masking tape so I wouldn't forget where all the wires go.

As I'll be using the Arduino with Grbl I can use their guide to help me correctly wire the MicroSlice.

Mid-way through the build I ran into a problem; The EasyDrivers were too close to the Arduino below. I had to move the PCB further out to make space. Rather than put it all back together again, and in anticipation of further complications I left all the electronics from the top plate free from their mountings.

The EasyDrivers need a higher voltage than the USB can provide. I'm using a 12v PSU plugged in to the DC jack on the Arduino. There is then a Vin pin-out on the board where I can take power out to the EasyDrivers and the two LDOs.

The EasyDrivers need to be configured for Microstepping. Put simply Microstepping cuts standard step into smaller steps. With the MS1 & MS2 pins on the EasyDriver connected to the on-board 5v supply we can set Microstepping to 8. This means instead of a lowly 20 steps a revolution we now get 160. For more details on the EasyDriver visit

Step 8: The Final Build

I put some masking tape over the wood to cut down on laser burn and flaring. It does mean that I have to spend a few extra minutes peeling it all off after it has been cut.

I have used PVA glue, and held it together with clamps where I can. The Gantry Frame has to be done pretty much all at once before the glue drys so it can be laid flat to stop it distorting.

I screw some 50mm M3 bolts through the lower plate and used them as guides to assemble the uprights. It also keeps everything square while the glue drys.

The cutting table is covered with some thick aluminium foil. The magnets are pressed in, a strip of masking tape is stuck over the area where there will be no foil. The aluminium is then pressed onto the table and a knife cuts off the excess.

Step 9: The Wiring Loom

Keep the wires short, make sure there are no short circuits.

I've picked a 12v fan and will powered it with the 5v LDO. We want a large slow-moving volume of air rather than a fast low-volume. Keeping the wind-speed low helps things stay on the cutting table.

I followed the Connecting Grbl section on the Grbl Wiki to wire up the MicroSlice. The fan relay was connected to the Coolant pin (A3), and the laser diode relay to the Spindle On / Off pin (12).

Step 10: Software & Setup

The MicroSlice uses Grbl v0.8 for motion control. Grbl converts G-Code into commands that the EasyDriver stepper motor controllers understand. We need another program to send the G-Code to Grbl, for this I'll be using Zapmaker's Grbl Controller v3.0.

Before you can begin you will need the Arduino IDE, available from the Arduino website.

Make sure your Laser Diode is not connected to the power lines while you are configuring your MicroSlice. The Laser will power on & off during the setup & configuration process if it is connected. Only connect the Laser Diode when you are ready to cut or engrave.

Grbl's wiki shows you how to flash the pre-compiled Grbl hex file onto your Arduino.

For those of you who have a Raspberry Pi, as I do, you'll be pleased to know that you can control the MicroSlice using your Pi! Zapmaker has a step-by-step guide to install Grbl Controller on a Raspberry Pi.

We'll need to generate some G-Code. The best way to do this is to use Inkscape combined with a laser engraver plug-in. An Open Source vector graphics editor, with capabilities similar to Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector Graphics (SVG) file format. I've been using the same plug-in Groover made for his engraver, he has done a short video detailing its use.

Before we can use our new G-Code we'll need to configure Grbl to use the stepper motors and end-stops.

You can use either the Arduino IDE Serial Terminal (CTRL + Shift + M) to send commands to Grbl. Sending $$ to Grbl displays the configuration settings (yours might look differently);

$0=755.906 (x, step/mm)
$1=755.906 (y, step/mm)
$2=755.906 (z, step/mm)
$3=30 (step pulse, usec)
$4=500.000 (default feed, mm/min)
$5=500.000 (default seek, mm/min)
$6=28 (step port invert mask, int:00011100)
$7=25 (step idle delay, msec)
$8=50.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=0 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=25.000 (homing feed, mm/min)
$20=250.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=1.000 (homing pull-off, mm)

The settings we are interested in are $0 & $1. These two setting configure the A & Y Axis. We'll need to calculate the number of steps to move the cutting head 1mm in either direction.

We calculate it thus;

Number of Steps = Number of steps per rotation x Microsteps / Thread Pitch

20 Steps-a-Turn (18 Degrees a step) x 8 Microsteps (MS1 & MS2 Connected to +5v on the EasyDrivers) / 3mm Thread pitch (3mm of travel per rotation).

(20 x 8) / 3 = 53.333333333

So type $0=53.333 and $1=53.333 into the terminal to setup the axis. You will need to do a soft reset for the changes to take effect ($X).

Or you can use Zapmaker's Grbl Controller to adjust Grbl. You can access the Grbl Settings via the advanced tab. You'll still need a soft reset after clicking apply.

You should also set;

$4=200 This sets the default speed the cutting head moves at while working.

$5=200 This sets the default speed the cutting head moves at while moving between jobs.

$16=1 This enables the end-stops.

$17=1 This enables homing ($H), mine locks up when I try to run the homing cycle. To enable this function you will need to edit the source code for Grbl and recompile the .hex file. Instructions showing how to do this are at the bottom of this Step.

$18=69 This will make the cutter zero in the lower left of the cutting table when the $H homing command is executed. For an in-depth explanation of this function see the Grbl Wiki.



$22=2.000 This sets the distance the Axis moves away form the end-stops after the homing cycle.

There are in-depth explanations for each of Grbl's settings on the Grbl Wiki.

Check your configuration is correct by typing $$ into the terminal. You should see something like this;

$0=53.333 (x, step/mm)
$1=53.333 (y, step/mm)
$2=53.330 (z, step/mm)
$3=10 (step pulse, usec)
$4=200.000 (default feed, mm/min)
$5=200.000 (default seek, mm/min)
$6=28 (step port invert mask, int:00011100)
$7=50 (step idle delay, msec)
$8=100.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=1 (hard limits, bool)
$17=1 (homing cycle, bool)
$18=69 (homing dir invert mask, int:00000000)
$19=200.000 (homing feed, mm/min)
$20=200.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=2.000 (homing pull-off, mm)

The final step is to focus the laser. I loaded a small test sample, in this case it was an X, and let the sequence run.

You can power the Laser Diode On & Off using the tick box labelled Spindle On on Zapmaker's Grbl Controller.

The first time there was nothing there, but are a few turns of the lens I managed to get a mark on some paper. After that all it needed was a bit of fine tuning and the laser was correctly focused on the cutting table.

I made some 3mm spacers to go under the lase module to lift it up for when I wanted to engrave some 3mm plywood. Doing so meant I didn't have to refocus the lens each time I wanted to swap materials.

Editing The Source Code.

During testing I found that Grbl would hang on the $H (homing) command. I suspected this was a problem with the Z Axis as the MicroSlice does not have one.

To fix the probem we must remove the Z Axis options from the Homing Cycle. The commands are contained within the config.h file in the source code.

1 | Download the source code from Grbl (link).

2 | Unpack the archive.

3 | Open config.h in your favourite text editor.

4 | Locate the following code

#define HOMING_SEARCH_CYCLE_0 (1< #define HOMING_SEARCH_CYCLE_1 ((1<

5 | Replace the code with

// #define HOMING_SEARCH_CYCLE_0 (1<

#define HOMING_SEARCH_CYCLE_0 ((1<

6 | Locate the following code


7 | Replace the code with


6 | Save

7 | Recompile the grbl.hex file. I used my Raspberry Pi to recompile the hex. In case things go wrong I have included the modified hex file for you below. You'll need to flash your Arduino with the new hex.

If everything has worked, and all the settings are configured correctly you should be able to run the homing cycle ($H) and see the MicroSlice zero itself and then you should be ready to go create!

1-40 of 315Next »

What is the blue pcb with the segment display on the first picture of step 1?

george178 days ago

what is the total cost?

bdannau1 month ago

Is it me or is

6 | Locate the following code

7 | Replace the code with

replacing one bit of text by the same bit of text??

PeterJ72 months ago


If I got the wood/plastics kit from LittleBox and used a "class 1M 1500mW 5V laser" from a few dvd roms and a dvd RW, is there enough power in one of those to do the job?
What would you say were the pros/cons of those diodes, or are they all pretty much the same at that level?

SilverJimny (author)  PeterJ72 months ago


Without being able to test the diode I can't really say what the quality will be. To be honest you'll be better off using a blue ray diode rather than a red one as the red doesn't work anywhere near as well as the blue.

Thanks for the reply!
I dont have access to spare or broken blue ray drives at the moment but plenty of DVDs.

Im at work with nothing to do so I just ripped one of the drives apart, as you do, and have the diode (three more to go), I just need to find out exactly what it is before I do anything with it.

nM being the most important for safety glasses.


Found it!
Last page!

MihaelD2 months ago


i am new here so If these questions are not belong here, please tell me. my question is:

$4=200 This sets the default speed the cutting head moves at while working.

When I change to biger number motor speed remains. I would like to change the speed of motor.

$5=200 This sets the default speed the cutting head moves at while moving between jobs.

In this line when I change the number the speed of motor are change. this work.

all compliments to the site and to the pople who published there work.

SilverJimny (author)  MihaelD2 months ago


which firmware version are you using? You may need to alter the acceleration which I think is $8. Set it to something like $8=100 and see if that helps.



I just burn arduino so when I get new one l tray.

REA4 months ago

Is there any way to add a Z axis to this so one could use a marker or drag knife, or is it pretty much just for lasers only?

SilverJimny (author)  REA4 months ago
There is always a way. I would look at using a solenoid connected to the laser on/off control to press a pen down onto the material. I'm not sure you could get enough force down for a knife though.
wenoptics5 months ago

Why can neodymium magnets do anything to keep paper secure while engraving?Do you mean while engraving a paper? And sorry about my English...

SilverJimny (author)  wenoptics5 months ago

used with something magnetic they can clamp the paper down. They will not of course attract the paper.

Thanks really for your reply, Jimny.Gotcha! And it's really a great work! ;p
jiajunwang1 year ago

Hello, inspired by your project and thanks to your help, I build mine. I am using a 100MW blue laser.

2014-03-23 17.53.02.jpg2014-03-23 17.52.23.jpg2014-03-23 01.24.40.jpg2014-03-23 01.24.46.jpg2014-03-10 23.00.12.jpg

Great build! I would love to see a couple more pictures of your rig... side and back, maybe bottom?

Sorry mate, I disassembled it already. If you are building one, I strongly recommend you utilizing the DVD drive to the maximum, i.e. using the linear bearing on the drive. I built mine from scratch, and the accuracy suffers sometimes.

OK, Thanks for the reply! :)

Lighter colour materials are more difficult to work on than darker materials. As having a broader spectrum tends to reflect more energy back rather than letting it get in and do the trick. Just my experience...
SilverJimny (author)  jiajunwang11 months ago

wow that's great!

jiajunwang1 year ago

Hi, does the color of the laser influence the performance/efficiency? or the power output is the only thing that matters?

SilverJimny (author)  jiajunwang1 year ago

Yes, you'll get more power in a blue ray diode than you will from an equivilent red diode.

As a follow up question, does the color of the laser make a difference in what materials and/or color of material that can be cut?


cnludwig6 months ago


Could this cut shapes out of adhesive backed paper? I would like to use something like this to make stencils for spray painting and etching. It would not need to be super accurate, but I don't want to have to use a knife or scissors to cut the shapes. Thanks, great instructable.

SilverJimny (author)  cnludwig6 months ago

I would expect so. It cuts paper without issue. There is a new blue laser for the MicroSlice which gives very good cut-lines too.

megadarkwood7 months ago

Is it possible that you can use a stronger laser, and cut wood?

SilverJimny (author)  megadarkwood7 months ago

it is possible to add a higher rated diode. It will cut some types of wood but it will depend on thickness, and the laser diode you are using.

yakeen4u8 months ago

wiring diagrams plzzz

yakeen4u8 months ago


IBH8 months ago

Can i use

instead of the Easy drivers??

SilverJimny (author)  IBH8 months ago


IBH SilverJimny8 months ago
Sir how can use it can give me a schemetic or something like that?Actually I am new to Electronics!!! Sorry to trouble you.
SilverJimny (author)  IBH8 months ago


I don't have a schematic for those stepper motor drivers. You will have to figure it out yourself.

You could always get some EasyDrivers from


hey do you know how to make it move faster i am using a pen for now but would like it to move faster cant tell witch command it is

SilverJimny (author)  oldsmarracin1 year ago

Increase the feed speed, and when you create the g-code increase the mm speed in Inkscape.

thanks so much now to just use a pen for now :/

Maybe try a pen knife as well. If you can't cut with laser, at least you can still cut. Add a z-axis to push the knife down and maybe a rotational element to direct the blade direction or else only program the g-code to draw in horizontal lines (if that is the direction of the knife blade)

abhilesh9 months ago

hey can we use arduino Atmega8 instead of UNO R3

oldsmarracin10 months ago
Would a 808nm 500mw ir laser diode be good for this?
1-40 of 315Next »