KiCad and Scratch Milling

KiCad is an excellent open source tool used for creating PCBs. A common alternative is Eagle, which is also excellent, and integrates well with Fusion 360. I’ve used KiCad here, but most advice should transfer to any PCB design tool.

The good news is the PCB design process for scratch milling is pretty much the same as with regular circuit boards. Mostly you want to set things up to be within the tolerances of the process, and lean towards easier assembly where you can. Depending on your soldering process and comfort level, through hole components may be preferable to smd where you can get away with them. Wider traces will be easier to mill, and larger pads will be easier to solder.

Remember, these are DIY boards, so you can try funky things. For example if you decide not to use solder masks, you can still create pads shaped to contain the solder flow. You can drop SMDs into holes and use them as through hole connections. You can create slots to wedge in secondary boards vertically, or even make a circuit box. You can mill in light pipe slots and pour clear resin into them. You can shape the board any way you see fit, even use it structurally in a larger assembly. Once board creation takes a few hours and a few dollars, a lot of wacko ideas become worth trying, and some of them won’t end up being that wacko. Part of this is about getting full control of the design process – that means understanding footprints, routing, libraries, vector artwork, and all relevant export settings. The good news is most of these things are pretty straightforward in KiCad and beyond.

Traces, Spacing, and Vias

The main thing to remember here, is it is almost never wrong to have larger traces and spaces if you have room for them. The reason you want to be able to do 4 mil/0.1 mm lines is because you have to use chips with pins that size. So you might want to bring those out as small as needed, and then make them larger once there is room. With more room you can scratch more contours and have wider pads, meaning better chances of success in both etching and soldering.

The smallest sizes used will be dictated by the size and spacing of your smallest chip. After this I go with 15 to 25 mils (0.4 to 0.6 mm) for regular traces and around 40 mils (1 mm) for power traces. You will find more logical choices elsewhere, but whatever you choose, it is good to set default values for the board, and use the W and Shift W keys to toggle among them while routing. If you change your mind, you can then just find and replace whichever standard sizes you chose.

Because all scratches are the same size, the depth of your scratch is what sets the spacing unit. The pad distances on your smallest chip determines the required minimum, and soldering without bridging determines your preferred minimum. You can scratch multiple contours in FlatCam to create wider gaps, but with minimal practice and emergency solder wick, you should be able to solder with a single contour, even without solder resist.

Vias are both easier and harder. If you use via rivets, then they will decide hole and copper ring sizes for you. Alternately, you can just use a tinned wire through a hole, then clip and solder each side. It’s best to do this first, when the board is still level, and use a wire that is tight to the hole so it doesn’t fall out. It can be a little annoying to solder those just right though, and I’m not totally happy with my process. A solder pot helps a lot, and practice will definitely help as well.

Fill zones are not essential to the scratch milling process (it will leave a filled zone either way), but it’s almost always helpful to have a ground plane so you might as well connect it. Depending on your setup, the scratch size is about 0.05 mm. You can set the clearances and spacing of the fill zone to be 4 mils/0.1 mm for a single contour, and increase that the more contours you use. Like many things in this process, it’s best to use these as a starting point and experiment on some test pieces.

Lastly, it is helpful to make your board an easily divisible size for centering and flipping, and set the zero point to a sensible position. A lot of the flipping and drilling math will need to be done manually, and more likely to be done correctly with a well positioned board. I set the zero point using the auxiliary axis (bottom right icon in the image) and then export the gerbers with that enabled (not a default, see lower image). The board size is determined by the Edge Cut layer, try to make this an even/memorable number on the edge that flips as it carries through to your multi-board setup, FlatCam, bCNC and even Fusion 360 if you are making custom jigs.

Exporting for Production

For production we need to export the top and bottom layers and the drill (excellon) file. They will need to be placed very accurately to align with the CNC setup, and horizontally centered within your jig in order to flip the board correctly. It is easiest if you create a second PCBNew file using a template of your jig. This not only allows easy placement and centering, but it allows you to create multiple boards in the same gerber.

First create a PCBNew file that just contains the hole placement and sizes of your jig, and create a cutout area the size of the board. Set the 0,0 point to the center of the bottom left hole using the ‘auxiliary axis’. I also like to add horizontal and vertical center lines on the drawing layer. It is also possible to export your jig drawing from Fusion 360 and use that. Save this file, and then copy it into projects when you want to create production boards.

For this next step it is important you open PCBNew on it’s own – this prevents it from being linked to a schematic. In this mode, the ‘Append Board’ is an option on the file menu (it isn’t visible otherwise). Open the template file you copied into your project, and then append the board you want to create into it. At this point you can add as many copies as you like, just make sure they fit within the cutout area of your template and don’t get too close to the alignment holes. You can move things precisely by placing them at 0,0 and using Ctrl M to ‘move exactly’.

Once everything is in place, double check the fill zones are still correctly connected to GND or whatever net you linked them with. I find KiCad can sometimes get confused with multiple boards – it may be due to multiple sets of edge cuts. These can be deleted or connected, or otherwise fiddled.

At this point you can Plot your design. Make sure auxiliary axis is selected as well as the front and back copper layers. Export the drill files next (as Excellon files, the defaults should be fine here). That’s it – now we have gerbers and are ready for FlatCam.


Next: Through Hole SMDs