Introduction: Portable CoreXY Laser Engraver

This instructable is for my build of CoreXY movement style laser engraver. There are a lot of instructables regarding building CNC so I will not go into details as this is not a simple build and certain knowledge of basic CNC construction and setup of electronics is expected.

CoreXY is rather interesting CNC movement style that enables the machine to be more streamlined placing x and y steppers on the same plane making it flat.

More about this style of movement can be read on

Items needed:

2.5W laser - $128 - Any laser would do but I used this one and laser holder

2 x Nema 17 stepper motors - $13.25 x 2

3 Axis Stepper Motor Driver Board - $26.99 - You could make your own with Easystepper driver board or Using GRBL shield for Arduino

4 x LM8UU 8mm Linear Ball Bearing - $1.69 x 4

I realized that there was a part missing. At the start of the project the laser carriage had standard LM8UU ball bearing but as they were cheap ones they had a LOT of play in them so the carriage was redesigned to accommodate s 8mm x 11mm x 30mm copper graphite bushing instead.

2 x 8mm x 400mm Cylinder Liner Rail - $5.49 x 2

2 x 2GT 16 Teeth Timing Pulley and 5M 2GT-6mm Belt - $9.72

8 x GT2 16 Teeth Synchronous Wheel 3MM - $2.46 x 8 - This part is rather controversial as I used wheels with teeth but should be without. The reason is that wheels without teeth are way more expensive than the ones with teeth. Regardless I found that it works fine. You can exchange this part for GT2 16 3mm wheel without teeth.

36W 3.2A 12V Input AC100V-240V Power Supply - $5.79

Also a bunch of M3 nuts and bolts. Various length.

Also access to 3D printer is needed and also access to CNC is preferred.

All parts for 3D printing are embedded as SketchFab previews. click on the small icon on the left of the preview to go to the page of the part and there is download button.

    Step 1: Plate

    Attached are files needed to make the base plate to which all components will be attached.

    If you need files in another file format send me a message and I will add it.

    You will need a CNC machine or a steady hand and a good ruler to cut them out.

    I used 8mm HDF but MDF board is also good. You can use any thickness you like of currently have at hand. You will just need longer screws.

    The plate is 50x50 cm in size.

    Step 2: Printing of Parts - Part 1

    Download the first part of 3D Printed items needed.

    You will find in the file:

    2 x Y axis guides that hold LM8UU 8mm Linear Ball

    Laser holder that hold 2 x LM8UU 8mm Linear Ball

    4 x Holder for Linear Shaft. Use this to attach the shafts to the base board

    8 x Nema 17 distancers. Use this to connect Nema 17 stepper motors to the base board. Before you connect the steppers to the base board add the Timing Pulley Wheel to them. It will be harder to put them on later.

    4 x distancers for Synchronous Wheels. Use 3D model in step 1 to see which wheels need to be distanced from base board and Y axis guides.

    Load them into your favorite slicer program, I used Cura and print them. You can split them apart and reorient them as you see fit for better printing based on your experience. If you need additional help, contact me.

    My settings were

    Layer height 0.2

    Shell thickness 0.8

    Fill density 30%

    Print speed 50 mm/s

    Use M3 screws to connect them. Tolerances are such that you will probably not need nuts on the ends.

    Note: Use longer screws on bottom 4 holes of the laser holder (X axis) as they will be used to secure the belt once its threaded in between the grooves in the bottom of laser holder.

      Step 3: Printing of Parts - Part 2

      Here you can find Feet that are attached to the base plate.

      You do not need to print them.

      Make them as you see fit but do make them the same height.

      Also included is handle for easier transport. Print two of them and place them to the sides.

        Step 4: Construction

        Picture of Construction

        For construction use reference model at the top of the page or on first page OR the one located bellow. It is a full 3D representation.

          Step 5: Setting Up Electronics

          Picture of Setting Up Electronics

          Now comes the interesting part.

          Connect your Arduino board to computer and compile and upload attached GRBL firmware.

          GRBL has added coreXY to its base code but it needs to be enabled and homing cycles adjusted.

          Stepper motors have 4 wires. Use your multimeter to check which wires are pair. To do this set your multimeter in continuity mode and connect one wire to red probe and another to black probe. Do this until you hear a beep. The two wires that have that beep are connected and are pair. Paired colors for used stepper motor (JK42HS34-0404) is Black-Green and Red-Blue. Connect them to your grbl board Black-Green-Red-Blue. If at the end steppers are moving in opposite direction you can reverse them or change the direction in GRBL setup.

          There are a lot of instructables about this if you get stuck. Also you can contact me.

          Connect your steppers to X and Y axis on the board.

          Step 6: Laser

          Now, I had issue with laser once it arrived. The fan was broken and I replaced it with larger one, a 40mm x40mm x10mm Brushless DC Cooling Fan. The holder for laser was made with that in mind but it should still work for stock laser. One additional bonus of larger fan is that in the laser holder I modeled in side vents that help in cooling the aluminium block and the vents at the bottom help in removing smoke from the path of laser beam. This is rather important as a lot of smoke is generated while engraving and smoke reduces the effectiveness of the laser beam.

            Step 7: Controlling and Generating Gcode

            To generate gcode to control the engraver use Inkscape 0.48.5 and a Laserengraver plugin.

            You could also check I have not yet tested this but looks promising.

            Step 8: Conclusion

            If you have any questions or suggestions please contact me.

            Please note that it could take me couple of days to get back to you.

            I need to restate that there are a lot of Instructables regarding building CNC so I did not go into much details as this is not a simple build and certain knowledge of basic CNC construction and setup of electronics is expected.


            LuisD151 (author)2017-08-16

            Do you by any chances have the "source" for the STL files? i have smooth rods and bearing for 10mm (lm10uu) and would like to use that

            nccwarp9 (author)LuisD1512017-10-31

            can you send me in pm your email and I will send source files.
            What CAD program do you use ? they were made in Autodesk Inventor but can be used in Fusion360

            LuisD151 (author)nccwarp92017-10-31


            nccwarp9 (author)LuisD1512017-08-23

            I do but im on a trip right now and dont have them with me. Ill be back in a week, if you can wait I can send them then. In which format?

            LuisD151 (author)nccwarp92017-09-13

            Hello, Sorry to ask, but are you back?, im still interested in those files

            hayttle (author)nccwarp92017-08-30

            It is amazing project. Congrats. Could you share it with me as well?

            Thanks. \o

            LuisD151 (author)nccwarp92017-08-23

            I'm using solidworks for my designs, anything I can edit or convert easily would be just fine

            thanks! :D

            Barasirk (author)2017-10-15

            Bravo, svaka cast!!

            metin arslan (author)2017-08-22


            I want to use arduino sensor sheild for this project. I want to make CoreXY lazer Engraver.Can ı do the same using arduino sensor sheild.

            nccwarp9 (author)metin arslan2017-08-23

            Can you send a link with description of sensor shield? There are a lot of shields out there.

            AndreiD46 made it! (author)2017-07-05

            Thank for an detailed idea. It works )

            nccwarp9 (author)AndreiD462017-07-07

            You Sir are Awesome !!! :)

            JoshS200 (author)2017-05-18

            Is the firmware you've put here pre-modified and ready to just be flashed onto the board with no other modifications? Cheers!

            RobotEyes (author)2016-09-03

            Take a look at my new Engraving software

            Robot Laser Project page :

            At the moment the software is WORK IN PROGRESS currently, in ALPHA testing.

            ALPHA and BETA Versions are totally free.

            Please send an email at with your opinion, thanks.


            hartliebr (author)2016-07-31

            Bravo, splendid smart project.

            So I am making it... At the point to add the electronics.

            I added end points switches, but I do not know here the Zero side (XY) is and I would prefer to know it before entering a home command. Can you help?

            I saw you added the engraver option, which is absolutely great. my only concern is that I find the shafts supporting the spindle holder not rigid enough for engraving. I would suggest to add another shaft behind the two others... I'll try this in next step...

            Where can I download your spindle holder?

            Bravo again and many thanks

            nccwarp9 (author)hartliebr2016-07-31

            If you are not far along with the project I would suggest pausing it. Im currently in process of making a much better design. Not to say this one is bad but its not ideal for when adding spindle. Actually this one is ideal for laser.

            When you place the engraver so that motors are toward you the 0.0 is down and to the left,

            Spindle addon

            hartliebr (author)nccwarp92016-07-31

            Many thanks for your answer, I'll go on with the laser configuration and top there awaiting your new deign...

            Best regards.

            hartliebr (author)hartliebr2016-08-01

            Hello again,

            How do you drive the laser? thru the SpnEn pin? Have you made a driver with some transistor?

            I use an Arduino uno with a CNC Shield and I bought the laser you proposed..

            nccwarp9 (author)hartliebr2016-08-01

            The board I used already has a 12v transistor switch for use with M3 M5 commands. I should not be difficult to make. You can use and of standard transistors like TIP120 and such. If you purchased the same laser as I did it should have a small driver circuit on top of it, just under the fan. So there is already driver attached to the laser. You just need a switch, a relay or transistor to turn on 12V using 5v signal from arduino. That can be made using above listed transistors.


            hartliebr (author)nccwarp92016-08-02

            Thanks I'll do so.

            After installing the electronics, I realized that when using the application "bCNC" (what I was planned to use) when I give the order to the laser holder to go up, it goes up-right, or with the order to go left, it goes down-left...and so on... what should I set as parameter to make it work logically?

            nccwarp9 (author)hartliebr2016-08-02

            Did you use the firmware that is attached to the instructables ? It is GRBL with CoreXY enabled in it.

            hartliebr (author)nccwarp92016-08-02

            My mistake, as I flashed 2 Arduino's, one with your file and another with the "flat" GRBL and then I mixed the boards... :-(

            hartliebr (author)hartliebr2016-08-03

            In the GRBL settings, I had to lower the X and Y max rate to 250 so the steppers do not start to oscillate at hight speed. would there be another setting which could help for better tune? could you show your settings?

            nccwarp9 (author)hartliebr2016-08-09

            Sorry for the delay, these settings work for me.

            $0=10 (step pulse, usec)

            $1=25 (step idle delay, msec)

            $2=0 (step port invert mask:00000000)

            $3=3 (dir port invert mask:00000011)

            $4=0 (step enable invert, bool)

            $5=0 (limit pins invert, bool)

            $6=0 (probe pin invert, bool)

            $10=3 (status report mask:00000011)

            $11=0.010 (junction deviation, mm)

            $12=0.002 (arc tolerance, mm)

            $13=0 (report inches, bool)

            $20=0 (soft limits, bool)

            $21=0 (hard limits, bool)

            $22=0 (homing cycle, bool)

            $23=0 (homing dir invert mask:00000000)

            $24=25.000 (homing feed, mm/min)

            $25=500.000 (homing seek, mm/min)

            $26=250 (homing debounce, msec)

            $27=1.000 (homing pull-off, mm)

            $100=80.000 (x, step/mm)

            $101=80.000 (y, step/mm)

            $102=600.000 (z, step/mm)

            $110=1500.000 (x max rate, mm/min)

            $111=1500.000 (y max rate, mm/min)

            $112=1000.000 (z max rate, mm/min)

            $120=50.000 (x accel, mm/sec^2)

            $121=50.000 (y accel, mm/sec^2)

            $122=20.000 (z accel, mm/sec^2)

            $130=200.000 (x max travel, mm)

            $131=200.000 (y max travel, mm)

            $132=200.000 (z max travel, mm)

            nccwarp9 made it! (author)hartliebr2016-08-04

            sure, but later when I get home from work :) Just an Update, bellow is an image of gantry of small PCB engraver Im curently working on.

            hartliebr (author)nccwarp92016-08-09

            looks very promising. would it fit on the CoreXY?

            Question, on hat pin do you connect the laser driver? SpnEn? Could you please share your GRBL settings?

            Best regards.

            medossa (author)2016-06-25

            Good idea. Will definitely try it. What about accuracy ?

            nccwarp9 (author)medossa2016-06-25

            Accuracy is comparable to other cnc/3d printer machines. It can reproduce fine details.

            About This Instructable




            Bio: "Magic is just science we don't understand yet." Let's face the obvious: yesterday we were nerds, today we're the cognitive elite. Let ... More »
            More by nccwarp9:3D printed in-desk stand for Qi wireless chargerSpring PCB  holderAddon for Warped3 CoreXY Engraver
            Add instructable to: