Oops, sent to soon, and forgot the list.

In addition to the responses below, I meant to add: I don't think what I'm 
seeing is overshoot by the PID loop, at least not entirely, because when I'm 
not jogging it, it only twiddles the direction output. The step output is 
steady without pulses. If it were hunting, I'd imagine it would be issuing 
steps as well as direction changes. Check out the other video: 
https://www.youtube.com/watch?v=tQkF8TRVVpk

Thanks!

> On Apr 5, 2018, at 01:21 , Bas de Bruijn <b...@basdebruijn.com> wrote:
> 
> 
> 
> On 5 Apr 2018, at 09:50, Rick Mann <rm...@latencyzero.com> wrote:
> 
>> After help from Bas (thank you), I got MachineKit working on a Beaglebone 
>> Black and driving a ClearPath stepper. Here's a video:
>> 
>>   https://www.youtube.com/watch?v=f3kdqH8Miyg
>> 
> 
> That's a hefty stepper.

They're really nice servo motors from Teknic. The one in the video is 
<https://www.teknic.com/model-info/CPM-SDSK-3421S-RLS/>. The ones I'm using on 
my CNC router are a bit smaller.

> 
>> I notice on the oscilloscope (but not visible in the video above) that the 
>> step direction output changes when I stop jogging and the servo slows down 
>> from the jog speed it was going at.
>> 
>> Can anyone tell me why it does this? Is it in an effort to "apply the 
>> brakes" to the moving stepper? This is not necessary with the ClearPath 
>> servo, which will faithfully the number of steps commanded at the commanded 
>> speed (within limits, of course).
> 
> This looks like "hunting" from the Pru stepgen. A solution for this is to 
> drive the stepgen in velocity mode, and add a PID loop. Have a search thru 
> the google group posts about this phenomenon.
> 
> This configuration can be an example on how to do this.
> https://github.com/machinekit/machinekit/blob/master/configs/ARM/BeagleBone/Xylotex/Xylotex.hal

The ClearPath servos have drivers, encoders, and PID loops all contained on the 
motor. There is no position feedback from them (only a configurable fault 
signal). For this reason, I don't think MachineKit should implement any kind of 
PID loop, right? There's no feedback for it to use. It should just generate 
pulses for the desired velocity profile and position, and trust the servo to 
get there (if it can't, it will assert the fault signal).

In the pru-stepper.hal, there are these lines:

# position command and feedback
net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd
net emcmot.01.pos-cmd => [PRUCONF](DRIVER).stepgen.01.position-cmd

net motor.01.pos-fb <= [PRUCONF](DRIVER).stepgen.01.position-fb
net motor.01.pos-fb => axis.1.motor-pos-fb

I'm guessing "fb" is feedback. Maybe I can remove those to make it open-loop?

> One thing to check are the specs of your driver regarding the timing of the 
> step and direction signals.
> 
> dirsetup dirhold steplen and stepspace.

I did check these already. Step and dir hold minimum is 1 µs. The only other 
minimum time specified is the time between direction change and step, specified 
as 25 ns. Is that "dirsetup?"

> 
> These should be at least (but longer would be preferable) as long as the 
> specs from your driver.
> 
>> For reference, the HAL file <https://pastebin.com/cMTUiW7u>, and the .ini 
>> file <https://pastebin.com/eBLxpUh4>. Note I've only adjusted the pin 
>> addresses for axis 0 in the HAL, and the path to the PRU binary in the .ini. 
>> It's the same as the pru-stepper otherwise.
>> 
>> Thanks!
>> 
>> -- 
>> Rick
>> 
>> -- 
>> website: http://www.machinekit.io blog: http://blog.machinekit.io github: 
>> https://github.com/machinekit
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Machinekit" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to machinekit+unsubscr...@googlegroups.com.
>> Visit this group at https://groups.google.com/group/machinekit.
>> For more options, visit https://groups.google.com/d/optout.
> 
> -- 
> website: http://www.machinekit.io blog: http://blog.machinekit.io github: 
> https://github.com/machinekit
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Machinekit" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to machinekit+unsubscr...@googlegroups.com.
> Visit this group at https://groups.google.com/group/machinekit.
> For more options, visit https://groups.google.com/d/optout.


-- 
Rick Mann
rm...@latencyzero.com


-- 
website: http://www.machinekit.io blog: http://blog.machinekit.io github: 
https://github.com/machinekit
--- 
You received this message because you are subscribed to the Google Groups 
"Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to machinekit+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/machinekit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to