"... and no one shall work for money, and no one shall work for fame; But each for the joy of the working, and each, in his separate star, shall draw the thing as he sees it, for the god of things as they are"

-Kipling

 

Line Grinder:
Gerber to GCode Isolation Milling

Background

As so often happens when working on a project, one day I found myself in the position of having to undertake an entirely new project just to keep the original project moving forward. Such is the way of the world.

The original project (the Wellity CNC Router) needed circuit boards - and some pretty big and odd shaped ones at that. Given my distaste for spending money, I was loathe to purchase commercial PCB design software and have circuit boards professionally made. Especially as, by the time proper circuit boards were required, the Wellity router was pretty much operational using perf-boarded circuits. The intention was always to eventually use the router to create PCBs for other projects, so the logical conclusion was that it might just as well to get it over with and figure out how to isolation mill PCB's now rather than later. This turned out to be quite a bit harder to do than I imagined it might be. A search for Gerber to GCode isolation routing packages was performed and, indeed, some were found - however each had their drawbacks. An overview of the available options is available on the Gerber To GCode Isolation Routing Summary page. Thinking back on it, the relative scarcity of Gerber To Isolation GCode software should have been a really big warning light telling me that this is a not an especially easy problem. The evidence suggests I am rather clueless about such things.

Sooo... for better or worse I decided to write a package which would run natively on a Windows platform and which would provide the functionality I wanted in regards to PCB isolation routing GCode. Since the software might well be useful to others, it has been released under the MIT license as free and open source. You can download it at the bottom of this page.

The Line Grinder Software

Line Grinder is a software package which can generate isolation routing GCode from the Gerber format plot files output by most PCB design programs. However, Line Grinder is intended to be a bit more than just the software. The GCode it produces, if run sequentially, should also provide a method for reliably producing nicely aligned, double sided isolation routed PCBs including the cutting of border outlines and the drilling of pad holes and vias. It is intended to be a one-stop-shop GCode generator and methodology which will produce consistent results when cutting circuit boards. It seems to work well for me - hopefully it will do so for you too.

Capabilities

What Line Grinder Does Not Do

Please be aware that the Line Grinder software is purely a code generator. In other words, if you feed it some Gerber or Excellon files you will get some GCode out. Where, how and when you run those GCode files is entirely up to you. Specifically, the Line Grinder software is not a machine controller (like LinuxCNC, Mach3, TurboCNC or many others) and it cannot make your PC physically interact with a CNC mill.

Tutorial Videos

There are a series of four tutorial videos in place on YouTube to help you get started. Unfortunately the first and last of the series are not ready quite yet. However the middle two are online and available.

Help Files and Manual

The Online Manual contains a set of help files which, when viewed in sequence, form a "Get Started Guide". There are also specific help files which discuss how to prepare and output suitable Gerber files from the Eagle, KiCad and DesignSpark software. The Line Grinder software zip file (below) also contains a complete set of these help files.

The Source Code

The LineGrinder software is open source and is released under the MIT License. You can download, clone, fork or create pull requests at the following address:

https://github.com/OfItselfSo/LineGrinder

Pull requests with enhancements and improvements will be cheerfully received.

Download the Binary

The best option is to acquire the code from the Github repo (see above) and compile it yourself (Visual Studio 2019 C# was used for development). However, if you just want to use the code as-is, a pre-compiled binary LineGrinder.exe file is available below. There is no installer - just unzip it where you want it and run.

Acknowledgements

Various small snippets of open source code have been obtained and included in the software. Full credit has been given in the source code comments where appropriate.

Screenshots

The Line Grinder Main Form and a Gerber Plot before Conversion to Isolation GCode

 

A Graphical Plot of the Calculated Isolation GCode

 

License

This software is offered as a binary and with source code under the terms of the the MIT License.