Frankenstein Laser Engraver


This Frankenstein Laser Cutter was built out of an old scanner and printer.
The whole thing evolved around the instructable of Groover and his ‘Pocket Laser Engraver’.
This is a Making-Of. Although a lot, if not everything, of the mechnical construction requires ingenuity I tried to document the complete build process as much as I could. Every scanner and printer mechanics are different so this could not be used as a step-by-step guide. More of a “how it can be done”-guide. I try to cover the questions that could arise in the process of making.

I had absolutely no clue about electronics. All I knew was that RED is (often) + and BLACK is (often) Ground.

Therefore I have learned a lot in this project. Starting from mechanical stuff like self-replenishing brass bearings to electronical stuff like stepper motors and the difference between bi- and unipolar motors to soldering and etching my own board.

The work area is 270mm x 200mm. Just about right do cut some flip-flops for the summer.

It is able to cut :

  • foam rubber
  • tape
  • vinyl
  • paper (nearly every color but white/red)
  • several plastics (could require several runs depending on thickness)

It can engrave:

  • light wood (Balsawood/Poplar)
  • leather
  • bone
  • horn
  • plastics
  • some varnishes
  • blank cds/dvds (purple/blue)

The color is quite important. White and in general bright colors are hard if not impossible to work with.
Those colors reflect the red laser beam to much.
Red(ish) colors are a problem as well as they reflect all light in the red range spectrum.

The building costs (without mispurchase [easydriver clones were for the trash can]) is around 45-55 €.

Arduino(clone) 10 €
Easydriver x 2 20 €
Electronic bits and pieces 10-15€
Aixiz housing /w lens 6 €
Alu-profiles 5 €
————————————- ———-
Total 46-56€

Well I forgot the Laser Safety Glasses (THIS IS A MUST!!):


Laser safety glasses 50 €
New total 100 €

Build time with knowledge acquisition and waiting for shipping was around 4 month…



Before you go an a salvage rampage consider the following hints:


  • The older the printer the better.
  • The newer the scanners the better.

Scanner stepper motors are often superior to printer steppers. They do have more steps in general.

The newer the printer, the lesser is the chance of getting steppers out of it.
All scanners have stepper motors. The older the more likely you are getting a unipolar stepper which we can’t use in this project.


Identifing the parts of old devices is often a pain but I had luck with at least the scanner stepper. For the printer I had found a service manual. But this didn’t helped me alot.

Scanner / X-Axis
The scanner is an old Tevion 2400 dpi scanner. Equivalent to a Microtek Scanmaker 5800.
The stepper is a 96 step bipolar stepper motor. It’s description is NEOCENE 2T354207.
Do not believe anyone other that says this is a 100 step motor. It is not ! It has 96 steps. Not more not less.

I used the bed of the scanner as the basis of the whole construction.
The rail and the timing belt aswell as the sled which carried the photoelectronics is used.
Though the sled needed to be trimmed to give more space for the laser.
There is something special about the stepper. It has a 4 gears mounted on its foreplate.
The gear ratio is luckly negligible.
If you are still curious how to calculate a gear ratio have a look at this page.
It is in german but the math shown there is a universal language (or use the google translator)
The scanner stepper serves as the x-axis.

Printer / Y-Axis
The printer was an old Epson Stylus Photo 925.
The stepper I salvaged is oddly described in the Service Manual.
It says it is a 4-phase 48 pole bipolar stepper motor for 42V (??) but as it is a bipolar stepper there must not be 4 phases but 2.
Turning the shaft by hand and counting the steps I came up with 48 steps.
This motor (and plates for printer head) serves as the y-axis.
In the end I realized that the 48 steps or the motor itself are the weak spot in this built. It moves slower than the scanner stepper and clatters on the rod. No brass fittings here. Vaseline should dampen the negative effect.

Stepper motor specifications:

Tevion 2400 dpi / Microtek 5800 Epson Stylus Photo 925
Phase 2 2
Step angel 3,75°/Step = 96 steps 7,5°/Step = 48 steps
Voltage 5 V 5-12 V
Current ? ?
Resistance 5,5 Ω 7 Ω
Holding torque ? ?

Later in the process I found out that both motors draw less then at least 300 mA.
The Easydriver V4.4 still has the bug with the silk print on it mixing MAX and MIN of the poti.
So in V4.4 they switched the print on the PCB but simultaneously replaced the poti with a reverse poti.
At least this is what I have read in some forums or the comments over at Sparkfun.
Smart 🙂

So long story short:
The poti is set to a low resistance that means the steppers get a fraction of the current the Easydriver can deliver. Max 750mA per coil. The poti is set to roughly 25%. Just so that they dont scream in pain.

Stepper motor pinout:

On my journey through the endless deepth of the internets I often stumbled over question as how to get the correct pinout from the steppers.
You just need to take a piece of wire and connect the pins. If you connect the correct pairs you should feel a resistance when turning the shaft of the stepper.


As I guess you don’t have the exact same old scanner and printer this step is more like a rough lineout of what needs to be done and what must be cared for in special. Different scanner or printers have different mechanics but all in all they have similar structure.
I reused the bed of the scanner and its slide that contained the photo-electronics. All the electronics and glass mirrors where removed. Use a screwdriver and wear protective gloves.

So in the end just the bare plastic remained and afterwards was cut into form to have a slightly wider space for the printer head carriage which later carries the laser module with fan.


Part 1)

This was the most tedious step in the whole project. Took me about complete 8 hours to complete with the help of an advanced craftsman (Father).

The plate of the printer which supported the print head and rod was excessively treated with my beloved metal saw.
I had to cut out pieces of the L-profile to get room for the stepper.

In the original printer structure there was a DC motor where now the stepper resides. Often (hopefully) the washer of the stepper, which is from the same printer, has the same spacing so it fitted nicely into the DC hole.


Part 2

The rod on which the led the print head carrier had some decentered metal nobs on it. They could we easily removed by twisting them and pulling them off with a plier. They revealed very nicely centered metal tips.

I used two T-profiles and drilled holes in them. So I could just plug the tips from both end through and mount both profiles on the L-profile. This step needs to be precise as possible as later on the y-axis might drift off. This might distort the whole drawing/lasering process as the Y-axis isn’t right-angled to the X-axis. Use a caliper is a must. Drawing by eye, too.



To control the EDs you need to get grbl up and running on your Arduino.
I used GRBL 0.8c which can be obtained from
Scroll down to ‘Downloads’ and grab the 0.8c version. It is a precompiled hex file and can only be uploaded to the Arduino with an hex-uploader.
I used

To avoid the ‘out of sync’ error you need to modify the baud rate at whiche the uploader sends to the Arduino from 19200 to 115200. See picture.

To modify the pinout of GRBL you need to get the sources from above link and manipulate the file config.h and recompile it afterwards, of course. There you are able to relocate the pins as you like. This might come in handy if you use another stepper driver board.
To recompile type in the shell:

make clean
make grbl.hex



Before making a PCB you actually want to try out if the stuff is working as you want it to.
So I put together all the electronics on a breadboard first.
Only the motor part in this step.

In the top picture you can see that the Easydriver pins MS1 and MS2 are both connected to 5V. This means they are “pulled high”.
The Easydriver is capable of doing mircostepping.
Microstepping means that the steps of the motor can be devided by either 2 for half stepping, 4 for quarter and so on.

A 96 step stepper motor can do with a eighth microstepping 96 x 8 steps = 768 steps.

MS1 & MS2 – low Full stepping
MS1 high Half stepping
MS2 high Quarter stepping
MS 1 & MS 2 high Eighth stepping

We want eighth stepping so both pins are connected to 5V.

The pinout from the Arduino is as following:

The steps/dir pins of the Easydriver are connected in the following manner:

Easydriver Arduino
X-Step Digital 2
X-Dir Digital 5
Y-Step Digital 3
Y-Dir Digital 6

For each Easydriver the pins MS1 and MS2 are conntected and are both on 5V. This tells the Easydriver to work in 1/8 stepping mode. The Easydrivers have a seperate power supply. Any 12V 600mA+ wall wart should work. Later on the shield the EDs are powered by the Arduino. As is the laser and the fan.

I took a short film from the running prototype. The Easydrivers can get quite hot. For continuously running them, a fan is required.
Ehem… The fan mount is a protoype as well…


Before doing fancy stuff with the steppers they need to be calibrated. This is an essential step and must not be left out.
I have found a nice and explanatory video tutorial over at BuildYourOwnCNC.

In generall it says you need to calculate the estimated step/mm.
From that point you move your desired stepper via gcode (x200 for example). Then you need to take the discrepancy and calculate your new step/mm until it moves the exact range you commanded. But see the video for more information ans some math.
I suggest to create an excel sheet to save you some headache.

You can use every kind of terminal tool to communicate with grbl. I used CoolTerm.
I guess you know how to load a terminal and connect to your Arduino.

In the picture you can see my current calibrated data.


columbus-dayTo communicate with (and send gcode to) the Arduino and its stepper drivers there are several solutions.
You could check the GRBL Wiki. Scroll down and you’ll find plenty of software that deals with GRBL and Arduino.
There are even some nice GUI tools. Nevertheless I used Groovers Gcodesender. Can be found on Groover’s Pocket Laser Instructable (Step 7).

Go ahead and try some g-code commands.
Get your steppers in the correct starting position before powering them (e.g. zero position) and type

G91 G28 X0 Y0

This tells GRBL that the current position is the zero position.

X50 Y50

This moves the ‘spindle’ to the absolute position of X50 Y50

G01 X50 Y50
this would move the spindle 50mm on the X and 50mm on the Y-axis from whatever position the spindle currently resides. This is the relative positioning.

For more information on gcode commands, check the wikipedia page (link).



To mount the laser diode (or a pen for first use) the print head carriage needs to be modified.
I found those cover plates from a desktop computer quite nice that cover empty PCI slots. Besides, one cover just happened to lie in my line of sight. Poor thing.
Somehow I managed to bend, saw, drill and screw the plate to the carriage. Just be creative in this step and keep the precision up. Precision in building is your friend but can be your worst nemesis once you neglect it !

The carriage was not in a 90° angle to the scanner bed. Luckily a a little nut saved the day.
Before that I found a little pulley that used to hold the tape in a walkman. I installed it but realized it bumped against the x-axis rod. Had to remove it. But it is definitly worth to keep for later improvements.


After I managed to get my prototype breadboard running successfully some sample g-code I went on to create a PCB.
Never have done such a thing before but I am a chemical laboratory assistant and chemicals do not raise fear in me.

Again I used Groovers lasershield layout. It comes in EagleCAD format.

I mirror printed the layout on ordinary paper and glued it to a photosensitive copper board and used my dremel clone to drill the holes. As I do not have a fancy exposure timer I took some alcohol and removed the protective varnish.
With a overhead projector pen and a ruler I traced the layout by hand. This pen gave a very nice shiny trace.
I also tried to use a thin permanent marker (acid-resistant / Edding 400 in Germany) but the result was a thick ugly line.
Although with the overhead pen I just needed to draw the trace once and not several times to get a nice coating.

To etch the layout I used Fe(III)Cl. Don’t like the other stuff that is available. They could vaporate, they stink and stuff that contains peroxid can explode when kept in sealed bottles. So Fe(III)Cl is the most convenient solution to store and dispose.

Nevertheless : !! Don’t pour it down the drain !! It is going eat your drainpipe if it is made from copper and it will definitely kill all the little usefull bacteria in your local sewage disposal facility.


I do not know how to solder the pins (that connect to the Arduino pins) from the wrong side so I just placed them on the top side of the PCB and pushed the tips through.

To safe some time I wrote on the PCB were the parts for the laser driver should go. Side note: for test runs without laser you can leave out the circuit for the laser for now.


Part Value Device Package Description
C1 0,1uF C-US075-052X106 C075-052X106 CAPACITOR
D1 DIODEDO-1N4148 DO-1N4148 Diode
D2 SA15A ZENER-DIODEP1-Z12 P1Z12 Z-Diode
FAN W237-102 W237-102 WAGO_SCREW_CLAMP
J1 J30MM J30MM 30 Bridge
R1 3,9 R-US_0414/5V 0414V RESISTOR
R2 2K2 R-US_0207/10 0207/10 RESISTOR
R3 51 R-US_0414/5V 0414V RESISTOR
R4 1k R-US_0414/5V 0414V RESISTOR
T1 2N2222 2N2222 TO18 NPN TRANSISTOR

I have also included an exported shopping list from my electronic merchant as it is sometimes a bit daunting looking up all the parts with different descriptions.

I did order the wrong relay from my electronic supplier so I ripped apart an old pc power supply I found in my electronic chest of wonderments. I am actually quite glad I keep alot of the “old stuff”. Most of the electronics are still working. I rather keep them instead of making the recycling depot happy. They sell it to Africa as “2nd-hand” which is not realy the truth.
Hence I have build this laser. Show people that “the old stuff” is no junk. In the right hands it is as precious as real money.

NOTE #2 (important):
When connecting the Arduino with installed board be sure to connect the external power supply FIRST.
I noticed that when connecting the Arduino to USB first with out power supply the motors start to scream. This does not sound healty. Remember the movie “Screamers” ?


The Lasershield by Groover is great but I found some things that didn’t satisfied my style of operating the laser.

  • The laserhshield isn’t capable of switching the microstepping modes for the stepper motors.
With DVD stepper motors he used there was no need to do so but when using different motors from different devices this can help to drive those motors correct.
  • The relay that controlled the laser to turn on and off I wasn’t very happy with, too.
  • And lastly the wires from the drivershield to the laser diode were too long. Putting the driver next to the laser would be better I guess.

So Tl;dr :

I redesigned the lasershield from Groover.

  1. Removed the laser driver circuit – Replaced with a terminal clamp to attach a ready made laser driver. I got mine from AixiZ at ebay (link).
  2. Added jumpers beneath the Easydrivers to set the microstepping mode.

Download Eagle Schematics for this shield. Fixed by Jduffy54. Thanks !

-> easylaser_shield_fixed(by jduffy54)


The laser diode I used here is pretty strong. Aimed at 300mW this red laser is a Class 3b laser which means goggles must be worn at all cost.
You will get pinkeye and a cataract. It is not like with smoking were you could possible get cancer. No, looking into the beam will definitly get you a cataract. Even the scattered light the diode produces when bouncing of surfaces is stronger then directly looking into the sun. You don’t want to risk you sight. Period.


The laser goggles should filter 600-670nm (OD4+). Those glasses are not cheap but your eyes are precious !
OD4+ means that it does filter 10^-4 of the incoming (red) light.
300 mW * 10 ^-4 = 0,03 mW.

Laser diode pinout:
The first thing to do when having stripped the diode from an old DVD Burner or got it from the internet is to get the polarity of it.
I just took 2 AA batteries that were in a case with + and – and tried the pins of the diode until it lits up.

Laser diodes of this type are placed into an aixiz housing with heatsink. They often come with a focusable plastic lens. Glass lense are better as they give you about 10-20% more efficiency.

Adjust the power of the laser diode:
Before we want to hook up our laser to the circuit we want to adjust the “power” it will get.
With the blue potentiometer this is easy to do.
The red DVD burner diode can handle just about 300mV (respectively 300mA – with a load) but then I don’t know how long it will last.
If you want to increase the lifetime you may want to reduce the voltage the laser diode gets to around 200mV (respectively 200mA – with a load).
Anyways keep your eyes on cheap or donated DVD burners. Sometime the local recycling plant has some of these pearls in their trash. Kindly asking the service personal may get you fresh meat for your laser grinder.
You don’t want to adjust the power of the laser diode with the actual laser diode. Sounds strange but we will be using a so called dummy load.
A dummy load is placed in the circuit instead of the real diode. It acts as a load and you can steadily increase the power while measuring the voltage without damaging the precious salvage diode.
In the picture above you can see such a dummy load. This one simulates a red laser diode. If you are going to use a blue laser you simply need 6x 1N4001 diodes.


Red laser diode dummy Blue laser diode dummy
1N4001 4x 6x
1 ohm Resistor 1x 1x

Again use your breadboard and put the diodes and the resistor in series. On the resistor I measure the voltage. It doesn’t matter on which side you place the resistor. Set your multimeter to 2000mV and put it to the resistors’ ends. Connect the laser pins from the lasershield to + and – on the breadboard.
Load up gcodesender or your terminal of choice and connect to the Arduino.
Send the command “M3” (Spindle/Laser on) and you should get some value on your multimeter.
Turn the potentiometer on your potentiometer clockwise untill it reaches the desired voltage e.g. 300mV. This corresponds to the mW the laser diode will get.
CW = increase voltage
CCW = decrease voltage
Send “M5” to turn off the laser.

Focusing the laser:
To focus the diode I first turned the lens until I got a very small dot on the wall. Then I tried to light a match.
To get a “rough” focus I taped a ruler to my desk with the laser housing at 0mm.
A black sheet of paper (thicker paper like 450gr photo carton) was placed in front of the laser and moved until it burned.
You may need to play around with the lens and the paper distance.

To do the fine adjustment I proceeded similar again but this time I estimated the time it took the laser to burn a hole through the paper. This way you get very close to the perfect focus of the laser.


Defining the area:
In Inkscape you need to set the dimensons of the working area. To do this hit:
File – Document Properties
and change the page to your size

One thing to know before starting the cutting mayhem.
How to get g code for your models.

My weapon of choice is Inkscape with Groovers modified Gcodetools (Metalevel 8).
Inkscape can be downloaded from their page.
Groover’g gcodetool is available on his Instructable.

The drawing needs to be mirrored before creating the gcode.
If you just plainly select all and mirror it, it could give you a strange output inside Inkscape
so before mirroring, select all (Ctrl + a) group everything (Ctrl + g) and mirror it (‘h’).
After it is mirrored ungroup everything (Ctrl + Shift + g) and convert everything to path again (Ctrl + Shift + c).

The gcodetools need to be copied to “…\Inkscape\share\extensions”.

To get the gcode I always do these steps:
1.) Ungroup all your objects (maybe need to do it twice)
2.) Strg + a (select all) – Path – Object to path
3.) Sill selected all -> Extensions – Laserengraver – Laser
4.) Under “Preferences” insert your output folder
5.) Switch back to “Laser” tab. This is important !!
6.) Enter your desired speed. This can be overwrite with Groovers Gcodesender later.
7.) Enter filename Hit Apply. Done
8.) Fire up gcodesender. Connect to your Arduino. Load the .nc file. Set speed if desired.
9.) Put on goggles. !!!
10.) Hit “Print”

Inkscape cheat sheet

Function Shortcut
Select all Ctrl + A
Group Ctrl + G
Ungroup Shift + Ctrl + G
Mirror (horizontal)
Convert object to path Shift + Ctrl + C
Align dialog
Fill / Stroke dialog
Shift + Ctrl + A
Shift + Ctrl + F


Just some cuts and engraves.

The rocket model is from elabz.
He has some nice models on his website, too.

Here are some settings for cutting and engraving different materials:

Craft foam – 2mm – black – 75 mm/min

Balsawood – 1 mm – the dark lines were engraved with 50 and afterwards with 10 mm/min. The outer rings were drawn with 100 mm/min.

The calculator case was engraved with around 75 mm/min.

I have been a EvE player for nearly 8 years so this is my tribute. The blue sculpture is a spaceship called “Caracal / Cerberus” (Copyright @ CCP Games)
The model was sliced with Autodesk 123D Make Software.


Arduino Hex file uploader – used to upload the grbl hex file to Arduino (link)

GRBL – gcode interpreter for Arduino (Atmega328 compatible) – In this tutorial version 0.8c is used (link) / Wiki

Inkscape – open source vector drawing tool (link)

Gcodetools – Inkscape plugin to generate Gcode from vector drawings

modified Groover version (easy and fast) (download)
original Gcodetools (complex) (link)

Gcodesender – tool to send Gcode from PC to Arduino – by Groover (download) / (source)

Lasershield PCB layout – made by Groover (download)

EagleCAD – PCB layout tool – free version available (link)

Autodesk 123D Make – 3d model to sliced objects (link)

Gear ratio tutorial (link)

Stepper motor calibration video tutorial by (link)

Laser safety

README please !!!! – Thread about eye damages done by lasers

Safety glasses – Shops:
Survival Laser – Shop (US) (Germany)


This steps are optional

Since I finished the Frankenstein Laser Engraver I did alot of engraving and made some improvements on the build. Or at least what I think could improve the whole machine.

1. Replaced working surface
The back of the picture frame looks nice and does not get burned to strong by the laser.
But fixing work pieces requires tape. Don’t get me wrong. I like tape. Especially duct tape 🙂 but there is a better solution.
I took the side panel of an old metal PC case and cut out a piece to fit on the scanner ground.
Using neodynium magnets helps fixing your work piece.
Especially harddrive magnets are usefull as they are strong and have a metal plate attached. I found some from old harddrives with 3mm and 4mm thick magents. Just perfect to hold different wood thicknesses.
However if your motors are not well shielded these magnets could cause interefences with them.

2. Shielded cables
I realized that when putting the cables from the motors and the laser to close together EMC troubles can occur.
Re-lay the cables in 90° to each other (motors / laser) minimizes these troubles. Anyway I stumbled over some old USB cables.
Those are often shielded (thick ones) and have 4 wires. The diameter of the cores are not perfect but should work okay.
In the picture where the pins are soldered to the wires I left out the shrinking tubes as it was too much of a hassle to solder the wires to the pins. I later on cut fitting shrinking tubes and sliced them on one side and slid them over the wires.

3. Case for the hardware
I found a site that offers a script to generate nice boxes that can be cut out and put together using box joints. This laser is by far to weak to cut wood but it can engrave it pretty good. I hammered in the dimensions of my desired box and got the pdf to download.
In Inkscape I realigned all the pieces to use the space more efficiently.
With a fine wood saw I sawed the vertical lines and used a jigsaw to do the horizantal lines.
I drilled some holes for ventilation and the cables and put a small PC (southbridge) fan on top of it.
One thing is important. The fan might cause interferences with the Easydrivers so they could loose steps or stop in the middle of the process. It is therefore important to place the fan in a secure distance to the motor drivers.

4. Laser diode replacement
Typically laser diodes found in DVD burners are Small Closed Can-Types. Those should not exceed a current of 300mA.
I have found some interesting threads over at that talk about cheap red laser diodes.
So a good alternative would be the LPC 826 red laser diode. It can be nicley driven at around 300mA. Combined with a glass lense which delivers more optical power to the work piece would be a great improvement.
Those laser diodes are 11$ / 8,50€ (free shipping) and might be worth it.
(eBay link to LPC 826 diodes)


Leave a Reply

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