Electrical Discharge Machine Version 2 (edmv2)

So far my arduino code only supports manual mode, the auto mode is like an "off" setting.
I think the manual mode speed is waaaaay too slow, it might be nice for fine adjustment, but it's way too slow for rough set-up.
Perhaps I need both a slow and fast manual traverse, like a "jog" position for rough setting.
In the code I have control over both the speed and the number of steps to take, so I just need to play with the values some.

Below is a short video clip of manual mode, it is very hard to see any vertical movement, but it should be great for "auto" mode......

It does make some noise, but was nearly drowned out in the video by a plane overhead, the shop door was open.

-brino
 

Attachments

  • EDMv2_clip1.mp4
    3.2 MB · Views: 92
Hi All!

This post is just to show how I approached this project. It is sorta a "inside my brain" view.
I am sure everyone has their own approach to both the design and build phases, but I don't see "the process" discussed much.

Feel free to skip ahead to more interesting posts(coming soon!)
Also, feel free to chip in about how you approach a new design.

I had meant to upload along the way some of the design sketches I made of the various parts.
No deep design, no math (until I got to the electronics).
I did not use any CAD, CAM, g-code, or cnc.
I used paper and pencil first, then manual mill and lathe later.

Much of my research about EDM was done earlier with my first version of the machine (see post #1).
This design was mainly about the new vertical feed mechanism and learning about arduino.

I tend to do sketches of the various ways it _COULD_ go together, kinda a "brainstorm" of random ideas. In this step I may think about particular tricky bits for days, and then have it come to me when I'm driving to work. I might also present a small problem part of it to my wife or my sons to get me out of an idea rut and to see new perspectives.

Often I change the design between the drawings and the making. Once I have it in my head, I can bring the raw materials to the bench and try fitting things to see how they go. Look for interferences, different/better ways, and look for problems (will all adjustment screws be accessible?, will the chosen parts take the forces involved, etc.). Sometimes this spurs new sketches and finding new stock for parts. Sometimes it also means new tools, if I can justify a different way of doing something.

Enough "talk" below are a few of my early sketches. Some will look like the parts above, some were changed along the way with no new sketches made.....

Stay tuned for some real project related updates.

-brino

sketch1.jpg
sketch2.jpg
sketch3.jpg
sketch4.jpg
 
Check out this use of EDM:

That is very impressive, thanks for sharing the link!!
In a discussion with a friend this week he suggested mine needs an X-Y table for making it into an engraving machine. I told him basically "baby steps!"

-brino
 
Last edited:
okay, progress continues.

I changed the manual feed to be 200 motor steps, that's 1 revolution per "step" of the lead-screw.
Now you can see it move!
This looks good for the manual positioning of the head.

-brino
 

Attachments

  • fast_feed.mp4
    1.9 MB · Views: 52
Now some electrical design......

As mentioned I wanted the arduino processor to monitor the discharge voltage and drive the head accordingly; drive down when the voltage was high and retract the head when the voltage was low.

I am reusing my original power supply that looks like this:
power_supply.jpg

Out of the transformer I see ~84 V AC.
After the diode bridge and filter capacitor I see ~114 VDC.

The switches and LED above are still TBD. I want them in the completed unit, but so far have not implemented them.

The LED is meant to be a warning of high voltage present at the head.
The second part of the switch and the resistor marked "Rdisc" would be for discharging the capacitors when the power is turned off. This should reduce the number of shocks I get when fiddling with it.

-brino
 
In order to protect the arduino processor from the high voltage I needed to reduce it for sensing.
My 5V arduino cannot accept a voltage above ~5VDC.

This is what I came up with:
input_protection.jpg

Resistors R1, R2 and R3 provide a voltage divider to scale the voltage down. R1 and R2 are in series and so the values simply add together. They could be one resistor, but since I am dropping significant voltage I thought two discrete parts would give more options for part selection.

D1 is a 5.1V zener diode for protection. Typically, zener diodes are used in voltage regulator/reference circuits. If the
voltage across it goes above 5.1V it "turns on" and conducts. R4 adds some series resistance to limit the current thru the zener. I am using R4=1k-ohm.

The capacitor shown above is meant to stabilize the sense voltage to the processor. I chose 100nF (based on past experience).

D2 and D3 provide more "safety".
D2 conducts if the input voltage gets once Vfwd higher than Vcc.
D3 conducts if the input voltage gets one Vfwd less than GND.
I choose 1n4148 fast switching diodes because I had a drawer full of them. ;)

-brino
 
Last edited:
Details of the voltage divider resistor selection are below.....

resistor_divider1.jpg

resistor_divider2.jpg

Although today's power supply generates around 114VDC, I decided to design the resistor divider able to handle a higher voltage. I decided on 200VDC as the maximum, that should give me plenty of headroom to play with discharge voltage sources.

I chose R1=R2=100k-ohm as a standard value and worked out R3 to be 5.128k-ohm.
I had a 5.1k-ohm resistor so "good enough".

Based on those values the current thru the resistors is low so 1/4 watt thru-hole resistors were used.

-brino
 
I wrote the arduino code to support these electrical design decisions.

I found that the arduino already supported a great way to debug programs.
The serial port used to program the arduino pro mini could also be used for status updates from the running program. Much like the venerable "printf" statements in other high-level languages.

So in the automatic mode I had it sense the analog input voltage, "math" it into real values, and print it out. The code was:

case Auto:

Asamp = analogRead(PIN_VDISC_SENSE);
Vsamp = (float) Asamp*5/1023;
Vdisc = Vsamp/0.0249;

Serial.begin(9600); // open the serial port at 9600 bps:
Serial.print("A0 reads:"); Serial.print(Asamp); Serial.print("\t");
Serial.print("Pin Voltage="); Serial.print(Vsamp,2); Serial.print("\t");
Serial.print("Discharge Voltage="); Serial.print(Vdisc); Serial.print("\r\n");

Serial.end();

Next_State = Start;
break;

the screen shot showed:
ScreenShot001.jpg

okay so a little more coding and I can make some sparks.....

-brino
 
Very interesting. What is the typical voltage/current of a commercial machine and what do you expect from yours? I assume you could get a resistance of 0 at the work head so how do you limit the current? Should you consider having your discharge resistor permanently in the circuit rather than switched? That seems safer. You could use a high resistance value and still discharge the cap pretty quickly.
Robert
 
Back
Top