#emc-devel | Logs for 2007-03-25

[00:44:58] <jmkasunich> why do we have both http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?UpdatingConfigurationsForDevelopmentVersions and http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?UPDATING
[00:45:28] <jmkasunich> the latter is more-or-less a duplicate of part 2 of the former
[00:45:33] <SWPadnos> one is 2.0->2.1, the other is 2.1-> TRUNK
[00:45:44] <SWPadnos> at least, according to the titles ...
[00:46:04] <jmkasunich> the former is _both_ 2.1->trunk AND 2.0->2.1
[00:46:07] <SWPadnos> ah
[00:46:32] <jmkasunich> this is just one of many places where the wiki is getting very disorganized
[00:46:32] <SWPadnos> right hand, meet left hand
[00:46:51] <SWPadnos> yep. there should be an index and some de-cruftization
[00:47:28] <jmkasunich> some page names really show a lack of forethought... like "UPDATING"
[00:47:31] <jmkasunich> updating from what to what?
[00:48:10] <SWPadnos> heh
[00:48:26] <jmkasunich> there wre three updating pages (at least)
[00:48:43] <SWPadnos> I'm not sure what "administrative tools" are there (without writing them in perl), so changing page names may be easy or hard
[00:49:02] <SWPadnos> since all links would need to be updated. at least I don't think that's automatic
[00:49:07] <jmkasunich> UPDATING (configs, 2.0->2.1), UpdatingTo2.1 (tells how to update the actual software), and UpdatingConfigurationsForDevelopmentVersions
[00:49:53] <SWPadnos> actually, there's a problem with wikis in general for this kind of support
[00:50:15] <SWPadnos> a wiki pretty much has one version of each page available - the "latest"
[00:50:21] <SWPadnos> we need to have older info as well
[00:51:17] <SWPadnos> it's in there, because there is some versioning support in the wiki code, but it's not easy / possible to get older versions (and search won't turn them up either, I think)
[00:52:15] <jepler> some wikis have tools for finding "wanted pages" (pages linked to that don't exist) and "orphan pages" (pages that are never linked to) but I don't think our wiki does
[00:52:39] <SWPadnos> I'm not sure either
[02:22:55] <cradek> hi all
[02:23:04] <jepler> hi chris
[02:25:49] <cradek> I'm supposed to be testing jogwheel today aren't I
[02:26:03] <jepler> yeah -- get to work
[02:26:17] <cradek> isn't it kind of early in the day to start something like that?
[02:26:33] <jepler> I'm waiting for ingrid's guest to leave so I can go to bed ..
[02:26:37] <jepler> so my answer would be "no"
[02:27:54] <cradek> I slept in the nice breeze about 3-6 this afternoon
[02:28:16] <cradek> I wish I had your discipline to go to bed and get up at consistent times
[02:29:36] <jepler> it hasn't really been working well since the time change
[02:29:57] <cradek> you wouldn't think an hour would make so much difference, but it sure messes with us
[02:30:17] <jmkasunich> it didn't bother me
[02:30:31] <jmkasunich> of course, thats because I never go to bed at the same time two days in a row
[02:30:46] <cradek> jmkasunich: did you see swp's analysis of your jogwheel code? I think he's right
[02:30:58] <jmkasunich> have you tried it?
[02:31:03] <cradek> no, building (slowly) now
[02:32:00] <jmkasunich> maybe he is... if so, changing "stop_dist=max_vel^2 /( 2*maxaccel)" to "stop_dist = max_vel^2/maxaccel" would probably fix it
[02:32:41] <jmkasunich> I bet it works ok as it is though
[02:32:43] <cradek> yes but that's going to be more than you need if you're already moving
[02:32:58] <cradek> I bet the best answer would take into account current velocity
[02:33:35] <jmkasunich> remember - this thing is only supposed to kick in if the wheel is getting ahead of the machine
[02:33:51] <jmkasunich> that should only happen if the machine is at max vel already, and the wheel is going faster
[02:34:39] <jmkasunich> although I guess it could happen if the wheel accels a lot faster than the machine can...
[02:35:08] <jmkasunich> it can't be entirely based on current vel
[02:35:22] <cradek> well if your wheel is set to 1" per count, one count looks like a big accel
[02:35:24] <jmkasunich> if current vel = 0, stop_dist = zero, and you can never command a move
[02:36:27] <SWPadnos> I think you need (current vel -> max )+ (max -> zero) distances (or something like that)
[02:37:01] <SWPadnos> but I'm not sure that part of the code knows the current velocity (I didn't notice any references to it in the diff)
[02:38:58] <jmkasunich> I don't see why you need current->max distance
[02:39:17] <SWPadnos> consider one tick when the jog increment is set to 1"
[02:39:51] <SWPadnos> depending on accel, the actual distance will be clipped to some small value
[02:39:53] <jmkasunich> the idea behind that code is if the wheel stops turning on the very next sample (and never turns again), the machine should start decelling on the very next sample
[02:40:13] <SWPadnos> I suppose so, so this would effectively limit the maximum jog increment
[02:40:34] <jmkasunich> yeah
[02:40:39] <SWPadnos> the trouble is that a higher performance machine will have a lower max jog distance
[02:40:54] <SWPadnos> and it'll be difficult to get to max machine speed
[02:40:59] <jmkasunich> after all, if you want the machine to stop when you stop turning the wheel, a 1" increment that requires a second or more of motion after the click isn't good
[02:41:05] <SWPadnos> since you need half the distance to accel then the other half to decel
[02:41:29] <cradek> it's almost as if the problem isn't well defined :-/
[02:41:39] <SWPadnos> maybe just 2x the value you have in the code now
[02:41:52] <jmkasunich> thats what I said a few lines ago ;-)
[02:42:11] <SWPadnos> heh - so it is :)
[02:43:07] <jmkasunich> its almost enough to make me clear a spot on my desk and get out my stepper test assembly with joghweel
[02:43:15] <SWPadnos> heh
[02:43:19] <jmkasunich> (almost)
[02:43:34] <SWPadnos> I'd stop at step 1: clear a spot on my desk
[02:43:39] <SWPadnos> that's too daunting a task
[02:44:05] <jmkasunich> that would mean moving the nema34 motor that is clamped to the bench... and the gecko..... and the 5i20 breakout board.... and the gecko power supply.....
[02:45:00] <SWPadnos> right. and the last year's worth of receipts, plus some junk mail, plus some useful things
[02:45:05] <cradek> hmm, I'm losing position, wonder if it's a bug or I'm overrunning the parport
[02:45:11] <SWPadnos> but maybe I'd find my soldering tweezers
[02:45:38] <cradek> bug
[02:45:47] <SWPadnos> bummer
[02:45:57] <jmkasunich> losing position how?
[02:46:15] <jmkasunich> you mean display not matching machine? or losing jogwheel counts?
[02:46:20] <cradek> jogscale is .01, I turn a full turn and it moves less than an inch
[02:46:27] <jmkasunich> in velocity mode?
[02:46:33] <cradek> no, I didn't set that
[02:46:39] <jmkasunich> ouch
[02:46:52] <SWPadnos> but MDI G1X1 goes 1 inch?
[02:46:57] <jmkasunich> did it woek before?
[02:47:16] <cradek> SWPadnos: it's wrong on the screen
[02:47:16] <jmkasunich> (because with vel-mode = 0, the new code does not run!
[02:47:22] <SWPadnos> oh
[02:47:50] <cradek> wait, maybe I'm crazy
[02:47:57] <SWPadnos> jmkasunich, I think the current->max+max->0 is better than 2x max->0, but possibly not enough better to warrant doing it that way
[02:47:59] <jmkasunich> could be
[02:48:16] <jmkasunich> (could be cradek is crazy)
[02:48:26] <SWPadnos> that's what I figured ;)
[02:49:00] <cradek> no, I'm not, it's totally wrong
[02:49:08] <jmkasunich> fsck
[02:49:21] <SWPadnos> 10% or some multiple of 25.4? :)
[02:49:24] <cradek> when axis.0.jog-counts increases by 1, with axis.0.jog-scale = .01, the position increases about .008
[02:49:30] <SWPadnos> urk
[02:49:34] <jmkasunich> max?
[02:49:45] <cradek> yes
[02:49:55] <SWPadnos> what about scale=1.0?
[02:50:11] <SWPadnos> is it 0.8 or some more precisely wrong number? :)
[02:50:20] <cradek> SWPadnos: still moves about .008
[02:50:28] <cradek> invalid command name "-1211673700callit"
[02:50:35] <SWPadnos> big oopsie
[02:50:36] <cradek> and there's still a rare bug in AXIS
[02:50:36] <jmkasunich> you running head?
[02:50:43] <cradek> jmkasunich: yes
[02:51:05] <jmkasunich> cause this sounds like the wheel/kbd/home interaction thing again
[02:51:09] <cradek> I agree
[02:51:27] <cradek> I think I had not tested the rewrite until know
[02:51:30] <cradek> now
[02:51:47] <jmkasunich> there are hal pins for "wheel-jog-active" and "kb-jog-active", perhaps scoping them will be usefull
[02:52:01] <jmkasunich> * jmkasunich starts to make a clean spot on the bench
[02:52:07] <cradek> ok I'll get that going
[02:52:10] <jmkasunich> this has GOT to be right for 2.1.4
[02:52:15] <cradek> yes
[02:54:59] <cradek> wheel-jog-active goes high for about 50ms
[02:58:03] <jmkasunich>
[02:58:05] <jmkasunich> oops
[02:58:14] <jmkasunich> from a single tick of the wheel?
[02:58:22] <cradek> yes
[02:58:34] <cradek> count increases by 1
[02:58:59] <cradek> I reduced the accel, and now it moves about .0002
[02:59:25] <jmkasunich> and the active pins is high for a shorter time?
[02:59:37] <cradek> oh I lied
[02:59:41] <cradek> gah sorry about the bad reporting
[03:00:05] <cradek> it moves *farther* now - about .013
[03:01:15] <cradek> it's not a fixed distance, because a jog 10 counts out and back ends in a different place
[03:02:44] <jmkasunich> * jmkasunich tried to get parport to read the jogwheel
[03:03:43] <cradek> no luck?
[03:04:03] <jmkasunich> I don't remember which pins its wired to
[03:04:16] <jmkasunich> so far, halmeter says "none of them"
[03:04:18] <cradek> oh you've got that little box don't you
[03:04:23] <jmkasunich> yes
[03:04:25] <cradek> got power?
[03:04:44] <jmkasunich> yeah, meter says the encoder is powered and at least one of its outputs toggles
[03:04:49] <jmkasunich> (real meter)
[03:09:31] <jmkasunich> ok, that works now...
[03:19:55] <cradek> jmkasunich: thanks for those 18G disks last year - they're running two machines now
[03:20:02] <jmkasunich> free-pos-cmd is moving by exactly 0.008 per count....
[03:20:07] <jmkasunich> cool
[03:22:06] <SWPadnos> is there a * missing in the check for axis->jog_vel_mode ?
[03:22:12] <SWPadnos> it's a pin, isn't it?
[03:22:18] <jmkasunich> oops
[03:22:44] <jmkasunich> * jmkasunich is a moron
[03:22:49] <SWPadnos> heh
[03:22:55] <SWPadnos> you should rewrite motion in comp ;)
[03:23:03] <jmkasunich> that means vel mode is always active
[03:23:05] <cradek> woo
[03:23:25] <cradek> good eye, that kind of thing is a nightmare to spot
[03:23:35] <SWPadnos> well, now we know how far you can jog something in vel mode ;)
[03:23:38] <jmkasunich> I was starting to get suspicious though
[03:23:45] <jmkasunich> cause it was acting like it was active
[03:23:59] <jmkasunich> I had already tried setting the bit, guessing that maybe I had the if backwards
[03:24:11] <jmkasunich> and it made no difference
[03:24:56] <jmkasunich> "this change is safe" I sez....
[03:25:16] <jmkasunich> "the code is entirely contained in an if and won't run if you don't enable it" I sez
[03:25:19] <SWPadnos> heh
[03:25:22] <cradek> hahaha
[03:25:57] <SWPadnos> well, at least Stuart was having other troubles today ...
[03:27:04] <jmkasunich> I think I found an axis bug
[03:27:28] <jmkasunich> the hal pins coming out of axis, that tell HAL what axis is selected for jogging...
[03:27:44] <cradek> that's much better!
[03:27:52] <jmkasunich> start EMC, come out of estop, machine on, and none of those pins are true
[03:28:02] <jmkasunich> even though X is selected
[03:28:07] <cradek> I've noticed that too, I wonder if it's a feature
[03:28:17] <jmkasunich> I don't think so
[03:28:37] <jmkasunich> if you can jog X by clicking on the + and - buttons, then you should be able to jog it by the wheel
[03:29:03] <cradek> yeah I wasn't entirely serious
[03:29:06] <SWPadnos> not necessarily
[03:29:27] <jmkasunich> SWPadnos: I mean "if you have wired the HAL that way...."
[03:29:33] <cradek> ok now that sillymode is turned off, the jogwheel works again
[03:29:38] <SWPadnos> right - I was just getting to that realization
[03:29:52] <SWPadnos> what's the accel in that config?
[03:30:18] <cradek> emc/task/taskintf.cc 598: Error on axis 0, command number 111
[03:30:18] <cradek> emc/task/taskintf.cc 598: Error on axis 0, command number 129
[03:30:28] <cradek> I get these errors when I try to keyboard jog while turning the wheel
[03:30:59] <jmkasunich> remember the other night when I was wondering what "SET_AXIS_ERROR_FLAG" actually does?
[03:31:04] <jmkasunich> now we know
[03:31:19] <cradek> it causes spewage on stdout?
[03:31:30] <jmkasunich> it reports an error to the user space code
[03:31:41] <jmkasunich> I guess the user space code spews
[03:31:43] <cradek> but not the kind that gets printed to the gui
[03:31:47] <cradek> sent
[03:32:07] <jmkasunich> if it did "report_error(foo)", then foo would go to the gui
[03:32:22] <jmkasunich> remember that I actually had messages, and we decided they were stupid?
[03:32:28] <cradek> yes
[03:32:37] <jmkasunich> I took out the "report_error"
[03:32:48] <jmkasunich> but not the "SET_AXIS_ERROR_FLAG()"
[03:35:17] <jmkasunich> in regular mode, the vel display in axis tops out at 33ish
[03:35:57] <cradek> jog diagonally and it'll go higher
[03:36:17] <jmkasunich> in vel mode it also tops out at 33ish
[03:36:32] <cradek> oh jogwheel, duh
[03:37:09] <jmkasunich> what are the units of vel anyway?
[03:37:24] <jmkasunich> jog speed is set to 24.7 ipm, but keyboard jogs also go to 33ish
[03:37:39] <cradek> ipm
[03:37:53] <cradek> ouch, that's another bug then
[03:37:53] <jmkasunich> so splain to me how 24.7 = 33ish
[03:38:18] <cradek> Issuing EMC_AXIS_JOG -- (+124,+24, +69, +0,14.000000,)
[03:38:37] <cradek> machine/set debug level, turn on Task Issue
[03:38:45] <cradek> you can see that AXIS is sending the right thing
[03:39:08] <jmkasunich> might be the vel display
[03:39:11] <jmkasunich> how is that computed?
[03:39:20] <cradek> it's not, I can hear it
[03:39:31] <cradek> motion is busted
[03:39:41] <cradek> (it's computed by watching the actual position change)
[03:39:44] <jmkasunich> keyboard jogs are busted?
[03:40:13] <cradek> yes but how can that be??
[03:40:37] <jmkasunich> dunno
[03:40:48] <jmkasunich> got to get my motors running too I guess
[03:41:12] <cradek> wait maybe it's a *60 problem
[03:41:13] <cradek> * cradek grumbles
[03:41:18] <cradek> I think jepler touched this recently
[03:42:06] <jmkasunich> dang - xylotex pinouts
[03:44:12] <jmkasunich> by ear, keyboard and wheel jogs top out at the same speed
[03:44:33] <cradek> yeah, axis bug, sorry
[03:44:45] <jmkasunich> in the vel display?
[03:45:33] <cradek> no, keyboard jog
[03:45:51] <jmkasunich> ah, the slider is being interpreted as ips
[03:46:05] <jmkasunich> so anything over 0.5ish is limited by motion, instead of the slider
[03:46:15] <cradek> yes
[03:46:20] <jmkasunich> damn machinists
[03:46:38] <jmkasunich> everybody else in the civilized world uses seconds as a unit of time
[03:46:54] <jmkasunich> except the damn machinists
[03:47:29] <cradek> inch/sec makes the numbers too small for most machining
[03:47:37] <cradek> I bet mm/sec would be fine
[03:51:32] <jmkasunich> it looks like vel mode wheel jogs don't quite reach the same top speed as pos mode ones
[03:51:35] <jmkasunich> but the difference is smapp
[03:51:38] <jmkasunich> small
[03:51:58] <jmkasunich> "saturated" pos mode jogs do 0.566 ips
[03:52:16] <jmkasunich> saturated pos mode jogs do 0.547 ips
[03:52:49] <cradek> but they don't maintain position at any speed - isn't that contrary to the goal/pseudospec?
[03:52:58] <jmkasunich> yeah they do
[03:53:19] <cradek> I'm sure mine didn't - did you change it?
[03:53:19] <jmkasunich> it may be sensitive to jog-scale
[03:53:24] <cradek> yes it is
[03:53:38] <jmkasunich> I set my jog-scale to 0.00625, because that gives one rev of the motor per one rev of the wheel
[03:53:38] <cradek> set it to .1 for instance
[03:53:51] <jmkasunich> and it tracks nicely
[03:54:08] <cradek> I suppose it depends on jog-scale, accel, etc interacting
[03:54:12] <jmkasunich> oh, I was using 0.000625
[03:55:05] <jmkasunich> I set the scale to 10x bigger,and if I turn the wheel very slowly, it maintains position
[03:55:12] <jmkasunich> but if I speed up, it starts slipping
[03:55:29] <cradek> before the motors hit maxvel?
[03:55:48] <jmkasunich> the bad thing about the distance based approach is that _anything_ that makes it fall behind by more than stop_dist results in slip
[03:56:36] <jmkasunich> maxvel = 0.566, maxaccel = 20
[03:56:54] <jmkasunich> stop_dist = 0.008
[03:57:04] <jmkasunich> don't take much to fall behind by 0.008
[03:57:16] <cradek> so any jog increment over .008 is automatically busted?
[03:57:18] <jmkasunich> if scale is more than 0.008, its guaranteed
[03:57:20] <jmkasunich> yes
[03:57:25] <jmkasunich> suckage
[03:57:31] <cradek> yeah, that bites
[03:57:47] <jmkasunich> it behaves the way I bet they want it to behave
[03:58:00] <jmkasunich> "instantly" responds to the wheel
[03:58:16] <SWPadnos> hmmm
[03:58:21] <jmkasunich> remember, the guy who wants this has a wheel with no "clicks" and no markings
[03:58:29] <cradek> right
[03:58:35] <SWPadnos> two possibilities: (already thought of, I think)
[03:58:44] <jmkasunich> so he probably doesn't give a fart if it slips
[03:58:50] <cradek> but he also said earlier that on a wheel with marks, if the axis doesn't hit maxvel, it tracks
[03:59:05] <jmkasunich> well, this comes back to setting the scale right
[03:59:06] <SWPadnos> 1) change vel-mode to a stop distance. 2) change vel-mode to a stop time
[03:59:16] <SWPadnos> rather than a bit
[03:59:51] <jmkasunich> SWPadnos: any distance other than v^2/2a is probably less than ideal
[03:59:58] <jmkasunich> if its lower than that, it limits top speed
[04:00:08] <SWPadnos> depends on the definition of ideal
[04:00:17] <jmkasunich> if higher than that, it won't respond instantly to changes in wheel speed/direction
[04:00:40] <jmkasunich> I think the real answer is "don't set the scale so high"
[04:00:45] <cradek> ideal = we quit getting bug reports saying it doesn't "feel" right
[04:01:11] <SWPadnos> but when "so high" is 0.008 on a not-exceedingly-fast config, I'm not sure it's the best answer
[04:01:29] <jmkasunich> when I set scale to 0.0065, that means the motor turns 10 times as fast as the jogwheel
[04:01:40] <cradek> an inch per turn of my wheel sure might be a setting I would want to use
[04:01:44] <cradek> (.01)
[04:02:27] <jmkasunich> since the motor tops out at less than one rev per second, if you config for motor = 10x wheel, then the wheel will slip at 0.1 rev per second
[04:03:14] <jmkasunich> the xylotex is 1600 steps/rev IIRC
[04:03:26] <SWPadnos> I guess that as long as the max vel can be hit (or very very close to it) when "spinning" the wheel, it'it does what he wants
[04:03:32] <jmkasunich> right
[04:03:40] <jmkasunich> and that means a much smaller jog scale
[04:04:04] <SWPadnos> hmm
[04:04:20] <jmkasunich> if you hit max-vel at 0.1 revs/second of the wheel, and you are capable of spinning it 4 times per second, you are throwing away most of your dynamic range
[04:05:27] <SWPadnos> ok - I think it doesn't work "right" (for some value of right)
[04:05:52] <SWPadnos> if you move the wheel one count, the machine should move one jog increment
[04:06:28] <SWPadnos> if you've configured it for 20 second accel and 1" moves, then you have a problem
[04:06:28] <jmkasunich> one single isolated count, and stop afterwards?
[04:06:43] <SWPadnos> right, like I move the wheel one click, then pause, then do it again
[04:06:53] <SWPadnos> I should get 1, 2, 3x ... the jog increment
[04:06:58] <jmkasunich> I think stuart would disagree
[04:07:12] <jmkasunich> he wants it to stop when he stops turning
[04:07:15] <SWPadnos> I suspect he doesn't run into the pathologically slow accel issue
[04:07:24] <cradek> I agree with SWPadnos
[04:07:27] <jmkasunich> he doesn't care if it moves one increment or not
[04:07:38] <cradek> and I decline to guess what Stuart would want
[04:07:44] <jmkasunich> and I really can't imagine him setting the increment that large
[04:07:57] <SWPadnos> he (or someone) said that the wheel should track until you spin it too fast. moving one click isn't really "spinning it too fast"
[04:08:18] <SWPadnos> but a 1" jog would be limited to some few thou
[04:08:21] <cradek> he said it should track unless the axis hits maxvel.
[04:08:23] <jmkasunich> we should ask him
[04:08:51] <jmkasunich> his requested behavior is fundamentally incompatible with 1" increments
[04:09:02] <SWPadnos> you guys are using MAX for testing?
[04:09:17] <cradek> I am, but I turned down the accel somewhat
[04:09:18] <jmkasunich> because by definition, a 1" increment is going to keep moving for a long time after the wheel stops
[04:09:28] <SWPadnos> unless you have a fast machine
[04:09:29] <cradek> that's true.
[04:09:31] <jmkasunich> and that is what he complained about from the very beginning
[04:09:45] <SWPadnos> but a fast machine with high accel will be limited to an even lower jog increment
[04:09:47] <cradek> well he complained about the windup - I'm not sure that's the same
[04:10:32] <SWPadnos> ok - 1200 looks like fairly quick accel to me - is it?
[04:10:58] <SWPadnos> hmmm. maybe not - it should be in the realm of a BP with reasonable servos
[04:11:00] <jmkasunich> he wrote (in the very first message): "I believe it would be far better if the control would truncate the command and stop the machine as soon as the handwheel is stopped."
[04:11:03] <cradek> 1200ips2 is 3G
[04:11:20] <jmkasunich> SWPadnos: where are you getting 1200 from?
[04:11:23] <SWPadnos> MAX
[04:11:28] <cradek> uh no
[04:11:31] <jmkasunich> max has 20 as max accel
[04:11:32] <SWPadnos> oh - that's TRAJ - nevermind
[04:11:34] <cradek> that's for degrees maybe
[04:11:51] <SWPadnos> MAX_VELOCITY = 50
[04:11:52] <SWPadnos> DEFAULT_ACCELERATION = 1200
[04:11:54] <SWPadnos> MAX_ACCELERATION = 1200
[04:11:55] <SWPadnos> from TRAJ
[04:11:59] <cradek> yeah degrees
[04:12:02] <jmkasunich> if its traj, its crap
[04:12:21] <SWPadnos> right - I hadn't noticed the lower axis limits
[04:12:22] <jmkasunich> that needs to deal with two completely incompatible units systems
[04:13:24] <SWPadnos> ok - so 20 IPS^2 is quite reasonable, and actually low for "pro" equipment
[04:13:33] <jmkasunich> right
[04:13:52] <SWPadnos> which means the max jog increment on a HSM will be in nanometers
[04:14:15] <jmkasunich> hmm... the mazak has the same 20 in/sec^2 accel
[04:14:31] <jmkasunich> but its max vel is 5 ips, not 0.5 ;-)
[04:14:39] <SWPadnos> heh
[04:14:44] <jmkasunich> so its stop_dist is larger, not smaller
[04:14:50] <jmkasunich> 100 times larger actually
[04:15:06] <SWPadnos> true - it's being scaled by v^2/2A
[04:15:09] <jmkasunich> v^2 / 2a means V wins
[04:16:39] <jmkasunich> the reason I used "stop_dist" is because he said "stop when the wheel stops"
[04:17:02] <jmkasunich> a low speed machine with high accel can stop very fast
[04:17:09] <jmkasunich> so that is the most demanding case
[04:17:11] <SWPadnos> ok - so it may be perfectly reasonable to do the 2x mod - to account for accel and decel. it'll be very little extra time if the axis is at max vel
[04:17:16] <SWPadnos> right
[04:17:39] <cradek> it's possible he said conflicting things, so that we keep quoting his different messages is not very helpful
[04:17:40] <SWPadnos> but it allows the axis to *get* to max vel in the first click
[04:17:44] <SWPadnos> heh
[04:18:31] <jmkasunich> ? an axis can't get to max vel in the first click unless its zero-to-max accel time is 0.001 seconds
[04:22:06] <SWPadnos> when you move the wheel, the axis starts at 0, accels to some vel determined by the jog scale, then decels to 0
[04:22:24] <jmkasunich> you mean when you move it a single click?
[04:22:29] <SWPadnos> determined by jog scale in this mode, due to the stop_dist limit
[04:22:31] <SWPadnos> yes
[04:22:43] <jmkasunich> in either mode...
[04:22:56] <jmkasunich> it accels to whatever speed is needed to travel that distance
[04:23:01] <SWPadnos> sure - but the vel will be 1/2 max with this stop_distance
[04:23:12] <jmkasunich> nope
[04:23:21] <SWPadnos> since it needs to accel first
[04:23:36] <SWPadnos> unless you've already changed it to v^2/a
[04:23:56] <jmkasunich> I can spin the wheel and see the machine moving at about 99% of vmax
[04:24:11] <jmkasunich> the speed it reaches in a single click move isn't relevant
[04:24:15] <SWPadnos> sure, you'll asymptotically approach max
[04:24:49] <SWPadnos> if you move the wheel at exactly the right speed to create 100% velocity motion, you'll be well below 100% I think
[04:25:05] <SWPadnos> spinning very quickly will get you nearer to max
[04:26:44] <jmkasunich> actually, a single click move tops out a 0.707 * maxV
[04:27:01] <SWPadnos> ok, so the factor is ssqrt(2) :)
[04:29:04] <jmkasunich> I haven't tried with strange accel values yet (either very low or very high)
[04:29:24] <jmkasunich> with the default values, stop_dist is 0.008"
[04:29:37] <SWPadnos> or 0.8" for the Mazak ;)
[04:29:51] <jmkasunich> right - and either of those values is too high for a good wheel
[04:30:06] <cradek> .001 or .002 seems pretty natural for my machine
[04:30:21] <cradek> at .001 I can get to maxvel if I try really hard
[04:30:30] <jmkasunich> are you using x1 or x4 counting?
[04:30:56] <jmkasunich> I'm using x4, but I should probably change that, because 1 click of the wheel = four counts, and that just makes things strange
[04:30:57] <cradek> x1 so one count per click of the wheel
[04:32:02] <jmkasunich> at 0.002, can you get ahead of the machine easily?
[04:32:24] <cradek> yes
[04:32:43] <cradek> if I spin it, I can (barely) get ahead at .001
[04:33:41] <jmkasunich> so at 0.001 there is almost no difference between the modes
[04:33:50] <jmkasunich> (difference only appears if you spin it fast)
[04:34:45] <cradek> yes
[04:35:15] <jmkasunich> if you set the scale to 0.008, its much easier to get ahead
[04:35:27] <jmkasunich> and if you are careless, you can get far ahead
[04:36:08] <jmkasunich> if you set it to 0.08, you better be carefull how you handle that wheel
[04:36:20] <jmkasunich> or you might send the machine a long way by accident
[04:36:59] <cradek> here's an interesting twist: say I send the machine a long way with the wheel. can I hit escape on the keyboard to stop it?
[04:37:07] <jmkasunich> no
[04:37:12] <jmkasunich> well, I dunno
[04:37:16] <jmkasunich> try it ;-)
[04:37:18] <cradek> because it's blocked out?
[04:37:30] <jmkasunich> not really
[04:37:42] <jmkasunich> because as coded, axis_abort only aborts kb jogs
[04:37:49] <jmkasunich> lemme check the code before I insert foot in mouth
[04:38:10] <cradek> escape has always aborted homing - I hope you didn't change that accidentally
[04:38:34] <jmkasunich> what does escape send to motion?
[04:38:59] <cradek> I'm going to start trying it instead of talking out my ass
[04:39:13] <jmkasunich> I can tell you that esc doesn't abort a wheel jog
[04:39:54] <jmkasunich> but both ABORT and AXIS_ABORT will stop a wheel jog (unless I'm misreading the code)
[04:40:00] <jmkasunich> so esc must not be sending those commands
[04:40:09] <cradek> yes I think it does...?
[04:40:39] <cradek> TASK_ABORT
[04:41:00] <cradek> which I think aborts all the axes
[04:41:23] <jmkasunich> I was wrong
[04:41:29] <jmkasunich> esc _does_ abort a wheel jog
[04:41:36] <cradek> ok I think that's good
[04:41:53] <jmkasunich> as long as you are in the axis window, not the irc window, when you hit esc ;-)
[04:42:01] <cradek> haha
[04:43:04] <jmkasunich> I agree that esc should stop things
[04:43:38] <jmkasunich> hmm, thats bogus
[04:43:46] <jmkasunich> a kb jog stops a wheel jog
[04:44:17] <jmkasunich> probalby that damned AXIS_ERROR_FLAG thing
[04:44:40] <cradek> yeah probably
[04:45:50] <jmkasunich> I think if you try a kb jog during a wheel jog it should just be silently discarded...
[04:46:01] <jmkasunich> do you agree? if so, I'll remove that error flag thing
[04:47:19] <jmkasunich> hmm, the current code considers an attempt to jog onto limits as an error too
[04:47:54] <jmkasunich> "error" handling just plain sucks
[04:48:28] <jmkasunich> the coder has a choice:
[04:48:33] <jmkasunich> 1) discard command silently
[04:48:38] <jmkasunich> 2) print a message
[04:48:48] <jmkasunich> 3) set the error flag
[04:48:55] <jmkasunich> 4) print a message AND set the error flag
[04:49:03] <cradek> yes I agree with your initial statement
[04:49:05] <jmkasunich> how is anybody supposed to know what is the right thing to do
[04:49:14] <cradek> same for a jog that would exceed limits
[04:49:34] <jmkasunich> I think if you try a kb jog during a wheel jog it should just be silently discarded...
[04:49:38] <jmkasunich> that statement?
[04:49:40] <cradek> yes
[04:49:55] <jmkasunich> what about jog during homing?
[04:50:29] <cradek> I believe that would be a gui bug, so it should give an error
[04:50:45] <cradek> well no, it's not a gui bug is it
[04:50:52] <jmkasunich> no
[04:50:57] <cradek> gui doesn't know homing is still happening
[04:51:06] <cradek> guess I don't know the answer to that one
[04:51:11] <jmkasunich> currently there are the following tests:
[04:51:25] <jmkasunich> not in free mode (prints message)
[04:51:34] <jmkasunich> axis not enabled (prints message)
[04:51:47] <jmkasunich> homing or wheel jog (sets flag)
[04:52:00] <jmkasunich> jog farther onto limit (sets flag)
[04:52:25] <jmkasunich> oh, and "joint number is valid" (ignored completely)
[04:53:56] <jmkasunich> ok, new tests
[04:54:13] <jmkasunich> not in free mode or not enabled, same as before (print message and set flag)
[04:54:22] <jmkasunich> homing - print message and set flag
[04:54:33] <jmkasunich> wheel jog in progress - ignore silently
[04:54:40] <jmkasunich> farther onto limit - ignore silently
[04:54:49] <jmkasunich> invalid joint number - ignore silently
[04:54:59] <jmkasunich> (that last one should probably be an error)
[04:56:06] <jmkasunich> building now, I bet that will allow a wheel jog to continue when you press an arrow key
[04:56:14] <jmkasunich> but I also bet it will stop when you release the arrow key
[04:56:21] <jmkasunich> and that is non-trivial to fix
[04:56:28] <cradek> yeah
[04:56:43] <cradek> I don't think that's too big a deal
[04:56:44] <jmkasunich> because releasing an arrow key doesn't send "stop kbd jog", it sends "abort axis"
[04:56:52] <jmkasunich> which IMO is just plain wrong
[04:57:42] <jmkasunich> well, if we don't want hitting an arrow to abort a wheel jog, then we also don't want releasing it to abort the wheel jog
[04:57:54] <jmkasunich> otherwise, whats the point?
[04:58:55] <jmkasunich> oh, that axis hal pin thing (initial condition)...
[04:59:39] <jmkasunich> the pin is initially false, but you don't have to (re)select the axis to make it true, a keyboard jog will do it
[05:00:18] <jmkasunich> yep, as expected - hitting the arrow doesn't abort the wheel, but releasing it does
[05:00:50] <jmkasunich> I really should have gotten this contraption out and hooked it up while I was doing this code
[05:03:34] <jmkasunich> yuck - I bet this means that hitting (and releasing) an arrow will abort a home too
[05:06:11] <jmkasunich> * jmkasunich talks to himself
[05:06:24] <cradek> nah, I'm listening
[05:08:02] <cradek> part of me thinks if you don't want to interrupt something it's doing, you should keep your paws off the keyboard
[05:08:33] <cradek> so while these interactions aren't ideal, I'm having a hard time caring enough to bother fixing them, especially since nobody has noticed/complained in many years
[05:09:54] <SWPadnos> how many years has jogwheel support been there for a keyboard jog to interrupt?
[05:10:06] <cradek> homing
[05:10:10] <SWPadnos> oh, that too ;)
[05:10:11] <cradek> (forever)
[05:10:13] <jmkasunich> SWPadnos: we're now talking about kbd jog and homing interactions
[05:10:25] <SWPadnos> ok - I'll go back to near-sleep then :)
[05:10:34] <SWPadnos> oh wait - I never exited from near-sleep
[05:11:01] <jmkasunich> I do think that if releasing the key is gonna abort the home or wheel jog, then pressing it should generate the error and set the error flag
[05:11:12] <jmkasunich> might as well abort when they hit the key, not later
[05:11:23] <jmkasunich> and might as well explain what happened
[05:12:12] <SWPadnos> is it not possible for the keybaord jog code to check HOMING before sending the abort (or is it not that simple)?
[05:12:36] <jmkasunich> the sending code is in user space, and has no clue what is happening in the real world
[05:12:57] <SWPadnos> hmmm. is that not in emcstatus?
[05:13:13] <jmkasunich> yeah, but you're still talking about race conditions
[05:13:45] <jmkasunich> the last thing you want to do is fail to send an abort if there is a real keyboard jog going on - that leads to runaway axes
[05:13:50] <SWPadnos> sure, but the race is to hit a home key and then release a jog key so quickly that status hasn't been updated yet
[05:14:20] <SWPadnos> if homing is finished and status isn't updated yet, that's not a problem
[05:14:21] <cradek> like jmk said days ago, a new message for stop-the-continuous-jog is probably all that's needed
[05:14:31] <SWPadnos> yeah - that would be a better plan
[05:14:43] <jmkasunich> the proper solution (if we're gonna bother to do anything) is to have the arrow release send "JOG_END" instead of "AXIS_ABORT"
[05:14:49] <jmkasunich> and then let the RT code do the right thing
[05:15:01] <jmkasunich> what he said
[05:15:21] <cradek> that's a somewhat bigger pain to change though.
[05:15:24] <jmkasunich> right
[05:15:28] <SWPadnos> on that note, I think I'll send myself an IRC_END message now. night guys
[05:15:34] <cradek> g'night
[05:15:34] <jmkasunich> goodnight
[05:16:03] <jmkasunich> my plan for now is to have "jog during homing" send an error message and set the error flag
[05:16:17] <jmkasunich> jog during wheeling - dunno
[05:16:30] <jmkasunich> I think I will make it do the same
[05:17:21] <jmkasunich> if someday we add the JOG_END message, then we can get rid of the error messages, because pressing _and_ releasing the jog button during homing or wheeling would be completely ignored (the proper behavior)
[05:24:31] <cradek> I agree if it's going to abort homing, it should probably give an error
[05:24:44] <jmkasunich> and a message?
[05:25:06] <cradek> well in general I don't see any point to the errors that the user doesn't see
[05:25:12] <jmkasunich> ok
[05:25:55] <jmkasunich> someday (not tonight) we need to figure out what the hell JOINT_ERROR_FLAG actually does
[05:28:33] <jmkasunich> this was easy: if (emcmotStatus->homing_active) {
[05:28:33] <jmkasunich> reportError("Can't jog aby axis while homing.");
[05:28:53] <jmkasunich> this one, I dunno if there should be a message or not:
[05:28:54] <jmkasunich> if (joint->wheel_jog_active) {
[05:28:53] <jmkasunich> /* can't do two things at once */
[05:29:10] <cradek> typo in your message
[05:29:18] <jmkasunich> the ideal result would be the kb jog is ignored
[05:29:27] <jmkasunich> thank you
[05:29:47] <jmkasunich> the actual result is that the wheel jog is aborted (and the kb jog doesn't happen either)
[05:30:47] <jmkasunich> I have no clue what message, if any should be printed for that case
[05:31:00] <jmkasunich> maybe none
[05:31:09] <cradek> probably none
[05:31:37] <jmkasunich> simultaneous jogs on wheel and kb are unlikely, and any reasonable person would understand that they're gonna interact _somehow_
[05:31:38] <cradek> later, I guess we'll add that new message, and it'll be possible to fix it right
[05:31:43] <jmkasunich> agreed
[05:31:44] <cradek> yes
[05:31:56] <cradek> the old behavior was to run away, the new behavior is to stop
[05:32:00] <cradek> that's an improvement
[05:32:03] <jmkasunich> heh, yeah
[05:33:11] <jmkasunich> if a GUI is in incremental jog mode, it doesn't send AXIS_ABORT when you release the key does it?
[05:33:28] <cradek> no I think that would be bogus behavior
[05:33:37] <cradek> you'd interrupt the jogs sometimes
[05:33:53] <jmkasunich> so when handling an JOG_INCR command, I can completely ignore the jog, not even bother setting the error flag
[05:34:09] <jmkasunich> that is the long term desired behavior
[05:34:31] <jmkasunich> its only JOG_CONT that is followed by the AXIS_ABORT messages and messes things up
[05:34:44] <jmkasunich> hell, I shouldn't set the error flag for any of them
[05:34:46] <cradek> oh if the wheel is going, ignore JOG_INCR? yes
[05:35:13] <jmkasunich> actually for any kb jog, if the wheel is going, just ignore it
[05:35:23] <cradek> don't backport unnecessary error flag changes if you don't understand the big picture
[05:35:43] <jmkasunich> well, the tests themselves are new
[05:35:53] <cradek> ok
[05:37:16] <jmkasunich> ok, for all three jog commands - if homing, print message and set flag, if wheeling, ignore completely
[05:37:34] <jmkasunich> all the other tests are completely unchanged
[05:38:04] <jmkasunich> later, we just need to add JOG_END, we won't have to touch this code at all
[05:38:09] <cradek> I'll test after the backport too :-)
[05:38:22] <jmkasunich> good
[05:38:32] <cradek> darn, never heard back from ray about mini
[05:38:35] <jmkasunich> we can both test, since I now have my gadget set up
[05:38:49] <cradek> good we can share the blame then
[05:39:27] <jmkasunich> I'll take all the blame if people don't like how silly mode works
[05:40:14] <cradek> how about if some neither like it nor care (I'm an example of this)
[05:42:53] <cradek> actually I've been sometimes using a free-spinning encoder as a jogwheel (only because it's easier to mount to the mill using stickytape) and I might use silly mode for that
[05:43:07] <jmkasunich> if you never enable it, you won't blame anybody, now will you?
[05:43:13] <cradek> nope
[05:43:21] <jmkasunich> head is testable
[05:43:28] <jmkasunich> I'll start the backport
[05:43:55] <jmkasunich> you already made the same bugfix I did locally I think, that will probably conflict
[05:44:01] <cradek> I'm losing focus so I think I'll leave you for the evening
[05:44:03] <jmkasunich> ok
[05:44:05] <cradek> i fixed that already
[05:44:16] <jmkasunich> but you didn't commit it
[05:44:23] <cradek> no
[05:44:33] <cradek> I mean I fixed my own conflict
[05:44:41] <jmkasunich> oh...
[06:01:03] <jmkasunich> backport done
[06:01:07] <jmkasunich> testing tomorrow
[13:36:10] <jepler> George W's Palace
[13:36:11] <jepler> Construction of the largest embassy on Earth will shortly be completed in Iraq. Roughly the size of Vatican City, and previously estimated to cost nearly 1 billion, (later reduced to a mere 592 million ), this remarkable feat of engineering "...will have its own water wells, electricity plant and wastewater-treatment facility, 'systems to allow 100 percent independence from city utilities,' says the report..." .
[13:36:16] <jepler> by Avenger at March 25, 2007 01:42
[13:36:16] <jepler> http://cvs.linuxcnc.org/cvs/emc2/src/emc/motion/control.c.diff?r1=1.105;r2=1.106
[13:36:19] <jepler> oops
[13:36:35] <jepler> anyone want to test spindle speed override before I backport this?
[13:37:02] <jepler> it seems spindle speed override has no effect without it...
[14:30:15] <mschuhmacher> Hi-all
[14:32:20] <mschuhmacher> in mini.tcl there is popupJogSpeed
[14:33:19] <mschuhmacher> not defined is this a known issue?
[14:37:56] <jepler> looks like a genuine bug
[14:38:16] <mschuhmacher> I fixed it
[14:38:34] <jepler> you can send your patch to the emc-developers list and someone will incorporate it
[14:38:53] <mschuhmacher> but i´m not content with the fix
[14:39:23] <jepler> oh.
[14:40:06] <jepler> it's breakfast time here. bbl.
[14:41:40] <mschuhmacher> Enjoy your meal
[14:42:12] <mschuhmacher> I try to make the fix better
[17:10:26] <alex_joni> just tested halui analog jogging, and it still works OK on TRUNK
[17:17:37] <SWPadnos> suggestion: put a link to the wiki in the EMC2 menu ont he next LiveCD/package update ...
[17:17:48] <SWPadnos> s/he/the/
[17:18:05] <alex_joni> that could be in 2.1.4
[17:18:17] <alex_joni> LiveCD is a simple CD with 2.1.x installed
[17:18:18] <SWPadnos> yep
[17:18:54] <SWPadnos> the kinds of questions that are being posted on the user list make me think that there's no really obvious link to external help docs on an installed system
[17:21:45] <cradek> SWPadnos: you're very generous
[17:22:08] <SWPadnos> heh - yeah
[17:22:20] <SWPadnos> assuming that people even *look* at docs is a bit of a leap, isn't it?
[17:23:04] <cradek> this guy's strategy is obviously to look for someone to email, and fire away
[17:24:45] <SWPadnos> sigh. I really wish I could spend the time defending EMC and pointing out the advantages of actual PID servo control (on the CCED list)
[17:25:33] <cradek> I hear emc is harder to configure than an open-loop step servo system
[17:26:10] <cradek> (against that kind of thing?)
[17:26:26] <SWPadnos> no - more about people talking about using the "closed loop" add-on card for Mach
[17:26:38] <cradek> sorry, I'm in a trolly mood today, I should go do something else for a while
[17:26:47] <SWPadnos> it's a traveling following error thing, where the comparisons are done in non-RT
[17:26:50] <cradek> oh what does it do?
[17:27:22] <SWPadnos> the feedback is tracked in an on-screen DRO, and if the feedback vs command position is too far off, it stops Mach
[17:27:30] <SWPadnos> the feedback isn't used for control though
[17:27:46] <SWPadnos> but people still seem to think that's just fine, and some even call it closed loop
[17:28:08] <cradek> that would be halfway useful if it were realtime, at least it would stop when something goes wrong
[17:28:09] <SWPadnos> and they don't even consider that there are alternatives to Mach
[17:28:18] <SWPadnos> it still will, eventually
[17:28:22] <SWPadnos> probably
[17:28:58] <cradek> * cradek shivers
[17:29:29] <SWPadnos> yeah - that's why I wish I had the time ...
[17:29:37] <alex_joni> and nerve..
[17:29:46] <alex_joni> (some people don't deserve to get help..)
[17:29:55] <SWPadnos> that's true too
[17:30:54] <cradek> on one hand it would be nice if they knew all the options, but on the other hand I have no time to spend convincing people who dismiss anything that (1) doesn't cost money (2) doesn't use microsoft stuff
[17:31:21] <SWPadnos> yes - that's another annoyance
[17:31:54] <cradek> those people might come around when some microsoft release kills mach (and microsoft schemes to kill all the old OSs that will still run it)
[17:32:14] <SWPadnos> "but you can't use the computer for anything else" ... (yeah, but the same is true whenever Mach is running, in my experience)
[17:32:15] <cradek> either way, not my problem
[17:32:21] <SWPadnos> nope
[17:32:27] <alex_joni> nope?
[17:32:40] <SWPadnos> that was a nope of agreement :)
[17:32:46] <SWPadnos> not his (your, our) problem
[17:33:37] <cradek> need breakfast (?), bbl
[17:33:50] <SWPadnos> see you
[17:35:30] <alex_joni> hmm.. dinner here.. got the time change last night
[17:40:51] <jmkasunich> SWPadnos: I was thinking about vel mode jogwheels this morning
[17:41:04] <SWPadnos> uh-oh, I'm in trouble ;)
[17:41:10] <alex_joni> hi jmk
[17:41:15] <jmkasunich> suppose the distance was the greater of v^2/2a and jog-scale
[17:41:17] <jmkasunich> hi alex
[17:41:42] <jmkasunich> SWPadnos: that would ensure that you can always do a single click
[17:42:05] <SWPadnos> yep - that should work
[17:43:13] <SWPadnos> actually, the calculation for distance to accel to full speed then back to 0 is trivial - it doesn't even need a second divide since the denominators are the same
[17:43:32] <jmkasunich> its just twice the distance I already calculate
[17:43:38] <jmkasunich> but that is NOT the correct distance to use
[17:43:44] <SWPadnos> it's ((jogvel-currentvel)^2 + jogvel^2) / 2A
[17:44:20] <jmkasunich> oh, from current vel to full and then to zero....
[17:44:21] <SWPadnos> if currentvel is 0, that'll be 2x
[17:44:24] <SWPadnos> right
[17:44:58] <jmkasunich> I still don't think that is the right answer
[17:45:12] <SWPadnos> I'm not sure there's one right answer
[17:45:26] <jmkasunich> if scale is more than 2x it will still not give you a full single step
[17:45:30] <jmkasunich> lunchtime. bbl
[17:45:32] <SWPadnos> I'd almost rather have the max distance or max time to stop as a HAL parameter/pin
[17:45:35] <SWPadnos> see you
[17:45:37] <SWPadnos> right
[17:46:06] <SWPadnos> hmmm. if (already moving) use slip mode, else use erxact mode ...
[17:46:11] <SWPadnos> exact
[17:46:29] <SWPadnos> even if vel-mode is true
[18:12:22] <anonimasu> does anyone have a idea about homing?
[18:12:40] <anonimasu> I'm looking at the lathe config, and it homes then goes to zero..
[18:12:53] <anonimasu> why does it go to zero automatically/can you toggle it off?
[18:13:30] <anonimasu> err actually sorry, that was in the wrong place.
[19:20:46] <jmkasunich> cradek: jepler: I think I found an axis bug
[19:21:15] <jepler> jmkasunich: I'm listening
[19:21:21] <jmkasunich> well, maybe not a bug, but certainly something unexpected
[19:21:45] <jmkasunich> start axis, select axis Y, jog using the mouse on the +/- buttons, all is well
[19:21:53] <jmkasunich> jog using the wheel, all is well
[19:21:59] <jmkasunich> then use the arrow keys to jog X
[19:22:07] <jmkasunich> at the start of the jog, no prob
[19:22:19] <jmkasunich> when you release the arrow key, X becomes the selected axis
[19:22:34] <jmkasunich> and future jogs using the mouse on the +/- buttons, or the wheel, will jog X
[19:22:45] <jmkasunich> is that a feature? ;-)
[19:22:58] <jmkasunich> I would have expected the arrow key jogs to leave the selected axis alone
[19:23:12] <jepler> eek I just found something even worse
[19:23:38] <jepler> hold down the "+" button with the mouse. select a different axis from the keyboard. release the mouse button.
[19:23:41] <jmkasunich> btw, I'm running pre-2.1.4
[19:24:04] <jmkasunich> oh, nice....
[19:27:20] <jepler> the active axis has always changed when keyboard jogging .. there was some reason it was made to do it on key release rather than key press
[19:27:45] <jepler> I do see your mindset, where that was a surprise
[19:28:14] <jmkasunich> the arrows are permanently linked to an axis, therefore there seems to be no reason to change the selected axis when you use the buttons
[19:28:44] <jmkasunich> the selected axis is for input channels that you have only one of, like the +/- buttons, and the wheel
[19:29:19] <jmkasunich> ah, I should speak more clearly
[19:29:24] <jmkasunich> the arrows are permanently linked to an axis, therefore there seems to be no reason to change the selected axis when you use the ARROWS
[19:30:58] <alex_joni> jmkasunich: it works the same way in tkemc, mini and xemc
[19:31:34] <jmkasunich> ok
[19:31:48] <jmkasunich> I guess its obvious I spend more time working on HAL than I do with the GUIs
[19:31:51] <alex_joni> actually I'm not 100% for xemc, but I'm sure about the tcl ones
[19:32:02] <alex_joni> * alex_joni fears the day that'll change
[19:32:03] <alex_joni> :P
[19:32:27] <jepler> I'm not sure what the fall-out would be if I changed it (in axis)
[19:32:45] <jmkasunich> sounds like policy
[19:32:51] <jmkasunich> but the case you found isn't
[19:33:01] <jepler> imagine a person who uses pgdn to move Z to just above the work surface, then a fine jogwheel to move it the rest of the way... (that's me)
[19:33:08] <jepler> yeah there is a real bug here and I'll fix that part
[19:33:18] <jepler> it's the other I'm reluctant to change, even if it doesn't fit everyone's mental model
[19:33:25] <jmkasunich> understood
[19:34:02] <jmkasunich> ok, now what....
[19:34:12] <jmkasunich> Y home search vel is negative
[19:34:24] <jmkasunich> but homing it moves positive....
[19:34:29] <alex_joni> how about INPUT_SCALE?
[19:34:46] <jmkasunich> scales are all positive
[19:34:56] <jmkasunich> jogging positive moves positive
[19:35:02] <jmkasunich> only homing misbehaves
[19:35:32] <jmkasunich> oh, I know whats wrong
[19:35:40] <jmkasunich> I have the polarity of the simulated home switch wrong
[19:35:46] <jmkasunich> so its trying to back off the switch
[19:36:04] <jmkasunich> yep, yhome = TRUE
[19:38:54] <jmkasunich> works now
[19:44:23] <alex_joni> jepler: here's a question..
[19:44:37] <alex_joni> would it be possible to write a python script to save the current position?
[19:44:44] <alex_joni> I take it it should be fairly easy to do..
[19:46:15] <jepler> yes, probably
[19:47:41] <alex_joni> I'm thinking about hijacking emctop for that
[19:47:52] <alex_joni> but I never tried to write to a file from python
[19:48:14] <jmkasunich> what are you trying to do? pick-n-place toolchanger?
[19:48:24] <alex_joni> jmkasunich: no, teaching for robots
[19:48:33] <jmkasunich> ah
[19:48:38] <jepler> % python -c 'import emc; s = emc.stat(); s.poll(); print s.position[:3]'
[19:48:38] <jepler> (23.214448534202575, 8.5943433362007138, -0.0099999994039535502)
[19:48:52] <jepler> I'm not sure how s.position interacts with coordinate-system offsets
[19:49:07] <alex_joni> I'm not really interested in offsets right now
[19:49:13] <jepler> also in an installed system you probably have to set emc.nmlfile as mdi does
[19:49:16] <jmkasunich> we have so many different coordinate systems
[19:50:57] <jmkasunich> position mode jogging with large jog-scale values can get disconcerting
[19:51:30] <jmkasunich> you can easily command several inches of motion, then you stand there frozen wondering if its gonna stop anytime soon
[19:51:51] <jmkasunich> thats probably what started this whole mess
[19:51:57] <alex_joni> maybe an analog pin would be nice
[19:52:04] <alex_joni> one that would show DTG or similar
[19:52:31] <jmkasunich> the answer is to use more sensible jog-scale values
[19:52:36] <alex_joni> that too
[19:53:23] <jmkasunich> actually, a cool (but pita to do I bet) thing would be to have a "ghost" cone in the axis preview, that shows the destination of the jog
[19:53:41] <jmkasunich> it would move instantly as the wheel turns, and the main cone would catch up as the machine catches up
[19:54:05] <alex_joni> yeah, getting a second position to AXIS would be a pita
[19:54:33] <jmkasunich> silly anyway - if the move-per-click is so large that you can get yourself confused, you should either use a smaller scale, or use velocity mode
[20:08:36] <jmkasunich> well, I've played with jogwheel/keyboardjog/homing and with vel-mode vs position mode wheel jogs
[20:08:48] <jmkasunich> in pre-2.1.4
[20:09:09] <jmkasunich> and I don't see any issues - except one that jepler found and is working on
[20:12:39] <alex_joni> hmm.. I'm getting lots of weird messages on TRUNK using scara config
[20:12:43] <alex_joni> same for you guys?
[20:12:55] <alex_joni> INIFILE: ERR_CONVERSION, section=TRAJ, tag=LINEAR_UNITS, num=0, lineNo=139
[20:13:41] <jmkasunich> I haven't done anything with scara
[20:13:54] <alex_joni> I think it's because of the new IniFind
[20:13:59] <jmkasunich> seems that way
[20:14:43] <jmkasunich> where is petev when you need him?
[20:14:58] <alex_joni> grrr...
[20:15:05] <alex_joni> he didn't strip dos endings
[20:15:53] <jmkasunich> fsck
[20:16:32] <alex_joni> well.. the issue isn't that bad.. he's only checking for strings, not numbers
[20:16:36] <jmkasunich> I suppose I should be gratefull for any contributions.... but it irks me when people write code for a Linux based app on doze systems
[20:16:40] <alex_joni> scara has 1.0 for LINEAR..
[20:16:53] <alex_joni> yeah, makes you wonder how they test :P
[20:17:04] <jmkasunich> simple - they don't
[20:17:21] <alex_joni> I think he did.. but moved the files or soemthing like that
[20:46:44] <alex_joni> * alex_joni heads to bed
[20:46:47] <alex_joni> good night all
[21:04:44] <incase> Hi. Anyone only who is more or less responsible for the linuxcnc.org website?
[21:04:54] <jepler> incase: he just went to bed. :-P what's the problem?
[21:06:35] <incase> Well, when using the german language version, some links led into the joomla administration interface (or its login, to be more precise).
[21:06:59] <jepler> I see -- but I don't know enough about joomla to guess how to fix it
[21:07:25] <incase> But I can't find the relevant link at the moment. Odd, perhaps someone already noticed and fixed it. Oh well...
[21:08:16] <jepler> the person who knows the most about the website is alex.joni AT robcon.ro but he's gone for the day
[21:08:38] <jepler> feel free to e-mail him. he can read german as well as english.
[21:09:31] <incase> Anyway, I have another question: Can anyone give me a link to a nice introduction to writing G-code manually? The emc documentation alone is not verbose enough for me, especially since it lacks examples.
[21:09:59] <incase> Ok, I will mail him, perhaps he already knows or knows how to check.
[21:19:33] <incase> Oh well, seems noone can. Anyway, if someone reads this later, it would be nice if a matching link could be added to the Links section of the website or if it could be mailed to me at sven at incase.de, thanks :-)
[22:27:48] <cradek> ah, I figured out how to get the transient (and harmless) AXIS error
[22:28:05] <jmkasunich> you mean the one at startup?
[22:28:13] <cradek> invalid command name "-1211863252callit"
[22:28:33] <cradek> I bet it takes a slow machine
[22:28:52] <cradek> if you hit enter in the touch-off window before it's finished drawing everything, you get it
[22:29:17] <jmkasunich> I haven't seen anything from jepler - I hope he's not having troubles with the bug he ran across eariler....
[22:29:26] <cradek> what bug is that?
[22:29:54] <jmkasunich> select X, hit the + button with the mouse, X starts moving, while holding the mouse down, hit the Y key, then release the mouse
[22:30:04] <jmkasunich> it sends a jog-stop to Y, X keeps going
[22:30:37] <cradek> doctor, doctor!
[22:31:19] <jmkasunich> "it hurts when I do this" "then don't do it"
[22:31:29] <cradek> exactly
[22:31:43] <cradek> I'm running v2_1_branch now - jogwheel works
[22:32:04] <jmkasunich> runaway jogs are bad though - if there is even a chance of it happening by accident, thats not good
[22:32:38] <jmkasunich> good
[22:32:47] <jmkasunich> I ran it a while earlier
[22:33:01] <jmkasunich> the only thing I didn't really do is set wild accel to speed ratios
[22:33:18] <cradek> I haven't tested sillymode - did you?
[22:33:20] <jmkasunich> like vel = 5 ips, accel = 1 in/sec^2
[22:33:21] <jmkasunich> yes
[22:35:21] <jepler> sh tall
[22:35:22] <jepler> oops
[22:35:46] <jepler> jmkasunich: I think I squashed that bug already
[22:35:58] <jmkasunich> committed it?
[22:36:17] <jepler> I have that and one other thing (spindle speed override didn't work) that should be backported but haven't.
[22:37:03] <cradek> I don't get that. I used spindle speed override all the time
[22:37:26] <jepler> http://cvs.linuxcnc.org/cvs/emc2/src/emc/motion/control.c.diff?r1=1.105;r2=1.106
[22:37:35] <jepler> my fix must be wrong, then
[22:37:55] <jepler> the slider didn't work at all for me in sim/lathe from TRUNK
[22:38:17] <cradek> that's unpossible
[22:38:17] <jepler> I am not at a linux machine for the next 3 hours or so so I can't test any of this stuff
[22:38:22] <cradek> lemme try
[22:39:23] <cradek> it works fine for me
[22:39:47] <jepler> still works if you revert the change in 1.106?
[22:39:49] <cradek> machine on, F5, S1000 M3, (bargraph goes to 1000), slide SO to 73%, bargraph goes to 730
[22:40:04] <jepler> try issuing the spindle override disable g-code in MDI
[22:40:08] <jepler> g51p0 or something
[22:40:16] <jepler> then reenable it with g51p1
[22:40:21] <lerman_> lerman_ is now known as lerman
[22:40:35] <cradek> m51p0/m51p1 change it between 1000 and 730
[22:40:55] <cradek> but this is trunk where you fixed it, duhhh
[22:41:08] <jmkasunich> ;-)
[22:42:05] <cradek> in the branch, the slider works and m51 has no effect
[22:42:46] <cradek> I must have misunderstood the problem - you fixed m51
[22:44:17] <cradek> jepler: did you see I figured out how to trigger that after error?
[22:59:03] <jepler> cradek: yes, but remind me again later anyway
[22:59:10] <cradek> ok
[22:59:26] <cradek> looks too nontrivial for me to try to fix it myself
[23:01:23] <cradek> I went to the new harbor freight store for the first time today
[23:01:33] <cradek> it'll be a nice place to have around
[23:01:52] <jmkasunich> eww
[23:01:53] <cradek> my biggest surprise was they have dial calipers like mine that read in .001" and .02mm at the same time
[23:02:30] <jmkasunich> two different hands and two sets of numbers?
[23:02:34] <cradek> yes
[23:02:42] <cradek> I think it's extremely cool
[23:02:52] <jmkasunich> how much?
[23:02:55] <cradek> you can measure something and instantly see whether it's an inch or mm part
[23:03:03] <cradek> ~ $25
[23:03:10] <jmkasunich> hmm, maybe I should get one of those
[23:03:20] <cradek> it's really nice
[23:03:31] <jmkasunich> my Mitutoyo's have mm markings on the body, but not the dial
[23:03:38] <jmkasunich> need a calculator to translate
[23:03:43] <cradek> yeah, but those markings are useless
[23:03:54] <jmkasunich> well, they let you make rough measurements
[23:04:06] <jmkasunich> course a mm ruler does too ;-)
[23:04:23] <cradek> I suppose all the digital calipers do both - but I'd rather have a dial
[23:04:33] <jmkasunich> ditto - I hate things with batteries
[23:05:00] <cradek> anyone want to try the 2.1.4~b package?
[23:05:18] <jmkasunich> no
[23:05:21] <jmkasunich> just release it
[23:05:30] <jmkasunich> ;-)
[23:05:49] <cradek> nah, maybe jepler can fix this other thing later
[23:12:15] <cradek> I hadn't thought of this before but using index on the spindle like for lathe, we could do "peck tapping"
[23:13:08] <jmkasunich> peck tapping?
[23:13:16] <cradek> yeah, back out to clear chips
[23:13:20] <jmkasunich> oh
[23:13:55] <jmkasunich> need more sophisticated spindle control - position mode
[23:14:06] <jmkasunich> so you can say "go in 1/2 turn more than last time"
[23:14:14] <jmkasunich> scuse me, I have to go yell at the dog
[23:18:45] <jmkasunich> back
[23:34:33] <roltek> cradek i see your reading the book
[23:35:37] <roltek> anything else you found interesting
[23:37:56] <roltek> peck tapping in mill book not lathe