Forum Header

I do not find "base period" or "motor steps per rev" in my .ini File

More
5 years 4 months ago #212517 by tommylight
Do you get latency warnings on the lower right corner ?
If not, all is good, you can even try a bit lower base period although probably no need for it.

Please Log in or Create an account to join the conversation.

  • BeagleBrainz
  • New Member
  • New Member
More
5 years 4 months ago - 5 years 4 months ago #212530 by BeagleBrainz
I don’t think there is any code change between the version of stepconf in the uspace or rtai versions.
I plugged in the same values on a uspace Linuxcnc package and got the same results.

As there is no input value for the option coupler in stepconf & latency won’t affect rise and fall times of the parallel, it’s the parallel port hardware that would affect this. You would have to have god awful optocouplers to get to a point where they come into play to affect stepping. Like really really bad, due to major manufacturing defects. Or instead of a photo transistor they use a gnome encapsulated in the package who turns on a switch as the LED goes on & off.
Add to that the stepper timings recommended by various posts and docs for Linuxcnc are pretty conservative.
Last edit: 5 years 4 months ago by BeagleBrainz.

Please Log in or Create an account to join the conversation.

More
5 years 4 months ago - 5 years 4 months ago #212535 by Roman Simon
I do not get a latency warning :)

Regarding stepconf, I hardly know anything here ...
but this value, red



is not written to the ini file. its always 100.000
Last edit: 5 years 4 months ago by Roman Simon.

Please Log in or Create an account to join the conversation.

  • BeagleBrainz
  • New Member
  • New Member
More
5 years 4 months ago - 5 years 4 months ago #212541 by BeagleBrainz
I got nuffin'
Last edit: 5 years 4 months ago by BeagleBrainz.

Please Log in or Create an account to join the conversation.

More
5 years 4 months ago #212603 by BigJohnT

Please Log in or Create an account to join the conversation.

More
5 years 4 months ago #212648 by Roman Simon
thank you, I think figure it out.

The written base period in *.ini is in my case not calculated on max jitter.
ideal_period() with 4 axes takes the maximum value of hz() for x or y (in my case 4800) and
because I have doublestep() with my values, a high number is calculated (1000000000 / 4800 = 208333)
and limited to 100000. 100000 is not smaller than the max jitter calculation (with minperiod())
so base period is always 100000.

Here are the code snippets, main part is at the end in ideal_period()
Code:
// buid_INI.py base_period = self.d.ideal_period() // stepconf.py self.steptime = 5000 // *.stepconf self.stepspace = 5000 // *.stepconf def hz(self, axname): steprev = getattr(self, axname+"steprev") // for x 200.0 microstep = getattr(self, axname+"microstep") // for x 2 pulleynum = getattr(self, axname+"pulleynum") // for x 1.0 pulleyden = getattr(self, axname+"pulleyden") // for x 1 leadscrew = getattr(self, axname+"leadscrew") // for x 1 maxvel = getattr(self, axname+"maxvel") // for x 12.0 if self.units or axname == 'a': leadscrew = 1./leadscrew // for a 360.0 pps = leadscrew * steprev * microstep * (pulleynum/pulleyden) * maxvel return abs(pps) def doublestep(self, steptime=None): if steptime is None: steptime = self.steptime return steptime <= 5000 def minperiod(self, steptime=None, stepspace=None, latency=None): if steptime is None: steptime = self.steptime if stepspace is None: stepspace = self.stepspace if latency is None: latency = self.latency if self.doublestep(steptime): return max(latency + steptime + stepspace + 5000, 4*steptime) else: return latency + max(steptime, stepspace) def ideal_period(self): xhz = self.hz('x') yhz = self.hz('y') zhz = self.hz('z') uhz = self.hz('u') vhz = self.hz('v') ahz = self.hz('a') if self.axes == 1: pps = max(xhz, yhz, zhz, ahz) elif self.axes == 0: pps = max(xhz, yhz, zhz) elif self.axes == 2: pps = max(xhz, zhz) elif self.axes == 3: pps = max(xhz, yhz, uhz, vhz) elif self.axes == 4: // YES pps = max(xhz, yhz) else: print('error in ideal period calculation - number of axes unrecognized') return // pss = 4800 if self.doublestep(): base_period = 1e9 / pps // 1000000000 / 4800 = 208333 else: base_period = .5e9 / pps if base_period > 100000: base_period = 100000 if base_period < self.minperiod(): base_period = self.minperiod() return int(base_period)

I would like to check if I have missing steps. When I fastly move X
20 Minutes from left to right, can I simply check it with an indicator, if
startpoint and endpoint is different?

More axis means more work, so base period must be higher?
When a calculation do not fit in a base period, does it come delayed
or is it skipped? I think this also a very important point.

Please Log in or Create an account to join the conversation.

Time to create page: 0.261 seconds
Powered by Kunena Forum