[#emc] "This is the #emc channel - talk related to the Enhanced Machine Controller and general machining. Website: http://www.linuxcnc.org/,
wiki at http://wiki.linuxcnc.org/"
logger_emc: ok! :)
I'm logging. I don't understand 'ok! :)', fragalot. Try /msg logger_emc help
I have a HAL function that auto-homes a servo motor and encoder. I am concerned that the process will trigger following errors as the encoder moves for no readily apparent reason. One solution might be for the module to have an amp-enable-in and amp-enable-out pin, so that the axis is only activated after the homing process. Do you think that will work, or have any better ideas?
out of curiosity, when is your module a better idea than using the existing homing functionality?
It homes the motor electrical origin to the encoder counts.
The servo amp can't even move the motor until that alignement is done.
Perhaps "motor alignement" is a better phrase than "homing"
* Optic homes your motors
To themselves, yes.
so the motor moves a little, and you don't want the encoder feedback to trip a following error when that happens?
could be up to 1/2 turn?
hmm am I wrong believing there was another live cd that was +8.04? :P
the "simplest" thing to do might be to turn off the encoder while you're doing that, unless you actually need the feedback for alignment
Yes. Maybe more, worst case
andypugh: I hijacked the feedback on my THC comp to be able to raise and lower the torch based on voltage
No, actually, never more than 5/6th of an _electrical_ turn, so 5/12 of a 2-pole
Yeah, the encoder is what is being aligned.
yeah, intercepting feedback is another option
this is only done once per run though, right?
oh, or whenever the amps are disabled/re-enabled
encoder counts pass-through is an option (I can lie to the rest of the system)
It needs to be any time the encoders go off, so I guess only the first time amp-enable goes high on power-up
I was thinking that it needed to re-home if an unpowered motor was shifted, but the encoder will follow that
that assumes that the encoder counters are always active
and the count never changes (like at "home to index")
err, never loses "sync" anyway
any eta on this "June xx: emc 2.4.1 / Ubuntu 10.04 Live CD by Fest " =) or its old plans?
frallzor, it's being worked on, but there are no promises
there are experimental packages you could try on a stock 10.04 install though
The module pin is actually rawcounts, to allow for index homing (threading, for example)
but I would still need to compile rtai and shit?
any complaints on those?
or they seem to do the job?
I guess the trick is to built a test config and see if folowing errors are a problem.
Lets not borrow trouble.
it may depend on how you expect the module to drive the motor - in position or velocity mode
if it's position mode, you'll have all the problems that stepgen has with index homing and the like (unless you fix them :) )
Torque-mode at the moment
is the encoder count actually used internally after sync?
In fact, even that is not entirely true. It's voltage mode
Yes, the phase voltages are calculated from encoder angle
I might write a velocity-mode variant at some point.
ries_ is now known as ries
It is beautifully smooth and silent, much nicer than the trapezoidal one.
SWPadnos, andypugh hi. Just tuned in here. andypugh are you writing a new encoder hal component?
No, a brushless motor drive component (two of them, actually)
aoh OK thanks
Why, do you want a new encoder HAL component?
SWPadnos, I got my AMT encoder, (nice!) got it hooked up and it is semi-functional.
I was starting to do the "homework" you assigned me ie make a hal scope and view the encoder signals etc
First thing I came accross in the integrator manual is the encoder hal component is only good for 10 kHz to 50 kHz
Well, it will go lower
andypugh, I don't necessarily want a new encoder component. Still trying to wrap my head around this one! LOL
andypugh: how integrated is it in the mesa hardware? Could you run a 3 channel h-bridge?
10 khz means it can see 10,000 pulses per second right?
so that's like 600,000 pulses per minute. Wow pretty fast even on the low end then.
skunkworks: The bit I am writing now is totally independent of the Mesa hardware, but requires _something_ to create the PWM and handle the shoot-through protection.
All this component does it calculate the three phase-amplitudes
I was figuring pwm out of the mesa card running the amp.
so it is more like a sinusoidal type drive vs the trapizoidal?
Yes, that's exactly the idea. The 3pwmgen pins from the FPGA card can be connected to a Mesa daughtercard, or to anything else that takes 3 or 6 wires of PWM
I have a trapezoidal driver written too.
heh - cool. (we have a bunch of trapizoidal style amps)
The path is PID -> (bldc_hall or bldc_sine) -> 3ppwmgen -> Mesa FPGA -> arbitrary hardware
davidf, that may be better said as "good to a maximum of 10-50 kHz"
it can do one pulse per year too
SWPadnos: I'm on it like a chicken on a june bug
ha. Yes I realized that was maximum. :)
skunkworks: You can almost certainly run those amps as sinusoidal amps with this, if you want.
hm, i never looked at the max rpm of servo based on the khz for the encoder
morficmobile, you're planning to use mesa cards, right?
davidf: Note that an encoder is 4 pulses per line, so a 1000 line encoder is a 4000 pulse encoder
andypugh, it depends on the manufacturer ...
morficmobile, then you shouldn't have a problem
think MHz, not kHz
the khz come into play for pc does it all?
parallel port, yes
then i just say i knew that and that's why i never considered it as limit :>
but it's in the MHz for Mesa
the part i took the .500 DoC in, someone crashed it on the mill, might be savable, still bums me out
$9k to redo the ballscrews of the Mori
ew thats a nasty price
hi Archivist, and thanks for the bidding, sorry you didn't win. I suspect a bidsniping service.
andypugh: using the trapizoidal amps... these are +/-10v and 3 hall sensors. Would there be hacking involved or would emc take over the phasing?
Is the issue that you have hall-sensor amps and resolver motors?
Otherwise I don't see why you wouldn't just use them as intended?
no - and I think the trapizoidal commutation will work just fine for us.
the little bit I played with the servos we had - rough tuning gave some pretty decent results.
andypugh, I pushed it a bit and was getting a coffee during the last moments :(
but they clicked funny at each commutation change ;)
Try all 6 hall wire combinations. There are 2 that sort-of work as well as the right one.
i never bought any 9k is as good as any price for a 60mm ballscrew, 38mm or so on X
skunkworks: The explanation is on page 6 here: http://www.motion-designs.com/images/DTrends_May_2008.pdf
Makes my 8mm on X look feeble, that's for sure.
cool - thanks. (the drives fault if the commutation isn't right..)
and I hooked them up per manual. I think I had them right but I could try other ones for s/g
Are the motors and the drives from the same manufacturer?
There are a surprisingly large number of hall sensor permuations.
I have 7 in the driver I have written, and none of them match my actual motor.
these servos http://www.kelinginc.net/23BLMotor.pdf
driven by amc 'b' series drives
Has anyone ever gotten around to implementing quintic interpolation in emc?
I don't think so
That's too bad, though hardly the end of the world.
I believe we had some discussions a few years ago, but it gets pretty hard when you throw non-trivial kinematics into the mix
I don't doubt it at all.
actual, non-trivkins gets pretty hard anyway, when you start talking about joint and world constraints
Is there a NML Python module?
I don't think there's a generic NML module, but there is an "emc" module
NML is a bit generic anyway, and isn't really useful without knowing a little more about the data that's being exchanged
[20:51:38] <SWPadnos> http://axis.unpy.net/01167419757
Now I just need to locate emc.py
I really should have seen that.
On a lathe setup, is +Z towards the chuck or away? & +X toward operator or away? I think I might have had my axes backwards from the way g76 canned threading expects...
X=0 means "center of rotation"
so X+ means increasing radius from the center of rotation
so toward the op
if your tools are on the front, yes
yes thery are. sprry
I'd bet Z+ is away from the chuck, but I don't know for sure
so yes I had x backwards
I had z+ toward the chuck originally
well, like I said I don't know for sure
Just crashed a brand new threading insert holder. Broke it. Darn.
Oh well it's only money.
davidf, some lathes are set up with the imaginary Y axis pointing up and some with it pointing down
ok jthornton thanks Do you happen to know of anyplace the directional convention is documented for EMC? I can't find anything in the user's manual
so for G2/3 I have to lay on the floor for it too look right on my lathe
it follows the Cartesian coordinate system
Yes but I'm trying to figure out which way is up, so to speak. :)
yes, I know what you mean
give me a minute to wander out to the shop
and get on the lathe
canned threading appears to expect a different orientation than I have set up.
davidf: I'm out in the shop now
on my lathe pressing the X+ makes the tool move toward me X- goes away
Z+ goes away from the spindle and Z- toward the spindle
OK Thanks JT-Hardinge
Does canned threading work on that lathe?
you bet I cut some 1 5/16-20 threads yesterday
scroll down to Cartesian coordinates in three dimensions http://en.wikipedia.org/wiki/Cartesian_coordinate_system
if you roll that figure so Z points to the left that is how my lathe is
So your spindle is on the right?
as you can see my tools are on "my" side of the lathe in this photo http://i47.photobucket.com/albums/f163/johnplctech/Hardinge/P1010020.jpg
Your chuck, I mean?
I mean Z points to the right sorry
OK now we're talkin. :)
Had me real confused there! :)
it gets cornfusing some times :)
Always it seems.
are you using 2.4?
Been using this config for about 4 years and still had to double check.
* Jymmm installs road signs on JT-Hardinge lathe
On the machine I have 2.3.3
yes but you might want to look at the later docs on threading I think I explained it a bit better
jymmm too funny
[21:30:02] <JT-Hardinge> http://www.linuxcnc.org/docview/html//gcode_main.html#sec:G76:-Threading-Canned
is that the page you have?
NO U TURN, ONE WAY ONLY, NO LEFT TURN, YIELD
Jymmm: are you going to replace my sticky notes with your road signs :P
JT-Hardinge: I could do that =)
at one time my mill had about 27 sticky notes on it :)
JT-Hardinge: What might be cool is hit a army surplus store and have them make you custom dog tags that can be riveted on.
can i reverse the direction in which X+ points in Axis on lathe setup?
morficmobile: didn't you read the NO U TURN sign????
Eeeeeesh, some ppl
JT-Hardinge, I have that page on this box, in the office. The shop has the 2.3.3 page. I'll print this out and read through it. One thing in particular was I had a great deal of trouble trying to figure out what the initial x,z cods were. Not stated clearly.
coords i meant
the initial position is where your tool is when the G76 starts
Right, but what numbers?
ie it takes two lines of code one to set up the tool at the initial position and one to cut the threads
like everything G-code
scroll down and take a look at the example
the initial Z is the start of the threads for length, the initial X is the drive line
So the final z position shown is z = 0?
in the example it starts at Z-0.500 and ends Z-1.000 so there is 1/2" of threads
JT-Hardinge, Oh OK
and is x=0 at the center of rotation in that example?
yes on a lathe X0 is the center of the spindle
I got in the bad habit of writing code with x=0 at the stock surface. I do a lot of things with accurately dimensioned stock, and live tooling (tool post grinder) and found it easy to touch it off and type g92 x0.
did that get you in trouble?
But in general it's inconvenient
Especially if you are making a part with several radii
Then x = 0 at center makes a lot more sense.
yes it does
Well I'm making progress. :) Something makes sense.
Thanks for all the help I really appreciate it.
* JT-Hardinge just waiting for a Jerry Jeff Walker song to strap on the nail belt and grab a pile of shingles
train songs? ;)
any Jerry Jeff Walker will do... when I put the roof on my Dads house it seemed to be the only artist that played even with random play
I gave that radio away so I wouldn't have to do any more roofs :)
but it didn't work I have to repair mine :(
I guess Lather by Jefferson Airplane will be good enough to start slinging shingles
ries_ is now known as ries
JT-Hardinge: Here ya go... http://www.google.com/url?q=http://s0.ilike.com/play%23Scorpions:Rock%2BYou%2BLike%2Ba%2BHurricane:57084:s44496.15551.903318.104.22.168%252Cstd_36a6caaaa1b8667d64fe3abb5f3a8678&sa=X&ei=3HMNTNDnAsPcnAet-NihDw&ved=0CBYQ0wQoADAA&usg=AFQjCNFuz3APqEg4UZ4EXHlRkl39oRb8Pg
Jymmm bit.ly tinyurl por favor?
Nope, I don't do blind urls.
beat the source for subtitle out of kuwon1
18:37 -NickServ(NickServ@services.)- Information on subtitle (account kunwon1):
I have no idea what you just said, but here's a bunny with a pancake on it's head.
join ##politics then paste a URL
kuwon1 won't give up the source for the bot though :(
morfic: You can reverse the display of an axis in GEOMETRY
Is it possible to stop GNOME from running to try some things wil HAL?
Just run HAL via command line, no gui
you need to be in X I think
but you don't need to run gnome to be in X
you can choose another window manager
whoot! I got this jazz to run!
For wwhat I going to do I need No gui
pfred1: I hope that's not iomega jazz
different jazz though I just saw one of those at a yard sale not too long ago I sort of laughed
SCSI was such a pita, now just expensive and not worth it.
Though I still do have a USB zip drive and discs around here somewhere.
I have an old tape drive talk about a nitemare
travan I think it is
paraport tape drive?
write once read never
or was that floppy
nah it was connected to the FDC IIRC
Yeah, I know that shit.... eeeeeeeeeeeeeeeeeEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEErrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
it always worked until you wanted it to
andypugh: thanks, i look into that later, right now i just found out that building a full emc messed with my "in place" sim, so no "testing this real quick"
Those things were noisy, slow, and unreliable.
If you put GEOMETRY X -Z then the Z will be displayed reversed
Z is fine, minus is to left, i guess i would put -X Z then since X+ going down is *sick* :)
Jymmm it seemed to like to stretch the tapes a lot
Changing the physical direction can be done anywhere, from inverting a direction pin to negating any scale
andypugh: i just mean the display
pfred1: I gave up on those far ebfore actually using them long term. The noise and speed was enough for me to toss them across the room.
well i had mine on another machine and would network the files to it then back them up
so the speed was never an issue really
pfred1: cradek is fond of tape, I just gave away a nice tape drive and case of 150 tapes.
dats are nice
DAT2 or soemthing like that, dont recall what it was but is still being used by some today.
A friend of mine has a petabyte(I think) robotic tape vault
yeah they're OK
some DLT tapes tapes too. just gave it all to a local middle school
Actually, I think it was 14 Petabytes 8 years ago, god knows what he has now.
when the tape industry stopped keeping up with the hdd industry, I gave up on them.
I like my DVD burner
HDDs are just unfeasible. I refuse to believe that they are possible.
andypugh: simulation now goes in right direction, thanks, scales are still backwards
DVD is ok for things like photos/video/docs, but I'm waiting for the 1TB optical =)
or for BD-R drives to get to $100 and blanks to $0.50 =)
you can get a bd player for $96 australian these days
yeah, I mostly see players for that, not burners though.
I have no need for any BD player, I need mass storage
still havent hacked BD sufficently well to play it in linux reliably yet :-<
Darn sun! I'm wiating for sunset so I can give my genny an oil change
i'll check the ini file layout docs later, thanks andypugh
OK, I think we can say that the 7i39 is supported hardware now :-) http://www.youtube.com/watch?v=H8fVKkjPAOQ
(As a puzzle, you might like to speculate on how the ballscrew cover works :-)
andypugh: is it completely silent?
You can hear the belt.
But yes, the sound is on.
yeah, I heard background noise, but no motor
I bet that's a good sign
we moved ours to direct drive and now its way too quiet lol
I have some much bigger servos that would work well for that axis, those little toys can be used for the rotaries
Or I might keep the lathe as a stepper machine and convert a mill. It does actually work perfectly OK, after all.
I have forgotten why I started this servo driver project now.
are you going to assemble a patch to contribute to git master?
Yeah, I have a bit of neatening up to do. The hall-sensor version needs to read a pattern from the modparam, and the sinusoidal one needs to not cause a following error during rotor alignment.
andypugh: I like how the PCB is JUST below where the swarf WILL go =)
and it's WAY TOO QUIET!!!
Any ideas how to avoid the following error?
The PCB is only there for testing, as you probably guessed
andypugh: I know =)
andypugh: If it was anyone else, I'd question it =)
andypugh: what happens? do you just get a bit of uncontrolled motion when it starts up?
Especially SWPadnos, he NEVER plans anything out!
Current config is to do an alignment when amp-enable goes high. (ie amp-enable is wired to the bldc-sine.0.init pin
I am thinking I could pass-through that pin so it only goes to the other things when it has finished.
It might be better linked to a homing pin.
before turning machine-on, you cannot ferror because commanded follows feedback
so if you'd do the motor bootstrap when coming out of estop, you'd be fine
Yes, but I am not happy powering the motors when the machine is meant to be off
yeah - you still would want them to turn off when you go to machine-off, because that's what a (real) ferror does
but there's no machine-on loopback (request it, then the hardware does something, then tells emc it's ready) like there is for estop
I take it that the amp-enable turns on f-error checking, I can't take that signal and pass it on after init?
yeah that's what I was just saying - amp-enable is one instantaneous step
Any way to increase F-error temporarily?
I don't see much alternative to bootstrapping the motors before machine-on
no, you have to restart emc to change ferror limits
So, link iocontrol.0.user-enable-out to the init pin?
I guess I can just provide an init-now input and an init-finished output and leave the implementation details to the user.
yeah I think that's the ticket
for instance I'd put it in my multistep come-out-of-estop ladder
I possibly need a cleverer init sequence too, at the moment I swing from +120 degrees to zero while ramping up the current over the course of 1.2 seconds.
I might be better going +120, -120, 0
how much motion do you get? is it up to half a turn?
just ramping up the current at a fixed zero risks being in a position where there isn't enough torque to move the axis.
oh I see - so you want to command some various motion
It's up to half an electrical turn, generally a quarter turn or a 6th
so like .050 inch on a normal screw - that's no big deal is it
There are cleverer algorithms that PCW has hinted at, doing clever things with looking at velocities over very short pulses to infer rotor position, then taking the shortest route.
haha, hint hint