I've recently built a CNC machine out of various pieces of high-quality salvage. With the money I saved in the construction of the system I bought a controller and software, the excellent MK2 CNC USB controller from Planet CNC. This forms the interface between the computer and stepper motor drivers and is controlled by a sophisticated program capable of importing Gerber files, DXF files and other useful formats. I'm using Pololu stepstick boards to drive my NEMA23 stepper motors but at the moment they are just sitting on a solderless breadboard; not the neatest of solutions. I decided that the first task I would use my CNC machine for would be making a PCB to tidy things up a bit. This is the story of how I used my system to make a completely different PCB. This instructable assumes that you have a CNC miller controlled by the Planet CNC CNC USB controller, properly aligned and calibrated.

Step 1: Camera Setup

I'm using a cheap (£12) USB endoscope camera bought via eBay from China. It has a 10mm diameter metal body, very easy to mount. However the CCD on this cheap camera was 7 degrees off axis, so have plenty of adjustment room in your mounting bracket. The camera is mounted next to the spindle. To set up the camera:
Drill a small hole into the spoil board. Then:

Machine->Camera->Set offset->Mark /4801

Now start the camera:

Machine->Camera->Show Camera ... /480

Centre the camera crosshairs over the hole, at lowest possible Z height.

Machine->Camera->Set offset->Read 1 /4802

Increase Z as far as possible while still being able to see the hole, and re-centre the crosshairs.

Machine->Camera->Set offset->Read 2 /4803

This sets up the camera so that you can accurately place your spindle over a job or read off co-ordinates for transformation of tool paths (used later). It uses two points to compensate for possible mis-alignment of the camera, which would shift its apparent position when Z height is altered.

About This Instructable




Bio: Multiscale fabricator :)
More by tim23x:CNC USB dual layer PCB milling 
Add instructable to: