Introduction: Digital Controls for Router Lift
At The MakerBarn we designed and built a high performance router table. The construction of the entire table and mechanics would be outside the scope of a single Instructable, so in this Instructable I will describe the Arduino based lift control electronics and software.
Rather than using a modified hand-held router as most router tables, this table uses a 3HP water cooled spindle. The lift mechanism for the spindle is very similar to the Z axis of a CNC Router, except upside down.
The second photo shows the lift control panel, VFD controls for the spindle, and the MACS access control system developed at The MakerBarn.
Step 1: This Is the Mechanics the System Will Be Driving
Here's a photo of the lift. Notice it uses a series 23 stepper motor driving a ball-screw through the use of a 1:1 belt drive. The belt drive was used to "fold" the drive system and save space. The belt is a toothed timing belt, so there is no danger of slippage.
The Stepper motor is driven by a TB6600 type stepper motor controller. These are available on-line for about $10. They are capable of driving up to 4 amps with a input voltages from 9 to 40 volts. We run ours on 24V, the stepper motor current is set for 1 amp.
Step 2: A View Inside
The entire drive system is mounted on a single aluminum plate. There is an Arduino UNO with a prototype shield, the TB6600 stepper controller, and a 24V 2A power supply on the plate. There is also an LM7812 voltage regulator mounted to the plate to bring the 24V down to 12V for the Arduino.
The prototype shield is used to connect dual in line header connectors for the display and control panel ribbon cables. Connections to the stepper controller also come off this board.
Step 3: The View Outside
The control panel for the lift has two buttons to raise and lower the lift. There is also a manual zero button for setting the zero position. An inches/millimeter button allows switching between units. Two memory buttons, A and B allow saving and recalling lift positions. They work much like radio buttons. Pressing and holding a button for a few seconds, stores the current location in memory. A momentary pressing of a button recalls a stored location and moves the lift to that location.
Step 4: Now for the Details
These two files contain the schematic and the code for the Arduino Uno.
The display is a 16 character single line display. They can be a little hard to find, since the 2 line version is so popular. The single line characters are quite a bit larger, that's why it was used. It would be a simple matter to use the 2x16 display if desired. I believe the pinouts are identical. You would need to reformat the text display in the code.
The sensor probe for setting automactic zero is simply a contact plate mounted in a non-conductive straightedge. The plate is wired in parallel with the "Zero" switch. When used, the contact plate is set directly above router bit. The the lift is raised with the UP button being held. When the router bit touches the plate, the UP motion will stop. The user then releases the UP button and the display will reset to zero.
The photos shown in the previous step can be a great help in visulizing how the system goes together. This positioning system can be used for almost any size stepper motor. It would work well, for instance, for building an automated table saw fence.
The code is well documented. While perhaps not a beginners program, it is fairly simple and should be easy to understand and modify for your own use. The program was designed around the stepper controller being set to 4 micro-steps with a 200 step/revolution motor. The ball-screw has a lead of five millimeters.
Feel free to ask questions. Post comments letting me know if you found this design useful for your own projects.