Replace EMC2 with LinuxCNC
== Capabilities ==
Our laser is controlled by a Linux package called [http://www.linuxcnc.org/ LinuxCNC]. To drive the laser, LinuxCNC plays [http://en.wikipedia.org/wiki/G-code G-code] files. G-code is not very standardized, so you should read up on the [http://www.linuxcnc.org/docview/html//gcode.html specific variety of g-code used by
The position of the laser is controlled by the X and Y axes, and the height of the table is the W axis. Motion on all axes is made of discreet steps and can be reproduced extremely accurately. The X and Y axes move 1000 steps per inch and the W axis moves 4000 steps per inch.
* Top row (left to right)
** Red ''LASER ON'' LED. This indicates that the laser beam will be ON, if the overrides further down the path are disabled. This LED is useful for checking jobs before turning the beam on for the first time.
** Yellow ''AMP ENABLED'' LED. This indicates that the laser control board is receiving a 'keepalive' signal from
EMC2/AXIS, and the machine is 'powered on' from the PC's point of view. When flashing, the machine is stopped due to an emergency stop signal or open interlock switch.** ''E-STOP'' (emergency stop) toggle switch. When in the down/OFF position, the machine operate normally. When toggled up/ON, the machine and EMC2/AXIS are put into emergency stop mode, all movement is stopped, and the laser beam is turned off.
* Bottom row (left to right)
** Four ''LASER PWR'' (laser beam power level) toggle switches. These control the actual beam output power, in binary. Add up the numbers of all switches that are up/ON in order to get the output power level selected.
Details on laser internal schematics and code documented here: [[Laser_Electronics]]
=== Homing ===
EMC 2.3 requires all axes to be homed before running any program. If you don't see little crosshairs next to the coordinates of all 4 axes, just click "Home all". If, for some reason, the gantry gets moved while AXIS is running, you need to "Home all" again because
EMC2 has no way of knowing that the carriage is not in the position it thinks it's in.
=== Focussing ===
That is to say, the laser is on if and only if the spindle is on and one or both of the Z axis and digital out are on.
Controlling the laser with the Z axis can be tricky because
EMC2 thinks that there is a moving physical object attached to the axis and tries to constrain its motion. The M62/M63 commands are realtime and instantaneous, meaning that they can be used to turn the laser on/off without affecting X/Y motion, at least in theory. You can put these commands on the same line as a motion command, in which case the laser will be turned on/off at the *beginning* of the motion.
'''''The following feature still needs a bit of tweaking. Don't use it for anything serious yet:''''' The power of the laser can be controlled from G-code by setting the spindle speed with S#, where the number is between 0 and 1. This will effectively be multiplied by the power level set with the hardware switches. Power level set with the S command is fairly detailed, with at least 50 distinguishable levels. The power can be set so low that it only leaves a faint mark on paper.
M2 (end program)
EMC2 automatically turns off the spindle when a program stops, there should be no danger of the laser ever being on unexpectedly. However, just to be safe, you should turn off all laser related signals at the beginning and end of every program.
== Troubleshooting ==
6) Bring your file to the laser cutter. You can either move it over manually on a USB stick or send it over electronically. <br />
* First, login to the laser's computer (hint: it's the same password as a lot of other things in the lab)<br />
EMC2 if it isn't already opened and running. <br />
* You now have two main options for accessing your file, either USB stick or upload via the network:<br />
** For USB stick, you'll probably want to try finding your USB stick under "media" in the top level folder. I found mine in /media/disk/ (your mileage may vary) <br />