It has been a long time since last time I wrote on this blog. I finally decided to complete this project because I need to make a small bunch of pcb and I want the possibility to review the boards whenever I want, so I cannot depend on an external manufacturing company. As I described in the first part I coded a little tool in Python to achieve my goal. I also added a basilar Excellon support so it is possible to load the file generated by Eagle and it allows to compute an affine transformation in order to make an accurate drilling. I used Numpy and OpenCV libraries to get straight to te result but let’s take a look at the setup. I needed a camera to locate the pads and I went for the Logitech C270, a nice HD resolution webcam for the price. The zoom is fixed but it is easily adjustable with its own focus ring.
The camera comes with a fancy support so I made a new one from scratch to attach the camera to the spindle holder
The first thing to do is to set the camera offset. For convenience I drill a reference hole touching off at X0 Y0 and I locate it through the camera view. The coordinate now displayed on the machine is the actual offset.
Now I can pick up three points and locate the relative pads center trough the camera. It is common sense to not choose points that lay on a straight line. Of course the farther the points are, the better the result could be.
Finally I can let the software do its job. As you can see every hole is just where it should be. Below you can find the download links for Windows/ Mac OS X binaries. Let me know if it’s working for you and please notify me if you find any bugs :-)