Shop OBEX P1 Docs P2 Docs Learn Events
Make Accurate 6400 Point Rotary Encode ? — Parallax Forums

Make Accurate 6400 Point Rotary Encode ?

Hello All;

Just asking the question here on how to make an accurate 6400 point resolution rotary encoder inexpensively.

Why ?

Well, I am building a series of XYZ desktop motion machines, and I would like to get 0.001 inch accuracy with relatively fast movements. So to get that precision with speed, I don't want to have large ratios on my steppers. So, I'm interested in measuring what real (vs theoretical)) precisions can be had by microstepping. Stepping motors typically spec a 5% accuracy which would imply that microstepping beyond 8 is pointless, although the typical values may be somewhat better than that. Perhaps 16, or maybe even 32 for selected brands. Also I want to see what happens at any microstep point when the current in both windings is reduced proportionately. Will the position remain true ?

So I want to run some experiments on my motors to get some hard data points, and hence I need a method of resolving rotational counts at 200 steps per rev, and 16 microsteps per step = 3200. But to ensure I can have confidence in the last digit, I really should be able to resolve double that, so 6400 points per rev. And, since it is just an experiment to be discarded after wards, I am looking for low cost.

The thing that comes to mind is an optical scribed disk and a video fence and leds with photo transistors. Speed of the sensors at that resolution will be somewhat important as I must not miss any pulses. The best precision I can scribe lines with is probably in the order of a couple of thou opaque, and the same for clear. Say, 0.005 for a pair. This means a circumference of 6400 * 0.005 = 32 inches, or a diameter near 10 inches. At that size it will be difficult to machine a disk to run true in its width to the tolerance I suspect I need to make the optics work. But of course, while desirable, I don't really need a full revolution to do my tests; a few dozen steps along the arc should be sufficient. That simplifies the challenge to a piece of a 10 inch diameter disk with perhaps a few hundred line pairs on it.

So, have any forum members other ideas on how to accomplish these measurements? Could a camera do the trick?

Just trolling for ideas......

Thanks, and cheers,

Peter (pjv)


Comments

  • This sounds a bit too obvious, so I might have misunderstood but can't you use a cheap encoder and gear it up?
  • pjvpjv Posts: 1,903
    Mickster;
    Thanks, I had not thought of that. But I wonder about slop and precision in the gear chain. Effectively, I still need to resolve 0.005 at a 5 inch radius, and that does not feel easy to do.

    Cheers,
    Peter (pjv)
  • jmgjmg Posts: 15,173
    pjv wrote: »
    Just asking the question here on how to make an accurate 6400 point resolution rotary encoder inexpensively.
    ...And, since it is just an experiment to be discarded after wards, I am looking for low cost.
    Why not buy one, since this is a one-off, the unit price is less than your time ?
    Such items are never really discarded, as they continue to be useful, as in ....
    I see Avago units from sub $50 for 5000 cpr ..
    pjv wrote: »
    Well, I am building a series of XYZ desktop motion machines, and I would like to get 0.001 inch accuracy with relatively fast movements. So to get that precision with speed, I don't want to have large ratios on my steppers. So, I'm interested in measuring what real (vs theoretical)) precisions can be had by microstepping. Stepping motors typically spec a 5% accuracy which would imply that microstepping beyond 8 is pointless, although the typical values may be somewhat better than that. Perhaps 16, or maybe even 32 for selected brands. Also I want to see what happens at any microstep point when the current in both windings is reduced proportionately. Will the position remain true ?
    Given this is a measurement, you would prefer something proven, over home-built.

    Also, FWIR about systems that push Motor specs, the high end ones included a ROM with the motors, in other words, they did not expect perfect angular steps, but they placed them on a fixture, and measured the actual angle vs drive profiles.
    Memory is dirt cheap, and easy to program.

    That's another reason to get a good encoder, and use it for calibration.


  • pjvpjv Posts: 1,903
    Mickster;

    Hmmmm; If I get a fine timing belt pulley of some largish diameter to fit on the stepper, and a much smaller diameter one to fit on a cheap encoder, then the ratios will multiply my resolution.

    But, in one of the timing belt driven motion machines I currently have, there exists a several (4) microstep hysteresis when the direction is reversed. So timing belts might not be the best method.
    I do have some stainless belt material, so perhaps machining some precision pulleys for that.... But then the issue of concentric pulley mounting holes gets into the fray. Not as easy as it at first appears.

    How about a long needle mounted to the stepper shaft and a digitized picture ? I think Phi Pi's camera has a pixel resolution of 20 ish microns.... Hmmm.

    Cheers,
    Peter (pjv)
  • kwinnkwinn Posts: 8,697
    Photo reduction of a large diameter scribed disk should work, but I have often thought that using a linear imaging chip and picket fence metal band for measuring offset and velocity would provide offset resolution equal to the image sensor pixel size.
  • You could go with synchro resolver. The resolution would depend on the wether the converter is 16 bit, 18 bit , 20 bit etc.
  • You don't need 6400 point resolution at all, you just need 200 point resolution.

    Since any micro stepping is dynamic, if you jump a step it is going to jump to the next adjacent coarse resolution of your stepper which is only 1.8 Deg per step or 200 steps per revolution. As I said, any micro stepping is dynamic and your driver/controller will constantly try to position the motor at some point between the coarse steps via PWM based on where you are telling it to go. ... So all you really need is a way to check to make sure you are on the correct coarse setting and haven't skipped or jumped that location. If you are just doing this for exercise and want to determine the linearity of your micro stepping driver, then use a micrometer. Honestly 6400 steps per revolution is not really that much, we are using controllers that can dial down to 51,200 steps per revolution and by the time you factor in the lead screw threads per inch and any backlash, we can easily hit one ten thousandth resolutions.
  • pjvpjv Posts: 1,903
    Digital Bob, Are inexpensive resolvers as accurate as 1 in 6400? The A/Ds, sure I can see that.

    Beau, Really I should have explained that one of the things I want to measure is the linearity when microstepping. Further more, how much (or rather how little) resistance the device has to mechanically pull the position away from the theoretical position. Lots of folks seem to believe that small microstepping is absolute. I'm not so sure, and would like to measure this, and for that, I believe I need 6400 resolution minimum. Also, I believe I have observed that some microsteps are not monotonic. Again, accurate and precise measurement can prove this.

    Cheers,

    Peter (pjv)
  • Beau SchwabeBeau Schwabe Posts: 6,566
    edited 2017-06-19 05:25
    "Lots of folks seem to believe that small microstepping is absolute. I'm not so sure, and would like to measure this" ....much of this is going to depend on the quality of the micro stepping controller you are using. Ones that monitor back EMF from the stepper are more accurately able to hold the commanded position if a mechanical load is placed on the shaft.

    For instance we have a CNC machine capable of profiling a sample down to the 1um level... for a long time we were seeing what we called striping in the data samples at the 1um noise floor.... turns out it was the lead screw. The pillow box actually orbits the lead screw and is not concentric. Diving deeper into the noise floor another phenomenon we are observing, similar to striping, are the recirculating bearings within the pillow box.

    My point is that if the microstepping was not accurate we would not be anywhere near having the ability to observe the phenomenons mentioned above.
  • pjvpjv Posts: 1,903
    Thanks Beau.

    So it sounds to me you could consider such a controller more like a "stepped" servo with feedback. My expectations are to use simple open loop control, but I would like to know how good it is under various conditions.

    Cheers,

    Peter (pjv)
  • evanhevanh Posts: 15,916
    If you just want it for proving a design then probably should be looking at using a proven measuring device. ie: Buying a one-off encoder that is rated for that resolution.

    Modern industrial "encoders" I strongly suspect now internally use a resolver and just emulate the pulse stream of an encoder externally. I say this because they offer both a settable index position and an any-resolution as part of the field configurability. And of course absolute SSI is an option as well with a resolver base like that.
  • I routinely verify axis repeatability using a magnetic-base dial test indicator, such as a Mitutoyo. All machine shops have these.

    This way you are measuring what you are actually interested in.
  • pjvpjv Posts: 1,903
    Thanks MrB11

    A bit pricey for just getting some data and proving some assumptions. However, I will likely go that way if I cannot get what Mickster suggested.

    I can probably modify his approach and use my milling machine bed to make the measurements if I only turn the steppers a few steps. I can measure one tenth of a thou with that.
    It'll be a bit awkward, but it might be adequate.

    Thanks all, and cheers,

    Peter (pjv)
  • I normally use the AD2S80 in my resolver applications. That will get you 16 bits and about 0.005 degrees per bit. Not really cheap the resolvers can run you about $200-$300 each and the AD chip is about $150.00. Most cheap stepper applications only use micro stepping with no feedback. Your just hoping that" X "amount of steps equals "X" amount of inches with no stalls or missteps from the home location. A 6400 PPR encoder will get you 17.7 pulses per degree of a revolution. You can buy some cheap $50, 5000 ppr encoders from digikey. Ebay is a good place to get a high res industrial encoder at a good price.
  • pjv wrote: »
    Thanks MrB11

    A bit pricey for just getting some data and proving some assumptions. However, I will likely go that way if I cannot get what Mickster suggested.

    I can probably modify his approach and use my milling machine bed to make the measurements if I only turn the steppers a few steps. I can measure one tenth of a thou with that.
    It'll be a bit awkward, but it might be adequate.

    Thanks all, and cheers,

    Peter (pjv)

    Oh, if you have a milling machine then maybe you have a digital caliper? This could also be used.

    My method is to put the machine through hundreds of point-to-point moves and then command the axes to return to the point where I took the initial reading to check for drift.
Sign In or Register to comment.