PCB Eagle plugin pcb-gcode-

Now that I have a little more time it’s probably worth it to revisit our earlier PCB projects, but in the meantime here are the settings we used (a while ago) to mill PCBs using pcbgcode for Eagle.

If memory serves me right I had to manually add a M3S10000 command to the gcode to turn on the spindle, and M5 at the end of the file to turn the spindle off.

Thanks Rob,

I understand your position that you don’t want to inflate the code with optional feature. However for PCB, holes are not optional but mandatory. I have to found a way to do it. Making PCB is not a fancy project but a perfect application for desktop CNC machine. Tools are very small 1/64" or 1/100" doesn’t require power, but extreme precision. My objective is to do PCB for SOIC 16 components. It was the precision and the way the machine is design that make me choose the Nomad 883 despite its price.

What are my options:
Find a way for PCB-Gcode to generate a gcode for the drilling file that don’t use G82.as suggested by Jorge.
if doesn’t work
Write a program that post process the drilling file and replace the G82 line by appropriate G0/G1 commands.

@cpignol- I don’t want to inflate the code with optional feature yet. The yet part is significant. Once we have a stable code base that has been thoroughly tested in the field, we can add everything we need to make it compatible with any gcode. That’s something we’re looking forward to.

That said, if we can’t find the pcbgcode settings to use g1’s instead of g81’s then it’ll be mandatory and we’ll add them now. I’ll look at it with Jorge today and get back to you.


1 Like


Got the message. Thanks

Rob, as usual, you impress me by your hard work to accommodate the variety of needs put forward. Much gratitude to you!


I’ve been able to mill a couple of the Eagle example PCBs. Here are some pictures. The first is the tutorial3 board. I’ve only milling the top side etch and the drill holes.

The second is the ATMEGA example. This picture also shows a ruler for size.

The last picture has the holes drilled and I sanded the board to remove the small copper burrs from the milling.

The Eagle ATMEGA shows the narrowest trace width as .008". I’m a newbie to Eagle, so I may have that wrong. I will post the settings I used.


I am using Eagle version 7.2.0 and pcb-gcode version Here are my settings. Your mileage may vary.

I think the “Use Simple Drill Code” eliminated my G82 problem.

The PCB milling bit I used was a EM2E8-0945-30VC from:

Flipping the board to mill the other side would be a lot easier if I knew how to drill a registration hole at 0,0. Maybe I can just measure the offset from 0,0 of a drilled hole near 0,0, flip the board, and use that as a way to locate 0,0 on the bottom of the board?


Thanks for the info, Very nice work!
I will try on my machine,

For registration I would recommend cutting a pocket to fit your PCB in a piece of sacrificial material that you can affix down to the regular spoil-board. That way you can clamp your board into the pocket, and flip it easily and keep it registered well. Just make sure you plan for the location of your clamps—I’d recommend using short pan-head screws or SHCS (socket head cap screws) with some substantial washers to hold the material down. Just put the screws straight into the sacrificial material adjacent your pocket on the clamping sides.

Here are the results of the tutorial3. The circuit on the left was done with 1/64 inch tool. The circuit is not correct.
The circuit on the right was done with 1/100 inch tool. The difference of colors is due to the layer that tool has reached. The board is not probably perfectly square. I tested the isolation and the board seems OK. The copper has been removed everywhere it needed to be.
Lesson learn:
-I try first with engraving tools from inventables https://www.inventables.com/categories/bits-tools/milling-bits?utf8=✓&selected_filters[Type][]=PCB+Milling+Bits
It’s cheap but they don’t do the job: air cut after 1 cm.
-The quality of the cutting tool is essential and the smaller the better. I use a 0.010 2 FL SQ Micro EM from Kodiak
-The tape is very difficult to remove from the PCB. Need to find another way to secure the PCB on the wasteboard.
-Need to buy some EM2E8-0945-30VC used by David @perduedt

Thanks David for your post, I used the same parameters.

Just finish a prototype for a vacuum table for the Nomad. I use a waste-board and a small 12V vacuum pump. The first tests are good. I can install the board with precision and start the pump. The board, when the vacuum pump starts, goes down around 0.05 mm.
The drawback: can not drill the holes with a vacuum table :slight_smile:


Can you show the underside of your waste-board so we can see how you’ve routed the holes and fittings and such underneath? That’s rather clever!

Well you can do the design you want. I choose a simple design easy to mill. Of course you have to add a cover to seal it. I didn’t glue it so far to be able to clean it. I don’t have any filter in the vacuum line. I did some test with PCB and it works well. Start the pump and if the board doesn’t stick immediately on the waste board, gently push it down. Stop the pump and you get the board,


This is really nice work!


nice job.
i have a problem with M06, tool change. i dont want to use it and not use it but i don’t know how to disable it. can you help me?

If it is drilling, you can turn drilling off (in the version I use) or remove it from the G-code. If it is the extra tool changes that PCBgcode puts in at the start, I cut them out by hand.

I have a mask/screen (bitmap) image of a board layout which I’d like to use to cut copper-board…


I was thinking of using meshcam to do a relief projection for a cutting path (black/white +/-Z), but curious if eagle or other tools can work with this? Main concern is in ensuring the final scale is correct or things like hole spacing will be off for socket pins.

Is this not compatible with Carbide Copper?


The community has notes at: https://www.shapeoko.com/wiki/index.php/CAM#PCB

It wants Gerber input. Couldn’t find option to work from a bitmap. Maybe I didn’t look hard enough?

No, I’m afraid I was mistaken — hopefully one of the other apps at the link will help.