A non-traditional thermal machining discipline.
Electrical spark discharges melt tiny bits of conductive material in a controlled environment of a liquid bath.
*Sparks jump and sparks hurt.
**This simple statement sums up a lot about EDM. The spark requires a distance from tool to workpiece (this is the jump bit).
**The spark flows thru an incredibly small resistance of a bridge of microscopic particles gathered by the magnetic lines that precede current flow. The energy that flows across this bridge is really really hot and melts some material and creates a high pressure gas bubble that implodes when the pulse ends ( this is the 'hurts' bit).
**The melt creates a tiny pool of molten material on the work surface. The implosion scatters this pool into the surrounding environment. Some material cools back onto the workpiece.
**The bath resists the sparking by inhibiting this particle buildup, and forces the spark to search for a weak spot where it is easier to form. This weak spot is usually the closest point between the tool and the workpiece. In this way, the bath is a very sophisticated distributor and causes an envelope of sparks to occur over the entire tool surface.
**BTW: this bridge spark pop cycle happens up to500000 times a second ( 500Khz )
Other languages refer to the process as Eroding and Erosion.
Deutsche = funkerodieren
Italian = elletroerosione
Swedish ? = gnisting
Mandarin = dian wah (but you'd need the chinese characters for 'electric flower')
Czech = Elektroerozijska obdelava
Polish = obróbka elektroerozyjna
Français = électro-érosion
*The process can create a square corner, something hard to do on a lathe or mill. (corner radii as small as a few microns)
*It can cut diamond and carbide and other materials that are difficult to grind or mill. ( just has to be a conductor )
*It can also produce very small and deep holes (I think the record now is near 6um dia. )
*It never touches the workpiece ( shouldn't ) so it is useful on very delicate elements ( gimbals, force sensors, flexures )
*It is 'stochastic' ( it >>usually<< does the same thing when repeated ;-)
Developed in the late 1940's by a Russian husband and wife team, the Lazarenkovs.
The use of spark discharge was known previously, but the Lazarenkovs invented the 'EDM Servo'.
The term servo in EDM is like the R/C servo concept.
But in EDM the process developes the control voltage and the servo motor moves the tool to a
position that is very close to the workpiece
(perhaps .00025" to .040" depending on the discharge energy and the resistive nature of the bath).
**If you were to remove the covers from an EDM machine and watch the motor coupling during cutting, you'd see it slowly advancing, but very quickly oscillating a tiny amount. To put it simply, it is 'nervous'. This is the control system maintaining the 'gap' even tho the gap is changing in size, form and depth.
**In non-CNC EDM, an analog of the process directly feeds the motor amplifier. It is exactly like an R/C servo. Any numerical control is merely a limit, the feed while approaching the limit is purely process controlled ( no realtime needed ). As long as only one axis is involved, this results in a very 'smooth' EDM process, it may be worth implementing when possible.
**CNC SINK EDM can use 'exact stop' mode without danger of inter-line marks ( it's almost sitting still most of the time ;-)
Tomp will try some tests with STG hardware.|
This is for sink edm, including orbiting ( a technique to refine surface finish ).
I intend a simplification where reversal is not used, but 2 safe places are remembered.
These will be constant for a single task. They are the start position, and the deeper
position where orbiting would begin. ( my term for this is the 'roughing point',
from this point all planetary excursions begin and end )
You gotta understand sink edm and i havent explained those concepts yet... but,
it simply means that 'remebering the path' is un-needed, and 'backing up' is simply
moving towards one of the 2 points/poses. Forward position increments are calculated
just like the paper describes.
The 'next place to goto' is determined by the 'trajectory planner' in EMC. These are
tiny moves that add up to a whole G01 or G02 or G03. These moves are actually the
G01 G02 G03 broken down into tiny bits that may get accomplished in the next servo cycle.
Well, if we dont use EMC's tp, then we dont get these pieces. If we dont get these pieces,
then we cant stream them to hal. We can get these pieces from Vapt, asking it to generate
all motion into short lines. These destinations, even up to 9 axis, can be hal-streamed
into a gap-width control under Hal. If there's some need, the tool can 'run-away'to one
of the 2 safe places. If the conditions get better, the tool can return to the last
hal-stream position accomplished by by the gap-controller, and proceed towards the end of
of the 'program'.
The edm functions could be built into the existing emc2 interpreter if it were made to save blocks of gcode rather than simply reading, making canonical commands, and discarding.
The following pins and parameters are just suggested. Please edit these as you see fit.
Dave Engvall has a way to send streams of positions to usrmot. He use a component from John Kasunich 'hal-streamer'. While emc2.0.3 is running, he opens a terminal and runs usrmot, there, he can manually or programmaticly ask for positions as triplets (thinking inside the xyz box for now ) ie: 25.4, 12.7, 50.8 and can change the request at will. you can try this yourself! now if we can get a program to determine where the electrode ought to be right now, we'd have a big part of the edm control done! This is not gcode, just a stream of positions from an external program.
Peter Gruendeman is working on a machine tool and generator.
2006 03 02 John Kasunich wrote about thoughts he's had on realtime dynamic feedrate. "The second issue would be REALTIME control of scale. That would not use NML feedrate override messages (too slow), instead it would be a HAL pin connected directly to the realtime motion controller that would modify the feedrate on a servo-cycle by servo-cycle basis." thanks John
2006 03 03 Alex Joni has agreed to create a new hal pin to help in EDM reported by MAC > I contacted Alex Joni and he is going to set up a hal pin to control > feedrate override. So i should be able to apply a varying voltage to > the Motenc adc input and get an output to be used by emc2. " we can test with a pot and a battery asap :-) no need to wait for a whole edm machine. kewl Thanks Mac & Alex
2006 03 10 Ben Fleming & Michael Erbe have teamed up to build a new EDM power supply. They may help the emc group in the EDM effort by letting us use thier generator. Ben & Mike have developed a new generator and will show it off at the 2006 fest. http://www.lindsaybks.com/bks9/edm/index.html
here's C. Scott Ananian's Garden of EDM power supply pcb it's in PCB format ( a free pcb layout tool for Linux ) surely would benefit from someone who knew electronics rather than plumbing :-) (requires oscillator and is a generator, not a servo sense circuit ) This just the pcb, the design is in xcircuit format. The design is available at Scott's site.
Jon Elson wrote some excellent tools, available athttp://pico-systems.com/gcode.html
found a lot of code for emc by some guys writing in ruby these people put a lot of work into these routines, thanks! look athttp://xdobs.com/cnc/runing_program.html
in general, the class of controller suited to EDM are 'gap-width controllers'. that is the name to google for, it is a class of control, used by other disciplines besides EDM.
excerpts: In EDM the feedrate can not be defined by the user. The electrode speed is determined by the process. ... NC-concepts based on a constant velocity movement along a wide part of the course cannot be used  ... The target feedrate (Vb) is computed by the gap-width controller based on an actual evaluation of the ED-process. Vb is valiud only for one NC sample-time (T). Next step in calculation is the check of the target feed rate. In caase of exceeding the maximal admitted acceleration a correction of the feedrate is made to avoid a deviation of the target course. Based on this proven feedrate (V'b) the increment along the course (delta s ) is calculated and the interpolation can generate a new target position (Xt, Yt, Zt) for the drives"
If you want to add information to this page or add a new page, follow some BasicSteps.