#emc-devel | Logs for 2007-01-24

[01:03:43] <jmkasunich> hi guys
[01:03:57] <jepler> hi jmkasunich
[01:04:12] <jmkasunich> reading back: I _really_ don't want to get into "building a distro to go with EMC"
[01:04:23] <jmkasunich> we already know someone who took that route
[01:06:06] <jepler> yeah me either
[01:14:05] <jmkasunich> I also saw a discussion about unified config data, probably using XML
[01:14:20] <jepler> I missed that one
[01:14:37] <jepler> if I was changing halcmd for "something better", I'd never choose xml in a billion trillion years
[01:14:38] <jmkasunich> it was eariler
[01:14:57] <jmkasunich> that long eh?
[01:15:02] <jepler> pretty long
[01:15:38] <SWPadnos> XML has the advantage of providing for multiple sets of data in a signle file
[01:15:47] <SWPadnos> it has the disadvantage of being butt ugly to look at
[01:15:53] <jmkasunich> right
[01:16:01] <SWPadnos> bbiab - SWMBO calls
[01:16:01] <jmkasunich> ( I was gonna say the same thing with more words)
[01:16:37] <jepler> I don't care to change from the .ini format to something else (though if it is API-compatible then I could choke it down)
[01:16:45] <jmkasunich> jepler: dunno about you, but I think XML beats the socks of of my homemade format for vcp
[01:16:47] <jepler> I would like to see halcmd get support for at least arithmetic, and maybe looping
[01:17:30] <jmkasunich> did you notice the message to emc-dev from Eric Johnson?
[01:17:36] <jepler> i haven't read emc-dev today either
[01:17:52] <jmkasunich> among other things, he talked about pulling the "do_<hal-command>" parts of halcmd.c into a library
[01:18:06] <jmkasunich> we could retain the existing parser and language, and let it call a lib
[01:18:07] <jepler> yeah
[01:18:20] <jepler> once that's done it's not much work to expose it to (say) tcl
[01:18:28] <jmkasunich> then some other parser (perhaps one that know all about emc and is not generic) could also call the api
[01:19:05] <jmkasunich> originally halcmd was just supposed to be a thin wrapper around the hal_lib api
[01:19:18] <jepler> give headroom to all step generators: for {set i 0} {$i < 3} {incr i} { setp stepgen.0.maxvel {1.1 * [getp axis.0.maxvel]} }
[01:19:24] <jmkasunich> but that api isn't adequate for configuring systems
[01:19:34] <jepler> otoh that's pretty gross
[01:19:37] <jmkasunich> its adequate for components (parts of systems)
[01:19:38] <jepler> my tcl example, I mean
[01:20:58] <jmkasunich> we've talked about adding "math and looping" to halcmd before
[01:21:16] <jmkasunich> (for some value of "we")
[01:21:51] <jmkasunich> the general thought was "why should we be writing a general purpose language that is unique to HAL"
[01:22:11] <jmkasunich> it makes more sense to put hal hooks into general purpose language(s)
[01:22:17] <jepler> yeah -- that's why I bring up tcl, but tcl is not a friendly language to beginners
[01:22:34] <jmkasunich> the simplest case right now is bash
[01:22:46] <jmkasunich> except bash doesn't do math
[01:22:47] <jepler> alias setp='halcmd setp'; alias ...
[01:23:15] <jmkasunich> I don't think you could do your example in bash, unless you get clever and invoke bc or something
[01:23:57] <jepler> yeah that gets ugly too
[01:24:22] <jepler> I *do* like that all the configurations are in one language, I wouldn't want to see a proliferation of languages for machine configuration
[01:24:53] <jmkasunich> ?
[01:24:55] <jmkasunich> they're not in one language
[01:25:04] <jmkasunich> at a minimum you have ini and hal
[01:25:07] <jepler> yes
[01:25:14] <jmkasunich> plus possible xml for pyvcp
[01:25:23] <jmkasunich> and don't forget ladder...
[01:25:26] <jepler> I mean, I don't want to see some people configure their hal in python, others in tcl, others in bash
[01:25:31] <jmkasunich> oh
[01:26:02] <jmkasunich> I think I agree with that
[01:26:36] <jmkasunich> in the earlier discussion, my name was mentioned as an obstacle to unified EMC configs, because I constantly harp on keeping HAL generic
[01:27:11] <jmkasunich> I would not be against EMC specific tools that either pipe commands to halcmd (in hal's language) or directly call the hypothetical halcmd api
[01:27:22] <jmkasunich> as long as we keep the generic language as well
[01:28:11] <jmkasunich> there are large classes of emc machine configs that don't need the full capability of hal
[01:28:14] <jmkasunich> and others that do
[01:28:59] <jmkasunich> we've _almost_ managed to let novices avoid editing hal files, by doing variable substitution from the ini file
[01:29:07] <jmkasunich> but it seems they still need to do it once in a while
[01:30:19] <jepler> without a gui configurator that is either massive or inflexible (or both) you can't avoid it
[01:30:27] <jepler> I don't plan to spend my development hours there
[01:32:04] <jmkasunich> I think I agree
[01:32:37] <jmkasunich> if I _was_ inclined to work on a gui configurator, it wouldn't be emc specific (of course), so it wouldn't be what rayh and others want
[01:32:49] <jmkasunich> (it would be the schematic->hal translator)
[01:34:13] <jmkasunich> btw, while I really appreciated the time you spend on hallejulia, I think the hal->schematic approach has "issues", and would rather go the other way
[01:35:16] <jmkasunich> and that probably means starting with an existing schematic editor (or at least an existing drawing program) because there is no reason to reinvent that particular wheel
[01:35:43] <jepler> having started from that direction and felt a roadblock when I wanted to 'output' back to HAL, I appreciate that point of view
[01:36:00] <jepler> the hallelujah direction, that is
[01:36:28] <jmkasunich> I think the reason for a schematic is that the layout on the page reflects the intentions of the human, and a hal->schematic translator can never get that information out of the human's brain
[01:38:01] <jepler> which message from Eric Johnson did you mean earlier? the one about a UI on a small text LCD?
[01:38:08] <jmkasunich> yeah
[01:38:16] <jmkasunich> last paragraph talked about the hal lib thing
[01:38:17] <jepler> python python python
[01:38:32] <jepler> that really doesn't sound like a HAL project to me -- more like nml
[01:38:58] <jepler> either way he can write it in python and stop his hand-wringing
[01:38:59] <jmkasunich> yes, the entire first part of the message is about the LCD and NML is the way to go
[01:39:14] <jmkasunich> the last paragraph is an aside into hal land
[01:39:26] <jepler> because of i2c and parallel?
[01:39:35] <jepler> he can do serial and usb-serial equally well from pyserial
[01:39:40] <jepler> not so sure about i2c and parallel
[01:40:02] <jmkasunich> I dunno either, and I really don't care ;-)
[01:40:20] <jmkasunich> I latched onto the last part because I think halcmd should not be a 4000 line C file
[01:43:33] <jmkasunich> anyway, I should probalby work on some more man pages - once 2.1 is released then it will be time to talk about this more abstract stuff
[01:46:44] <jmkasunich> oops, I just realized that the farm has been shut down since sunday
[04:04:06] <jmkasunich> arrggh
[04:04:22] <jmkasunich> I just realized that basically none of the HAL drivers have manpages
[17:48:54] <alex_joni> hi :)
[17:50:28] <fjungclaus> So, what channel has to be used for what sort of discussion!? #emc is in reality something like #emc-user?
[17:50:41] <alex_joni> not always
[17:50:52] <alex_joni> there are times when #emc is nothing related to emc
[17:51:11] <alex_joni> simply people talking about all sorts of crap
[17:51:50] <fjungclaus> alex_joni: And yes, I'm still fighting with my irc-client :-)
[17:54:35] <cradek> fjungclaus: sometimes we all hide in here if we want to talk about EMC
[17:55:00] <alex_joni> and we somehow manage to not keep it on topic even in here :D
[17:55:27] <cradek> we do ok...
[18:05:10] <fjungclaus> fjungclaus is now known as fjungclaus-away
[19:45:42] <cradek> skunkworks: if only jmk was here
[19:46:57] <skunkworks> rtfm?
[19:47:17] <skunkworks> or was this the whole adding printing to stepgen?
[19:47:48] <cradek> yes this is the problem that's supposed to help solve
[19:48:34] <SWPadnos> heh. maybe that's why he's opposed to it - he always misses the fun ;)
[19:49:01] <skunkworks> :)
[19:52:59] <SWPadnos> marley is probably a friend of Rafa
[19:53:12] <cradek> (he is rafa)
[19:53:13] <SWPadnos> ah
[19:53:20] <SWPadnos> well, I hope he likes himself :)
[19:55:27] <cradek> INPUT_SCALE = 9.657170449
[19:55:33] <cradek> OUTPUT_SCALE = 10.000
[19:56:06] <skunkworks> he is doing much better - english wise. (if it is rafa.)
[19:56:27] <cradek> haha, the scales on his 3 axes are 20, 40, 9.657170449, and 200
[19:56:30] <cradek> 4 axes
[19:57:51] <awallin> emc needs a cofig-wizard (or maybe cnc-machines should not be idiot-proof...)
[19:58:07] <SWPadnos> better idiots ...
[20:00:16] <cradek> for sanity's sake I have to sit this one out, sorry
[20:00:40] <SWPadnos> any idea on anonimasu's issue?
[20:01:09] <cradek> what was the question? I missed it in the noise
[20:01:48] <SWPadnos> way back, he mentioned that G28 causes following errors on Z
[20:01:59] <SWPadnos> in the course of debugging, he also found that G0 does the same thing
[20:03:22] <cradek> any reason to think it's not just bad tuning? the ferror is only 1mm
[20:03:42] <SWPadnos> it could be
[20:04:22] <SWPadnos> the weird thing is that it seems to work for Z-only moves, including G0
[20:05:04] <cradek> I agree that is odd
[20:05:38] <cradek> wonder what his ferror is (when it's not erroring)
[20:06:22] <cradek> seems I=100 is very brave - I don't think he's done any tuning since all axes (even the rotary) are the same
[20:06:46] <SWPadnos> good question. I hadn't looked that far
[20:07:02] <SWPadnos> I think he's using geckos and the USC in feedback mode, but I'll ask
[20:07:14] <jepler> what should we do about the ini and status buffer "scale"s during 2.2? seems like that's a HAL-only matter now, not used by the core at all
[20:07:45] <cradek> jepler: a few guis (barely) use it
[20:07:50] <SWPadnos> cradek pointed out that it's used by at least one UI to give single step jogging ability
[20:10:27] <jepler> yes, and I'd change that GUI to find the lowest desired jog rate in some other, more explicit, way
[20:10:56] <SWPadnos> sure - that makes sense
[20:12:08] <jepler> is this (wrong) comment still in 2.1? (too lazy to look)
[20:12:10] <jepler> # set output scaling from ini file
[20:12:10] <jepler> # note that these are using PWM_OUTPUT_SCALE - they should
[20:12:10] <jepler> # use OUTPUT_SCALE, but right now EMC2 re-writes that to
[20:12:10] <jepler> # 1 on shutdown for some reason. Once that is fixed, this
[20:12:13] <jepler> # should be changed
[20:12:33] <alex_joni> yes, it's wrong
[20:17:04] <cradek> just for kicks I checked G28 and it doesn't do anything untoward that I can see, just the equivalent of (one or) two G0 moves
[20:17:08] <cradek> SWPadnos: ^^
[20:19:20] <jepler> I can't test this patch: http://emergent.unpy.net/files/sandbox/output-scale.patch
[20:19:31] <jepler> (against 2.1, probably against TRUNK)
[20:19:47] <jepler> but I'd prefer to have what I think is now disinformation removed from the sample configs
[20:23:56] <alex_joni> any reason for the patch to touch ladder?
[20:26:13] <jepler> nope that part is accidental
[20:26:18] <jepler> (oops)
[20:32:08] <alex_joni> jepler: was this a patch for TRUNK or 2.1 ?
[20:32:11] <alex_joni> or both?
[20:32:29] <jepler> alex_joni: I made it against 2.1
[20:32:39] <jepler> it may apply to both, and some form of that patch should probably be applied to both
[20:32:48] <alex_joni> ok, should I apply it, check it for sanity, then commit?
[20:33:01] <alex_joni> (minus the ladder stuff)
[20:33:38] <jepler> if it passes your sanity check, and your "good idea" filter, then I'd like to see it committed
[20:33:50] <alex_joni> good :)
[20:37:59] <rayh> Fascinating. Gedit has a .ini file highlighting mode. View->Others->.ini.
[20:53:19] <jepler> shouldn't the following move to x1y1z0 before moving to 'home'? g0 x1y1z1 / g28 z0 / m2
[20:53:34] <jepler> according to the spec anyway
[20:53:40] <jepler> http://www.linuxcnc.org/handbook/RS274NGC_3/RS274NGC_33a.html#1013246
[20:53:44] <alex_joni> yes, the spec says so
[20:53:49] <jepler> I don't see a move to x1y1z0 in axis
[20:53:52] <alex_joni> go to the position specified, then to home
[20:53:54] <jepler> (mdi'ing everything0
[20:53:58] <jepler> (mdi'ing everything)
[20:54:47] <cradek> that works for me
[20:54:57] <cradek> it goes down to Z0 and then diagonally to X0Y0
[20:55:00] <alex_joni> I wonder why the scale's are commented out in ppmc_motion.hal
[20:55:59] <cradek> jepler: (trunk)
[20:56:24] <cradek> jepler: maybe you have offsets? those are in un-offset coords I think
[20:57:26] <cradek> "The parameter values are in terms of the absolute coordinate system" but it doesn't say what system the XYZ words are in
[20:58:08] <jepler> no, I don't seem to have offsets
[20:58:33] <cradek> I tried twice - I know it works here...
[20:58:55] <jepler> oh -- I still had g91 in effect
[21:00:57] <alex_joni> core_axis.hal doesn't exist anymore.. right?
[21:01:28] <jepler> no, I don't think it exists anymore
[21:01:56] <jepler> it was used to set the "active jogging axis" signals before AXIS got the ability to create HAL pins
[21:02:25] <alex_joni> right.. that's what I remembere
[21:02:27] <alex_joni> d
[21:05:26] <alex_joni> when we do 2.2. we'll get TRUNK to the release status before we branch :D
[21:06:35] <cradek> yeah this has been a pain
[21:13:59] <fjungclaus-away> fjungclaus-away is now known as fjungclaus
[22:17:25] <A-L-P-H-A> rayh, get my memos?
[22:18:24] <rayh> I saw something A-L-P-H-A but didn't see what they were. How do I look at memos?
[22:23:03] <A-L-P-H-A> rayh /msg memoserv help read
[22:29:08] <SWPadnos> argh. you know - that's a good question bob just had - can you disable following error
[22:29:34] <SWPadnos> following error is useless for stepper systems, and causes lots of confusion (though it is one indicator of improper setup)
[22:35:46] <A-L-P-H-A> SWPadnos... boolean, flag.... and maybe a new feature... to create a testing mode... which would test for conditions of an improper setup.
[22:36:26] <SWPadnos> a setup checker was discussed some time ago, and jepler even made a web-based ini generator of sot\rts
[22:36:34] <SWPadnos> -t\
[22:38:42] <skunkworks> he's baackk
[22:51:35] <jepler> SWPadnos: just set ferror and min_ferror bigger than your total travel
[22:51:44] <jepler> (I think)
[22:51:45] <SWPadnos> sure
[22:51:53] <SWPadnos> or just FERROR, and leave MIN_FERROR out of it
[22:52:09] <cradek> if we would add that, people would use it to "fix" their stepper configurations
[22:52:57] <cradek> like rafa/marley/bob, for instance
[22:54:43] <SWPadnos> like I said. it's not useful except that it points out problems in their configs (sometimes, and only some kinds of problems)
[22:55:03] <cradek> or software bugs
[22:56:09] <SWPadnos> well, there is that
[22:56:31] <cradek> it's kind of nice to have a closed loop through stepgen to detect all kinds of software bugs and misconfiguration
[22:57:05] <cradek> if we can make misconfigurations give a better error message (which I think is already done) it should NEVER trigger except for software bugs
[22:57:51] <SWPadnos> I think the only misconfiguration it can detect is improper BASE_PERIOD
[22:58:10] <SWPadnos> (relative to max vel settings)
[22:58:18] <cradek> I think all the timing settings will trigger it too
[22:58:28] <cradek> like step duration: 1 second
[22:58:43] <cradek> (I think)
[22:58:49] <cradek> would have to look to be sure
[22:59:17] <SWPadnos> sure - the general problem is "max attainable step rate is lower than max requested (-able) rate"
[22:59:28] <cradek> yes
[22:59:44] <cradek> what else triggers the FE?
[23:00:37] <SWPadnos> FE set too low? :)
[23:00:47] <cradek> true
[23:00:53] <cradek> what are we arguing about again? :-/
[23:00:55] <cradek> I need a nap
[23:01:15] <SWPadnos> for a stepper system, I can't think of anything else that the ferrors help with
[23:01:15] <SWPadnos> heh
[23:01:32] <jepler> stepper + stepgen
[23:01:51] <jepler> stepper + hardware step generator + PID is another way to get following errors
[23:01:54] <jepler> .. apparently
[23:02:04] <SWPadnos> even stepper+USC, with feedback coming from the step outputs
[23:02:29] <cradek> you clearly want FE detection with an external step generator
[23:03:07] <SWPadnos> yeah, though you need PID as well, sort of (to make sure you reach the endpoint)
[23:03:13] <cradek> I guess I don't see any reason to disable it. I don't know why you would NOT want to know if you're off the path for whatever reason
[23:03:37] <jepler> I am inclined to think the USC HAL driver would benefit from a position-input mode (when its step outputs are looped to feedback inputs)
[23:03:38] <SWPadnos> sure - that's fair enough
[23:03:55] <SWPadnos> there are switches on the USC that do this
[23:04:35] <jepler> yes but the HAL driver still takes a velocity input
[23:05:20] <jepler> this new mode in the HAL driver would get rid of the PID component and have the same kind of tuned feedback that the stepgen component has
[23:11:28] <SWPadnos> ah - ok
[23:48:35] <fjungclaus__> fjungclaus__ is now known as fjungclaus-away