DIY - Laser Cutter

Especially for all Bastler, Tüfftler and Self-builders, a nice fine laser cutter can be helpful in order to implement projects faster and more efficiently. And where would we be if there was no instruction on self-construction for such a device.

A MicroSlice with the following properties is to be created in this tutorial:

  • Working area 50mm x 50mm
  • Cutting of paper as well as engraving of wood and plastic
  • Base forms micro-controller, compatible with Arduino UNO R3
  • OpenSource Program
  • Fixed cutting table

Which parts are needed?

1 microcontroller, compatible with Arduino UNO R3/ Raspberry Pi

1 X-Axis Motor

1 Y-axis motor

1 Dual relay

2 Easydriver

2 5V LDO

1 3.3V LDO

2 heat pumps

1 fan 12V Dimensions: 45x45x10

4 Stop switches

9 Magnete

4 rubber feet

5 thumb screws

1 alternative laser diode (this is where a diode is available from a CD drive)

1 laser module

1 laser driver

1 laser lens

1 4mm aluminium tube

2 3mm x 150mm steel rods

1 3mm x 100mm steel bar

17 M3 Microbarbs

6 M2 countersunk heads (6mm)

6 M2 nuts

6 M2 Pan-heads (6mm)

8 M2 Pan-heads (8mm)

4 M3 Nylon screws (6mm)

4 M3 50mm spacer

7 M3 cap screws (8mm)

8 M3 3mm Nylon-spacers

97 Laser cut parts in kit

 

You can find suitable construction plans on this page: http://www.instructables.com/id/MicroSlice-A-tiny-Arduino-laser-cutter/

(The guidance was explicitly omitted to focus on programming.)

Programming

The most interesting thing about the project is probably the question of how the cutter can be controlled. The programming is given here using the example of the Arduino UNO.

First, a corresponding G-code must be generated. The easiest and best way to do this is to combine Inkscape with a laser track plug-in. One of these finds itself as open source and has similar functions as Illustrator, CorelDraw or Xara X. The file format is based on the SVG (Standard Scalable Vector Gravics). In this way, both the laser for cutting, and also in its engraving function can be used later.

Preliminary work

Before the new G-Code can be used, Grbl has to be played. The latest version is Grbl 8.0. In order to be able to use this, the Arduino IDE must be played. During the setup, dr laser must NOT be connected to the circuit. During the configuration process, it switches on and off, if it has been connected. The laser diode should only be connected if you really want to use it for cutting or engraving. This reduces the risk of injury.

Use of the OpenSource under Raspberry Pi

If a Raspberry is used, the G-Code must be generated in advance.

To do this, Grbl has to be configured in such a way that stepper motors and end stations are controlled.

The basic settings that need to be configured are as follows:

 

$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)   -- > Default move
$5 = 500,000 (default seek, mm/min)  -- > Standard Search
$6 = 28 (step port invert mask, int: 00011100)
$7 = 25 (step idle delay, msec)  -> Laser delay
$8 = 50,000 (acceleration, mm/sec ^ 2)  -- > Acceleration
$9 = 0.050 (junction deviation, mm)  -- > Transition Deviation
$10 = 0.100 (arc, mm/segment)
$11 = 25 (n-arc correction, int) -- > Arc Correction
$12 = 3 (n-decimals, int)  -- > Decimal Places
$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)  -> Referer Cycle
$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 of the highest interest are $0 and $1. These two configure the X- and Y-axis. In this case, the number of steps required to move the cutting head in both directions by 1mm must be calculated.

This calculation works as follows:

Number of steps = Number of steps per revolution x Microsteps/Thread pitch

  • 20 steps (18 degrees = step)
  • 8 microsteps
  • 3mm thread pitch

(20x8 )/3 = 53,333333333; this means $0 = 53,333

This value is also inherited for $1, as well as for the z-axis ($2).

In addition, the following values must be adjusted:

$4 = 200 (cutting speed)

$5 = 200 (standard speed, in which the cutting head moves between two orders)

$16 = 1 (Allows the end stops)

$17 = 1 (referencing if the mine is to be locked)

$18 = 69 (Sets the tailor to 0 when the command $H homing is executed)

$19 = 200

$20 = 200

$22 = 2000 (To define the distance the axis occupies after the reference cycle from the end stops)

The final $$-Terminal should look something like this under Raspberry Pi:

$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)

Finally, the laser is focused. For this purpose, a small test run can be started, which outputs an X.

Problem resolution

If a problem occurs during the test run, this may be related to the Z-axis. In order to correct this, the following procedure can be followed:

  1. Download source code from Grbl
  2. Unpack Archive
  3. Open config.h
  4. Find the following code: #define HOMING_SEARCH_CYCLE_0 (1 <#define HOMING_SEARCH_CYCLE_1 ((1 <
  5. Replace the code by: #define HOMING_SEARCH_CYCLE_0 (1 <
    #define HOMING_SEARCH_CYCLE_0 ((1 <
  6. Compile File

Finally, the test run should be able to be carried out without any problems.

Specials

Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. Install ESP32 now from the board manager
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP programming via WLAN