Drilling holes in homemade PCBs is greatly simplified with an computer-driven coordinate table on a drill press.
The clue is the on-the-fly calibration technique, so it does not matter where exactly the PCB lies on the table. You only need to move to two drill holes by hand, then the computer knows how to drive to the other holes.
As you may have seen in earlier articles, I produce my own PCBs at home with the toner transfer method. After some experimentation the PCB quality is quite satisfactory, but drilling the holes for even a moderate number of through-hole components is very tiresome.
When you design your PCBs with a proper CAD software (such as KICAD), you have the coordinates of all drill holes anyway, so how about making an automated moving drill press table which moves the PCB to the places where holes are desired? But calibrating the coordinate system on the PCB should be quick and reliable.
Acquiring a coordinate table and motorizing it
So I got a “Proxxon MICRO compound table KT 70″. The table has two axes with two cranks. At the rear end each axis has a cap that, once removed, reveals a 10 mm hexagon nut. This nut is very tightly attached to the spindle, so it can be used to exert force and move the table.
From pollin.de (surplus store) I got two cheap bipolar stepper motors that I attached to the spindles using 10mm ratchet wrench sockets. I used a Dermal to cut a slit in the stepper motor shaft and inserted a small piece of metal sheet. The other side of the sheet has the exact dimensions to fit diagonally into the square hole of the wrench socket.
Microcontroller + USB + tactile interface
Onto the motor driver board I soldered an ATMega32u2 microcontroller breakout board which I had previously designed and etched. The ATMega32u2 has a native USB interface which can be used to communicate with the microcontroller at runtime, but also to flash the firmware without the need of an extra programmer.
Pollin.de was selling old touchpads (“TM1001a”) for 35 cents until recently. It needs a supply voltage of 5V and has only one bi-directional data line which is connected to a simple GPIO pin of the microcontroller. I found a code snippet on microcontroller.net and built an AVR lib around it, which makes it easy to get information about either relative or absolute movements.
In this application the movement of the compound table follows the swiping of a finger on the touchpad. As soon as the table has reached the target position, the current through the motor coils is switched off.