Despite the prevalence of printed circuit board (PCB) manufacturers with fast turn-around service at modest cost there remains a great deal of interest in do-it-yourself PCB's. For developers building prototypes to a tight schedule even a few days delay waiting for boards can be unacceptable. Moreover, using a commercial manufacturer for a single small board may not be cost effective. New methods of producing PCB's such as the toner transfer process have made in-house fabrication in hours practical for even the smallest operations. The use of a computer and a laser printer, (or even a copying machine), has eliminated most of the time-consuming artwork and photographic steps. However, there remains the most labor intensive and tedious step, drilling hundreds of holes, a process that for most, defies automation. There are systems available that will solve this problem using Computer Numerical Control, (CNC), but with costs in the $10,000-$20,000 range they are out of reach of the individual or small business. Occasionally an article will appear in a hobbyist publication on building your own PCB drill but they are usually only designed to position the board automatically leaving it to the operator to manually drill the hole. In addition, the mechanical construction is more challenging than the electronics, discouraging those who do not have access to machine tools capable of the necessary precision.
Precise mechanical positioning is a common requirement for printers and scanners which have stepper motors, reduction gearing, drive belts, and pulleys capable of resolutions down to a few thousandths of an inch. The mechanical power supplied is of the same order that the PC drill requires. Raising and lowering the drill head involves a linear motion which a linear stepper motor provides. For this project the positioning mechanisms of two 600dpi x 1200dpi scanners were used to construct an XY table capable of handling a 5” x 5” PCB. Two scanners were necessary since only one axis of the scanner is mechanically scanned, the other is optically scanned. The stepper motors are unipolar units operating from 12 volts resulting in a very simple interface. Even more convenient is the power supply, which can provide all of the necessary power without any modification whatever. An Airpax K92211 linear stepper motor and a 12 volt high rpm DC motor satisfy the requirements of the drill head.
It would appear that with the appropriate microcontroller, (MCU), support circuitry, and software, all requirements are fulfilled. Unfortunately, there is a problem which arises when this technique is implemented. Due to the inevitable manufacturing tolerance buildup in an assembly of motors, gears, pulleys, belts, bearings, etc, the resulting errors degrade the accuracy. Scanners can tolerate this since they are only mechanically scanning in one direction and axis which minimizes the problem. But the PC drill table must move in both directions and two axes. Improvement can be achieved by programming the MCU to approach every drill position from the same direction but there is a more serious situation which can occur and make the whole concept unworkable. This is the unfortunate tendency of a stepper motor to stall for various reasons, resulting in its position ending up somewhere other than where it is expected to be. Subsequent positions are, therefore, at an unknown offset which is disastrous for the board being drilled. These problems are obviously the unavoidable result of a servo system which is running open loop. The solution is just as obvious: close the loop. If a sensor is provided to actually measure the position of the table, the MCU can adjust for any out-of-position condition regardless of the cause. What kind of sensor is available that can measure distances up to six inches with an accuracy of a thousandth of an inch at a price which is consistent with the minimum cost philosophy? Until recently, there has been no realistic answer to this question. Fortunately, the same cost reductions due to economies of scale of the computer industry that provided the hardware for the positioning table will also provide the sensor for measuring the table's position via the machine tool industry: the electronic digital caliper. Once an expensive instrument, it is now available from many sources in ranges from four inches to twelve inches with an accuracy of 0.001”. The 6” models meet the requirement for both range and economy. Best of all, they have a straightforward serial output which the MCU can easily handle.
Now that the mechanical considerations have been dealt with, what means of control will be necessary? The following operations are required:
- Communicate with the PC via its parallel port for receiving data from the drill file.
- Move the table to a reference point and coordinate this positon with the caliper's reference.
- Process the data and generate motor control signals sufficient to move the table to the desired position.
- Read the output of the digital calipers to verify the position is within the tolerance of the expected position and correct if necessary.
- Power up the spindle motor of the drill head and allow it to come up to speed.
- Lower the drill head to the correct depth and return it to its starting position.
- Power down the spindle motor.
- Advance to the next position until all holes have been drilled and return the table to the reference position.
The heart of the controller is the MCU, an MC68HC908QY4. Despite having only 16 pins, 14 of them are available for input/output. This is more than adequate to do the job.
Refer to the accompanying schematic and block diagram for circuit operation. MCU port bits PA2 and PB7 handle the interface with the PC via P1 which connects to the PC's parallel port. PB7 is an input/output port to receive the data from the PC. The MCU polls the data clock at PA2 until a logic high is detected. Each subsequent negative edge clocks a six byte data record received on PB7. The data is stored in variables until it is to be acted on. If the data received requires a response, it is transmitted to the PC at the end of the received record. Amplifier U3 converts the 1.5 volt digital caliper's signals to 5 volts. PA5 and PB2 are caliper select bits, which determine whether the X-Axis or Y-Axis caliper's data and clock are connected, via data selector U1 to the data bit PB1 and clock bit PB0. The calipers transmit position data at intervals of approximately 250 msec. When the MCU requires a position update it waits for the asynchronous caliper data and reads the first three bytes, the current position, offset by a fixed value. Although six bytes are transmitted, the remaining bytes are not used. Control of the stepper motors is from PA0, PA1, PA3, and PA4 which connect to phase inputs, P1 to P4 of each of the three motors via drivers U4 and U5. The common winding of each motor is powered by transistors Q2, Q3, and Q4 which are enabled by RB4, RB5, and RB6. RB3 enables transistor Q6 and Q7 which powers the spindle motor. The unit requires 5.0 volts and 12.0 volts, supplied by the original scanner power supply which is left in place in the X-Axis base.
Once the PC begins sending drill commands, the only operator action necessary is the occasional necessity of changing drill bit sizes. Although the current software is limited to drilling holes, the machine could be expanded to include machining the circuit traces as well. No additional hardware would be required beyond the fitting of an appropriate end-mill tool in the drill chuck. Additional software would be primarily on the PC end with minor additions to the MCU program.