PCB Fabrication with EDM

Testing and development of a system to cut traces on a blank PCB using electro-discharge machining with pencil lead

Public Chat
Similar projects worth following
After seeing a party trick cutting aluminum foil with pencil lead (graphite) and a 9V battery, we wondered if we could do rapid prototyping of PCBs by cutting the copper on a blank PCB the same way. It turns out you can, but there are some challenges. We haven't had the time to continue the project (for now), but we hope people here may be inspired.

The basic idea is to apply a relatively high potential between the blank PCB and the "hot" electrode, which consists of pencil lead. When the electrode contacts the PCB, it arcs and cuts away the copper. It also consumes the graphite in the process, but slowly. This is a form of EDM, most similar to arc gouging and arc cutting used to cut heavy sheets of steel.

A gif is worth more than 1000 words:

Like you, we dream of being able to make PCBs fast, since it is 100% impossible to get it right the first time. We've done etching, but got low yield and the chemicals are kind of nasty. Milling is slow, and requires expensive hardware. The tiny mill tooling needed are brittle and require slow movements so they don't break. The electrodes used here do not need to support basically any loading, so you can cut faster, holding the workpiece is easier (we used tape), the machine structure itself does not need to be very stiff, and we can use really thin electrodes. In addition, pencil lead is a whole lot cheaper than mill tooling. There is also no worry about fiberglass dust from milling FR4. We think this idea has promise, but there's a ways to go still.

We've learned a few major things about trying to do this:

  • Of all materials we tried, graphite electrodes worked best. Metals will tend to weld to the PCB, as you might expect.
  • Between 30-60V is sufficient for cutting, so you can use your power supply easily.
  • There needs to be a light touch between the PCB and the electrode for the cutting to succeed. If you push too hard, it just shorts and won't cut. By hand it is easy to get the pressure right, but with CNC it is much harder.
  • Pencil lead from 0.4-0.8mm all seem to work fine.
  • Cutting underwater (distilled ideally, although our tap water was non-conductive enough) cleans up the cut drastically. Distilled water or oil is typically used in industrial EDM and serves as a dieletric which helps control the spark and helps clear away the EDM chips.

There are some hard problems to solve before this is useful:

  • Need to be able to create the tool-path to cut from the gerber files. There are open source tools for doing this for milling, and the problem here is close. However, with this setup a circuit must be maintained, so if you were to cut a full loop and then try to cut inside of that, it would not work. Therefore we either need:
    • Tool-path generation that accounts for the need for continuity throughout the process. This may be theoretically impossible, or NP hard, we don't know.
    • Raster across and cut from one side to the other. This probably would produce lower quality cuts, but we haven't tried it.
    • Have the negative electrode able to move and somehow guarantee continuity. 
  • PCB blanks (at least the cheap ones we used) aren't very flat. Combined with the consumption of the graphite, the motion needs some closed loop control to ensure cutting continues. Could also use this control to ensure a "light contact" to the PCB.

There are also some things to be aware of and careful about:

  • There is clearly electrolysis between the electrodes in water. The O2 and H2 productions are too small to matter in a ventilated area, but don't try this enclosed.
  • The sparks are VERY bright and should not be looked at without eye protection. It should probably be treated like welding from a vision protection point of view.
  • The continuous sparking are spewing EM radiation, so probably should be shielded to not potentially interfere with other things.
  • This is relatively high voltage and power (and very high heat at the electrode), so don't try this unless you know what you are doing.

Note: it looks like another Hackaday member was working on this idea years ago but seems to have stopped working on it, and it's not clear how far he got.

Project Logs:

  1. First CNC Prototyping
  2. Signal Modulation/Electrode Driver Testing
  3. CNC Testing with Signal Modulation

  • CNC with Driver Modulation

    Jake Wachlin05/12/2019 at 15:07 0 comments

    The previous project log covered updates to the electrode signal modulation which seems to enable cutting without needing a very light touch onto the PCB surface. We expect that to make CNC cutting much easier. To find out, I brought back out the 3D printer base. It is a RAMPS/Arduino Mega based system, making it super easy to write some firmware to test this out. The first task was to create a keyboard remote controller interface for the CNC. I would use the WASD keys for x/y motion and RF for z motion. These commands would be sent over serial and the system would move the electrode accordingly. This worked really well. The video below shows cutting some shapes using this manually controlled CNC framework. It moves with XY steps of 5mm and Z steps of 0.5mm. At one point in the video, the cutting stops, I lower it 0.5mm, and it continues to cut. I did not have to be careful not to push too hard.

    After that success, the next task was to try to cut a real example circuit, moving from an gerber file from EAGLE, to Gcode, to a cut PCB. I designed this useless PCB really quickly. It doesn't do anything, but has a few components which are of interest, such as 0805 and 1206 packages, a SOIC-8 package, a 10mil trace, and some through-hole components. More importantly, there is nowhere in the cut where the EDM continuity should be cut off, so this shouldn't need careful cut ordering.

    I have played with FlatCAM in the past for generating toolpaths for PCB milling, and was impressed by it. However, I was having some trouble installing it this time. I therefore tried using the online tool Carbide Copper. It seemed to work well enough for my needs, although FlatCAM has far more options, including tool size which is important here. Thankfully, Copper does not use Gcode arc commands, which I do not have supported yet (see below). Through curves it simply has more short motion commands. The image below shows the entire toolpath for this design.

    Alongside this, I needed a Gcode interpreter. There are numerous options out there, but the ones I found seemed to be tied into other firmware pretty tightly. I'm sure there are other options and I'd love to hear about one if you know of one. However, as a quick test, I wrote my own which only handles a few commands. That said, the only command I should need for now is something like:

    "G1 X0.453 Y-32.426 Z-0.100"

    So this is what my interpreter looks for. It can also handle commands for absolute vs. incremental movement and for inches vs. mm units, as well as set home and go home commands. The Copper software outputs gcode a bit differently, so I hand wrangled it into this form for now. I could build a tool to do that automatically, or better yet use a proper gcode interpreter.

    A python script reads each line of the gcode file, sends it over serial to the Arduino, which acts upon it, and then sends a special character ('*') once the motion is done. The python script then sends the next command. I tested this setup in open space first to make sure it doesn't do something stupid. Note I had also changed the mechanical interface slightly, moving the mechanical pencil tip used to guide the graphite to the bottom of the acrylic structure. This allows cutting motion to proceed without hitting the sides of the water tub. The gcode interpreter worked well. I was concerned about it having jerky motion since it waits until each command is complete before it receives the next one, but the motion looks fine.

    Next, I need to put it all together and hopefully cut the very first full proof of concept PCB, and that is really exciting. Unfortunately, the capacitor bank is not charging currently, so hopefully I didn't burn something out. More to come...

  • Driver Prototyping

    Jake Wachlin05/11/2019 at 01:56 0 comments

    In the previous testing we've done we have typically hooked the electrode directly to the high voltage output of a current limited power supply. It works, but a light touch is necessary or the system purely shorts, current limits, and stops cutting. We had hypothesized that perhaps we could get better cutting by modulating the signal. In fact, it seems most commercial EDM machines modulate the voltage as well. In addition, we had hoped that this system could run off of the 12V supply on most hobby 3D-printers. Therefore, I built a quick prototype with an off-the-shelf boost converter (Amazon cheap XL6009 style) to achieve 30V+. A optically isolated solid state relay charges some large capacitors, then we can drive an optically isolated MOSFET to do the cutting. A voltage divider allows us to measure the capacitor voltage. Below is an image of the whole setup. An Arduino Uno drives the system. The input to the boost converter was 12V limited to 1A.

    Even my prototype shows why I need this system. I somehow messed up sizing the capacitors and bought much too large versions. Each capacitor is 1mF, 100V rated. All in parallel there is a total of 3mF. I used three in parallel to lower the overall ESR so they can discharge fast. I charged them up to 37V with the boost converter. The Uno first charges up the capacitors until they reach some voltage. Then, it disconnects the charging circuit and switches the mosfet to discharge the capacitors. The average power needed by this system is not very high (seems <3W), but peak power is high. By alternating, the hope is this will shift the peak power handling to the power MOSFET and capacitors that can handle it, and away from the power supply.

    The test was highly successful. In the gif below, I'm pushing relatively hard onto the PCB, and it is not disrupting the cut. Best of all, the system runs from the 12V supply, reporting about 0.14A, so only 1.7W. There likely is some spiking higher that I do not see, but the power buffering seems to avoid that. This is really encouraging, that this system is:

    • Simple to drive
    • Low power
    • Doesn't need careful force control to keep cutting
    • Even with modulation, we can cut quickly

  • CNC Prototyping

    Jake Wachlin05/09/2019 at 02:28 0 comments

    It is really easy to cut PCBs by hand. Simply alligator clip a blank PCB with the low voltage side of the power supply, hold pencil lead with the high voltage (30V, 3A current limited) alligator clip and softly pull the lead tip along the surface. But that isn't useful. We want to have a CNC machine that will do it for us.

    We had a 3D-printer sitting around not 3D-printing that was the perfect CNC base to test out ideas. We quickly recognized that a soft touch is critical, so we hacked together a "spring" made of solid core wire soldered to the tip of a mechanical pencil, as seen below. As it turns out, we got the first CNC cuts with this setup, but it was unsurprisingly unreliable, and only cut well in one direction. Nonetheless, it was an awesome quick proof of concept.

    A while later, we made a more robust mounting setup using laser cut acrylic. It is still janky, with the pencil lead guided through a mechanical pencil tip hot glued to the support, and power coming from an alligator clip. Nonetheless, it was much more reliable and consistent. The lead is able to slide somewhat within the pencil tip, which allows some flexibility in the system needed to cut.

    The first full shape we cut was a sort-of dogbone. On one end, the separation was designed for an 0805 SMD package. Interestingly, the cut width is actually usually smaller than the diameter of the graphite used, and the edges on the cuts here are pretty smooth and consistent. The hardest part here is dealing with the graphite consumption and warped PCB.

    Finally, some video of the cutting process. The cutting is pretty fast, but obviously there are sections where it pulls away from contact and stops cutting.

View all 3 project logs

Enjoy this project?



John Loeffler wrote 06/08/2019 at 14:03 point

Love this project the implications can be fantastic for at home pcb manufacturing.  If the substrate material was say aluminum it could do holes and vias with the same setup. 

  Are you sure? yes | no

Reginald Beardsley wrote 06/08/2019 at 00:00 point

Standoff for the electrode needs to be 0.001" to 0.004".  Open circuit ionization voltage 100 to 300 V.   Machining voltage should be 20-50 V with a nominal of about 30 V.  A linear approximation makes the standoff distance for a 28-32 V machining range  0.0018" - 0.0022".  Electrode needs to be negative as pointed out earlier.  Steel or tungsten wire electrode in the 0.003-0.004" diameter range. Steel is a lot cheaper. You want a short on pulse in the 20-50  microsecond range with lots of dieletric flood to carry away the chips before they can adhere to the electrode..  Deionized water for the dieletric needs to be treated with a resin filter preceded by a mechanical filter to recondition the water.  The above is based on the information in "Electrical Discharge Machining" by Elman Jameson, SME 2001 which I read in its entirety on Wednesday.  You *must* do a raster scan as  a vector scan will cause you to lose the workpiece electrical continuity.

  Are you sure? yes | no

Shranav Palakurthi wrote 06/01/2019 at 23:19 point

I played dubstep to my PCBs and it still isn't etched :(

  Are you sure? yes | no

Ken Yap wrote 05/21/2019 at 08:07 point

Given that pencil graphite is actually a mixture of graphite and clay the proportion varying according to hardness have you tried different grades of pencil leads?

  Are you sure? yes | no

gkuijpers wrote 05/15/2019 at 20:29 point

Great project, I hope to learn enough to make double sided primitive PCB's

Bert Kuijpers

  Are you sure? yes | no

WeldingRod1 wrote 05/14/2019 at 15:48 point

I've found the schematic for my EDM; should I join your project so I can post it, create a separate project, or email it to you?

  Are you sure? yes | no

Matt Moses wrote 05/13/2019 at 22:39 point

There was a project shared on the RepRap forums a few years ago where someone used EDM to etch PCB's - might have some useful ideas:,652457

  Are you sure? yes | no

WeldingRod1 wrote 05/13/2019 at 16:33 point

I built a fancy EDM machine many years ago... maybe 20 ;-)  I had the triple whammy of being an engineer (ME + lots of EE), tinkerer/inventor, AND being a skilled machinist.   Mine used a lead screw and stepper motor for gap control, with adjustable up and down voltage thresholds for the window comparator; this worked fine.  I built a switching constant current source with a SCR snubbing capacitor on the output (across the gap).  Cutting speed is related both to pulse repetition rate and to pulse energy.  High peak currents lead to large bites and bad surface finish.  You need voltage to break down the fluid and get the arc to strike, but the actual arc voltage is fairly low.  Thus, using a current source.  I should have my notes somewhere, if you are interested in them.

Note that a lot of the more simplistic EDM circuits are NOT electrically isolated, and are SERIOUSLY hazardous!

One thought: you could also do this with localized electrochemical etching; same setup, change to a table salt in water solution, make the PCB the negative side, and use DC current.  You could servo control the voltage to keep the gap small.

Flushing the cut with circulating fluid will help as you get more material cut.  A fine filter would be smart too.  Also, your fluid will get hot and eventually splatter/boil.  Or, burn, in the case of oil (experience...).

Rotating electrodes work better than static ones, but add a LOT of complexity and an easy-to-booger rotary electrical connection; not a big win for your application.

  Are you sure? yes | no

Martin wrote 05/15/2019 at 09:48 point

I am quite sure, that you need to connect the PCB to the positive pole to etch it electrochemically. The metal needs to be oxidized, converted to positive ions.

  Are you sure? yes | no

RandyKC wrote 05/12/2019 at 18:02 point

Great project and idea.

Keeping continuity is the biggest obstacle I see(and you’ve pointed out).

Rather that attempt to do a carefully ordered vector cut, would just doing a raster cut be easier and better? Convert the vector Gcode into a raster image. Then just print from opposite to grounded side.

The “cut” would be more consistent and if you only cut from one direction it would negate the pencil lead flexing issue.

Now I need to either fix my old or get a new 3d printer to try this out!

Thanks for posting your project!!

  Are you sure? yes | no

mawalker1337 wrote 05/11/2019 at 18:02 point

Awesome idea! Make sure you are careful to have ventilation though, carbon arcs produce carbon monoxide and other nasty gasses. Might be worth getting a cheap carbon monoxide detector to keep nearby while you run it.

  Are you sure? yes | no

david.agner wrote 05/11/2019 at 05:38 point

As always in EDM spark control is the holy grail, The easiest way in a open loop would be a solenoid as shown here  . But a closed loop would do wonders for speed. I have been looking for that as well

  Are you sure? yes | no

Jake Wachlin wrote 05/11/2019 at 14:23 point

Thanks for sharing, the solenoid is a great idea. We'd been focused more on closed loop, but maybe its not worth it. It already cuts very quickly through a thin layer of copper on PCB blanks.

  Are you sure? yes | no

Lutetium wrote 05/10/2019 at 17:20 point

Hey Jake -- Great project! Another one of those "why didn't I think of that?" builds. I actually was scraping the copper from a blank PCB the other day to make a quick RF attenuator and thinking there had to be a better way to rapidly prototype PCBs other than a CNC router. This looks like it might be it!

I wrote this up for the blog and it should post in a few days. Thanks for tipping, and keep us posted on progress.

  Are you sure? yes | no

Dan Maloney wrote 05/10/2019 at 17:24 point

That was actually me...

  Are you sure? yes | no

Jake Wachlin wrote 05/10/2019 at 17:32 point

We also wondered how no one had built this yet since it's so simple at least for basic cutting. There are still some challenges but it's really promising. Glad you like it and awesome to hear. Let me know if you have any questions.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates