Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
equipment:buildlog_laser_cutter [2014/11/22 02:26]
tim
equipment:buildlog_laser_cutter [2017/04/05 00:38] (current)
Line 4: Line 4:
 template ​     : templates:​equipment template ​     : templates:​equipment
 picture ​      : :​equipment:​lasercutter:​lasercutter.jpg picture ​      : :​equipment:​lasercutter:​lasercutter.jpg
-zone          : 3D Printing ​+zone          : # 
 name          : Buildlog.net 2.x 40W Laser Cutter #  name          : Buildlog.net 2.x 40W Laser Cutter # 
 manufacturer ​ : N/A # Manufacturer manufacturer ​ : N/A # Manufacturer
Line 12: Line 12:
 owner         : [[user:​tim:​start|Timothy Schmidt]] #  owner         : [[user:​tim:​start|Timothy Schmidt]] # 
 type          : Laser Cutter# Generic name of the tool (Table Saw vs. 10" Contractor Table Saw) type          : Laser Cutter# Generic name of the tool (Table Saw vs. 10" Contractor Table Saw)
-status_ ​      : ​Operational ​#+status_ ​      : ​No Longer at LMN #
  
 ---- ----
Line 25: Line 25:
   * Download the inkscape template file [[http://​wiki.lansingmakersnetwork.org/​_media/​equipment/​cutting-surface.svg|here]]. ​ If you don't use the template file, it's important to set all document units to millimeters.   * Download the inkscape template file [[http://​wiki.lansingmakersnetwork.org/​_media/​equipment/​cutting-surface.svg|here]]. ​ If you don't use the template file, it's important to set all document units to millimeters.
   * Open it in inkscape and draw the object you'd like to cut   * Open it in inkscape and draw the object you'd like to cut
-  ​* Save the drawing to SVG or PDF +    ​* Save the drawing to SVG or PDF 
-  * Upload the drawing to [[http://​laserbeta.lansingmakersnetwork.org/​|Laser Beta]] +    * Upload the drawing to [[http://​laserbeta.lansingmakersnetwork.org/​|Laser Beta]] 
-  * Download the generated G Code file+    * Download the generated G Code file 
 +  * Or 
 +    * Use this plugin to generate gcode in inkscape: [[https://​github.com/​ajfoul/​thlaser-inkscape-plugin/​tree/​master]]
   * Load the G Code file in Pronterface,​ or onto an SD card   * Load the G Code file in Pronterface,​ or onto an SD card
   * Cut!   * Cut!
Line 37: Line 39:
 The laser is controlled by sending commands ("g codes"​) to it via USB->​serial connection. ​ Additionally,​ the laser control electronics can read files containing these commands from an inserted SD card without the aid of an attached computer. The laser is controlled by sending commands ("g codes"​) to it via USB->​serial connection. ​ Additionally,​ the laser control electronics can read files containing these commands from an inserted SD card without the aid of an attached computer.
  
-There are several ways to command the laser to fire: +There are several ways to command the laser to fire, each is enabled or disabled at compile time, according to the following option in Configuration.h
-  ​- G0 / G1enabled by the LASER_FIRE_G1 option in the laser'​s firmware, ​G0 moves the laser to a specified set of coordinates ​**without** ​firing, a G1 command moves the laser to the specified coordinates ​**while** ​firing. +  ​* LASER_FIRE_G1 (**default: on**): G0 moves the laser to a specified set of coordinates ​__without__ ​firing, a G1 command moves the laser to the specified coordinates ​__while__ ​firing. 
-  ​- M3 / M5enabled by the LASER_FIRE_SPINDLE option in the laser'​s firmware, ​M3 turns the laser on in place, without requiring it to move.  M5 turns the laser off in place. + 
-  ​- E movements: enabled by the LASER_FIRE_E ​option in the laser'​s firmware, any movement in the E axis (which represents the extruder when controlling a 3D printer) fires the laser. ​ In this way, the laser can make use of unmodified g code generated for 3D printers.+  ​* LASER_FIRE_SPINDLE (**default: on**): M3 turns the laser on in place, without requiring it to move.  M5 turns the laser off in place. 
 + 
 +  ​LASER_FIRE_E ​(**default: off**): Any movement in the E axis (which represents the extruder when controlling a 3D printer) fires the laser. ​ In this way, the laser can make use of unmodified g code generated for 3D printers.
  
 Each of these firing controls accepts the following parameters, which can also be manipulated without firing or moving the laser by using them with the M649 command: Each of these firing controls accepts the following parameters, which can also be manipulated without firing or moving the laser by using them with the M649 command:
Line 48: Line 52:
   G0 X5 Y6 Z7 F8   G0 X5 Y6 Z7 F8
   ​   ​
-  ; Moves to (5, 6, 7) at speed 8, laser pulsing 1.2 times per millimeter, for 50ms, at 50% power, with serial diagnostics messages, ​fire in pulsed ​mode. +  ; Moves to (5, 6, 7) at speed 8, laser pulsing 1.2 times per millimeter, for 50ms, at 60% power, with serial diagnostics messages, in Pulsed ​mode. 
-  G1 X5 Y6 Z7 F8 P1.2 L50000 ​S50 D1 B1+  G1 X5 Y6 Z7 F8 P1.2 L50000 ​S60 D1 B1
   ​   ​
-  ; Without moving in any axis, pulse the laser for 50ms at 50% power, with serial diagnostics messages, ​fire in continuous ​mode. +  ; Without moving in any axis, pulse the laser for 50ms at 60% power, with serial diagnostics messages, in Continuous ​mode. 
-  M3 S50 L50000 D1 B0+  M3 L50000 ​S60 D1 B0
   ​   ​
   ; Without moving in any axis, turn the laser off.   ; Without moving in any axis, turn the laser off.
   M5   M5
   ​   ​
-  ; Without moving in any axis or turning the laser on or off, set the laser power to 50%, pulse length to 50ms, pulses per millimeter to 1.2, fire in pulsed ​mode, without serial diagnostics. +  ; Without moving in any axis or turning the laser on or off, set the laser power to 50%, pulse length to 60ms, pulses per millimeter to 1.2, in Pulsed ​mode, without serial diagnostics. 
-  M649 S50.0 L50000 ​P1.2 B1 D0+  M649 S50.0 L60000 ​P1.2 B1 D0
   ----------------------------   ----------------------------
   S: intensity (0.0-100.0)   S: intensity (0.0-100.0)
Line 69: Line 73:
 In **Continuous mode**, the laser is turned on, and remains on at the selected intensity until it's instructed to turn off. In **Continuous mode**, the laser is turned on, and remains on at the selected intensity until it's instructed to turn off.
  
-**Pulsed mode** fires punctuated bursts at intervals matching P: PULSES_PER_MM,​ each lasting for L: DURATION. ​ That gives us all the information we need to time the laser firing and extinguishing from the inner loop of the stepper driver interrupt handler - the core of the firmware. ​ This makes the timing of pulses in Pulsed mode much more accurate than any other method.  ​Reliable ​minimum pulse times of __ have been measured on a 16Mhz Atmega 2560.+**Pulsed mode** fires punctuated bursts at intervals matching P: PULSES_PER_MM,​ each lasting for L: DURATION. ​ That gives us all the information we need to time the laser firing and extinguishing from the inner loop of the stepper driver interrupt handler - the core of the firmware. ​ This makes the positioning and timing of pulses in Pulsed mode much more accurate than any other method.  ​Pulse positions are accurate to the nearest step in any axis and reliable ​minimum pulse times of 250 microseconds ​have been measured on a 16Mhz Atmega 2560 (better may be possible, but hasn't been tested). ​ Stock Marlin'​s minimum pulse length is 8.2 milliseconds on the same hardware, and permits adjustments no smaller than 1 millisecond.
  
-**Raster mode** only works with the “G7” command which accepts a number of unique parameters:+**Raster mode** ​is a special variation of Pulsed mode which allows you to specify a unique intensity for each pulse in a variable-length horizontal line of evenly spaced pulses, with configurable '​pixel'​ size and aspect ratio, arbitrary line-advance,​ and selectable left or right blitting. ​ This is everything required for maximally efficient arbitrarily large 2D image blitting, but allows for a number of other uses as well.  An obvious improvement would be to allow for Raster blitting along an arbitrary line in 3D space - patches welcome! ​ Because pulse timing can be done in the stepper driver interrupt handler, and the information necessary for many pulses is contained in a single command, Raster mode is very fast.  Raster mode only works with the “G7” command which accepts a number of unique parameters:
  
 <​code>​ <​code>​
Line 115: Line 119:
   * [[http://​wiki.lansingmakersnetwork.org/​_media/​equipment/​manual.pdf|Power Supply Manual]]   * [[http://​wiki.lansingmakersnetwork.org/​_media/​equipment/​manual.pdf|Power Supply Manual]]
   * The laser cutter electronics consist of an Arduino Mega 2560 and [[http://​reprap.org/​wiki/​RAMPS_1.4|RAMPS 1.4 shield]].   * The laser cutter electronics consist of an Arduino Mega 2560 and [[http://​reprap.org/​wiki/​RAMPS_1.4|RAMPS 1.4 shield]].
 +  * Peripheral control relay board: http://​yourduino.com/​sunshop2/​index.php?​l=product_detail&​p=201
  
 ==== Consumables ==== ==== Consumables ====