About: student at SRM university , Btech mechatronics Loves finding out how things work and trying it myself . Loves anything that's a combination of electronics and mechanical .

A couple of months back while checking out a few laser engravers on aliexpress, I came across some USB powered laser engravers, It was awesome that these could engrave on a variety of materials and also cut out shapes and designs from sticker sheets and paper and doing all this powered by a 5V USB supply. But the downside of these engravers was that they had a small work area, in most cases just 40mm X 40mm which is definitely way too small for my needs.

So I thought why not design and 3D print my own laser engraver from scratch. I started the designing process in FUSION 360 while keeping in mind all the 3D printing tolerances. And finally came up with something really cool. Along the way, I decided to make the laser holder modular so that I can easily replace the laser with a pen or marker for pen plotting. I also added a Bluetooth connectivity feature so that wired connection between your PC and the engraver can be eliminated while transmitting G codes.

So this instructible basically shows how you can make one kind of CNC machine using another kind of CNC machine ;-)


1. A work area of 200 X 162 mm

2. 1000 mW laser module

3. Runs on a USB power source (5 volts)

4. Auto homing feature.

5. Bluetooth communication between the laser engraver and PC.

6. PWM control of the laser.(helps in producing different shades of black when engraving portraits)

7. 102.4 steps per mm resolution

8. The machine can engrave, cut and draw on different materials.

9. Switchable laser and pen modules.

10. Magnetic module holder for easy switching.


FUSION 360 is one of those amazing platforms which allows you to convert those design ideas inside your head into reality. It really helps in expressing your idea about something to others. It's really easy to learn and use. Assembly of the components can be done easily and it helps in the validation of your design by checking for collisions and other problems

I started by designing the base and the Y-axis smooth rod holders. Since the holders consist of two identical components, the mirror feature in fusion 360 got the job done easily. The mirror feature has been used multiple times in designing this laser engraver. Unlike other cad software, one cool thing about fusion 360 is that it allows the designing of multiple components on the same screen with reference to other components, ie the model can be designed in an assembled manner.

The hight of the X-axis guide rails depends on the focal range of the laser you are using. Just make sure that the height of the laser is within that range. The final focusing of the laser beam can be done by adjusting the lens on the laser.

Fusion 360 also allows us to choose the appearance and material of the components so that your final design looks like the real thing. Fusion 360 also lets us convert and save the designed components directly in STL format which makes it easier for the next stage of 3D printing.

I will be sharing the Fusion 360 file of the assembly here,you guys can modify it according to your needs.




    • Sandpaper
    • Small triangular file
    • Screwdrivers
    • soldering iron
    • Hand saw
    • Pliers
    • Lighter
    • Scissors
    • Wire cutters
    • Hand held rotary tool

    Step 3: PARTS TO BE 3D PRINTED :-

    The STL files of all the parts to be 3D printed are uploaded here.

    All the parts are designed such that they can be easily 3D printed without supports.

    I used a TEVO tarantula 3D printer

    • Material : PLA (dark green)
    • Layer height : 0.3mm
    • Infill : 40%
    • wall thickness: 0.8mm
    • Top/bottom thickness : 0.9mm


    The first thing I would recommend you guys to do before starting the assembly is to keep the Fusion 360 assembly file open in your PC. This helps in making the assembly process less confusing.

    Fusion 360 lets us hide all the unwanted components for the time being so that we can concentrate better on the area we are assembling.

    Here I have attached screenshots from Fusion 360 as well as the actual assembly pictures.

    Steps of assembly:

    1. Two of the smooth rods are inserted into one of the Y-axis smooth rod holders. I have designed the bores such that the rods will have a tight fit in order to avoid glue. Gently tap the rods with a hammer if necessary.
    2. Four linear bearings are inserted into the slots provided for it beneath the Y-axis carriage. Here again, it's a tight fit, so the glue won't be necessary.
    3. Now slide the open end of the smooth rods in through the linear bearings.
    4. Insert the other smooth rod holder at the open ends of the smooth rods.

    Make sure that the carriage can easily slide from one end to the other in a smooth manner.


    1. Drill a hole in the middle of the 22 X 22 cm transparent acrylic sheet.
    2. Bolt the sheet on the Y-axis carriage using a single nut and bolt in the middle.
    3. Adjust the sheet until the edges of the sheet are parallel to the edges of the carriage.
    4. Mark the remaining four hole positions on the acrylic sheet with a marker for drilling reference.
    5. Remove the sheet from the carriage and drill all the holes with a 3mm drill bit.
    6. Using a suitable bigger bit and countersink the 3mm holes so that the bolt head won't stick out.
    7. Finally, attach the build plate (acrylic sheet) to the Y-axis carriage using M3 12mm bolts and nuts.


    1. First, fasten the X-axis rod holders and the pillars together using two M3 12mm bolt and nut as shown in the picture.
    2. Now insert both the smooth rods into one of the rod holders just like we did for the Y-axis.
    3. Tight fit the linear bearings onto the X-axis carriage.
    4. Slide-in the carriage through the open ends of the smooth rods and then insert the second holder at the open ends.

    You guys might have noticed that I used 3D printed bearings instead of metals ones. This was because two of the bearings I received were damaged and caused the wobbling of the carriage. The bores of the 3D printed bearings are smoothened using fine sandpaper and oil is applied for smooth motion. They worked just as well as the metal ones.

    Step 7: Converting the Unipolar 28BYJ-48 Motor Into a Bipolar Motor

    There are 2 main reasons why we are converting the unipolar motor into a bipolar motor.

    • Algorithm for controlling a bipolar motor via an A4988 stepper motor driver is simpler than controlling a unipolar motor
    • The CNC shield only supports A4988 stepper motor drivers, thus the shield only supports bipolar stepper motors and hence conversion is a must.

    The conversion can be done in 3 simple steps:-

    1. After opening the blue plastic casing, desolder the red wire from the PCB as seen in the first picture.
    2. Now using a sharp blade, scrape away the common connection between the two coils of the stepper motor as seen in the encircled portion of the second picture.
    3. Now rearrange the wires on the connector based on color as seen in the 3rd picture.

    Watch this video by Make'n'Modify by clicking here for a better understanding of the procedure.


    1. First, fasten the stepper motor to the X-axis motor mount using two M3 12mm bolts and nuts. Fasten a GT2 16 teeth pulley onto the motor axle by tightening both the grub screws.
    2. Now insert the pulley onto the X-axis pulley holder using an M4 40mm bolt as the axle of the pulley as seen in the picture. Remove both the grub screws from this pulley.
    3. Fasten the Motor mount along with the motor to the right and the pulley holder to the left of the X-axis assembly using three M3 30mm bolts and nuts on each side as shown in the picture.
    4. Tie one end of the timing belt to one of the slots provided for it on the X-axis carriage using cable ties.
    5. Run the other end of the belt through both the pulleys and back to the second slot on the X-axis carriage and tie it using cable ties. Make sure that the belt is not too tight nor too loose. It should be springy to the touch.


    1. First, draw a huge perfect cross in the middle of the baseboard
    2. Align the X-axis assembly along the X-axis of the cross as seen in the picture.
    3. Mark the screw hole positions using a marker.
    4. Do the same for Y-axis as well.
    5. Drill the holes using a 3mm drill bit.
    6. Screw the X-axis assembly to the baseboard.


    This is a tricky step, so please refer to the assembly file for better understanding and then follow these steps

    1. Assemble the pulley holder using the Y-axis pulley holder, the pulley, M4 40mm bolt/nut, and metallic washers as seen in the first two pictures.
    2. Now tie one end of the timing belt to one of the slots beneath the Y-axis carriage.
    3. Run the free end of the belt through the pulley assembly which you made earlier and then tie it to the second slot provided beneath the Y-axis carriage.
    4. Once these 3 steps are done we can screw the Y-axis assembly to the plywood base referring the holes for this we drilled earlier after marking the hole positions.
    5. Fasten the stepper motor to the Y-axis motor mount using two M3 12mm bolts and nuts.
    6. Now screw the Y-axis pulley holder and Motor mount to the plywood base. Do this after adjusting both sides to get the correct belt tension. It's okay even if it's not perfect as we will be adding an adjustable belt tensioner later on.


    1. Once both the mount halves are 3D printed, insert the magnets into the slots with a little bit of superglue in between. Make sure that the same poles are facing outside in one half and the opposite poles are facing outside in the second half of the mount.
    2. Fasten the half with a long slot in the middle to the X-axis carriage using two M3 12mm bolts and nuts. The long slot is provided to adjust the height of the laser later on if required.
    3. The remaining half is fastened to the laser module using two M3 12mm bolts.
    4. The MOSFET module is glued on using hot glue
    5. A three-wire connector is made. Insulation from the free end is removed and the wires are fastened to the screw terminals of the MOSFET module. The +ve and -ve of the laser are connected to V+and V- respectively of the MOSFET module. The power is connected to the VCC and GND respectively. The signal wire is connected to sig pin of the MOSFET module.


    1. Once both the pieces are 3D printed, the faces which come in contact with each other ae smoothened using a file and sandpaper until both the pieces slide one inside the other with very little friction.
    2. Now three M3 40mm bolts are screwed in. These bolts are used to hold the pen rigidly inside the setup. A spring is inserted before screwing the middle bolt.
    3. An M3 12 mm bolt is also screwed into one of the holes for the servo motor to push on.
    4. A screw is used to hold the free end of the spring in tension so that writing pressure can be applied.
    5. A servo motor is glued on as seen in the picture.
    6. Wire screw terminals are also glued on using superglue.
    7. An Arduino nano is used here to convert the laser control signals received from the CNC shield into PWM signals which can control the micro servo motor.

    WIRING :

    • +5 Volt - Vin
    • -5 Volt - GND
    • Signal - D10
    • Servo power +ve - 5V
    • Servo power -ve - GND
    • Servo signal - D3

    Once the wiring is done upload the code file "pen_module_code" attached in this step into your Arduino nano.


    The connection is straight forward

    The X and Y motors are plugged into ports marked as X-axis and Y-axis respectively.

    The PWM laser signal is taken from the "Z+" pin on the CNC shield.


    1. The boost converter is set to 12 volts by turning the pot on it clockwise.
    2. The CNC shield is inserted into the Arduino
    3. The cooling fan is glued at the opening provided for it using hot glue. The Arduino along with the CNC shield and the boost module is fixed in the casing
    4. The LED strip is added for looks as well as for power indication.
    5. The 3D printed casing is screwed to the plywood.
    6. An 87 X 75 mm sheet of transparent acrylic with a thickness of 2 mm is used as the casing cover. It can be slide in through a slot provided for it on one of the sides of the casing.
    7. The limit switches are attached in such a way that the button clicks 3mm before the bearings of each carriage collide with the rod holders.
    8. The wires for the motors and limit switches are extended using ribbon wires and the connections are insulated using heat shrink insulation.close to the X-axis pulley as shown in the picture. This is the pin to which the laser module or the pin module will be plugged in. Solder +5 volts, GND and Sig from the CNC shield to these pins. When you are plugging in the modules, make sure its plugged in the right way.
    9. Add a set of male jumper pins
    10. The ribbon wires glued neatly to the plywood base using superglue.

    We are using the boost converter here just to power the ICs in the A4988 motor driver on the CNC shield.

    Each motor draws just 150 mA of current, Therefore you guys won't face any kind of heating of the boost converter.


    In order to send and receive data or in our case G-codes via the HC05 Bluetooth module, first, we should configure the module using AT commands.

      1. Connect the HC05 module to an Arduino Uno as seen in the first picture.
      2. Upload the code attached to this step into that Arduino.
      3. Now go to the serial monitor and type in the AT codes given in the 2nd picture.
      4. Once the configuration is done, disconnect the HC05 module from the Arduino you used to program it and connect to the Arduino CNC Shield according to the circuit diagram in the 3rd picture.

      Since electronic components are used, I used a tiny piece of PCB to make things easier.

      I attached ends of female jumper wires to the Bluetooth module so that it can be easily plugged into the CNC shield.


      This is a code from Github which I slightly modified

      1. In order to upload it First pair and connect your computer to the laser engraver via Bluetooth. Use the default password "1234" if asked for.
      2. Now open the attached code in Arduino IDE and select your Bluetooth port number from the ports in tools.
      3. Now hit the compile and upload button.



      Laser GRBL is one of the best free G-code streamer software for DIY laser engravers. It can directly stream G codes to an Arduino via a com port. It has an inbuilt conversion tool to convert a picture into G codes.

      Click here to download the software.

      After installation of the software, follow the following steps for its configuration.

      1. Set the com port to which your laser engraver is connected.
      2. Set the baud rate at 115200
      3. Go to "Grbl" then Grbl Configuration" and set the values in the window that opens as seen in the pictures.

      The configuration values can be modified according to what suits your machine best.

      Once the configuration is done your laser engraver cum pen plotter is ready for action,

      Go to the "files" button on the toolbar and open the design you would like to engrave or cut out.

      There are options to select what type of engraving you would like to do, the power of the laser, etc which you can adjust according to the laser module you are using. Here I have attached pictures showing the settings I used.

      Plugin the laser module and its time for some testing.

      Step 18: TESTING

      Once the laser is plugged in, its time to test the accuracy and precision of your machine.

      There are a few things we should test:-

      • If the X and Y-axis are moving in the correct direction.
      • If the homing is working or not.
      • If the motor is missing steps due to high friction or belts which are too tight.Adjust belt tension to fix this problem.
      • If the dimension of the designs being printed matches the dimensions which you gave in the software.Recalculate the steps per mm according to the stepper motor you are using.

      The belt tension can be adjusted using a 3D printed belt tensioner. Turn the M3 bolt on it until the right tension is attained. I have attached the STL file of the belt tensioner along with the other files to be 3D printed.

      To test if the motor is missing steps and if the dimensions are right, print a simple continuous geometric figure like a square, triangle or a circle. If the laser starts from one point and perfectly stops at the same point it means that your laser is not missing a single step and is working perfectly. Once the triangle or square is printed, manually measure its dimensions using a ruler and see if it matches with the dimensions you gave.

      Here I have attached videos of the laser starting and perfectly stopping at the same point.

      Step 19: RESULTS

      The machine came out amazing.

      I was able to engrave on a variety of materials like wood, cardboard, leather, plastic, etc.

      Since the motor had about 102 steps per mm, I was able to do tiny engravings with high details like the dragon I cut out from black stickers.

      The engraver was running smoothly on a USB power supply without any problems.

      I hope this instructable will help people looking forward to making their own laser engravers or pen plotters.

      If anyone has any doubts or suggestions, please do let me know through the comments.

      CNC Contest

      Fourth Prize in the
      CNC Contest