cancel
Showing results for 
Search instead for 
Did you mean: 

I am trying to do laser engraving with a POWERSTEP01. But I get high frequency oscillations on my motor.

CBeif.1
Associate II

0693W000000WMx4QAG.jpg

I am in current control mode, and the stepper motor is using about 3 amps.

Is there anything I can do to reduce these oscillations.

Also note that the white line is about 0.010" thick.

I am using x16 microstepping, and I currently have 1600 microsteps per inch of resolution.

19 REPLIES 19
Cristiana SCARAMEL
ST Employee

​Hi, could you share with us more details on you@ application?

  • What is the device setup (registers contents)?
  • How did you make the movement in the XY plane?

chaaalyy
Senior II

And further the used motor and the parameters, you use for initialization 🙂 A picture of your mechanical setup could be also helpful (ball screws ? belt driven ? linear bearings ? moved masses ? ... and so on ... )

CBeif.1
Associate II

0693W000000Wc9QQAS.jpg0693W000000WcB1QAK.jpgThe application is a laser engraver.

The movements are made with an XY gantry on rolling wheels in a track, using a stepper motor attached directly to a belt drive,

We have other systems that don't have this problem.

Here are the register settings

Addr B3 B2 B1 B0

---- -- -- -- --

0x01   00 00 00

0x02      00 00

0x03   00 00 00

0x04   00 00 40

0x05      00 0c

0x06      00 1a

0x07      00 00

0x08      00 04

0x09         04

0x0a         19

0x0b         19

0x0c         19

0x0e         58

0x0f         03

0x10         1f

0x12         10

0x13         0d

0x15      07 00

0x16         0c

0x17         0f

0x18      03 e3

0x19         60

0x1a      a7 90

0x1b      e6 02

Cristiana SCARAMEL
ST Employee

​In practice you have two stepper motors each one driven by a powerSTEP01 device, right?

chaaalyy
Senior II

Analysing the picture of the "spiral", i would say, there are two problems coming together:

a) the axles are called alternately, so (for example) x makes a movement, then y, then x again and so on ... Soluition would be (if you use the provided libraries, the according functions are already implemented) to use command queueing or to drive them with external step signals.

b) if the timings aren´t set up correctly, this driver unfortunately tends to "swallow" microsteps and moves in rough full steps, when enough microsteps are "cumulated". In such a case try to play around with minimum on time, off time and so on. always keep an eye of the resulting current, this can be really tricky. You can easily test this behaviour: Try to turn one stepper really slow, maybe 5 MICROsteps / sec. (don´t use the goto command for that... You can´t set the minimum speed low enough. Even with 0 it performs at least 5 full steps / sec.) and watch the movement. If it turns smoothly, your settings shouldn´t be too worse 😉 As far, as i remember you should switch off the Low Speed Optimization also (i stopped using these powersteps and his little brothers and sisters a long time ago, because ALL other brands have been FAR better supported and had much less trip hazards...)

Search for the " DS9836 " documentation and read it very carefully. Many trip hazards are well hidden in the description of the single functions...

My doubt concerns the synchronization of the two axes movement, too.

Here the link of powerSTEP01 datasheet (DS9836) for the parameters fine tuning and function description

CBeif.1
Associate II

Does the POWERSTEP01 give smoother results in current mode or voltage mode. The last engineer that was here was adamant about current mode being better?

But what is the difference? Current mode is limited to x16 microstepping, but voltage mode has x128 microstepping.

P.S. X and Y axes are being driven by an FPGA, so hopefully the timing is very precise.

Also note that the thickness of the engraved line is about 0.01"

the full step distance is also 0.01" so I am worried that I am somewhat depending on the positional accuracy between full steps,

and I am concerned that the motor is vibrating between the 2 full steps.

chaaalyy
Senior II

In the so called voltage mode, it should give far better and smoother movement. Unfortunately it´s nearly impossible to reach useful speeds in that mode. Also (just my experience...) it´s more than very hard to determine the needed parameters to set it up correctly. There are some tutorials out there, how to find the basic setup with measuring the BEMF while turning the motor manually. Unfortunately this method is ... Let´s say useful for a 1A NEMA17 stepper, if you want to run it at max. 100 rpm ... I tried it with so many different motors... From 0.6 up to 10.0 Amps ... NONE of them provided more than 10% of the performance (torque and speed) , i got with current mode. As i already said: For a setup with different speeds (like cnc control...) the powerstep is nearly unusable. If you have a fixed movement (always the same parameters) and a lot of time: Nearly unbeatable ...

@Cristiana SCARAMEL​ : Sorry, if i have to complain about that driver family... But i hate to tell the people embellished truths or even worse: to lie. Especially the powerstep01 is a product, which is far better promoted, than supported. Based on the given parameters (10A rms @85V isn´t too bad 😉 ) and the highly praised voltage mode ( i know nobody, who got it to work satisfactorily...) I really would love to say something different and i also would like to choose it for upcoming projects. More than 2 years ago i told some st guys at the "embedded world" fair about some major bugs in the provided libraries (beginning with just stupid syntax errors, not compilable code and missing brackets...) -> Still present in actual firmware :( More than two years ago i asked for help in official support channel via e-mail... No answer in nine months :(

As far, as i see, you wrote more support in this single thread here than anybody else of the whole st support staff (at least, when it comes to powerstep01). Please keep on going and keep on helping some desperate users getting your products up and running 😉

Or even better: Provide some webinars or MOOCs, teaching the people (in an understandable way) the in-depth basics. You really could sell so much more of the stuff, if it is well supported. Not everybody is a studied engineer with 20 years experience 😉

CBeif.1
Associate II

Thanks for your advise!

I guess my only choice is to play with the configuration settings or switch to a different chip.

I do have a question about CONFIG.TSW setting.

It looks like my current setting is "01001" (which based on my calculations gives a switching period of the current control algorithm of 27.77KHz)

I know that I send microsteps up to 160KHz (we are trying to move at a max speed of 100 ips)

does this mean the current control algorithm is useless at this speed, and I need to reduce my TSW setting??

Also, is there guidance as to how I should set T_FAST, TON_MIN, and TOFF_MIN

There are too many parameters for trial and error.