01:32:15 rayh_away has quit 07:15:32 morning all 14:36:15 rayh has joined #emc-devel 14:59:54 hey ray.. 15:00:00 got them motors humming ;) 15:03:52 Fantastic. 15:04:20 yeah, but I am a bit concearned that one of them is making a bit more noise than the other 15:04:46 there is a midband tuning pot on the gecko? 15:04:56 yes 15:05:11 I did tune it the best I could, but it's still a bit like grinding 15:05:42 That isn't right. Did you try swapping motors between drives? 15:06:18 trying now 15:06:32 Oh. You've got them there. 15:06:52 the issue is moving with the gecko 15:06:59 so it's not motor related 15:07:26 Your emc tuning is the same for both? 15:08:07 yup 15:08:22 but I can swap X/Y in hal 15:09:10 and ? 15:09:25 same problem 15:09:43 Stays with the gecko? 15:10:06 yup 15:10:28 I'll have to open them both up, and check jumpers 15:10:55 So what's left is the wiring, the grounding, the current limit resistor, or jumper 15:11:42 could swap the step and direction signals at the gecko. 15:12:09 what for? 15:12:35 see if it's noise from the parport or wiring. 15:13:30 hmm.. I might do that 15:13:33 but I doubt it 15:16:05 Univstep puts a lot less load on this box than demo_step_cl 15:57:16 it seems to be working pretty ok now.. 15:57:22 still some noise at low speed 15:57:27 only on that one gecko 15:57:39 I swapped it with the other one, and the problem stays with the gecko 15:57:49 even swapped the resistor and all cabling, motor 15:58:07 it's always that one gecko.. but at higher speed it's not noticeable 15:58:23 btw, I'm running at 10mm/sec (meaning 20kHz pulses) 15:58:40 with emc2 & BASE_PERIOD=0.000025 15:59:00 SWP_Away is now known as SWPadnos 15:59:08 hi there 15:59:14 steppers or servos? 16:00:26 steppers 16:00:30 ok 16:00:38 sherline ;) 16:00:43 eeewwww :) 16:00:49 what? 16:00:53 they seem nice ;) 16:00:54 too small 16:00:59 ;) 16:01:00 Adjust the midband while running at that most noisy speed. 16:01:02 heh.. for plotting it's ok :P 16:01:14 Morning Steve 16:01:15 rayh: I did adjust to the smallest possible noise 16:01:21 ok.. going home ;) 16:01:25 I'll send some pics lateron 16:01:46 If you need a new gecko holler. 16:01:49 err - Ray - did you add stepgen_maxvel to the .hal files as well (or was it already there?) 16:02:31 rayh: don't think so.. 16:02:37 must have been there. got an error message during startup 16:02:39 it's humming a bit harder, but it's ok 16:02:43 ok 16:02:47 circles do sound very exciting :D 16:02:52 hehe 16:03:05 and 20kHz from emc2 is also very nice 16:03:10 don't they. 16:03:17 I think I still have lots left in my laptop 16:03:24 but I don't want to crank it up higher 16:03:28 You bet that is great. 16:03:41 it's a 1.4GHz centrino laptop ;) 16:03:54 rayh: I had some issues starting the geckos :D 16:04:02 on the G340 I use common ground 16:04:15 SWPadnos: Question. What would it take to make a parallel universe to halcmd. 16:04:17 but there it's selectable (common ground or common Vcc) 16:04:29 The 201 uses common +5 16:04:33 over here it's only common Vcc 16:04:37 yeah.. I figured :D 16:04:38 rayh, one that does what? 16:04:43 so I took +5V from USB :D 16:04:43 and no way round it. 16:04:57 so it's a parport/USB setup (lol) 16:05:05 Yep. Done the usb trick. 16:05:17 but USB is too slow ;) 16:05:18 even used it to get around the computer off estop problem/ 16:05:27 SWPadnos: 500mA is not too slow 16:05:43 rayh: connect to the enable ? 16:05:45 only the +5 which comes on when pc power is up. 16:05:45 nice 16:05:59 * alex_joni goes home 16:06:00 somebody should make an ATX connector breakout, that takes the POWER_GOOD signal to the outside world 16:06:11 looks damn stupid to have the extra cable 16:06:11 it's friday 18:08.. way to late to be at work :D 16:06:31 catch you later alex_joni 16:06:37 see ya 16:06:52 laters everyone 16:06:59 SWPadnos: the parallel universe is a sort of status reporter. 16:07:14 ok - "halstat" 16:07:33 every pin param sig and thread heartbeat. 16:08:00 that's doable, by stripping out most of halcmd and renaming it ;) 16:08:08 pass it a string of "names" and it passes back a string of values. 16:08:45 no formatting, no name replies, just the value. 16:09:15 Would you update it using a fast loop or only when a demand is made of it? 16:09:32 oke problem - you can have a pin, a signal, a component, and a function with the same name 16:09:45 s/oke/one/ 16:10:06 right. that's why I appended the name to the type 16:10:23 like pin+axis.0.enable 16:10:38 no sense checking in a fast loop, if the "caller" can't display that fast. it should be asked (possibly with just a newline) 16:10:40 ok 16:10:52 That is how I produced the nodes and leaves for the tree. 16:11:25 ok 16:11:35 something other than + could be used. 16:11:55 + is OK, I think it's illegal in the HAL names (not sure though) 16:12:08 I'd have a fight on my hands if we used a "." 16:12:19 why? 16:12:43 split + v split "." 16:13:33 spose i could use scan and dot separation 16:13:35 in C, I'd find the first '.', and be done with it 16:13:37 phone 16:13:47 k 16:40:18 heh - got a friend who wants to export lots of mail from Groupwise to (something else) 16:45:39 Is that mbx or individual files? 16:45:44 no 16:45:51 neither, I think 16:46:51 some sort of binary file encripted using 256 bit xxx 16:47:58 it's some database format, I think 16:49:42 no - it appears to be encrypted individual files 16:49:51 does this guy have groupwise or just the data? 16:49:54 ah well - saved for a later time 16:49:58 he has GroupWise 16:50:31 I know it does some fancy things - for instance an attachment sent to 100 people is only stored once 16:50:33 and they run a Novell server (fairly obviously) 16:50:51 yep. it's a very powerful groupware tool 16:51:19 too bad it's not open source, since he would still have his data then 16:51:51 yep. 16:51:53 I wonder if businesses will eventually learn that putting their data in inaccessible closed formats is bad 16:52:03 Novell is headed that way, but probably not with GW 16:52:10 it's not bad for them 16:52:13 (yet) 16:52:27 yeah, it's only really bad once in a while. 16:52:29 I have the same problem with the PCD / schematic programs 16:52:33 PCB 16:52:56 and 3D cad (unless you think dxf is viable, which I don't) 16:53:09 there are lots of open-ish formats for 3d data 16:53:18 typically cad pacakges can export to one or many of them 16:53:34 often, they suck, but at least they are simple 16:53:36 they rarely contain the design information, just the results 16:53:41 yeah. 16:53:48 parasolid is close 17:15:27 so - Ray, back to "halval" (if you like) 17:16:58 you bet I like. 17:17:19 I was imagining it a bit like NML status for HAL 17:17:25 is the main purpose to increase speed, or to reduce the tcl communications complexity? 17:17:39 speed 17:17:44 ok 17:18:03 The tcl stuff can be worked through 17:18:20 there are a couple of issues: 17:18:50 1) all connections in HAL are determined by strings (ie, I have to look at the names of things to figure out if they're interesting or not) 17:19:26 2) if I decide to bypass that (after the first tiem), and just keep a pointer to the data, then it might go away if e.g. a signal is deleted and I don't know about it 17:19:30 and that slows the process at that end. 17:19:43 it slows the process regardless of where the work is done 17:20:09 I think you always have to ask for data by name, simply because the connections and elements may change at any time 17:20:33 Sure. That was my thinking when I built the tree 17:20:52 refresh does a complete reread of what is available 17:21:18 we can only eliminate at most one set of string manipulation - in the top level (now tcl) program 17:21:44 we still have to have the data selectively retrieved by string compares at the low level 17:23:00 I suppose that the program could look at the component list before each scan, and insure that the components are still there (same for signals) 17:23:29 as long as the comps haven't been unloaded, the pins and params will be valid, even if the values are meaningless 17:23:41 (may be meaningless, that is) 17:25:01 actually, there is a speedup that can be done, but it would be partly in the "query language" 17:25:54 if you want several things from one component (not necessarily with the same name, like the motion pins), you can look up the component ID once, then look for the number in the pin/param scan, rather than checking the name every time 17:26:03 I'm not sure how halcmd does this now 17:28:01 phone 17:28:23 ok - I'm checking things now anyway 17:46:33 (reply when you get a chance - I'll blather away until then) 17:46:34 back 17:46:40 ok - no need to blather 17:47:07 so - this program should only be able to return things with values that may change - pins, params, and sigs, right? 17:47:21 I think so. 17:47:39 all right. and the returned values should be "user-readable" text 17:47:44 (ie, no float conversion crap) 17:48:15 I presume that conversions of that sort are quicker in c than tcl. 17:48:45 it'll be a savings regardless, since C is already printing x.yyyE+zzz 17:49:00 making that 4500.000 is no more work 17:49:21 so, you don't use this to find out what's there, just to get the values back (so I eliminate list xxx) 17:49:27 okay. I like that. 17:49:47 there will still need to be different commands, like "add, del, refresh" 17:50:17 so, you open this up, and send "add pin.name.1 pin.name.2 ..." 17:50:27 I presume that it takes no longer to answer TRUE v FALSE than 1 v 0 17:50:33 eventually, you may send a "del pin.name.useless" 17:50:41 yes it does, but not appreciably more 17:51:08 and probably less than the total C print "0" and the TCL if "0" print "FALSE" 17:51:21 Tickle doesn't type so it makes no difference 17:51:43 it does, everythign is a string, which is inherently a bit worse than "binary" types 17:51:59 but, TCL probably has very well optimized string manipulation because everything depends on that 17:52:11 if 0 $canvas.xx config -fill 17:52:21 true. 17:52:26 whichever you want 17:52:51 so you are thinking that the front end will say to this halxxx add this pin to the list 17:53:00 yes 17:53:11 this will be meant only for a script or interactive mode 17:53:39 then is essence a request for the value of pin xx is a pointer to it's current value. 17:53:47 (I think - it could be done such that you could cat "listfile" | this program, and get the values instead of the names 17:54:16 That is efficient. 17:54:38 that's where the speed increase comes. I think pins are guaranteed to exist as long as the owning comp isn't unloaded 17:54:53 so I look up the name once, and keep a pointer to the data, plus the ID number of the comp 17:55:20 when asked for a refresh, the program looks at the comp list, and if the parent no longer exists, outputs "N/A" instead of the value 17:55:33 that keeps the order as expected by the caller 17:55:49 the same for signals, since those can go away at any time 17:56:07 those may need to be string compares though, since I'm not sure if HAL reuses ID numbers 17:56:07 and listfile is as long or short as the currently needed values 17:56:11 yee 17:56:13 yes 17:56:20 but you don't want to do it that way 17:56:33 you want to use it in script mode, or you get no speedup 17:56:41 it can't retain the data pointers across invocations 17:56:48 mutiple invocations 17:56:52 sure 17:57:23 so you would still need to add and del the watch items 17:57:32 The fastest would be to open, set up the list of vars to watch and return all each request. 17:57:39 and ask for the data whenever you want it 17:57:42 yep 17:57:44 that's the idea 17:57:59 and you add or delete watch vars by name 17:58:14 That works well for me. 17:58:19 (hmmm - maybe "halwatch" is better than "halval") 17:59:01 send it a string of variable names and it prepares those for reads. 18:00:08 "+pin.name.of.pin" to add, "-pin.name.of.pin" to remove 18:00:22 you can use '.' - I don't mind 18:00:29 halwatch might imply that the loop is initiated in the c rather than in the calling program. 18:00:34 true 18:00:53 phone 18:00:57 that can be done as well 18:02:48 ok. signals will have to be string compares - no way around that 18:04:18 phone again 18:04:22 np 18:07:04 bummer - HAL reuses component IDs 18:22:40 ?? signals will have to be string compares - no way around that 18:23:03 there's no "number" asociated with a signal, like the parent ID for a pin or param 18:23:39 right. but once that signal is included in the list of pointers 18:23:55 watch can return it that way? 18:23:59 it may disappear, and be reused with a different name (and type) later 18:24:34 You mean if a delsig or newsig is issued. 18:24:39 so the name still has to be checked 18:24:45 yes, by anyone 18:25:37 but it would not need to be checked on every iteration of the watch. 18:26:13 yes it would - this program wouldn't be notified that some other HAL user has removed the original sig, and replaced it with another one 18:26:49 Well that is just a true of my tree. 18:27:03 I could open another term and send a halcmd 18:27:17 and the tree would not see it until another refresh. 18:27:19 but it would likely still be faster, since it can be checked without going through the full list of sigs (unless it doesn't match, in which case you go through the "setup" phase again) 18:27:23 ok 18:27:32 that's an issue, of course :) 18:31:15 HAL can be a slippery thing to keep hold of. 18:31:32 yes - it's almost too configurable 18:31:49 It's almost like we need a global set of flags. I've changed a value or I've changed a link or I've changed a var. 18:32:21 true, but changed since when (and in what way)? 18:32:45 halwatch doesn't care if the connections change, only if the value changes (or the validity of the item) 18:32:59 your tcl program cares if the connections change (sometimes) 18:33:08 That is as far as we need to go for my configuration stuff. 18:33:12 heh 18:33:48 I see the list of pins, params. and sigs to be very temporary. 18:34:23 I click out a set from the tree, submit it, and every second I get an update to all of em. 18:35:02 this program would be faster most of the time, and about the same the rest of the time, so it can't be worse than halcmd (I mean that in a nice way ;) ) 18:35:19 Yes. 18:35:38 it just needs to check for things like the data no longer being valid 18:35:59 yes. 18:36:01 but at least it would usually avoid the scanning through *everything* like halcmd does 18:36:33 and it would certainly clean up a lot of the stuff on the tcl end 18:37:15 And I can create standard lists of "tuning 18:37:15 yep. if it can remove a lot of the tcl string parsing, that would be a good thing as well 18:37:22 stuff for it. 18:37:27 yep 18:37:48 show me axis 0 tuning 18:38:20 well - that's one thing I considered as a speedup - pass in a hierarchical list of thing to look at: 18:38:36 axis.0.{P,I,D} 18:38:43 the whole bunch of names at once. 18:38:53 yep - sort of regexp-like 18:39:16 I'd want them to be returned in the order sent. 18:39:27 random order. 18:39:35 but also ppmc.0.{encoder.{count,index},stepgen{maxvel,scale}} 18:39:43 yes 18:40:36 * rayh shuffles a bit. 18:40:41 I'll have to look at how the HAL data is stored. I think it's a flat array, with pointers to the parent comp, rather than a hierarchy that you can get to via the comps 18:41:19 If we think graphically for a moment, 18:41:49 I build a set of widgets, some are leds some are numerical displays 18:42:05 and I build them from first to last around the canvas 18:42:41 It is easiest if I associate a HAL name with each but reference their values from first to last. 18:43:22 the order is critical if the names aren't returned as well, so the ordering will be as you request 18:43:23 That way any user can make the display look the way they want rather than the way I want. 18:43:40 Yep. 18:44:03 you'll get a response line like "true 5.001 false 220 16.5 false true true" 18:44:13 you'd better know what's what ;) 18:44:18 exactly 18:44:33 oh yeah, and throw in the occasional "N/A" as well 18:44:55 a test for N/A is fairly easy. 18:45:22 it would always be the same, and only if the item doesn't exist 18:45:42 and done right, tcl ignores any logics after it. 18:45:42 (so you can have a list of things to watch, and don't get screwed if some component isn't loaded) 18:46:43 In fact, we could look to see if iocontrol is available and if not gray out anything that needs it. 18:47:01 you'd have to do that with halcmd though 18:47:04 In these standard tuning or watching lists. 18:47:14 Yes. 18:47:21 (since this wouldn't have a show or list command) 18:47:32 The tree does that during refresh. 18:51:10 well - let me poke around a little with this - I've started ripping stuff out of halcmd (in a new file of course) 18:52:03 k I'll work at making right and left click work on the canvas. 18:52:12 heh - OK. 22:15:45 logger_devel has joined #emc-devel 22:15:45 topic is: "Welcome to the Enhanced Machine Control development place. | Regular Developers' meetings 24/7 !" 22:15:45 Users on #emc-devel: logger_devel rayh anonimasu SWPadnos alex_joni LawrenceG cradek jtr_ @ChanServ 23:04:09 rayh has quit