Build - Electronic Indexing Head

https://sites.google.com/site/lagadoacademy/useful-links
Stepper with planetary gear reduction.

[Feb. 3, 2017] - started placeholder page

[Dec. 26, 2017] - added actual build notes

[Jan. 7, 2019] - added notes on final version

[Jan. 24, 2019] - final tests

The drawing to the left is a temporary placeholder, pending completion of the project; it will be replaced by a photo of the completed indexer. The picture shows the mechanical components ("fixture") of the indexer, which will be used to hold a part for milling. From left to right, the major components are as follows:

  • stepper motor

  • motor support

  • flexible coupler

  • adapter fitting (connects coupler to collet holder)

  • ER32 collet

  • collet support

  • baseplate (at bottom)

My goal here is to build a special purpose indexer for cutting gears (and perhaps other small parts), as opposed to a general purpose indexing head. My assumption is that the mechanical requirements for this will be less demanding, and will enable me to complete the build with the tools I have on hand. It may even turn out (if I get this working!) that I will be able to use this special purpose indexer to help build a larger more general purpose indexer.

The build is divided into two parts:

Part 1 : The stepper motor and associated controller

Part 2 : Fixture - connecting the stepper motor to a older for the gear blank for milling

Part 1 : Stepper Motor and Controller

This part of the build is based almost entirely on a forum topic in Home Model Engine Machinist by bmac (Bob) - see reference #3 below. Here is a summary of the requirements for getting the stepper motor working:

Note: I used a NEMA 17 stepper motor with a torque of 76 oz/in; I would recommend getting a higher torque motor (the highest torque NEMA 17 motor I have found online is 92 oz/in) . A NEMA 23 might be a better choice for this application, but of course this would require changes in power supply, etc.

[IMPORTANT: Disconnect power from the UNO before connecting components. This warning applies to all instructions below.]

  1. Install Arduino IDE on computer (if not already installed)

  2. Connect UNO to computer and test for connectivity

  3. Connect display to UNO and test

  4. Connect keypad to UNO

  5. Install controller program and test keypad

  6. Connect controller to UNO and test

  7. Connect power supply and stepper motor to controller and test

  8. Connect bump converter [Optional] and test OR connect UNO to power supply

Here is a list of the electronic parts I purchased, with prices I paid (U.S. dollars, 2017), and links to the purchase site. Prices include economy shipping (economy shipping is very cheap, but you will likely wait several weeks for the order to arrive).

Note that the UNO I purchased is a Chinese clone; I had no trouble connecting to it on my Linux desktop (if you are using Mac or Windows, you may need to download and install a driver).

Wiring Guide

The PDF document linked to below provides a guide to wiring connections :

Arduino Rotary Table Parts List

Here are the specifications for the motor I purchased:

NEMA 17

  • Holding Torque: 0.537Nm - 5472 g/cm - 76 oz/in

  • Rated Current/Winding: up to 1.4A

  • Supply Voltage: up to 36VDC

  • Resistance Per Phase: 2.3Ω

  • 1.8 deg / step

  • 4 wire connection bi-polar

  • width 42mm x 42mm

  • total length of 44mm

  • 5 mm diameter shaft WITH FLAT

  • shaft length 30mm

  • Weight 11.3 oz.

  • Connection wire provided

  • PIN1= B-

  • PIN3= B

  • PIN4= A

  • PIN6= A-

Stepper Motor and Controller - Breadboard Build

[Dec. 6, 2017] I completed the initial controller build, and mounted the parts on a 9" x 14" plywood "breadboard" for testing purposes. The build was done pretty much as explained in reference #3 below, except that I had to reverse the pin connections for the keypad. I also made some code modifications, which I will post on this page once I have finished testing and debugging the changes.

Breadboard layout of electronics and stepper motor.

Short video showing the stepper doing 90-degree increment rotations.

Adding a Beeper

Adding a simple beeper (I used a "piezo buzzer"like the one on the left - actual size about 22mm diameter) is very easy; these cost around $1 or less (2019). Simply connect the two wires on the beeper as follows:

  • black: pin 13

  • red: ground (GND)

Actually the beeper will work even if the two wires are reversed, but I found that mine worked better as above than when reversed. Sometimes it is suggested to add a 100 ohm resister, but this is really not necessary.

The indexing program I wrote includes the option to use a beeper. I also wrote a simple program ("beep-test" - available for download in the Coding section below) which can be used to test beeper function and find the best frequency to use with your beeper.

WIRING DIAGRAMS :

A PDF showing the required wiring connections can be found here:

Controller Enclosure

WORK In PROGRESS

I still need to make an enclosure for the electronics. I'll start work on this after I get the fixture completed.

Part 2 : Building the Fixture

Plans for this fixture are available here:

Note : The above plans show the original (NO planetary drive) stepper motor. However, the planetary drive motor is a simple substitution and will work with the same plans (just modify the mounting hole positions for your particular motor).

Getting the stepper motor working and indexing properly is a critical part of the build, but also critical is what I am calling the "fixture." This is the mechanical part of the build that connects to the stepper motore on one end, and holds the gear blank on the other end. For this purpose I am constructing a "straight through" fixture in which the stepper motor is directly connected to the gear blank holder without the use of reduction gearing or belts and pulleys.

The essential components of the fixture are as follows:

  1. Stepper motor from Part 1 of this build

  2. ER32 collet holder (with straight shaft) to hold gear blank mandrels

  3. Flexible coupler (purchased) to connect stepper motor to collet holder

  4. Adapter fitting to connect collet holder shaft to flexible coupler

  5. Frame to hold stepper motor and collet holder

  6. Bushing to hold collet holder

Here are the flexible coupling and collet holder I purchased:

Straight shaft collet holder

Flexible coupling

The flexible coupling has a 5mm opening on one end (for the stepper motor shaft), and an 8mm opening on the other end. The collet holder has an internal hole in the straight shaft - about 0.46" I.D. The problem is how to make an adapter that will fit into the shaft of the collet holder without slipping. The shaft is hardened, so there is no easy way to thread it - making a simple threaded fitting is not an option. My solution was to make a "stem bolt" (see Ref. #7 below). A stem bolt is a hollow cylinder cut at an angle, such that a when a bolt is used to pull the two ends together it wedges itself in a bore.

Adapter Fitting for Collet Holder

Here is the adapter I made:

Making the adapter was fairly straightforward:

First I turned a piece of steel in the lathe to fit the internal bore in collet adapter (note, the internal bore in the collet adapter was fairly rough, and there was an internal burr at the entrance to the hole which I was able to remove with a carbide countersink). I first turned the steel to a slightly oversize diamter, and then used abrasive paper to reduce the diameter until I had a very close fit. I then drilled holes for internal threading and a clearance hole. Next I revered the piece in the lathe and turned it down to fir the flexible coupling. With the turning complete, I milled flats on the large diameter (so I could hold it while I tightened the stem bolt), and also milled two flats for the flexible coupling set screws.

Note: In the plans for this build, I show an alternate simpler design (untested) for the adapter.

The final step was to cut the piece at a 45 degree angle. I did not really have a good way to hold the piece for this cut, so I ended up clamping it on the flats as shown in the picture to the left (I left the angle gauge in the vise to equalize the pressure across the jaws). Since the angle and position of this cut are not critical, I lined up the angle by eyeballing it against the angle gauge. Similarly, the slitting saw was positioned by eye against a line marked on the diameter with a blue sharpie and a caliper. I started the saw cut very slowly so that the blade would not be distorted by the pressure of the cut.

The cut went very well, and the finish was very good. Some minor de-burring was required, and there was one other small issue - the through-hole end of the piece had a few partial threads in it which I removed with a small Dremel burr.

When the assembly was inserted into the collet holder, and the socket head cap screw was tightened, it locked into place easily.

Stepper Motor Support Plate

The stepper motor support plate (made from 1/4" aluminum plate) was drilled in the mill for the motor opening and the bracket screws. The motor opening was finished to final diameter with a boring head.

Collet Holder Support Plate

The collet support (made from hot rolled steel plate) was similarly drilled and bored in the mill. The bottom tapped mounting holes created a slightly raised area around the holes, so the bottom was lapped on 220 grit sandpaper. I use a thick glass plate as a lapping plate for this purpose (hidden under the sandpaper in the picture, and held in a wooden frame).

The tapped side hole (to be used for the rotation lock) raised a burr on the inner surface; this burr was removed with a Dremel tool using a small spherical grinding attachment. This was probably a bit too aggressive (even though it worked); if I had it to do over again I would use a hand-held diamond burr (see the write-up below on the bushing).

Collet Holder Refinements

The face of the collet holder which contacts the bushing on the collet holder was fairly rough as purchased. In order to provide a smooth mating face, I used a carbide tool to clean up the face. You can see the tool in the photo to the left ( a very sharp and very good quality brazed carbide tool which I picked up at an auction). I held the collet holder in a 4-jaw chuck, using copper "soft jaws" to protect the part. I took a series of very light cuts (less than .001" per cut) until I had a smooth face.

You can also see a slight undercut on the collet shaft where it meets the face - this was already on the part as purchased. If it hadn;t already been there, I would have added it.

In the two pictures below, you can see the "before and after" of the collet face.

Rough face - as purchased

After facing with a carbide tool.

Bushing for Collet Holder

The bushing was made from bearing bronze (I happened to have some on hand; brass would probably also work). The raw stock was mounted in a four jaw chuck, and supported on the right end with a dead center. The photo to the left show the raw stock before being center drilled for the dead center.

The end was turned down for a close fit in the collet holder support plate. The photo shows the support plate being used for a test fit.

Before cutting off the bushing, the center was drilled out with a succession of drills of increasing size, ending with an 11/16" drill (I could have gone to 3/4", but that was a bit to close to required final I.D.).

In this photo the bushing has been parted off. Before parting off, a small undercut was made on the left hand end, and the internal face was squared off to ensure a tight fit in the collet support plate.

The partially finished piece was then mounted in copper "soft jaws" and bored out to a smooth fit for the collet holder. The final lathe operation was facing the end to make sure it is square, followed by slight chamfering of the I.D. and O.D.

The next operation on the bushing is to mill out a "tab" on the side of the bushing to provide for a means of locking the rotation of the collet holder (see Reference #5 below).

The first step is to make a small "dimple" or detent for the adjusting screw using a ball end mill.

Milling out the tab starts with marking the corners with a center drill, followed by drilling and routing:

Spotting with a center drill.

Drilling the "corners."

Routing to connect the "corners."

Here is the finished bushing. I de-burred the tab, both inside and out, using a spherical diamond burr held in a small collet (this worked well, and gave me better control than using a Dremel tool).

Here is a closer look at the rotation locking tab (see Reference 5 below). In the finished fixture, a screw is rotated to push the tab against the spindle of the collet holder, locking it in place. A bit more than a quarter-turn of the screw is sufficient to lock the spindle in place.

After assembling all of the parts for a test fitting, I found that the collet holder was sticking a bit in the bushing. I put together a quick-and-dirty "flapper" using 240 grit abrasive cloth to polish the bore. It only took about 20 - 30 seconds of polishing to get the collet holder turning smoothly. I also use a bit of sewing machine oil to lubricate the bushing.

Initial Version : I found this version did not have sufficient torque.

Here is the fully assembled fixture (not yet including the rotation locking screw).

When I connected the motor to the electronics, however, there was one "small" problem - the motor was not putting out enough torque to turn the collet holder. As a first step to resolving this problem, I tried adjusting the motor controller to provide more torque.

Checking the stepper controller, I found it was set to the lowest running current setting (0.3A) which was of course also the lowest torque. I raised the running current setting in steps (taking care to unplug the equipment first), and found that I could get fairly good collet rotation at a setting of 0.8A. Since I wanted to make sure that the collet rotated reliably, I set the running current to the rated current for my motor (1.4A).

The motor is now running with these controller settings:

  • Running current : 1.4A (max rated current for the motor)

  • Stop : 20%

  • Excitation : 16 (i.e., 16 microsteps)

  • Decay : 0%

I found that if I change the stop setting the motor does not rotate, and as I have no idea what decay setting is optimal, I am leaving it at 0%.

With the above settings the motor moves 0.1125 degrees/microstep, which means that in order to obtain the optimal resolution I have to make the coding a bit more complicated. For example, suppose I wanted to make a 48 tooth gear. To move in 48 equal segments, each segment would have to be 3022/48=66.667 microsteps. Since the motor cannot move a fractional step, each segment has to be rounded up or down, and this needs to be done in a way that equalizes the small error across all segments, as well as making sure the motor returns to the exact starting point with each 360 degrees of rotation. Note that in the example provided, if we simply rounded to 66 microsteps, we would accumulate an error of 0.667 with every increment, or a cumulative error of 32 microsteps after a "full" rotation. Not only would this maximize the error (just 0.01%, but still . . . ) for every increment, it would also not return to the exact starting point after a "full" rotation(which would cause an obvious problem if we wanted to do multiple rotations for some reason).

Final version: After first trying another stepper motor with higher torque (but still not enough) I switched the motor to a stepper motor with planetary gear reduction. The motor is run with micro-stepping set to 1 (that is, no micro-stepping).

This motor is running with these controller settings:

  • Running current : 0.8A (max rated current for the motor)

  • Stop : 20%

  • Excitation : 1 (i.e., no micro-steps)

  • Decay : 0%

Stepper with planetary gear reduction.

Here is the datasheet for the above motor (click on the image for a larger version). Note that the gear reduction is a nominal 27:1 but an actual 26-103/121:1 (or approximately 26.851239669:1); this makes little difference in actual operation, but is important to get right in the operating code.

Part 3 : Coding

After reviewing the code from the original project (Reference #3 below), and for the reasons mentioned in the above paragraph, I decided to make some major changes. The revised code can be downloaded below (most recent version is listed first). Older versions may contain known bugs and are kept for archival purposes only.

After writing the "conventional" Rotary Table Control program below (final version of the Arduino_Rotary_Table_Control_2019_Rev7 series), I decided to write a completely new program which would enable stepper motor control with acceleration and deceleration, as well as a number of additional features. For a link to this program, as well as additional related information, see this link:

UPDATE JUNE 15, 2022 : A new program update has been posted at the link below. This program has significant improvements over the "conventional" program listed further below. The new program version is therefore recommended.

RECOMMENDED : Stepper Motor - AccelStepper.h

Below is a "conventional" program based on the methods of the sketch in the original article in Home Model Engineering Machinist (see references below). This program is believed to work properly and offers the basic functions needed for an indexing controller.

[3-22-2019] Rotary Table Control program

Arduino_Rotary_Table_Control_2019_Rev7.25.ino : https://drive.google.com/file/d/1rrJp93zIQNwu6CG4hP2PnVmy43qsiQZb/view?usp=sharing

IMPORTANT: Read the internal program comments on first use.

[3-35-2019] Beeper Test program

beep-test : https://drive.google.com/file/d/1vvBbbmfBYGx-T46nV1J529GEnCWiicWo/view?usp=sharing

  • This is a simple Arduino sketch which can be used to test whether a piezo beeper is working, and also to find the loudest (or otherwise most desirable) tone.

The programs below are included for archival purposes only.

Arduino_Rotary_Table_Control_2019_Rev7.ino : https://drive.google.com/file/d/1nqi2-hLbaRpHTycyjhnTYgtOoHQgOMNp/view?usp=sharing DON'T USE THIS - HAS BUGS!

  • Note: Version 7 has the stepper motor settings for my setup hard coded in, but these can be easily changed (and changes permanently store) via the keypad. After loading the program, choose the Settings option to update the settings for your equipment. These settings will be maintained (even after power off) unless the program is re-loaded.

Arduino_Rotary_Table_Control_2017_Rev5.ino : https://drive.google.com/file/d/1LKBuIdeg_tGGAXzybDnTHZ8Eyde9ycet/view?usp=sharing DON'T USE THIS - HAS BUGS!

For questions, comments, or suggested corrections or improvements use the comments section here: Home page.

If corrections or improvements to the code are made, updates will be posted here.

Version 7.24 notes:

  • Added a beep function to beep at the end of a move

    • Beep is optional - can be turned on or off via Settings

    • Beep function requires installation of speaker or piezo buzzer

  • Added backlash correction when reversing direction

    • Requires determining experimentally the exact backlash for your system

    • Can be turned off by setting to 0

  • Fixed bug when moving a full rotation in one move

Version 7.23/7.24 notes:

  • 7.23:

  • Fixed bug in counting and displaying reverse steps

  • Changed delay option from milliseconds to microseconds

  • 7.24: Added program comments for first time users.

Note: Although I believe this code version handles moving in reverse correctly, it does NOT do any backlash compensation. This means that if you move forward X steps and then reverse X steps you will not return to the original position.

Version 7.14 notes:

  • fixed a loop bug due to incorrect variable type assignment

  • fixed bug causing failure to recalculate total micro-steps per revolution when changing settings

  • fixed some minor display issues

Version 7 notes:

  • fixed minor bug to prevent entry of two decimal points

  • revised display formats extensively

  • revised "moving" display to show steps as a fraction of total micro-steps per full rotation

  • added code to enable changing of stepper motor settings and save changes to permanent memory

  • added getnumber function to reduce total amount of code

  • modified keypad entry function to allow for 4 decimal places of entry

  • fixed several mixed int-float calculations so that all numbers are treated as float

Version 6 notes:

This version was a rough proof-of-concept version for testing purposes only, and is un-published.

Version 5 notes:

The code changes were made so that when stepper motor and rotary table parameters are entered into the program, calculations will be made in two ways:

[Note: In the explanation below, I will use "steps" to mean either full steps or microsteps, which the stepper motor is set for.]

First, the program will calculate the exact ("theoretical") number of steps required to move a specified number of degrees; this may be a fractional number even though the stepper motor cannot move a fractional step. The program also keeps track of the total number of theoretical steps moved.

Second, the theoretical number of steps are converted to "actual" (integer) steps. The program also keeps tracks of the total number of actual steps moved.

The determination of the required number of steps to move is in all cases based on the theoretical steps, which are then converted to actual steps. This method provides the best approximation (typically with an error less than 0.01%), and enables the easy use of gear and table ratios which do not divide exactly into 360.

See "programming" under References below for more information. Below are screen shots of the display as of Version 7:

Start-up display (shows for 1-1/2 seconds)

Options after start-up

Degrees entry showing "5" entered.

Display after enter key (5370 is the number of "microsteps" in a full rotation for my set-up).

"Sides or teeth" entry showing "36" entered

Display after enter key (5370 is the number of "microsteps" in a full rotation for my set-up).

Jog entry showing "B" entered. Display shows number of "microsteps" for each option.

Display after enter key

Initial menu (again) - following screens show after "D" for settings

Total number of full steps (stepper motor only) in a full rotation

Micro-stepping option (typically 1,2,8,16,. . .)

Gear or table ratio. For my planetary reduction gear this is 26+103/121 = 26.851239669

Delay after each step(to allow motor to complete step)

Initial Testing

For initial testing of the indexer, I made a jig to hold an AccuRemote digital angle gauge in the collet holder. This is not a definitive test as the gauge is only accurate to ±0.2°, but it is good enough to help reveal significant (or cumulative) positioning errors.

Digital angle gauge.

Rear view of holder.

Backlash Determination

In order to determine the amount of backlash in the system, a good method of marking the table position is required. One way to do this is to attach a laser pointer to the rotary table.

Test Cuts

Test cuts : Initial Stepper Motor (NO planetary gear):

The test cuts below were made with the initial motor version (NO planetary gear reduction) and version 5 of the code.

The pictures below show my first tests of the indexer - one fail and two successful. The first test was in 1/2" brass rod, cutting with 4 divisions. I'm not exactly sure why this failed, but it may be because I did not properly lock the rotation for every cut.

For the second test cut, I switched to (cheaper) aluminum 1/2" rod. This time I was very careful to lock the rotation before each cut. The result was a successful four-sided cut (note, the sides may not look parallel in the picture, but this is just due to parallax error in the camera).

For the third test: Six sides in aluminum 1/2" rod.

For the fourth test fail): 17 cuts in an aluminum blank. See second test series for more information.

Test cut - brass (fail)

Test cut - aluminum -four sides

Test cut - aluminum - six sides

Aluminum blank - 17 cuts (fail)

Test cuts : Stepper Motor with Planetary Gear:

For this test, I mounted an aluminum disk on a mandrel in the collet, and used a keyway cutter to make 17 equally spaced (I hope!) cuts.

Prior to making the first cut, I set the stepper to rotate through a full 360° rotation in order to remove any backlash from the system. Before making each cut, I used the rotation lock (brass knob on the left) to lock down the collet.

After rotating back to the initial position, I repeated the cut. Ideally, this double cut will be identical in width to all the other cuts; however, if the position is off a bit, this will widen the cut.

Aluminum blank after cutting.

As an aside, I noticed a tendency for the mandrel to slip in the collet when I attempted to unscrew the nut on the mandrel. For future use, I will mill two flats on the mandrel so I can hold it with a wrench.

Below are pictures of the first and second test blanks. The sharpie mark on each blank shows the position of the first cut on each blank. Note that on the first blank, the second cut through the initial position made the cut about 30% wider. The results for the second blank are much better - each single pass cut measures about 0.101" width, while the double-cut measures 0.104". For the time being, I consider this to be an acceptable result, pending further testing.

Initial test (fail)

Test with planetary gear motor

Final Test - Success!

As a final test, I made some gear blanks and set up the indexing head with an involute gear cutter. The picture to the left shows the gear blank before cutting.

The gear to be made:

  • diametral pitch = 26

  • pressure angle = 14.5°

  • number of teeth = 30

Ultimately, I made two identical gears. Both gears turned out well, with no problems in the cutting. On each gear I marked the first cut, as I expected if there were any problems in meshing it would be most evident at that location. However, the gears meshed smoothly, and there was no evident difference in "feel" at the location of the first cut.

First gear. Vertical witness mark is the first tooth cut.

First and second gear, showing how well they mesh.

Usage Notes

As with any mechanical system, the indexer has a small amount of backlash. It is therefore advisable when using the indexer to be aware that moving forward and reverse the same number of steps will not return the indexer to it's original position. Further, it is recommended that the indexer be rotated a full rotation in the direction it will be used, in order to take up any slack in the system. All further movements should then continue in the same direction with no reversals.

Further, the indexer rotation lock should be locked after every rotation before beginning and machining. Fortunately most of the cutting forces are at right angles to the direction of rotation, but even small movements due to cutting can accumulate over many small rotations.

Refinements

Thumb switch

To make triggering rotation of the stepper motor a bit easier, while operating the mill and working with the fixure, I added a "thumb switch" to the circuit. This was done by simply splicing a switch into the keypad connections (see next picture). I made the thumb switch using a momentary on-off switch I had in my parts box, along with some PVC tubing and two-stranded speaker wire.

The thumb switch lets me push the "A button" very easily while I am at the mill, while keeping the electronics out of the way of swarf. It also makes sure I rotate the motor in only one direction during milling operations, eliminating another potential source of error.

Splicing in the switch: I wanted to be able to, in effect, push the A button on the keypad using a handheld switch. To do this, I spliced in a momentary on-off button switch into the keypad connections. I determined which two pins to connect to by just experimentally shorting out pairs of pins until I found th two which triggered "A" (for me, these were the first and last pins).

I then spliced the two wires for the switch into the pins. It's a bit difficult to see in this picture, but if you look closely you can see two wires coming out of the black plastic sleeve on the pin. I did this by carefully removing the plastic sleeve (there is a tiny little plastic latch tab you have to lift up; you can then push the pin out). With the plastic sleeve removed, I soldered in a second wire (one of two wires from a two-wire pair) on each of the two selected pins, and then replaced the plastic sleeve.

While a "remote" switch worked well in actual use, I found that making it hand-held was not helpful as I needed both hands to operate the mill and the indexer. I plan to convert the switch to small box which will attach to the mil table magnetically so that I can position it in a handy location and operate it easily.

The only other thing I need to do is to make an enclosure for the electronics. Since I plan to make it mostly out of wood (and since my woodworking equipment is in an unheated garage) that will have to wait for warmer weather.

References

1. The Apartment Machine Shop

    • http://www.avrdev.net/micro-indexer/ : "If you find this interesting, there will be info here on the hardware and Arduino Libraries used. After some further tuning, the main Arduino sketch I created will be available. This will include some custom libraries I wrote for the 7-segment display, the Big Easy Driver and an LED driver."

2. Liming.org

3. http://www.homemodelenginemachinist.com/showthread.php?t=26744

    • This forum thread provides some basic (and very useful) how-to advice. "With the right hardware this can all be done with point to point wiring and screw terminals. Sooo. . . ."

    • Here's a parts list summarized from the forum:

      • "The total bill for the electronics should be under $35 Canadian pesos."

        • Any Arduino should work. You can get an UNO clone in the $5 - $10 range from EBay, Amazon, Aliexpress, Banggood etc.

        • I2C 20x4 LCD display gives you 4 line 20 character LCD module . . . as low as $5 to $10 from China.

        • 4x4 key pad can be found almost anywhere on the internet just don’t pay more than $2 or$ 3 for one.

        • . . .stepper controller that can handle the current of the stepper motor . . . the TB6560 . . . from $8 or $9 dollars.

        • DuPont jumper wires (Male to Male And Male to Female) are not necessary but do make things easier . . . don’t get them too short . . . $2 or $3 for them.

        • . . .use any DC supply that will work with your stepper motor. Stepper motors have a rated voltage and current.

        • The stepper motor I used is a high torque NEMA 17 rated at 10 volts and a maximum current of 0.64 amps.

        • DC to DC convertor (Optional). ...If you are using a power supply greater than 12 volts you will need a DC to DC converter to safely power the Arduino. Online they go for $2 or $3 and a couple bucks more, you will get you one with a display.

4. Data sheets: TB6560 Stepper Controller

5. Mandrel clamp : http://www.homemadetools.net/forum/lathe-mandrel-clamp-65108#post103314

  • A method of clamping a mandrel or spindle without introducing rotational bias.

6. Programming

7. Project Box

8. Stepper Motors in general

9. Stem bolts

  • I'm calling what I made a stem bolt, although I am not sure this is the correct name. Other names I have seen for this include:

    • expander wedge

    • quill stem (bicycle part)

    • stem wedge

    • stem expander bolt

  • Note : Do not confuse this with the self sealing stem bolt.

Videos: