#emc | Logs for 2006-11-09

Back
[01:47:45] <skunkworksemc> I must be doing something wrong
[01:48:04] <SWPadnos> of course. the question is what ;)
[01:48:17] <skunkworksemc> Just playing around with pid
[01:48:27] <ChrisSmol> pid loops are a bear to tune
[01:48:36] <skunkworksemc> I am finding that out ;)
[01:49:32] <skunkworksemc> I am trying to do the Ziegler-Nichols method - but I think I have some other issues. Like my output scale doesn't seem to be right
[01:49:55] <SWPadnos> you'll probably find that your output is non-linear
[01:50:34] <skunkworksemc> at max dc the servo runs at 1500rpm - which should be 500ipm
[01:50:45] <SWPadnos> that's max DC from your supply?
[01:50:46] <skunkworksemc> but I don't seem to get close to that
[01:51:07] <skunkworksemc> that is 99% df out of pwmgen
[01:51:19] <SWPadnos> do you have a scope or frequency counter to check speed with?
[01:51:21] <skunkworksemc> like 10ipm or so
[01:51:44] <skunkworksemc> I have tachometer
[01:51:57] <SWPadnos> ok - that'll do :)
[01:52:49] <SWPadnos> and if you just load realtime, one PID, and freqgen (no emc to complicate things), do you get that speed with a PWM duty cycle of 99%?
[01:53:13] <SWPadnos> (I;m assuming that the motor is not attached to a machine at the moment)
[01:55:10] <skunkworksemc> no not attached.. I get 1500 rpm when I have it set up as a spindle running 99%df (out of emc)
[01:55:25] <SWPadnos> ok
[01:55:38] <SWPadnos> can you post your ini file on pastebin?
[01:55:44] <SWPadnos> just in case :)
[01:55:55] <skunkworksemc> eww - do you really want to see it? it is messy
[01:56:00] <skunkworksemc> hold on
[01:56:12] <SWPadnos> it's ok - I'm a programmer
[01:57:33] <skunkworksemc> http://pastebin.ca/243941
[01:58:42] <skunkworksemc> http://pastebin.ca/243943
[01:58:46] <skunkworksemc> ini/hal
[01:59:01] <SWPadnos> ok
[01:59:03] <skunkworksemc> this is a hacked up etchosketch file
[01:59:38] <SWPadnos> your max_velocity is probably in the wrong units ;)
[01:59:51] <SWPadnos> 500 ips is a very fast machine
[02:00:06] <skunkworksemc> oops - I was thinking ipm :)
[02:00:12] <SWPadnos> heh
[02:00:23] <SWPadnos> I was just going to ask if that had changed for the ini, along with the named units
[02:00:39] <skunkworksemc> it initally was in inches
[02:01:51] <skunkworksemc> jmkasunich calculated the setp pwmgen.0.scale 8.3 yesterday
[02:02:53] <skunkworksemc> does the output_scale used for anything else - should it be the same (8.3)
[02:03:02] <skunkworksemc> (is the)
[02:03:03] <SWPadnos> ok - I'd have to look at the source to see if it divides or multiplies, but I'll assume that he correctly determined that it multiplies
[02:03:32] <SWPadnos> 8.3 * 60 = 500 ipm
[02:03:50] <skunkworksemc> hmm - the bigger the number (scale) the less ouput I have - iirc
[02:04:02] <SWPadnos> so I guess that at an input command of 8.3 gives you 100% duty cycle
[02:04:03] <SWPadnos> yes, that makes sense
[02:04:08] <skunkworksemc> ok
[02:04:13] <SWPadnos> when command = scale, the output if full on
[02:04:24] <SWPadnos> s/if/is/
[02:04:48] <skunkworksemc> ah that makes sense. But if I command a 500ipm - I am lucky to get 50
[02:04:56] <SWPadnos> however, the PID max output is set to 1, so you should never get more than 60 ipm anyway
[02:05:29] <skunkworksemc> the ohter thing is - the axis velocity shows lets say 500ipm - but then drops to 0 before it finishes the move. If that makes sense
[02:05:42] <skunkworksemc> if I command 500ipm
[02:05:51] <SWPadnos> you're looking at vel with halscope?
[02:05:58] <skunkworksemc> ah - I was wondering about that
[02:06:10] <skunkworksemc> not yet
[02:06:32] <skunkworksemc> so the pid should also be set to 8.3
[02:06:34] <skunkworksemc> ?
[02:06:55] <SWPadnos> wait - on the "vel goes to 0" question, where are you looking at the zero?
[02:07:06] <SWPadnos> or the 500 that turns into a zero
[02:07:17] <skunkworksemc> axis has a velocity readout
[02:07:27] <SWPadnos> ok
[02:07:41] <SWPadnos> yes, the velocity should go to 0, since the TP decelerates the motor to a stop
[02:07:59] <SWPadnos> I'm not sure how axis displays that though - it may just be the delta between position updates in the display
[02:08:54] <SWPadnos> yes, the pid max should probably be set to something at least as high as needed to satisfy the TP / AXIS_n max vels
[02:09:33] <skunkworksemc> that fixed the velocity issue - thanks
[02:09:41] <SWPadnos> sure
[02:09:49] <skunkworksemc> cool
[02:09:49] <skunkworksemc> ok
[02:10:03] <skunkworksemc> I have another question
[02:10:08] <skunkworksemc> :)
[02:10:11] <SWPadnos> shoot
[02:10:21] <SWPadnos> I'll dodge if I don't like it ;)
[02:13:36] <skunkworksemc> I was doing the Ziegler-Nichols method. I wonder though should the dead band be set to 0? Because when I set it to 0 the thing oscollates at with a p set around 1000 or so.. If I have a dead band of around .0003(little over 1 ecoder line) it oscolates at a p of 4700
[02:14:38] <SWPadnos> DEADBAND should be set to slightly over the distance for 1/2 encoder count
[02:16:34] <skunkworksemc> each encoder count is .000208 - So I set it to .0003
[02:16:46] <skunkworksemc> 1/4800
[02:17:16] <SWPadnos> right - the 1/2 encoder count comes from wanting it to hunt to the closest encoder edge
[02:17:18] <skunkworksemc> oops
[02:17:53] <skunkworksemc> no thats right
[02:17:56] <SWPadnos> .0001 is closer ;)
[02:18:23] <skunkworksemc> so it is half a count - ok I was confused
[02:18:32] <SWPadnos> remember that the position feedback is only presented in full encoder ticks
[02:19:08] <SWPadnos> so if you want a point exactly in the middle of two ticks, you want the deadband to be set to ignore that error
[02:19:18] <SWPadnos> so a little over 1/2 tick does that
[02:19:31] <SWPadnos> maybe 0.00015 would be good
[02:20:13] <SWPadnos> note that 0.0003 will still work, but you essentially lose resolution that way, because you ignore ~1.5 encoder counts of error in each direction
[02:21:06] <skunkworksemc> ok
[02:25:36] <skunkworksemc> so the question is - should I have to flick it to get it to oscolate?
[02:25:46] <skunkworksemc> try to turn the shave
[02:25:50] <skunkworksemc> shaft
[02:26:01] <SWPadnos> that's the ideal case
[02:26:03] <SWPadnos> I think
[02:26:20] <SWPadnos> that's what deadband dows for you
[02:26:24] <SWPadnos> does
[02:26:56] <SWPadnos> the geckos have PID, and eventually the I term dominates, so the drives ping-pong back and forth between two adjacent encoder edges
[02:27:21] <SWPadnos> depending on the tuning, the motors "sing" - you can hear them buzzing
[02:28:20] <SWPadnos> with deadband, any error below the threshold is just ignored - it never gets into the I term, so I never dominates, and the servo will just sit there unless you flick the shaft (or push the table, etc), at which time the feedback allows the system to correct for the error you just injected
[02:28:23] <SWPadnos> simple, huh?
[02:28:29] <skunkworksemc> I am trying to get it to oscolate for this http://linuxcnc.org/docs/html/motion/pid_theory/index.html
[02:28:42] <skunkworksemc> yes :)
[02:28:55] <SWPadnos> I suspect you should set deadband to 0 for the tuning, but I'm not sure
[02:29:06] <skunkworksemc> ah - that was my question :)
[02:29:30] <SWPadnos> though you initially have I=D=0, and only change P, right?
[02:30:16] <skunkworksemc> right - keep increasing p until it oscolats
[02:30:45] <SWPadnos> ok. then I won't matter, and very small errors won't have much effect until P is large-ish
[02:30:57] <SWPadnos> so I'd do it with deadband=0
[02:31:06] <skunkworksemc> ok - doing it now
[02:34:18] <skunkworksemc> now what do you consider oscillation?
[02:34:32] <SWPadnos> when the motor starts going back and forth around the set position
[02:34:59] <skunkworksemc> it starts buzzing around 1200
[02:35:22] <skunkworksemc> (remembe I have no mass hooked to this other than the rotot
[02:35:27] <skunkworksemc> rotor
[02:35:28] <SWPadnos> that may be it, but if the period is that small, you'll need a scope to do this method
[02:35:47] <skunkworksemc> at 1300 it really buzzes
[02:36:02] <skunkworksemc> I used halscope :)
[02:36:26] <SWPadnos> ok
[02:37:01] <SWPadnos> does the pitch of the buzzin change as well as the volume?
[02:37:03] <SWPadnos> g
[02:37:22] <skunkworksemc> well I can test it - I really can't tell
[02:41:14] <skunkworksemc> is m in halscope micro?
[02:41:25] <SWPadnos> milliseconds?
[02:41:36] <SWPadnos> in the units display, they probably would would be milli
[02:41:41] <SWPadnos> u will be micro
[02:41:51] <skunkworksemc> yes duh
[02:42:06] <skunkworksemc> so I am getting 12ms
[02:42:13] <skunkworksemc> this is what I was geting before
[02:42:27] <skunkworksemc> so a period of 12ms
[02:43:06] <SWPadnos> ok. I don't know enough about motor PID tuning to know if that's reasonable
[02:43:32] <SWPadnos> I think you should test with step functions though
[02:43:54] <SWPadnos> using the TP to accel and decel the motor is easier on the PID loop than a step would be
[02:44:07] <skunkworksemc> so p at 1250 - p=750 i=.006 and d=.0015?
[02:44:56] <SWPadnos> that may work, though I seems maybe a little low
[02:45:08] <SWPadnos> or is it D? ;)
[02:45:10] <skunkworksemc> yes - that would probably be better - but I am just playing
[02:45:28] <SWPadnos> of course, the numbers will change on the machine as well ;)
[02:47:53] <skunkworksemc> cool
[02:48:42] <SWPadnos> well - I've got to run. good luck with it
[02:48:55] <skunkworksemc> thanks steve
[02:49:04] <SWPadnos> sure
[02:49:19] <skunkworksemc> x0
[02:49:25] <skunkworksemc> :)
[03:38:00] <skunkworks> that was productive. :)
[03:38:07] <cradek> got it working?
[03:39:52] <skunkworks> getting closer. I think I need to also play with tuning by 'step function' - what ever that is :)
[03:40:39] <cradek> that's where you change the goal by a step (instead of a ramp like you usually get from emc) and watch the response
[03:41:00] <skunkworks> but then how do you know what to change?
[03:41:02] <cradek> step response probably isn't so important for pid in our application
[03:41:21] <cradek> heh you look at the response and change 'the right thing' to make it 'better'
[03:41:50] <skunkworks> sounds about right ;)
[03:42:10] <cradek> did you ever get what looked like real oscillation? I bet it might be hard to really get a feel for it with no mass on the motor
[03:43:02] <skunkworks> right - I had tried it 2 differnt ways and got the same period - so I am confident of that (12ms)
[03:43:18] <cradek> cool
[03:43:30] <skunkworks> I am tempted to hook it to the z axis of the gantry to add mass.
[03:43:34] <cradek> with mass I think you'll get more like a second, nice slow controlled oscillation
[03:43:48] <cradek> yeah I bet that would be interesting
[03:44:29] <skunkworks> also - as I lowered the following error - I would get following errors at de-accelleration. probably harder with no friction/mass
[03:44:47] <skunkworks> at high speeds - > 50ipm
[03:45:07] <skunkworks> but I really didn't play with it enough yet'
[03:46:17] <skunkworks> but all and all - pretty cool for junk :)
[03:46:27] <skunkworks> and inexpensive parts.
[03:46:32] <cradek> yeah, I bet you could move something with it.
[03:47:11] <skunkworks> we where trying to spin it with a wrench. it would move around .005" before I would chicken out
[03:47:52] <skunkworks> that is another question - can that be adjusted?
[03:48:03] <cradek> can what?
[03:48:38] <skunkworks> I don't know what you would call it. So say it would only move .001 when I try to spin it
[03:49:17] <cradek> oh you mean when you're in closed loop and you turn the shaft by hand?
[03:49:21] <skunkworks> right
[03:49:58] <skunkworks> is that a funcion of something?
[03:50:00] <cradek> that will come with tuning, a higher P will push harder against you, a higher I will push harder the longer you hold it away from teh target
[03:50:05] <cradek> the
[03:50:06] <skunkworks> ok
[03:50:43] <skunkworks> it is pretty cool - still excited. :)
[03:50:54] <cradek> when it's tuned well you'll be able to turn it within the deadband range and it'll feel like a wall outside that
[03:51:06] <skunkworks> cool - that is what i was wondering
[03:51:42] <cradek> beware I've only done this once :-)
[03:52:03] <skunkworks> :)
[03:52:11] <skunkworks> I have done it less than that
[03:58:05] <skunkworks> it also sounded cool :)
[03:59:15] <cradek> do you have it wired to emc and you're jogging/MDI etc?
[03:59:23] <skunkworks> right
[03:59:45] <cradek> you haven't let the smoke out of any of your H bridge stuff yet?
[03:59:47] <skunkworks> I acutally used the calibrate menu item to play with the pid
[03:59:58] <skunkworks> nope. so far so good
[04:00:08] <cradek> wow that's a testament to your design skills
[04:00:18] <skunkworks> I had help :)
[04:00:56] <skunkworks> jmk's design of the circuit board probably helped I am sure :_)
[04:01:07] <cradek> yeah he's pretty good at that stuff
[04:01:47] <skunkworks> I don't have the heatsinks mounted yet - and all the playing I did earlier - the mosfets didn't even get a hint of heat
[04:01:59] <cradek> cool that's a great sign
[04:03:13] <skunkworks> don't know if you saw this http://www.electronicsam.com/images/KandT/servostart/mess.JPG
[04:04:13] <cradek> neat
[04:04:29] <cradek> I like that cap-top mounting scheme, it'll be neat to have a row of those
[04:04:59] <cradek> I have that same power supply
[04:05:04] <skunkworks> yes - we have about 20 of those things - from some old drives.
[04:05:13] <skunkworks> http://www.electronicsam.com/images/KandT/servostart/Endoder1.JPG
[04:05:42] <cradek> neat, I still can't believe those things work. it seems so unlikely.
[04:05:54] <skunkworks> which one - the 5v one or the 0-25volt one?
[04:05:59] <cradek> the 5v
[04:06:08] <cradek> except mine has the original power switch still
[04:06:21] <skunkworks> ah - I am suprised it still works - I have had is since I was a kid.. Pretty hard on it/
[04:07:03] <skunkworks> what did the origina switch look like? do you mean it had a plastic cap? I don't remember
[04:07:09] <cradek> that marking means 400 line?
[04:07:18] <skunkworks> yes - 400 line
[04:07:43] <cradek> is it a glass or plastic disc?
[04:07:53] <skunkworks> it is plastic.
[04:07:58] <cradek> haha "endoder"
[04:08:35] <cradek> maybe at the end of fest we'll all have to road-trip to your place to see your finished conversion :-)
[04:08:42] <skunkworks> funny
[04:09:13] <skunkworks> oh - maybe not the next on - but the one after? we are not the fastest bunch :)
[04:09:30] <skunkworks> one
[04:09:47] <cradek> ok maybe so...
[04:09:52] <skunkworks> didn't notice that btw - endoder :)
[04:10:09] <skunkworks> I can't spell my way out of a papar box
[04:10:35] <cradek> haha I'd never noticed that :-)
[04:10:54] <skunkworks> If the big servos do direct drive to the 3tpi leasd screws - that gives me a resolution of .000208
[04:10:59] <skunkworks> lead
[04:11:13] <cradek> perfect
[04:11:16] <cradek> with what top speed?
[04:11:17] <skunkworks> I think so :)
[04:11:32] <skunkworks> those servos are rated at 1200 rpm. so 400 ipm
[04:11:40] <skunkworks> more than enough
[04:11:47] <cradek> what's the X (long) travel?
[04:12:12] <cradek> (uh whichever thing you call the longest one)
[04:12:24] <skunkworks> 38"X36"X24" xyz
[04:12:45] <skunkworks> nice envolope
[04:12:50] <skunkworks> plus the table rotates
[04:12:58] <cradek> so something like 6 seconds full travel
[04:13:08] <skunkworks> right
[04:13:37] <skunkworks> it originally did 200ipm rapid
[04:13:39] <cradek> could be a little faster I suppose, but you don't do the full travel very often
[04:13:44] <cradek> ahh
[04:14:29] <cradek> I bet you can do a normal up/across/down in about a second a lot of times
[04:14:39] <cradek> it will be snappy
[04:15:15] <skunkworks> yes - It will be fun to see :) and quiet - won't need the huge hydrolic power supply
[04:16:01] <CIA-5> 03jmelson 07HEAD * 10emc2/src/hal/drivers/hal_ppmc.c: put in abs() for extraDAC, fixed rev level test for extraDout
[04:16:25] <skunkworks> plus full 3 axis machining. It was 2.5 axis - x and z shared the same servo
[04:16:45] <cradek> cool
[04:16:58] <cradek> then you can do helical hole milling
[04:17:22] <skunkworks> all kinds of cools stuff..
[04:17:59] <skunkworks> the 60's vintage controller also only did conturing up to 9.9999 inches (radius or linear)
[04:18:25] <skunkworks> took me a second to figure out who jmelson was - never see the m
[04:18:27] <cradek> heh
[04:18:57] <skunkworks> so - is the max going to be converted to servos?
[04:19:33] <cradek> maybe someday, but sadly/happily it works really well as it is
[04:19:44] <skunkworks> darn. :)
[04:19:55] <cradek> if I'm going to bother to do a complex conversion I'd rather do it to a larger mill
[04:20:18] <skunkworks> do you have the room? it is an adiction you know..
[04:20:25] <cradek> heck I'd be happy to have a larger manual mill
[04:20:46] <cradek> it would be challenging but I think I could find the room. depends on the size.
[04:22:13] <cradek> better would be if a nearby friend had one :-)
[04:22:31] <skunkworks> Isn't it time for jepler to get a mill? :)
[04:22:42] <cradek> nah, he'd get a little one
[04:22:50] <skunkworks> darn
[04:23:08] <cradek> he has less room than I do, and also a girlfriend who would give him that look
[04:23:43] <skunkworks> yah - I know what that is like.
[04:26:48] <skunkworks> did you see we nominated jepler to do a new classic ladder gui? I think it should be called CLAxis. Jepler wasn't amused.
[04:27:10] <cradek> hmm
[04:27:14] <cradek> booooring
[04:27:25] <cradek> I'd rather he finish hallelujah
[04:27:46] <cradek> the CL gui seemed 'ok' to me - you can do what you need to in it
[04:27:53] <skunkworks> actually - so do I. ALthough - I am getting used to the hal setup. Or it is making more sense.
[04:28:33] <cradek> glad you're getting used to it
[04:28:43] <cradek> because you're the support guy now...
[04:29:09] <skunkworks> riiiight. I do what I can. :)
[04:31:53] <skunkworks> did you see that all it take to hook into the encoder sensor is a hdd led and turbo sw plug http://www.electronicsam.com/images/KandT/servostart/Endoder1.JPG
[04:31:55] <skunkworks> :)
[04:32:15] <cradek> haha I didn't notice that
[04:32:56] <skunkworks> could not fine a plug with 5 conductors. so I used a 3 and a 2
[04:33:38] <skunkworks> they should have put the index on one end or the other - then i could have used a 4 conductor plug. instead they put it in the middle some where
[04:35:20] <cradek> do you intend to use the indexes?
[04:35:55] <cradek> I think you can home to them using if you're using the encoder module directly
[04:36:23] <skunkworks> maybe - These disks don't have an index.
[04:36:32] <cradek> ah
[04:36:53] <skunkworks> The ultimate plan is to get the scales on the acutally machine working. (sort of a linear resolver)
[04:37:18] <skunkworks> and using a resolver to quaduture converter chip
[04:37:47] <cradek> right I remember you saying that
[04:37:52] <cradek> so it'll be a whole different setup
[04:38:02] <skunkworks> but mechanical home switches would do just fine - for now :)
[04:38:18] <skunkworks> I would think I would need hardware counters then
[04:38:51] <cradek> yeah
[04:39:03] <skunkworks> I think they are 1000 line fixed
[04:39:14] <skunkworks> at least the ones I have seen
[04:39:49] <cradek> you could use the hackery I used on mine to divide the quadrature
[04:40:17] <skunkworks> yes - good idea. (didn't cross my mind)
[04:40:32] <cradek> that's because it's a terrible idea :-)
[04:40:44] <skunkworks> :0
[04:40:47] <skunkworks> :)
[04:45:44] <skunkworks> so is there issues with the index pulse on hardware cards?
[04:45:52] <skunkworks> for homing?
[04:46:00] <cradek> I think some of them are not tested
[04:46:03] <skunkworks> ah
[04:46:29] <cradek> the encoder module was the first to work right because special hardware was not needed to write or test it
[04:47:23] <cradek> I understand some of the cards, like the STG1, are pretty ... esoteric
[04:48:00] <cradek> I bet elson's cards will be the next to work if they don't already
[04:48:17] <cradek> (he had to work out index stuff for lathe threading)
[04:49:42] <skunkworks> cool. still can't believe how powerful emc2 is. Very neat.
[04:50:32] <cradek> I think that too, it sure lets you do some neat things with an everyday PC
[04:58:32] <Roguish> good evening all.
[04:58:58] <Roguish> anything up or down with the mail servers. i haven't seen any emc mail since the 1st.
[04:59:26] <cradek> no they're fine
[04:59:52] <cradek> To: "Enhanced Machine Controller (EMC)" <emc-users@lists.sourceforge.net>
[04:59:52] <cradek> Subject: Re: [Emc-users] Asserting two signals from the same pin through HAL
[04:59:52] <cradek> Date: Wed, 8 Nov 2006 11:14:00 -0600
[05:01:00] <skunkworks> source forge archive isn't updating again. Is that what your taking about?
[05:01:18] <cradek> Roguish: you're set to "no mail" again because of bounces
[05:01:28] <Roguish> bounces?
[05:01:44] <cradek> yes your mail is unreliable somehow
[05:01:55] <cradek> unfortunately I didn't save the bounces this time
[05:02:41] <cradek> can you subscribe from a different email?
[05:03:04] <Roguish> can't remember which address it's supposed to go to.
[05:03:06] <cradek> skunkworks: separate problem, but I hadn't noticed that
[05:03:29] <cradek> there are two that look like you - both are set to nomail
[05:03:44] <skunkworks> since you fixed mine - I have been getting them through my mail client - have not had to look at the archives.
[05:04:11] <cradek> Roguish: I can turn one or both back on for you, but if we get more bounces we'll disable them again
[05:05:33] <Roguish> gotta a link so i can check which address is used?
[05:25:44] <skunkworks> Time for bed - night
[11:21:09] <Dallur> One thing I have been wondering about for a while, in my case I have a gantry system where each side has it's own stepper, and I want to automatically sync both sides during the homing
[11:21:55] <Dallur> What I did to have emc drive both motors in sync was to hook them both up to the same signal generator and invert the parallel pins
[11:22:46] <Dallur> The problem with this is that they are considered the same axis during homing so I can't home them individually, if I could home them individually I could sync em up with homing and eliminate the manual tuning
[11:23:29] <anonimasu> Dallur: have you thought about using a common shaft for both sides?
[11:24:36] <Dallur> impossible :D
[11:24:41] <Dallur> or impractible
[11:24:46] <Dallur> the machine is already built
[11:25:01] <Dallur> and the size means that the shaft would weigh in at 100kg
[11:25:15] <Dallur> the table is 2.1m x 6.5m :P
[11:26:08] <Dallur> the shaft would have to be quite massive so that the twist would not cause problems so I decided to have two steppers, it works great, just looking to make it easier
[11:26:51] <anonimasu> * anonimasu nods
[11:27:27] <Dallur> see -> http://dallur.com/typo3temp/pics/0d330740e0.jpg
[11:29:37] <Dallur> Anyone have any ideas with how I could make them sync up during homing ?
[12:07:00] <alex_joni> Dallur: it's not a trivial change, but it has been discussed quite a bit lately
[12:07:17] <alex_joni> here's a pointer (not sure how good it is):
[12:16:21] <alex_joni> have another axis defined in the ini (so that you could control it manually and during homing).
[12:16:31] <alex_joni> that will cause another joint be exported.
[12:16:58] <alex_joni> during homing you can make them home at once (jepler put in some changes to define shared switches and such)
[12:17:13] <alex_joni> they will be both commanded off 2 different stepgens during homing
[12:17:53] <alex_joni> once it's homed execute a small script which unlinks the second joint from the second signal generator, and link it to the first one
[12:18:05] <alex_joni> just my 2cents..
[13:37:00] <Dallur> Thanks Alex, I will try that when I re-assemble (im having the entire base hot galvanized and chrome plating all running surfaces
[14:52:24] <cradek> alex_joni: jepler's shared home switch changes don't give you simultaneous homing
[14:52:45] <cradek> alex_joni: in fact if a switch is shared between two joints those are NOT allowed to home at the same time
[14:54:15] <cradek> say you have X and Y sharing a switch - X is sitting on the home switch and you home Y - Y will move the wrong way forever and crash
[14:54:27] <cradek> that the kind of thing the shared home switch code fixes
[14:56:32] <cradek> that's
[14:58:13] <cradek> hmm maybe I'm wrong - there is a home-all message, but I don't know if it guarantees that they move together
[14:58:18] <cradek> hmm
[14:58:21] <cradek> forget I said anything :-)
[15:16:05] <Lerneaen_Hydra> 'lo
[15:23:56] <jepler> cradek: with "home all" two axes that have the same homing order (they must not share a switch) will begin homing in the same servo cycle
[15:30:11] <cradek> well how about that
[15:31:05] <cradek> so I wonder what extra logic gantry homing needs
[15:31:23] <Lerneaen_Hydra> logger_emc: bookmark
[15:31:23] <Lerneaen_Hydra> Just this once .. here's the log: http://www.linuxcnc.org/irc/irc.freenode.net:6667/emc/2006-11-09.txt
[15:31:27] <cradek> seems like there's a "wait" that has to happen
[15:31:34] <jepler> it seems like you want to do *each step* of the homing procedure in lock-step .. not just start together.
[15:32:09] <cradek> yeah maybe that's the rule
[15:32:41] <cradek> well still maybe not - imagine one of your switches has a sloppy release (say it's sticky)
[15:33:21] <cradek> you want to keep moving both joints until both switches are released when you back off
[15:33:51] <cradek> this is just a SMOP isn't it
[15:34:40] <jepler> the last move of the homing sequence needs to be one you trust to be the same on both joints
[15:35:26] <cradek> you mean the rapid that would be after synchronization?
[15:35:39] <jepler> no, I mean the last move on to or off of a switch
[15:38:34] <jepler> If you trust the switches to close at the same time, then you want the regular homing sequence, but in the first step you want to move the axes together but stop each one when its switch closes. Then you want to move the axes together until both switches open. Then you want to move both axes together but stop each one when its switch closes.
[15:38:38] <cradek> right, I was just saying there can be several moves that have to be done together before the 'important' move
[15:39:29] <cradek> yes I think that's right
[15:39:29] <jepler> the first and third moves are intended to fix a slight out-of-alignment condition that isn't so bad the machine can't move, and the second has to simply not make things worse
[15:39:39] <cradek> yes
[15:40:18] <cradek> and for the alternate homing sequence (off-the-switch) you just do motions 1 and 2 I think
[15:40:18] <jepler> unfortunately, "home all" doesn't quite work that way
[15:40:36] <jepler> I'm not sure how home-to-index fits in here
[15:41:01] <jepler> trust the index pulse and stop each joint when it hits index?
[15:41:17] <cradek> just the same - after the 'important' move onto/off the switch, you keep going until you get an index
[15:42:47] <jepler> if you have an index pulse then can you start by moving both axes together to an index pulse?
[15:42:52] <cradek> all this assumes four joints, which gives us joints != axes, which is a problem
[15:43:25] <jepler> I'm pretty sure doing it with joints is right, even if it means we have to fix stuff to make joints > axes work
[15:43:35] <jepler> time for me to go .. talk to you tonight.
[15:43:50] <Dallur> later
[15:43:56] <cradek> ok
[17:27:43] <alex_joni> cradek: looks like a good idea to me
[17:28:02] <cradek> what does?
[17:28:06] <alex_joni> I did mean to use the home_all and send those two joints home together
[17:28:25] <alex_joni> but I think homing can be extended (maybe by means of additional ini entries) to handle it properly
[17:28:28] <cradek> yeah I was wrong about that, I didn't know they were guaranteed to start together
[17:28:30] <alex_joni> cradek: what you & jeff talked about
[17:28:38] <cradek> but jepler is right, it has to be more than just starting together
[17:28:48] <alex_joni> yup
[17:28:52] <cradek> yeah it's really a SMOP
[17:29:02] <alex_joni> it's a HMOP
[17:29:06] <alex_joni> to fix it right I mean
[17:29:13] <alex_joni> I'm not sure I want to go there :(
[17:29:22] <cradek> this new hard drive squeaks
[17:29:27] <alex_joni> lol
[17:29:38] <alex_joni> I have some high rpm oil
[17:30:03] <cradek> if one of us had a machine like that, jepler or jmk or I would SMOP it pretty quick
[17:30:16] <cradek> maybe someone could get one to fest
[17:33:07] <alex_joni> most of the things involved to fix it properly are not related to the gantry
[17:33:12] <alex_joni> or the gantry is not needed for those
[17:33:41] <cradek> it's true we could simulate it
[17:34:04] <alex_joni> * alex_joni is talking about joints & axes
[17:34:12] <cradek> ok right
[17:34:20] <alex_joni> ini file should have joints
[17:34:30] <alex_joni> one should be able to specify the number of axes and of joints
[17:34:33] <alex_joni> and how they map
[17:34:47] <alex_joni> both explicitely and implicitely (through kins)
[17:36:53] <alex_joni> then the current AXIS_* would be JOINT_*
[17:37:22] <alex_joni> I'm not sure if we could/should model the machine limits in carthesian too
[17:37:43] <alex_joni> or maybe joint would suffice (as it is now)
[19:09:52] <Herriott> Hi all - I recently downloaded the Ubuntu/EMC file and with a little help from the folks on this IRC I was able to get it running. I have put this setup onto a separate hard disk and configured the disk as a secandary master. I am also usin BootMagic because I have a partioned hard disk in the primary master spot. Here is my problem: when the Ubuntu disk is set as the primary master I can boot Linux. I can not however get BootMagic to 'se
[19:12:30] <alex_joni> your message was too long and was cut off at " BootMagic to 'se"
[19:13:04] <alex_joni> Herriott: people in here are linux enthusiasts, but we really know our stuff around CNC & the software (at least I hope that)
[19:13:13] <alex_joni> you can find much better skilled people in #ubuntu
[19:14:26] <Herriott> Ooops! I am not really familiar with IRC as you can tell. When I install the HD with Ubuntu alone in my PC it boots fine. When I install it as a secondary master my BootMagic won't boot it.Any thoughts?
[19:17:49] <Herriott> Thanks - I'll look around
[19:21:37] <cradek> don't use BootMagic, use grub since it knows how to ... boot stuff
[19:21:52] <alex_joni> too late .(
[19:22:08] <alex_joni> I bet an Ubuntu installed to hda won't boot from hdb
[19:22:18] <cradek> not without changing the grub stuff
[19:22:25] <alex_joni> and fstab
[19:22:31] <alex_joni> and probably something else too
[19:22:32] <cradek> maybe fstab if it doesn't use LABEL=
[19:22:47] <alex_joni> didn't see any that use :)
[19:23:34] <alex_joni> hmm.. just had smoke coming out of a 200G hdd :/
[19:23:43] <anonimasu> ouch!"#
[19:43:18] <skunkworks> alex_joni: ?
[19:43:33] <skunkworks> do you want to look at something?
[19:45:49] <alex_joni> skunkworks: sure
[19:46:11] <skunkworks> I found a document on compumotors site - that has some Ziegler-Nichols info on it... And the formula for I and D are quite a bit differnt that what we have.
[19:46:21] <skunkworks> http://www.compumotor.com/whitepages/ServoFundamentals.pdf#search='ZieglerNichols%20method%20servo%20tuning'
[19:46:25] <skunkworks> page 3
[19:47:34] <skunkworks> It makes more sense
[19:49:01] <skunkworks> using the formula that is on the linuxcnc site - I got a I of .006 and D of .0015
[19:49:09] <skunkworks> which seems odd
[19:49:22] <Lerneaen_Hydra> heh, I had EMS come out of a harddisk once when I reversed the power plug accidently. not fun :(
[19:49:48] <alex_joni> skunkworks: try the other way and we'll update the docs
[19:49:53] <Lerneaen_Hydra> (EMS = electromagnetic smoke, the magic smoke that makes electronics work)
[19:51:00] <skunkworks> well - it seems odd though
[19:51:37] <alex_joni> Lerneaen_Hydra: yeah, I need to replace it now.. but I ran out of magic smoke
[19:51:49] <Lerneaen_Hydra> oh. that's not fun
[19:52:05] <Lerneaen_Hydra> squeezing the smoke back in isn't easy
[19:52:33] <skunkworks> I would get P=750 I=125000 and D=1.125 Seem odd?
[19:52:57] <cradek> yes
[19:53:05] <skunkworks> I thought so
[19:53:08] <cradek> I actually think the first numbers are right
[19:53:19] <skunkworks> first number is the same in both equations
[19:53:25] <cradek> the first set
[19:53:35] <skunkworks> ah
[19:53:58] <skunkworks> It works quite well. ( was using them last night)
[19:54:10] <cradek> your oscillation period is small because of no mass
[19:54:16] <skunkworks> right
[19:55:42] <cradek> setting FF1 properly really helped reduce my FE
[19:55:56] <cradek> we have FF2 now too, and I think I needed a little of it
[19:56:52] <skunkworks> what are your pid ff settings (just for refference)
[19:57:50] <cradek> P 80 I 160 D .13 FF1 .025
[19:57:56] <cradek> (on X)
[19:58:17] <cradek> Z has a lower D .1
[19:58:29] <skunkworks> Thanks
[19:58:42] <cradek> I remember the FF1 was very touchy but helpful
[19:59:02] <skunkworks> It will be neat to hook it to something and run thru the formula again
[20:00:02] <cradek> yeah
[20:00:03] <skunkworks> It would be cool also for you to try the Ziegler-Nichols method to see how far away they are from your settings
[20:00:14] <cradek> yes I plan to try that
[20:00:17] <alex_joni> skunkworks: I think you want more P initially to cause it to oscillate some more
[20:00:38] <cradek> wonder if you could put a bicycle wheel on your motor or something similar with some inertia
[20:00:48] <alex_joni> I think the Ziegle-Nichols method is meant to scale
[20:01:07] <cradek> hi chris
[20:01:12] <alex_joni> hi chris
[20:01:20] <skunkworks> hi chris
[20:01:35] <skunkworks> Scale?
[20:01:43] <ChrisSmol> hi all
[20:01:53] <alex_joni> ChrisSmol: you should have said hi chris
[20:02:15] <ChrisSmol> delivery of my micro mill pushed back one day :-( oh well, now it is scheduled to arrive on my birthday.
[20:02:24] <alex_joni> that
[20:02:30] <alex_joni> that's a nice present
[20:02:58] <ChrisSmol> if you never want to be disappointed with a birthday present, buy it yourself
[20:03:16] <cradek> good advice
[20:03:32] <ChrisSmol> now i am having buyers remorse about not getting the mini mill instead.
[20:07:34] <alex_joni> ChrisSmol: never have remorse about what you've done ;)
[20:07:50] <alex_joni> you had your reasons to chose that..
[20:08:06] <skunkworks> I want to get a kilomill
[20:08:10] <skunkworks> and a picomill
[20:08:19] <alex_joni> if it ain't teramill it's ok
[20:08:33] <skunkworks> millimill
[20:09:13] <ChrisSmol> heh
[20:09:23] <cradek> I like millimill
[20:09:39] <skunkworks> 4 bolts and a hub and I can mount it on the z axis of the gantry - so that might be the next experiment
[20:16:36] <skunkworks> couple of more questions - it has be decided that I should set the dead band to 0 during the first step... Now as I increas the p - should I move the axis (command it an inch or something) each time I change P?
[20:17:58] <cradek> you mean to try to get it to oscillate?
[20:19:02] <skunkworks> right - sorry
[20:19:24] <cradek> maybe you could just poke/turn the shaft
[20:21:00] <skunkworks> that is how I was doing it last night :)
[20:21:11] <skunkworks> just would be a little harder when it is mounted
[20:21:30] <skunkworks> Just going to have to experiment.
[20:25:01] <owhite> anybody home?
[20:34:21] <skunkworks> this looks good also http://www.machinedesign.com/ASP/viewSelectedArticle.asp?strArticleId=55300
[20:39:56] <Jymmm> Jymmm is now known as Jymmmmmm
[21:10:20] <alex_joni> http://www.metacafe.com/watch/251088/human_snowball/ lol
[21:15:37] <Jymmmmmm> http://www.heartattackgrill.com/
[21:40:36] <cradek> http://msnbc.msn.com/id/15641470/
[22:00:00] <Lerneaen_Hydra> oh, well well well
[22:00:39] <Lerneaen_Hydra> how often are the senate/congress votes held? once every four years?
[22:03:40] <ChrisSmol> 2
[22:03:50] <Lerneaen_Hydra> oh, that often?
[22:04:10] <ChrisSmol> yes. the entire hosue every two years, one third of the senate every two years
[22:05:38] <Lerneaen_Hydra> oh, ok
[22:19:41] <SWPadnos> jepler or cradek, are you around?
[22:39:34] <Lerneaen_Hydra> 'night people
[23:17:13] <jepler> SWPadnos: I'm stopping by for a moment .. what's up?
[23:17:14] <jepler> answer fast
[23:17:30] <SWPadnos> actually, I emailed you the question
[23:17:39] <SWPadnos> answer at your leisure
[23:17:52] <SWPadnos> (AXIS screenshots / copyright related)
[23:18:16] <A-L-P-H-A> (c) infringements...naughty naughty
[23:18:57] <Jymmmmmm> * Jymmmmmm blames SWPadnos
[23:19:01] <SWPadnos> I suspect that the person who takes the screenshot has copyright on that image, so I don't think it's an issue
[23:19:04] <SWPadnos> nyah nyah
[23:19:13] <jepler> * jepler checks
[23:19:17] <SWPadnos> now back to our regularly scheduled work :)
[23:19:27] <Jymmmmmm> this is saturday
[23:19:37] <Jymmmmmm> for me at least
[23:19:39] <anonimasu> no it's not
[23:19:43] <anonimasu> it's friday! *cry*
[23:20:02] <SWPadnos> it's Thursday here - don't mess with me
[23:20:09] <Jymmmmmm> for me at least
[23:20:57] <Jymmmmmm> I'm just trying to config this linksys WRT54GL router I got
[23:25:22] <Jymmmmmm> Got linux installed on it
[23:33:35] <_tarzan_> does it have some kind memory to install apps?
[23:34:23] <_tarzan_> to act like a pyton, php server
[23:42:09] <A-L-P-H-A> I'm being stupid... I read 'kind memory' as 'kidney'.