For a three axis mill, we suggest starting with LinuxCNC firmware,  LinuxCNC, and NativeCAM or FreeCAD Path.

We do not recommend this configuration due to the lack of a true safe failure mode.  However, the external USB mode setup (add 1 jumper, and remove 4 others) will makes the pi3 optional. We did this as we eventually want to try robotic platforms with multiple 8-axis arms at some point, and a pi CPU has limited computing power.