The mail goal of this week was to make an in-circuit programmer by milling the PCB and program it. So lets divide entire process into steps:

Designing the board

While searching for different versions of FabISP, I chose the one that was described here. First time, I downloaded .brd file for this PCB and opened it with Autodesk Eagle:

I even tried the export feature and discovered many parameters of Gerber file format

In my point of view ideal workflow would be to export it somehow to Fusion 360 and then generate .tap file with toolpath, but as I discovered there is no way to do this (https://forums.autodesk.com/t5/fusion-360-ideastation/milling-eagle-pcb-with-fusion-cam-module/idi-p/7336558)

The main design rules are:

  • you need to have enough space between the components on your board that the milling machine’s tool can cut between them. For example, if you’ll be using a 132” End Mill, your traces, pads, vias, etc. need to be larger than 0.03125” apart. You can use smaller tools, like a 164” end Mill, which allows you to place objects closer together.
  • if you’ll be using surface-mount (SMD) components, the pads need to have enough space between them for the tool to fit.
  • our design is pretty easy, it’s one-layered and without holes :)

I exported the png version of this board, then vectorized it with helping of ArtCam software.

CAD&CAM:

Then I checked out tools which I have:

Oops! The smallest end mill that I have has 0.5mm size, but let’s try with test layout! Material is FR4

Milling start:

Test layout result:

Ok, depth seems larger than needed, and small traces are broken. Let’s try to use V-carve mills, and justify Z-axis zero to achieve 0.1-0.2mm between traces. (I used 45˚ and 20˚ v-carve mills).

V-carve:

After some tuning:

Seems perfect – traces are clean and depth of cut is acceptable. After replacing sheet of FR4 to new, let’s try to make final board.

Final Cut:

Soldering components.

I used solder paste, with dryer.

SMD cased diodes were out of stock, so I replaced them for hole mounted versions.

After each operation I checked traces by multimeter in “zummer” mode

Programming

I downloaded firmware archive, installed (CrossPack)[https://www.obdev.at/products/crosspack/index.html] software for my OSX.

I connect my FabISP board to AVR-ISP-MK2 programmer

and execute make program from the unzipped firmware folder, but constantly get error

Firmware