YOSMQ (yet other step motor questions)

Go To Last Post
20 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

...whose answers may be buried in the millions of threads available about stepping motors. :?

So I resurected my old unipolar motor, modify the code to run on a M164 rather that the 90S8535 with a ICE200...and it runs. However some questions have arisen which don't seem to be covered on the various SM threads here.

1) Step motors coils must be energised at all times from the time the motor is first run. Correct?

therefore

2) Step motors run hot enough to bake miniature pizzas on them.

3) There is no way of finding out the position of the coils so that an index could point to the correct step phase out of the 4 phases during init. Up to 3 steps could be missed when pulses are first applied to the motor or the motor may even run backwards for 1 pulse untill the correct phase is hit.

4) Stopped motors (ie after reaching the desired position, similar to 1) must have power applied to the coils according to the last step untill the motor needs to move again. If power is removed it is likely that the motor may move due to loading. (maybe not if some sort of worm drive is used between the motor and load??)

I'm sure I'll have some more. :)

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm bipolar :D, so take this for what it is worth...

Quote:

1) Step motors coils must be energised at all times from the time the motor is first run. Correct?

Why? At least my bipolars rest rather firmly at the full steps. If the "load at standstill" is low enough then no external energy is needed to make them stay in the rest position. As logn as you stop at such a position.

Quote:

2) Step motors run hot enough to bake miniature pizzas on them.

Not sure about the pizza-baking-temperature, but I once read somewhere that if your stepper does not run hot enough for you to barely be able to touch it then the motor is too big.

As of January 15, 2018, Site fix-up work has begun! Now do your part and report any bugs or deficiencies here

No guarantees, but if we don't report problems they won't get much of  a chance to be fixed! Details/discussions at link given just above.

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If the motor "cogs" with no power applied, as you try to turn it, then you may not need continuous power. You certainly would need power on to decelerate most loads. You would need power if the load has any significant static torque requirement.

Otherwise, probably not.

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You could reduce the (average) coil current when stopped to prevent heating it up too hot.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

JohanEkdahl wrote:

Not sure about the pizza-baking-temperature, but I once read somewhere that if your stepper does not run hot enough for you to barely be able to touch it then the motor is too big.

My feeling is that based on our power electronics professor that is how all components are rated. If a component runs cool it is overrated and thus too expensive part.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I would dispute that because temperature accelerates failure rates. It might be OK if it is going to be thrown away before it fails, but for most things we build, that should not be the case.

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Many of the more advanced drivers reduce the current to 25-50% if the motor is standing still. If you can do this depends of course on your load as mentioned.

...and yes stepper motors do get hot.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

So that licks 1,2 and 4 pretty much. :) What about 3?

I have the following:

;Control out bits

.equ	motor_mask= (1<<pd0|1<<pd1|1<<pd2|1<<pd4)	;DXIO-6

.equ	step1= (1<<pd7 | 1<<pd5)
.equ	step2= (1<<pd6 | 1<<pd5)
.equ	step3= (1<<pd6 | 1<<pd3)
.equ	step4= (1<<pd7 | 1<<pd3)

and

;Step bits in temp. Uses temp1
do_step:
	in		temp1,motor_read
	andi	temp1,motor_mask
	or		temp,temp1
	STORE	motor_write,temp
	rcall	wait2ms
	ret

I have noticed a few erratic steps at start up, especcially at low speeds. I'm guessing because the motor could be anywhere so it does not particularly want step 1-4 but maybe 2,3,4,1 or 3,4,1,2. In a real application one would have a home sensor so a few erratic steps amy not matter untill the mechanism is at the home position, from then on the sequence is pretty well defined, correct?

Quote:
drivers reduce the current to 25-50% if the motor is standing still.
That would be something like fuel injector drivers then.

Anyway I need a real project with something attached to the motor. I wish I didn't throw away my old impact printer, it could have been fun removing the driver boad and replacing it with an AVR....but then I could get swamped with work and shelf it for another few years. :)

By the way 2ms seems the smallest time needed between steps for the motor I have. It seems "normal". A lower value convuses the motor and does not run.

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

There must be plenty of old matrix and not so old inkjet printers out there you should be able to pickup for free.

I paid $20 for my current printer, brand new.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

..and how much for the cartridges replacements? :)

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Slightly less than the printer's price :)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

There is definitely a bottom end to the pulse rate IF you turn off the current at stable points. But, there should be no minimum slow rate. After all, you can step a stepper arbitrarily slowly.

No so for the fast end. There is certainly a maximum pulse rate.

I found it a lot smoother half-stepping (were adjacent phases are on at the same time). Unfortunately, this also increases power dissipation.

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

There is definitely a bottom end to the pulse rate IF you turn off the current at stable points. But, there should be no minimum slow rate. After all, you can step a stepper arbitrarily slowly.

No so for the fast end. There is certainly a maximum pulse rate.

I found it a lot smoother half-stepping (were adjacent phases are on at the same time). Unfortunately, this also increases power dissipation.

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

By the way 2ms seems the smallest time needed between steps for the motor I have. It seems "normal". A lower value convuses the motor and does not run.

Full steps or half?

From a standing start?

With no load, I guess I'd expect a higher max half-step rate than 500/second--IF you ramp up to that rate. After all, when at speed and continuing to power in the same direction you par probably almost all the way to that next step already. ;)

Lessee--an app with an Allegro A3966 driver I put in an upper limit of 2400 half-steps/second in the shipping version. I remember going faster; knowing me the tested no-load rate was probably twice that.

Yep, there is a note later that 14400 couldn't quite be reached smoothly.

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Full steps or half?
I think it's half step...7.5deg.
Quote:

From a standing start?
Yes from standing start, it just shakes, rattle and don't roll with 1ms pulses.
This is the motor by the way http://www.jaycar.com.au/product...

I'll mess around with AVR446 later on.

I had a quick play with a small servo too so I should start another thread with the title : YOSMQ (yet other servo motor questions) :lol:

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The specs states 600 pulses/s from stand still. Or 1.67ms.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

So that's what that means.. :) I was close enough as I only had 1ms increments. Will refine my code.

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

7.5 deg per step is a full step, where you energize the coils either 01 or 10... pattern is 0101 0110 1010 1001. Halfstepping 'ORs' the two fullstep patterns together in an intermediate step.... 0101 0111 0110... so both halves of coil B are energised when its half way between step 1 and 2

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

Quote:
Full steps or half?
I think it's half step...7.5deg.

No, I'm talking of the driving method.

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

From my code snippet above and Bob's explanation I must be doing full step then. The steps sort of match..

The board just used 4 mosfets to drive the coils.

 
.equ   step1= (1<<pd7 | 1<<pd5)  Bob's step 3 1010
.equ   step2= (1<<pd6 | 1<<pd5)  Bob's step 2 0110
.equ   step3= (1<<pd6 | 1<<pd3)  Bob's step 1 0101
.equ   step4= (1<<pd7 | 1<<pd3)  Bob's step 4 1001

full step, where you energize the coils either 01 or 10... pattern is 0101 0110 1010 1001. 

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly