Hi HB, welcome. Your stepsperrev should be double the actual steps of the motor, so yours should be 400. This is because the code uses the INTERLEAVED step type, which is a kind of half-stepping.
Lots of different ways of working out sprocket circumference - yours is as good as any, but it's better to actually measure how much cord (chain) is extended per rev than try to work out what it is in theory.
I got a little stung when I got some new bead-chain and it had a very slightly different pitch than the old stuff, a couple of mm difference. It still fit in my sprockets' teeth, and the size of the sprocket hadn't changed so it was tempting to believe that mmPerRev should be unchanged. But in fact, the extra half a millimetre per bead added up to a genuine difference.
That said, miscalculations there will distort your drawings and make things a little funky, but your catenary issue is something else. The code doesn't do anything to combat this - it has no conception of gravity or forces, and so it can come up when moving asynchronously.
It will be amplified with a heavy chain (which is why I decided on the plastic chain to be honest), but even with the plastic chain, once the cord is not under much tension then the gondola is no longer under control and starts swinging about, and I had a problem where it tended to swing out of the drawing area and knock the hanging counterweight, and the whole thing would jump out of the sprocket. Others (John Abella) have used the metal chain with success, but it might depend on the size of the machine.
There isn't a solution to it at the moment, except to be careful when doing big moves. This is easy enough when moving manually, but hard to control when doing vector graphics because the draw / move sequence can't be controlled. The spring-loaded takeup spools I've got on the blog were an attempt to get around this gondola-crashing-into-counterweight issue, but it doesn't fix the catenary issue.
Right. If your machine is calibrated then it shouldn't often happen. If it happens only during a move, then that's somewhat understandable, and doesn't signal a problem. If, once the machine has stopped moving, one of the chains is loose then that _does_ signal a problem, because if you pull it tight, then you'll find the gondola is outside of the machine area. The controller shouldn't be able to send commands for coordinates that are outside of the machine area, so there's a good chance that the controller thinks this is _inside_ the area, but the physical reality of the machine doesn't match it's model of it. What kind of move replicates this issue (like, diagonal, straight down the edge etc)? I would like to build a "catch" into the code to prevent it, but not sure the arithmetic overhead is worth it.
Perfect sprockets? if the beads go in the teeth, and the sprocket grips the motorshaft ok, then they're good enough, but like I said above, try to measure the actual length of chain extended rather than just the circumference of the sprocket - you can count the number of teeth and then measure a stretched-out length of chain with that number of teeth. I have had an issue last week where the sprocket was slipping on the motorshaft too - this was because they are printed in PLA and the motor got hot, so softened a little. Solved with a dab of glue.
Good luck!
sn
|