LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

Difference (from prior major revision) (author diff)

Removed: 3,55d2


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

Unique Characteristics

*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).

*Nervous Motion
**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 ;-)


late in 2005 successful wire edm was accomplished by 'mdynac'
photo at http://timeguy.com/cradek-files/emc/edm/MVC-028S.JPG
This used the idea from RayH to slow down the veloicty based on feedback of gap voltage.
It used Hal components wired into the feedrate override.

Removed: 100,101d46
Tomp will try some tests with STG hardware.

Changed: 181,202c126
TomP?'s comments:
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'.

Electrical Discharge Machining aka EDM

Ray's suggestion:

We will need to build some sort of specialized interpreter script to handle reversing. This script should run whenever a HAL_edm pin is true. This could be written in Tcl for proof of ability. Once the ability has been proven, it should be rewritten in a compilable language for speed and operation across the several guis. Dave thinks that with minimal changing arcs can be handled as easily as line segments.

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.


2006 09 13 a discussion on emc irc suggests that a different tack is needed for edm, and that using HAL directly is plausible. This means emc's trajectory planner wont be used intially. Tho a lot of the emc framework is wanted and needed, these tests will be a bit outside. The AXIS front end for EMC can display position for the Hal governed motion.

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.


CNC code fiddling


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.

here's a 10 page pdf explaining why mill controls dont work for edm, and what does


If you want to add information to this page or add a new page, follow some BasicSteps.

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions
Last edited January 3, 2013 9:19 am by Tjtr33 (diff)
Published under a Creative Commons License