ChalKaat DIY Laser Cutter: The Best Maker Project!

From Maker Gurus: Anirudh Sharma, Nitesh Kadyan and Fabio Besti 

DIY laser cutter

ChalKaat is an Augmented Reality based DIY Laser Cutter

CNC/Laser cutters are invariable tools of modern day fabrication. And there are a lot of open source DIY laser cutter projects that you can make. They are now being widely used from industrial applications to a more personal and mass consumer level. But the cutters today have an indirect interface involving external computers. I can explain this better with an example. Imagine you want to cut a leather bracelet for your arm. To do this with present laser cutters you will have to first take the measurement of your wrist, make a CAD drawing and then only can you cut a shape. There are two problems here:

  1. Taking measurements is a boring and tedious process.
  2. The user doesn’t get the actual feel of the size and place of the final cut. For example 1cm radius circle will look different on different screens at different zoom levels.

But just imagine. What if you could simplify this by placing your hand directly on the work piece and telling the system directly about measurements, using hand strokes. It removes the process of tedious measurement taking and CAD modelling. And the system projects the tool path telling the user about the actual size to be cut and actual position where cutting will happen.

Chal-Kaat(meaning lets cut in Hindi) is an attempt to exactly do the same. Its a direct manipulation DIY laser cutter that’s aware of the strokes being drawn on the workpiece. Chalkaat is a pen stroke based UI for interacting with laser cutters. Here the users can express themselves more directly by working directly on the workpiece. The camera on top tracks the strokes on paper. Different colored markers allow different commands to be executed. We built a laser cutter from ground up, with computer vision and mechanics to optimize for the interface.

What are the stuff required to make this?

  1. 2W laser without driver($84)
  2. Laser driver($36)
  3. Laser heat sink and mount($4)
  4. Build your own Arduino its much cheaper (less than $5)
  5. Wireless programmer for arduino($22.5)
  6. Pololu stepper motor drivers ($12)
  7. Atleast 2 Stepper motors (got them from my 3D printer)
  8. Pico projector($110)
  9. USB HD Web Camera($68)
  10. Stainless steel rods (got them from local market for $4)
  11. SK8 mounts ($8)
  12. SC8UU bearings ($20)
  13. Belts (got them from my 3D printer)
  14. CPU fan for cooling laser($5)
  15. Cardboard base (got them from local market for $2)
  16. Glue (<$1)
  17. 12v-4amps and 6v-3amps power supply (got them from local market for $10)

The total cost comes up to $390. You can reduce the cost of your DIY laser cutter further by salvaging components like motors, drivers, belts, bearings, fan from old electronic gadgets.

How does it work?

DIY laser cutter

As explained above, the ChalKaat project allows you to interact with your cutter and design your results on the work piece. This is how the system works:

  • User places the object to be cut under the system or manually draws the dimensions using hand strokes.
  • System scans the image, generates g-code and projects the scanned image on the work piece.
  • User can now use different colored markers(red and blue here) to translate and scale the projected image.
  • After fixing the position and scale, the laser cutter will now cutout the work piece of that exact scale and position.

This is achieved using a projector and an RGB camera. The RGB camera has two functions:

  1. It tracks the hand strokes by scanning the image.
  2. It tracks the markers for scaling and positioning.

The projector on the other hand projects the scanned image on the material surface used for cutting.

Step 1: Assembling the x-axis of your DIY Laser Cutter

Our first step is to assemble the laser cutter.

  • DIY laser cutter

    Assembling the x-axis of the DIY Laser Cutter on cardboard piece

    Get a small cardboard piece and 4 (8mm) stainless steel rods of appropriate length. We took a small cardboard of 60*50 cms and rods were 45cms each. I got them cut straight from a hardware store to save time.

  • Mount the x-axis rods on the cardboard base. We used sk8 shaft support to mount the two parallel 8mm rods for the base. Note that the laser assembly won’t move properly if they are not parallel.
  • Insert two sc8uu bearings into each x-axis rod. This will help us in assembling the y-axis in the next step.
  • Tightly screw the sk8 shaft to the cardboard base and using some zip ties mount two stepper motors on the two opposite ends of one of the rods. (You can also use only one stepper but then you will need a pulley on the other side. I had extra motors so I used two of them).

Step 2: Assembling the y axis of your DIY Laser Cutter

DIY laser cutter

To mount the y-axis rods, we have to prepare a mount for them. Since we cannot use sk8 here, I got acrylic mounts laser cut from my friend. It had 3 pieces(like in figure) and I assembled them by gluing the three pieces together.

DIY laser cutter

After assembling the y-axis of the DIY Laser Cutter

Also, insert one sc8uu bearing into each y-axis rod (this will be used to mount laser in the next step).

Step 3: Mounting the laser and laser driver

DIY laser cutterIf you have a laser with an inbuilt driver you can only switch ON or OFF the laser and won’t be able to control its intensity. Control of intensity is required if you want to etch a gray scale image. So make sure you have a laser without an inbuilt laser driver.

An 8-bit gray scale image has pixel values between [0, 255]. To etch a gray scale image we will linearly map the gray scale intensity values directly to the laser intensity. For this purpose we need a linear laser driver. We used FlexMod P3 laser driver.

 

The driver accepts input voltage from 5 to 24V and the laser accepts 6V, which is perfect. Don’t exceed the input voltage beyond 7-8 volts. The laser driver needs some calibration for setting up the laser diode current. For our laser, the maximum allowed current was 1.8 amps at 5 volts. The instructions for doing this is in the manual. You can use a multimeter to calibrate the driver. The driver accepts a modulating signal of 0 to 5 V to control the intensity of the laser. This means, at 0 the PWM laser will be barely ON and at 255 laser will draw its maximum current.

DIY laser cutterAfter calibrating the driver, you can connect the laser to it and insert the laser into a heat sink. Now is the time to mount the laser and driver to the y-axis. We used a few pieces of transparent acrylic and drilled holes to mount the laser to it. Mount the laser such that it is focused on the surface where cutting will happen. You should also mount a fan to cool down the laser and driver. A 12V CPU fan should do it.

DIY laser cutter

Belt drives of the DIY laser cutter

Step 4: Hardware Schematics and final board

DIY laser cutter

Custom made microcontroller

Given the option of buying an Arduino or building one, we didn’t want to spend $35 on a microcontroller board. So we built one using this tutorial here. You will need an FTDI chip to program and send serial data if you build your own board. Else, Arduino boards already have a USB to serial converter.

We had a Bluefruit EZ-Link which can wirelessly program the Arduino using bluetooth. It is also used to wirelessly transfer g-code to the microcontroller. You need to properly connect it to atmega328p controller as shown in the schematics. (You can read more about it here)

Connect the two stepper motor drivers as shown in the schematics to control the stepper motors. We got some old A4988 bipolar stepper motor drivers from our 3D printer.

Step 5: Image to g-code

There are two modes in which this DIY laser cutter works :

  1. Cutting: The camera on top of the setup extracts edges from images and applies a basic depth first search algorithm to connect the edges into paths. Paths are nothing but a sequence of (x ,y) co-ordinates. These points are later sent to Arduino which will drive the stepper motors accordingly. The g-code looks something like x1 y1 255, x2 y2 255, x3 y3 0, etc. 255 and 0 here are the intensity of laser. 255 represents full power draw while 0 means off.
  2. Etching: In this case the DIY CNC scans the image line by line for the gray scale values and generates g-code which looks something like x1 y1 z1, x2 y2 z2, x3 y3 z3… where z is the gray scale value at point (x ,y).

Step 6: Arduino Firmware

There are firmwares like GRBL which are already there to interpret g-code for your DIY laser cutter. But, we decided to write our own basic firmware (for the sake of learning). What it does is simple, it accepts current (x ,y) co-ordinates along with the laser intensity level and just draws a straight line between previous (x ,y) and current (x ,y) points. In this way we approximate curves using straight lines.

Step 7: Tracking color markers

I mentioned before that we used red and blue color markers for moving and scaling projections on the workbench of the DIY laser cutter. To make this work you have to install opencv. Opencv is an opensource computer vision library available for multiple platforms. To track color, we first convert images from RGB scale to HSV scale. In HSV scale, each color is assigned a particular value (Hue). The “amount” of color is assigned another value (Saturation) and the brightness of the color is assigned another number (the Intensity or Value). This gives us the advantage of having a single number (hue) for a single color.

Once the image is converted to HSV scale a threshold is applied based on the HSV range of red and blue. After thresholding the position of red and blue markers is calculated. The position of red is mapped to the position of the projected image and the position of blue is mapped to the size of the projected image.

I use Linux so I used xdotool to resize and move windows. But you can also use opencv’s inbuilt functions to do the same.

DIY laser cutter

The Finished Product!!

Follow these steps and you’ll be able to build your very own ChalKaat DIY Laser Cutter in a slim budget!! :)

Demo at National Museum of Science and Technology, Italy

DIY laser cutter

The Chalkaat DIY laser cutter was demoed at National Museum of Science and Technology Leonardo da Vinci, Milan, Italy.

Creators:

Anirudh Sharma (anirudh.me)

Nitesh Kadyan (niteshkadyan.in)

Fabio Besti (fabiobesti.com)

DIY CNC
STAR Makers at DIY Hacking – Nitesh Kadyan | Anirudh Sharma | Fabio Besti

Recommended Posts
Showing 4 comments
  • victor
    Reply

    this project looks so amazing!

    Can you please provide more details of how to make it? like the camera scanning part, the projector part, how to operate the system and etc

  • Madane
    Reply

    Hi a very nice project, any possibility to get more information on the setup with cameras and projector.

    Thanking you in advance

  • Dontra
    Reply

    Great Job! I was Wondering if it would be possible to etch a picture on a drinking glass.
    you really have me looking into getting one now.

  • Kevin
    Reply

    Great job!

    This is really a great way to get into a low cost laser cutter.

    Any chance you could post pictures of the whole setup with the cameras and everything?

    Not being a Linux person and OpenCV being more towards programming the moving and scaling of the projections is beyond my capabilities but still very great way to manipulate everything.

    Thanks for sharing!

Leave a Comment

− 1 = 1

Start typing and press Enter to search