by dirktheeng » Mon Sep 26, 2011 10:24 pm
All,
Now that I have the system up and running at least in vector mode with good ventilation, I am shifting my focus a little bit to developing a true open source laser engraver. Bart started an open source engraver a year or so ago and won some awards from XMOS for his work. I intend to continue that work as it petered out here a while ago in favor of the engravers from light object and/or FSE. While I really like the results of the engraving portion of those units, I am not really all that thrilled about the vector cutting. For arts and crafts, it is fine, but for cutting out parts that have to be dimensioned very carefully it can be a pain because there is no way to do an offset on the part. Basically, the vector cutting solution cuts everything right on the lines, so any adjustment you need to make to get parts to fit right entails going all the way back to your cad and making offsets from your original parts. If I use a cam program, I can just change my tool diameter to account for the kerf and off I go. I am also a multi-machine user so being able to generate parts in g-code is an advantage for me as I am familiar with and own the software to go from part to step signal.
That said, engraving is not really easily done through any CNC control software. Mach 3 has a plugin, but it is fairly slow and will not work with any USB plugin (such as the smooth stepper). It is really meant for impact engraving with a 3 axis mill. Lasers are much faster responding, faster moving, potentially higher resolution, and more difficult to control as we have to be concerned with duration of pulse and power intensity.
I want to be able to use a g-code based control software and be able to hand over motor/laser control to an engraver controller, allow it to do it's thing, and regain control in the vector mode. I plan to do this with modbus IO an arduino, an xmos controller, and a set of SPDT IC's from digikey.
I am in the process now of putting in an arduino to do varios modbus tasks like read the flow sensor, measure temperatures, and control the laser using the PPI technique that Epilog uses. I plan on using an extra digital out pin on that controller to tell the xmos to run an engraving program. When done, the xmos will set a pin high to let the arduino know that it's finished. The switch of control will be done with a multiplexer such as the M74HC157 from ST (pn: 497-1785-5-ND from digikey). These things work like relays, but can have as many as 16 in one little integrated circuit. Basically, you give one pin a high/low signal and it will select between 2 inputs for each output. The one I selected is a 4 bit, 2 into 1 chip that fits into a 16 pin DIP socket. I'll need 2.
So here's how I imagine this will work:
1) start a program in Mach, do something, whether move to a spot or do some cutting
2) Send the laser head to the upper left hand corner of the engraving area
3) set Mach to wait to move any axis until it gets a clear signal from the arduiono/modbus (you could also skip the modbus and use 2 pins on the parallel port/ smooth stepper if you have them free)
4) use the multiplexer to switch the input control signals from mach to the engraver. The signal will come from the arduino through the modbus
5) run the engraver program to do whatever it does and return to the exact same spot when finished
6) set the multiplexer back to mach control
7) send a signal to arduino/modbus/Mach that it is finished
7) continue whatever mach program was running before if any
Using this method, it should be possible to precisely place an engraving in a vector cut object. I will just have to plan the engraving area in my cut file before I start and make sure it is co-ordinated with whatever software I develop for the engraver controller. I imagine I will write a program in python to communicate with the xmos controller and set the engraving file up.
I think this should work well. It will also allow flexibility to be set up in just about any system and accept control from just about any source as the multiplexer will cut/splice signals b/4 it gets to the stepper driver board