Instructables
Picture of The MicroSlice V1 | A tiny Arduino laser cutter
IMG_1226.JPG
IMG_1189.JPG
IMG_1138.JPG

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 | http://thelittlebox.co/theshop

 
Remove these adsRemove these ads by Signing Up

Step 1: To Begin

Picture of To Begin
gantry.jpg
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
IMG_1242.JPG
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
IMG_1244.JPG
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
IMG_1059.JPG
IMG_1065.JPG
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 schmalzhaus.com/EasyDriver.

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.

$19=200

$20=200

$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

#define HOMING_LOCATE_CYCLE ((1<


7 | Replace the code with

#define HOMING_LOCATE_CYCLE ((1<


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 296Next »
cnludwig3 days ago

Hi,

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)  cnludwig3 days 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.

http://thelittlebox.co

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

SilverJimny (author)  megadarkwood1 month 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.

yakeen4u2 months ago

wiring diagrams plzzz

yakeen4u2 months ago

nice

IBH2 months ago

Can i use http://www.hobbyking.com/hobbyking/store/__46905__...

instead of the Easy drivers??

SilverJimny (author)  IBH2 months ago

Yes.

IBH SilverJimny2 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)  IBH2 months ago

Hi,

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 http://thelittlebox.co

Greg

oldsmarracin6 months ago

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)  oldsmarracin6 months 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)

abhilesh3 months ago

hey can we use arduino Atmega8 instead of UNO R3

oldsmarracin4 months ago
Would a 808nm 500mw ir laser diode be good for this?
SilverJimny (author)  oldsmarracin4 months ago

Not really. It would be very hard to focus and quite dangerous to use an IR diode as you cannot see the beam.

Ah but is that the only down side? Cause I am about to upgrade to scanners and would like it to burn a little faster. What would you recomend in the 500mw range? Cause the red ones is a little out of bugget. I had one from the DVD drive and it died so I guess my lm317 driver circuit was bad so I'm going to get a adjustable one from eBay. Just wondering if it will even burn as much stuff as a red one would
Jdukate4 months ago

Hi I was wondering do you connect the relay to the voltage regulator for the laser?Or how does the relay connect to the laser, I am still kinda new to this.

SilverJimny (author)  Jdukate4 months ago

There is a wiring diagram here | http://thelittlebox.co/theforum/viewtopic.php?f=8&...

Make sure you read through the thread as tehre are a few mistakes in the diagram which are corrected later.

casvandegoor4 months ago

Hey, another question: Is the LDO absolutely necessary for powering the fan. I know that laser diodes are particularly prone to current fluctuations, but can't the fan be connected directly to the relay?

SilverJimny (author)  casvandegoor4 months ago

Hi,

The fan is connected directly to the relay, presumably you mean can it be connected directly to the LDO, which it can. However you would of course lose the option to power it on and off via the software.

No I mean: does the voltage of the fan need to be regulated by an LDO?

SilverJimny (author)  casvandegoor4 months ago

Ahh I see. Nope it doesn't.

casvandegoor4 months ago

Thanks for the nice instructable! I was wondering: what are 4 endstops for? I read that endstops are used to determine the home position. Why is 1 for each axis not enough? Sorry if this is a noob question :D

SilverJimny (author)  casvandegoor4 months ago

hi,

1 is enough if you only want to use it for the homing cycle. By having an end-stop at each end of the axis you prevent any potential damage to equipment which could be caused by over-run.

Okay, thanks!
fbappos4 months ago

My MicroSlice is finally done! While sourcing parts on ebay, I ordered twice as many to see if anyone else might want an easy kit, ready to ship.

Msg me if you are interested in a hardware kit with all parts except for the plastics, arduino, and laser diode.

fbappos fbappos4 months ago

Listed my kit here: http://www.ebay.com/itm/221427492332

oldsmarracin7 months ago

cant find info on how to take pics and turn them into laserable files like you did with the robot any help would be awesome

SilverJimny (author)  oldsmarracin7 months ago

They are vector files. Search for .SVG or vector graphics. I've not been able to convert photographs for use on the MicroSlice.

i found a program called vector magic that works great it turns any pic to a plotable svg file it is fully changeable then open it in inkscape and shrink to size hope this helps

turned this to a 38x38mm laser file
Tribal_Biohazard_by_benrobins.jpg

I have used Vector Magic - Its Brilliant!
But for black and white vectors you can simply use InkScape.

Use Path - Trace bitmap - click Update - and you're done!
Also you can vary parameters to brighten/darken features in InkScape. In VG, you ll need to fiddle with the original raster to get the right results. Try it - it works.

here is the laser file
http://www.filedropper.com/3_16
TheCamel5 months ago

Is it only a laser engraver or can it actually cut wood ?

aaron01275 months ago
Can I buy a kit?
SilverJimny (author)  aaron01275 months ago

yes at http://thelittlebox.co

pucksurfer5 months ago
How much did this project cost?
SilverJimny (author)  pucksurfer5 months ago

you can buy kits from £199 at http://thelittlebox.co

jiajunwang6 months 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
1-40 of 296Next »