I am using the linistepper for a telescope CNC project. I need as many microsteps as the PIC on the linistepper will allow. Any tips on how to reprogram the PIC for a higher microstep count than the 1/18th that comes stock?
-Jim
I am using the linistepper for a telescope CNC project. I need as many microsteps as the PIC on the linistepper will allow. Any tips on how to reprogram the PIC for a higher microstep count than the 1/18th that comes stock?
-Jim
The effective resolution is effectively set by the 1N4148 + resistor network on rb4-7.
You'd have to change this circuit to get a higher resolution, and as it happens you'd probably need a different PIC to get higher resolution as well, as the 16F84 is out of pins in that circuit...
I don't think the effective resolution is set by the resistor network for the higher microsteps count. It seems that is done inside the PIC using software. James Newton claims on the linistepper site that it is rather trivial to do it. I just don't know how.
-Jim
Hmmmmmmmmmmmm, (Looks at circuit again, while scratching head)
OK... I get what he's saying in the 'how it works' section of the linistepper pages
3 levels of current / 6 microsteps (1200 steps/rev) is what he gets from the resistor network alone, and he's modulating the three outputs using some sort of PWM to get that up to 18 microsteps or 3600 steps/rev.... Veddy Interesting.
I'm going to assume that for a telescope you don't need high speed movement? If you don't need to do high-speed travel you can probably do this with a far less complex circuit than the linistepper.
What rotational speed are you looking for? I feel a software challenge coming on. (Like I need _another_ project!)
Had a bit more of a think about this...
Theoretically you should be able to generate fairly accurate microstepping up to any resolution you wanted at low speed using just PWM outputs from the pic into a single resistor/capacitor integrator, with a similar output stage to the linistepper.
I'm sure I've read threads on here (or maybe elsewhere) about the limitations of doing this though, which are mainly around top-end speed and torque... ie: the faster you want to go the less effective it would be.
Looking at the spec for the hardware PWM modules in the PIC16F876 I reckon you could probably do 32 microsteps accurately at up to about 5khz.. Which equates to 6400/12800 steps per rev, but only 1.28 or 2.56 revs/second which is not very fast for CNC usage. With a bit of fiddling you could probably transition to full steps and get faster speed, but that would require some experimentation, and my bench is already covered in another project that is half-finished!
The easy way to get a smoother motion is to bump up the value of the current smoothing capacitors C5 and C6. Much larger values (exactly how large depends on a lot of factors, so it's a try and see thing) will result in a smoother transition from each PWM microstep to the next. Doing this reduces your top speed, so you have to be aware of that. If you use the caps to limit the change in current to the point that your motor is getting a totally smooth transition from one step to the next at your normal operating speed, then it can't possible move any faster than that or the cap will smooth out the faster steps into... well... not steps.
Another way to smooth things out is by adding physical mass to the shaft. Again, at some point, you loose the ability to move that as quickly as you might like.
Recoding the PIC is also possible, but not easy unless you are a top end PIC programmer. If you do it, please honor the open source status of the driver and share your code.
Hope that helps, let us know your results.
Hi James.
I've not built any linisteppers, but It's a very clever design. It's on my list of things to play with when I get some time, but I keep on getting other projects leaping into the 'queue' as it were.
re: speed. I think the real question is how fast a stepper has to go for the application, with that figure in hand you could make all sorts of rash suggestions! .
Cheers, Chris H.
Hi - on a somewhat related question - I am currently soldering up some linistepper kits (thank you, they are nice) for use with a motor with the following specs
- 6 - 7 mH
- approx 3 amps max current (room for growth)
- about 900 oz in when fully powered
- rotor inertia - approx 0.04 oz - in / s2
- For use with a direct drive rack and pinion
- 1/16th micro step mode
- RPM = 0 - 50 rpm, with 0 - 10 common
Now for the question.
I have read some posts about more common bipolar driver setups having "resonance" when run at low speeds. From what I understand about the linistepper drivers being more of a "linear mode" approach, it seems like they should be relatively smoother. Is that more or less right ?
I am not an EE and have really no scope capability, but suppose I double the capacitance of the (above discussed ) caps - is that enough to make a difference - or is it more like 10 x to make a real change ?
Thanks
Harry
The ultimate limit for microstep smoothness is the motor itself. There are two factors involved here:
1) Accuracy. Most step motor data sheets list a +/-5% non-accumulative tolerance. Think of this as a cyclic "wobble" in the motor's motion over the span of one revolution. It limits the motor's ultimate accuracy to +/-0.09 degrees or 1/2,000 of a revolution.
2) Linearity. 1 full step (1.8 degrees mechanical) is equivalent to 90 degrees electrical. Mathematically, the ideal waveform for the motor's current is sine and cosine. When a motor is microstepped at 10 microsteps per full step, an ideal motor would move exactly 0.18 degrees for every 9 degrees change in sine-cosine.
Motors are not ideal. They have some non-linearity (curvature) to what should be a straight line relationship between mechanical angle and electrical angle. The best motors we have tested show a +/-2% non-linearity over the span of 1 full step which would put the maximum possible smoothness limit at 25 microsteps.
Mariss
Hi Mariss - Thank you very much for that information.
to increase the smoothness and increase the steps per telescope movement
perhaps a 1:10 (or so) ratio toothed pully on the system would be the best choice.
this would put less strain on the motor and be good for stargazing via a video camera.
the motor could then handle the extra weight of the camera.