Stepper precision +-5%
-
exactly what I am currently exploring! LetΒ΄s crack this "nut"! (the biggest benefit of gearing is the torque you can gain beside the resolution IF accuracy of the belt can be guaranteed... -> Also the inertia lever is more beneficial because it increases/decreases ^2 if I remember correctly -> That is why most cncΒ΄s use a 1:1,5 up to 1:5 belt for ohmp )
-> But it might be wise to use also half-steps since those seem to be also quite accurate and pick a lower gearing to gain some end speed otherwise you might need a higher voltage (external) stepper to gain end speed -
@arhi said in Stepper precision +-5%:
@LB said in Stepper precision +-5%:
@arhi
I could send it to youI'd love to test it out but the problem is I fear sending it to me would be too expensive, our customs officers are not known for their kindness .. Where are you, maybe we can arrange something (I'm in Belgrade, Serbia)
Providing step/dir is not a big deal, I have to do that for all the motors I will be testing too :), major problem I have is that none of my printers are operational as I could not get them up and running due to some injury (lasting more than a year ) so I got STL's to omni to print for me ..
Sorry to hear about your injury - all the best!
Would ship from germany -> is there any reliable parcel service like UPS or DPD that would work? -
@JoergS5 One of the magical properties of belts such as the gt2/gt3 designs is that they are almost completely free of backlash. They are easy to make perform much better than gears. A HUGE amount of money was put into making these belts work for ink-jet printers and the like. I suspect that a belt-driven system will be much easier to make work with high precision than a gear-driven system. It only takes a tiny bit of backlash to drive a servo-system crazy, if you are planning on reversing direction very often.
You still get to plan the reduction factors to work around microstepping defects, or at least make them easy to solve with a servo.
Another advantage of belts is that you can pick any ratio you want, instead of always having to find relatively prime tooth combinations to even wear. You can also set the shaft spacing independently (nearly) of the reduction ratio, since you can get belts in a wide variety of lengths.
Belts also engage much more of the circumference of the gear than you get in direct-geared systems. Thus, although one's first reaction is that belts aren't going to be as strong, it's no where near as big a factor as one might think. And belts with steel or glass backbones don't stretch very much as all.
-
@mendenmh a belt driven gear is what I currently use:
https://forum.duet3d.com/topic/20209/robot-type-1-45-cm-belt-gear-direct-drive-r0
and especially
https://forum.duet3d.com/topic/20209/robot-type-1-45-cm-belt-gear-direct-drive-r0/8The reason is exactly the low backlash. Only Harmonic and cycloidal drives is also very good in that respect, but difficult to DIY.
-
@LB said in Stepper precision +-5%:
might be wise to use also half-steps si
I read somewhere that half steps are even more precise than the full steps. Torque is a different matter. I don't find the source of the information.
-
@LB said in Stepper precision +-5%:
That is why most cncΒ΄s use a 1:1,5 up to 1:5
I am a big fan of Mr. MΓΆderl in the CNC area, who used belt gears with big pulleys 48/60. Big pulleys have more teeth connected with the pulley and can transfer more force. https://www.ems-moederl.de/ws201.html with the image https://www.ems-moederl.de/bau3/IMG_1141.jpg is nice.
-
@LB said in Stepper precision +-5%:
Would ship from germany -> is there any reliable parcel service like UPS or DPD that would work?
dhl, dhl-express, fedex, ups ... they all work but can be rather expensive, I have best experiences with fedex so far ... we are "so close but so far away" ... EU all around us and we are the hole in the middle .. would be rather easy to organize the shipment in "normal times" as ton of ppl normally go from de to rs every day but due to the known issues we face now that transfer of ppl is not there any more... I'll ask around if I can find someone arriving soon but since holidays are "in progress" I think most who planned to arrive are already here, if I knew few weeks ago...
anyhow I have often access to these (and similar) encoders so we can do it in second batch if not now
-
@JoergS5 said in Stepper precision +-5%:
I read somewhere that half steps are even more precise than the full steps.
not sure how half step can be "more precise" than full step, but "same" might work... def way more precise than microsteppings. I was doing some halfstep+gearing on one mill platform (nema23 motors) and I didn't like it too much, while precision is much better than with microstepping (especially on those 3Nm motors where microstepping was heavily grouping around half and full step) the sound was terrible (imno 3-4times more loud than with microstepping) and there was a lot of vibrations during acceleration, took me a looooooooong time to configure the accel curve to get rid of vibrations... I had no backlash that I could measure on that machine (double ballnut for bot x and y and 30mm wide 5mm pitch belt between motor and ballscrew)
-
@arhi said in Stepper precision +-5%:
not sure how half step can be "more precise" than full step,
the mode was half step and the positions alternate full step and half step. The half step positions were said to be better. If I remember right, the magnetic forces were higher for them. (only slightly)
Maybe http://users.ece.utexas.edu/~valvano/Datasheets/StepperHalfstep.pdf page two torque variations and higher current at the half step positions.
-
@JoergS5 said in Stepper precision +-5%:
@LB said in Stepper precision +-5%:
might be wise to use also half-steps si
I read somewhere that half steps are even more precise than the full steps. Torque is a different matter. I don't find the source of the information.
I guess what you are referring to might be (please look up here https://www.zaber.com/w/Microstepping_Tutorial) :
old wave-stepping for full-stepping with only 1 phase on of course is torque-wise inferior to full-stepping with 2 phase on. So regarding the springiness of a position you would of course use 2-phase-on-fullstepping nowadays
BUT
If you use that with microstepping interpolation you get a "torque-square" on 1 full Β° electric rotation (4 full steps for a 2phase stepper) -> Most modern drivers DO NOT use that any more but rather have a "circular-torque" distribution for 1 electrical rotation (4 full steps for a 2phase stepper). People rather tend to go "torque-true" instead of an uneven torque-max, which makes sense in terms of vibrations/jitter or whatever you wanna call it.
The benefit of having an even torque will be the smoother run and that is part of the accuracy discussion here.
If the application needs higher torque I would rather go for a bigger motor then having an uneven torque distribution
Edit: Typed this when you already replied, but the BUT section might be of interest for you
-
@JoergS5 Old stepper drivers that only did full and half step operations ran both coils at full current on the half steps. That might have resulted in better positioning, but the motors got hot as hades if you left them parked there. Modern sine/cosine microstepping drivers would have slightly higher (sqrt(2)) total current, split between the two windings, at the half step, but I would be surprised if this would be enough to really compensate for being away from the poles.
-
You are probably both right, modern steppers and drivers will have changed all. The document I found seems to be very old.
Maybe the best approach is to build a test station, measure and compare different solutions, then select the best for the requirement. I wished there were better books about measuring. I have problems finding good sources how to use dial gauges etc.
-
@arhi said in Stepper precision +-5%:
anyhow I have often access to these (and similar) encoders so we can do it in second batch if not now
Sounds good - letΒ΄s wait for a time to do this when almost nobody speaks any more about coron...
-
@JoergS5 said in Stepper precision +-5%:
BTW think of me at 11th, this is my birthday.
happy birthday
Unfortunately, I did not do anything with this yet. I managed to find some code that simulates profibus slave but I'm having issues making code that simulates master in order to talk with this encoder. My profibus adapter is missing, ordered a new one but I doubt it will arrive quickly (not yet sent by the seller)... Still working on getting the master code to work but I have to slow down since today as ... work
-
@arhi thank you!
Improving precision is a continuous process, so take your time. Unfortunately, I don't know Profibus yet, I cannot help you.
-
@arhi There seems to be a python package which can be a profibus master:
-
@mendenmh thanks that's awesome, testing immediately
-
@JoergS5 said in Stepper precision +-5%:
Improving precision is a continuous process, so take your time.
yeah but I can't keep the encoder indefinitely .. this one will have to go back in a week or two ... I'll get another one next time they get a new order for few weeks again but it's not something I have on a shelf forever (these things go into some nasty military equipment made to do some ugly military stuff)
-
@mendenmh said in Stepper precision +-5%:
@arhi There seems to be a python package which can be a profibus master:
I have some data out of the encoder
PS D:\dev\profibus\pyprofibus> python3.8.exe .\arhi_readencoder.py bytearray(b'\x00\x00\xa4\xc8') bytearray(b'\x00\x00\xa4\xc8') bytearray(b'\x00\x00\xa4\xc8') bytearray(b'\x00\x00\xa4\xc8') bytearray(b'\x00\x00\xa4\xc8') bytearray(b'\x00\x00\xa4\xc8') bytearray(b'\x00\x00\xa4\xc8') bytearray(b'\x00\x00\xa7\x19') bytearray(b'\x00\x00\xb1f') bytearray(b'\x00\x00\xb5E') bytearray(b'\x00\x00\xb9\xc3') bytearray(b'\x00\x00\xbdJ') bytearray(b'\x00\x00\xc4\x87') bytearray(b'\x00\x00\xcb\x89') bytearray(b'\x00\x00\xd3\xd0') bytearray(b'\x00\x00\xd6/') bytearray(b'\x00\x00\xe1E') bytearray(b'\x00\x00\xeby') bytearray(b'\x00\x00\xf7\xe7') bytearray(b'\x00\x00E\x9f') bytearray(b'\x00\x00x\xd5') bytearray(b'\x00\x00\x97\x89') bytearray(b'\x00\x00\x97i') bytearray(b'\x00\x00\x97i') bytearray(b'\x00\x00\x97i') bytearray(b'\x00\x00\x97i') Traceback (most recent call last): File ".\arhi_readencoder.py", line 65, in <module> sys.exit(main()) File ".\arhi_readencoder.py", line 41, in main handledSlaveDesc = master.run() File "D:\dev\profibus\pyprofibus\pyprofibus\dp_master.py", line 714, in run if self.debug: KeyboardInterrupt PS D:\dev\profibus\pyprofibus>
it changes when I rotate the shaft and it's different if I select 13bit and 16bit singleturn "module" so .. hopefully that's that ... now to use this numbers somehow and connect step pin with this code, will probbly need to move this to a pi or something else with gpio
I'm not the python person, need to figure out wth is
\x97i
and\xbdJ
and why I have in byte array value like\xb5E
-
So, if you look up the 'struct' module, I think struct.unpack on those, assuming they are big-endian 4-byte integers will convert them. The funny mixture of backslash codes and regular characters is because some of the return values fall in the printable ascii character set, and get printed normally, which others fall outside and get printed as a hex byte preceded by a backslash.