PCB Examples


I need to try this!

I knew I had a reason to buy that set of really tiny bits. :wink:

Marlin have implemented bed auto leveling, manual…

Its a way. See in action on this video.

Thanks so much for your isolation milling write-up on github. Your notes and batch file gave me the inspiration to try it.

I made an arbitrary test board with a VCO and binary counter from some 35 year old 74LSxx parts that I had laying around. After the first iteration I squeezed the design rules and was able to get traces between the .1" DIP pads with very clean results. This is by far the tiniest thing that my 1 1/2 year old MPCNC has milled. The trace width is 0.6mm and clearance is 0.3mm. Probably could go a bit smaller.

I modified PostProcess.Bat to add tool-change pauses and messages on the LCD display and to combine everything into one gcode file. To set Z0 I just use a multimeter in continuity check beep mode and an alligator clip on the V-bit. I adjust the Z thumbwheel until it beeps then turn on the machine to lock in Z0. (I’ve been too lazy to merge your Marlin changes into mine for Auto-Z0 and to keep steppers active between files.)

I may modify the batch file to get rid of the feed rate defaults so that the feeds can be specified in Flatcam for each individual pass. For example I want a deep cutout pass as a bit slower pace but the drilling and engraving can go much faster, probably over 140mm/min.

This board took about 21 minutes to mill, 24 for drill, 6 for silk, and 4 for cutout. I should be able to cut that down a lot. There is a tradeoff between trace milling time and the isolation width. The PCB I’m holding in the photo used the Flatcam width=1 parameter which makes one pass around each trace. Width=2 will take two passes and clear out more room for easier soldering but will take twice as long to mill.

The milling and cutout was done with cheep ebay 10 for $10 V-bits, 30degree, 0.1mm tip. The PCB drills are from Harbor Freight. I found that the Inventables.com FR1 PCB blanks mill much cleaner than the FR4 that I started out with. No tear-out at all and no sanding was needed.

I have some notes on Eagle/Flatcam workflow and setting that I can clean up and post if anyone is interested.

My next step is for my son and I to design some guitar pedal effects and synths based on the Teensy 3.2/3.6 (https://www.pjrc.com/teensy/)

I’d love to see you workflow if you have the time to write it down - as I said before, I’ve just found a way that works, not put a lot of effort to optimize it!
Please post your modified bat-file as well if anyone likes your workflow more!

The speeds set in the bat file are very low! I have increased my speeds a lot compared to the bat file on github! (good to start slowly)

Including few more photos.

I milled a flat surface and parallel edge reference to hold the PCB. I may need to resurface the holder each time I remove it. Haven’t tried it yet. Held the PCB down with “JVCC DCP-01 Double coated Crepe” tape from Findtape.com.

The V-bit did not come with the stop collar. I took one off a broken drill bit (they break if you drop them!) and pushed it on with a vice to match my drill depth.


Here is the modified batch file. Funny I have not touched a .bat file in probably 20 years. I’ll try to clean up my notes and post them next week or try to get them formatted for Gitub.


PostProcessGcodesToolChange.zip (1.04 KB)

Haha, I know bat-file is the shit!

Lastly, here’s an example combined gcode output. Search for “pause” to see the tool changes.

Combined_MPCNC_TC.zip (91.7 KB)

Dam, that is one clean PCB, nice work and thanks for the pictures!

hi this is all very exciting. i have been trying the procedures from above but have come across a snag in my system i cant seem to figure out, hopefully some one can point out where i am going wrong.

I created a board in Eagle 7.4, expaorted the gerber files and excelon files ok. Imported them fine into FlatCAM. I exported my Gcode files all OK. My problem is that the gcode output is in INCHES and although the G20 instuction is there my MPCNC still treats them as mm.

Any thoughts and suggestions gratefully appreciated



Tony are you using my newest firmware? I don’t think the G20 was really supported until that version. I tried to look it up but the marlin page is down right now.

Hi Ryan thanks for getting back so quick.

i’m using Marlin 1.1.0-RCBugFix

on this web site http://marlinfw.org/meta/gcode/
G20 and G21 were implemented from V 1.1.0.

What is the current Marlin version you are using. I picked my one so i could use the probing gcode routines.

Thanks again

Yup, same 1.1.0 version.

I have never tried inches, your software post processor does not allow for mm output?

I’m not going to be working the rest of the day, I am not sure why it doesn’t work but the easiest would be to output in mm. I am not sure if anything would need to be changed in the firmware. That page doesn’t say anything but I can’t dig in right now.

Did you follow my instructions on github?
didn’t you run the command “set_sys excellon_zeros T”? Sounds like that might be your problem!


Thanks Ryan i believe its sorted now.

in FlatCAM I changed to mm in the options TAB. which is global and it seems weird to me as i’m sure Gerber files are in inches. Anyhow i plotted on my MPCNC with a pen and success drill holes all in the right place. I still have a lot to figure out, what is the best workflow for me but i am pleased to have got this far,


Thanks Karl,
Yes i did set the Zeros to T. I managed to follow your instructions quite well although i did have trouble understanding the #post processor part regarding the ,Bat file and SED.

##Post Procesor

I made a custom post-procesor to match the gcode that the post processor for F360 puts out.
creds to Mike that led me in the right direction
It’s a bat-script and needs “Sed” to be installed download Sed.exe for windows here
Just put the bat-file next to the folder “PostProcess” and dubble click the file, it will generate gcode-files of all the files in the folder

I have managed to install SED on my WIN10 pc yet im still unsure how to use the .bat file. You say to put the bat-file “next” to folder which is the bit i don’t understand.

Thank you for your work.


Have a look on the github files and folders! In a folder you have the bat file and a subfolder named postprocess, you put the outputs from flat am in the postprocess subfolder and double click the bat-file!

Oh thanks, That makes sense to me now thank you.

I tried it and it works. Yeah!

microsoft screamed at me first about potential unsafe program but put faith in your work

Thanks for your hard work.