#emc | Logs for 2006-11-18

[00:22:43] <skunkworks> jmkasunich: To me it would be better to have the free wheeling diodes outside the sense resister. (keep them from rail to rail). That way the back emf doesn't go thru the resister as bad. Am I thinking right or are there downfall to that?
[00:23:22] <jmkasunich> it depends on what you are using the sense resistor for
[00:24:19] <skunkworks> current limit for the h-bridge
[00:24:56] <jmkasunich> current limit only, not close loop current control?
[00:29:48] <skunkworks> current limit only - peak limit shut off
[00:31:33] <jepler> jmkasunich: thank you
[00:31:36] <jepler> I hope someone will find it useful
[00:31:54] <jmkasunich> gonna commit it?
[00:32:48] <jmkasunich> skunkworks: I don't see any problem with putting the resistor in series with the FETs only
[00:33:00] <jmkasunich> just remember - keep the loop inductance down - that includes the resistor
[00:33:25] <jmkasunich> you may have a hard time inserting the resistor without messing up those nice wide low inductance traces
[00:33:41] <skunkworks> right. It is a work of art the way it is.
[00:33:43] <jepler> jmkasunich: not sure
[00:33:50] <skunkworks> Thanks again bbl
[00:33:55] <jepler> time for dinner
[00:34:12] <jmkasunich> jepler: the only thing that occurred to me when reading about it was that the generated manpage would be pretty empty
[00:34:38] <jmkasunich> you could either run the truth table tool, then add comments to the .comp,
[00:34:49] <jmkasunich> or figure out how to pass them thru the tool to the .comp
[00:35:13] <jmkasunich> "comments" = the module description and pin description text that winds up in the man page
[00:54:18] <CIA-8> 03jmkasunich 07HEAD * 10emc2/src/emc/usr_intf/halui.cc: removed jogwheel related stuff from halui - jogwheels are handled in realtime for smoother movement
[01:07:15] <CIA-8> 03jmkasunich 07HEAD * 10emc2/src/emc/usr_intf/halui.cc: removed un-implemented halui pin 'joint-select', and converted 'joint-selected' from u8 to u32 - u8 is being phased out
[01:11:27] <jmkasunich> oops, forgot something...
[01:11:29] <CIA-8> 03jmkasunich 07HEAD * 10emc2/src/emc/usr_intf/halui.cc: removed unused function
[01:11:35] <jmkasunich> thats better
[01:15:31] <A-L-P-H-A> it's call oldagage. it's my new word of the day.
[02:06:43] <CIA-8> 03jmkasunich 07HEAD * 10emc2/configs/univstep/univstep_motion.hal: changed ppmc setup-time, pulse-width, and pulse-space parameters from 8 bit values in increments of 100nS, to 32 bit values in nS - the parameters are rounded to 100nS and range checked before being used
[02:09:15] <CIA-8> 03jmkasunich 07HEAD * 10emc2/src/hal/drivers/hal_ppmc.c: changed ppmc setup-time, pulse-width, and pulse-space parameters from 8 bit values in increments of 100nS, to 32 bit values in nS - the parameters are rounded to 100nS and range checked before being used
[02:56:38] <cradek> jmkasunich: I can see why you wanted to clean up that stupid time specification, but I'm unhappy about it breaking everyone's configs.
[02:57:08] <jmkasunich> everyone?
[02:57:15] <jmkasunich> there aren't that many usc users
[02:59:32] <jmkasunich> I made sure to change the param names (added -ns on the end), so they'll get an error at startup, instead of blindly working with incorrect times
[03:00:08] <jmkasunich> (thats if they were setting the times to something other than the default - if they used the default, there is no change at all)
[03:00:38] <cradek> I suspect everyone based their setup on the sample config, which specifies the times
[03:01:49] <jmkasunich> maybe I'm being a bit of a prick, but I think a one time error and quick edit to the config is a reasonable price to pay
[03:02:18] <jmkasunich> the new scaling is also more "discoverable" - you needed a manual to know that the old one was in 100nS increments, the new one is obvious
[03:02:31] <cradek> that's true
[03:03:18] <jmkasunich> we're down to 10 converter modules, instead of 56 ;-)
[03:03:24] <cradek> it's too bad those were in the sample config. I guess we shouldn't put stuff in there that has sensible defaults.
[03:03:53] <jmkasunich> theres pros and cons
[03:04:08] <jmkasunich> by putting it in, you let people know that it exists
[03:04:49] <cradek> it's traditional to use commented-out commands that set the values to the default
[03:05:06] <jmkasunich> in this case, that would be worse (IMO)
[03:05:17] <jmkasunich> because the commands would continue to have the wrong names
[03:05:34] <jmkasunich> and someday, when somebody uncomments it and it doesnt' work, he's gonna get confused
[03:05:38] <CIA-8> 03jmkasunich 07HEAD * 10emc2/src/hal/drivers/ (hal_ax5214h.c hal_parport.c hal_skeleton.c m5i20_HM5-4E.h): removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
[03:05:38] <CIA-8> 03jmkasunich 07HEAD * 10emc2/src/emc/motion/ (mot_priv.h motion.c): removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
[03:05:38] <CIA-8> 03jmkasunich 07HEAD * 10emc2/src/hal/ (hal.h hal_lib.c halmodule.cc): removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
[03:05:43] <CIA-8> 03jmkasunich 07HEAD * 10emc2/src/hal/utils/ (8 files): removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
[03:05:45] <CIA-8> 03jmkasunich 07HEAD * 10emc2/src/hal/components/ (8 files): removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
[03:05:46] <cradek> I disagree but it's a very minor point
[03:05:48] <CIA-8> 03jmkasunich 07HEAD * 10emc2/src/hal/classicladder/module_rt.c: removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
[03:05:58] <jepler> http://blog.modernmechanix.com/2006/11/17/motor-scooter-burns-lpg/
[03:06:37] <jmkasunich> at least this way they'll all stop working right away, and after answering the question once or twice, the lists and/or IRC will know exactly what is wrong when people ask
[03:07:28] <jmkasunich> jepler: don't run into a wall with that!
[03:10:23] <jepler> I'll write some text on the wiki about these latest changes
[03:12:59] <jmkasunich> that reminds me - I'll update NEWS
[03:14:08] <jepler> one of the rare times that the char-by-char diff is helpful: http://cvs.linuxcnc.org/cvs/emc2/configs/univstep/univstep_motion.hal.diff?r1=1.1;r2=1.2;f=h
[03:17:01] <jmkasunich> pretty
[03:18:00] <jmkasunich> paste the wiki URL when you are done - I'll add it to the NEWS entry
[03:26:16] <jmkasunich> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?UpdatingConfigurationsForDevelopmentVersions
[03:26:20] <jmkasunich> I hate long URLs
[03:28:15] <CIA-8> 03jmkasunich 07HEAD * 10emc2/docs/NEWS: removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
[03:32:29] <jepler> jmkasunich: did I do OK on the Updating... wiki page update?
[03:35:05] <jmkasunich> yeah
[03:35:15] <jmkasunich> the diff tells them everything they need to know
[04:12:18] <jmkasunich> any linux gurus around?
[04:17:35] <A-L-P-H-A> yup. I know >< much.
[04:20:55] <cradek> ?
[04:21:13] <cradek> some people seem to think I'm a guru
[04:24:30] <jmkasunich> slot 2 on the farm might be on its last legs
[04:24:49] <jmkasunich> it had a couple hundred defunct processes
[04:24:57] <jmkasunich> tried to shut it down and it wouldn't
[04:25:15] <jmkasunich> dmesg had some errors that looked diskish
[04:25:26] <cradek> ouch
[04:25:30] <jmkasunich> eventually I powered it down and rebooted
[04:25:44] <jmkasunich> ran an fsck, lots of stuff needed fixed
[04:25:54] <jmkasunich> seems to be running again, we'll see what happens
[04:26:03] <jmkasunich> (its doing a build right now)
[04:26:29] <jmkasunich> speaking of the farm - once I move to VMs, I would like to shut that rack off
[04:26:34] <jmkasunich> but cvs2 is in there...
[04:26:45] <cradek> unlike with windows, if it worked yesterday but it doesn't work today, it's _hardware_
[04:27:07] <jmkasunich> the disk is probably going...
[04:27:10] <cradek> yeah
[04:27:28] <cradek> I don't know what to say about cvs2
[04:27:49] <jmkasunich> the setup is a non-trivial amount of work isn't it?
[04:27:53] <cradek> I do backup all of cvs.linuxcnc.org pretty regularly
[04:28:05] <jmkasunich> even more so now, since its been a while since you did it the first time
[04:28:31] <cradek> depends. if I were rebuilding it locally, I would just install/restore it from tape, it would take about an hour
[04:28:57] <cradek> if I don't have physical access to the machine (can't plug it into my own network) it would be nontrivial.
[04:29:06] <jmkasunich> in this case, I'm talking about moving it from a farm slot to some other PC or VM
[04:29:26] <cradek> for some other machine, just move the hard drive
[04:30:02] <cradek> a VM is harder
[04:30:02] <jmkasunich> even if the new machine is AMD instead of intel, has different disk controller, different nic, and all kinds of other differences?
[04:30:07] <cradek> it
[04:30:16] <cradek> it'll be fine with minor tweaks
[04:31:28] <jmkasunich> scp moves files, not raw data, and dd doesn't do networking, right?
[04:31:55] <cradek> to copy it to another disk or machine you would use dump and restore
[04:32:17] <cradek> just like a tape backup/restore but with no tape (stdout->stdin)
[04:32:32] <jmkasunich> hmm, man dump comes up empty
[04:32:36] <jmkasunich> is that a bsd thing>
[04:32:37] <jmkasunich> ?
[04:32:50] <cradek> all real unixes have dump :-)
[04:33:01] <cradek> you might have to install it in ubuntu
[04:33:02] <jmkasunich> I guess ubuntu isn't real linux
[04:33:05] <jmkasunich> ;-)
[04:34:00] <cradek> by default ubuntu installs openoffice instead of gcc and dump and sendmail and lots of other things
[04:34:25] <cradek> on certain days I would insult it for that
[04:34:42] <jmkasunich> its "unix for human beings" ;-)
[04:35:08] <jmkasunich> ok, I have dump now
[04:36:05] <jmkasunich> looks like dump -f can write to files of the form user@host:file
[04:36:14] <jmkasunich> so I could copy the entire disk elsewhere
[04:36:23] <cradek> yes
[04:36:29] <cradek> you'd do that once for each partition
[04:36:47] <cradek> them "simply" boot from CD or the like, partition and format the new disk, then restore the dumps
[04:36:54] <cradek> then ...
[04:37:31] <jmkasunich> would I need to boot from a bsd disk? or could I use a linux live CD?
[04:37:44] <cradek> you'd need to do it all in bsd
[04:37:57] <cradek> because only bsd can make bsd partitions and install the bsd boot loader
[04:38:04] <jmkasunich> hmm
[04:38:14] <jmkasunich> I think I have bsd boot floppies around here somewhere
[04:38:33] <jmkasunich> but they don't actually give me a system I can use for the restore do they?
[04:38:34] <cradek> unless you're really interested in figuring it out, it would probably be smarter for me to do it and send you the vmware image.
[04:38:56] <jmkasunich> how much disk does that image need?
[04:39:04] <jmkasunich> the image won't be a small file
[04:39:43] <CIA-8> 03compile-farm 07BDI-2.18 (2.2.18-rtl3.0) * 10emc2head/: build FAILED ; see http://linuxcnc.org/compile_farm/emc2head_slot2_log.txt
[04:39:44] <cradek> the whole of cvs.linuxcnc.org is about 1.2 GB
[04:40:07] <jmkasunich> so its big, but not out of the question for an overnight download
[04:40:14] <cradek> compressed, still many hundreds of MB
[04:40:38] <jmkasunich> 700 or less?
[04:40:52] <cradek> maybe, hard to say
[04:41:00] <jmkasunich> not sure you can compress a virtual disk file without messing it up, but who knows
[04:41:18] <jmkasunich> having the cvs server as a VM would be convenient - makes it easy to set one up anywhere
[04:41:49] <cradek> there's really no reason to run it all the time.
[04:42:06] <jmkasunich> once a day would be good just to keep it in sync
[04:42:32] <cradek> /usr/rtlinux/include/mbuff.h: No such file or directory
[04:42:37] <cradek> I bet some files bit the dust
[04:42:38] <jmkasunich> yeah, I saw it
[04:42:47] <jmkasunich> could be
[04:43:02] <jmkasunich> most of the filenames that came up during the fsck were in the actual cvs checkouts
[04:43:19] <jmkasunich> perhaps I should run another fsck and see what it finds
[04:43:41] <cradek> just turn it off, it's not worth any time to fix
[04:45:20] <jmkasunich> you're probably right
[04:45:35] <jmkasunich> but if I see new fsck errors, then I'll _know_ you're right
[04:46:16] <cradek> fsck always looks like an obscenity to me now
[04:46:48] <jmkasunich> there are better tools?
[04:46:57] <cradek> ?
[04:47:02] <jmkasunich> do you know the option to tell fsck "check only"
[04:47:06] <cradek> fsck -n
[04:47:19] <jmkasunich> oh... I thought you meant that the output of the program looked like crap
[04:47:28] <jmkasunich> you mean the name looks like f!ck
[04:48:02] <cradek> yeah because you always type fsck
[04:48:23] <jmkasunich> not just me
[04:48:50] <jmkasunich> "block bitmap differences" are not a good thing, are they?
[04:49:12] <cradek> I don't know what that means
[04:49:30] <cradek> but I think any reported stuff on a second run means things are not going well
[04:49:31] <jmkasunich> 27 of them, and this is 10 minutes after running an fsck and repairing everything
[04:49:36] <cradek> yeah
[04:49:41] <cradek> doesn't seem right
[04:49:45] <cradek> more errors in dmesg?
[04:51:23] <jmkasunich> no
[04:52:27] <jmkasunich> I think its time....
[04:52:39] <jmkasunich> gotta get somebody to play Taps
[04:52:48] <cradek> haha
[04:53:29] <cradek> this reminds me to start the backups before bed
[05:01:55] <jmkasunich> 1104 builds of emc2 on that slot since Nov 2005
[05:02:10] <jmkasunich> (thats when I started logging the passes and fails)
[05:02:26] <jmkasunich> probably a few thousand more before that, and on the other trees
[05:16:48] <cradek> wow, that's several changes a day for a year
[05:16:51] <cradek> we've been active
[05:19:28] <jmkasunich> yep
[05:19:53] <cradek> not just several files, several change sets
[05:22:36] <jmkasunich> http://linuxcnc.org/compile_farm/
[05:22:47] <jmkasunich> added a death notice
[05:24:22] <cradek> RIP
[05:27:49] <jmkasunich> I probably should try to make some good progress on the new farm this weekend
[05:28:48] <cradek> it will be interesting to see what you come up with using vmware
[05:29:09] <jmkasunich> the simplest approach would just be to let them all run just like they do today
[05:29:31] <jmkasunich> but I might get thrashing if multiple builds are going on at once
[05:29:42] <jmkasunich> I was thinking about trying to sequence them somehow
[05:30:03] <jmkasunich> or even having the VMs suspended until a process running on the main box detects a commit, then it starts the VMs one at a time
[05:30:18] <jmkasunich> I did upgrade to 1G of memory
[05:30:23] <jmkasunich> or at least I tried
[05:30:24] <cradek> wonder if you'll even have trouble
[05:30:46] <jmkasunich> does this seem right:
[05:30:47] <jmkasunich> jmkasunich@ke-main-1006:~/emcdev/infrastructure/farm-scripts$ cat /proc/meminfo
[05:30:47] <jmkasunich> MemTotal: 906536 kB
[05:30:55] <cradek> enough ram for firefox can probably hold a dozen simple compiles
[05:31:32] <jmkasunich> one thing I noticed - the vmware processes are -10 priority (pretty high)
[05:31:32] <cradek> you're missing 1xx MB?
[05:31:49] <jmkasunich> they made my box rather sluggish until I reniced them to 5
[05:32:04] <jmkasunich> I wish you could set their priority from the server console
[05:32:26] <jmkasunich> (cause every time you suspend and restart its a new process, and back at -10 again)
[05:32:39] <cradek> huh
[05:32:46] <cradek> seems silly to have them negative
[05:33:44] <jmkasunich> yeah
[05:34:52] <A-L-P-H-A> what's up folks?
[05:34:59] <A-L-P-H-A> nevers are frayed by playing ut99.
[05:35:08] <A-L-P-H-A> nerves
[05:39:33] <cradek> well it's just about bedtime here
[05:39:46] <jmkasunich> past bedtime here (again)
[05:47:07] <A-L-P-H-A> sleep when you're dead
[06:15:49] <CIA-8> 03jmkasunich 07HEAD * 10infrastructure/farm-scripts/index.shtml: updated the main farm page - added a 'news' section
[06:27:53] <lerman_> lerman_ is now known as lerman
[09:02:05] <lerman_> lerman_ is now known as lerman
[09:46:59] <Lerneaen_Hydra> 'lo
[11:27:31] <anonimasu> morning
[11:33:16] <alex_joni> morning all
[13:01:27] <CIA-8> 03alex_joni 07HEAD * 10emc2/docs/src/common/emc2_introduction.lyx: added lots of Index tags
[14:17:20] <CIA-8> 03jepler 07HEAD * 10emc2/configs/nist-lathe/nist-lathe.hal: convert to use counter instead of encoder (no PID control of spindle yet)
[14:53:38] <jepler> hmph -- I couldn't get decent PID control of the spindle
[14:53:48] <alex_joni> jepler: how so?
[14:53:53] <jepler> it doesn't help that there is 1/4 the resolution on 'counter'
[14:54:12] <alex_joni> is the speed somehow constant?
[14:54:17] <alex_joni> or does it oscilate a lot?
[14:54:17] <jepler> I wasn't able to find good tuning parameters
[14:54:28] <jepler> either it would settle at too low a speed, or it would oscillate
[14:54:40] <jepler> but if I increased Igain the speed would just drop to 0
[14:54:49] <alex_joni> too low a speed sounds like a scaling problem
[14:55:11] <alex_joni> that's normal (Igain)
[14:55:22] <alex_joni> remember the normal PID operation is on position, not velocity
[14:55:45] <SWPadnos> not for a spindle ...
[14:55:49] <jepler> this is the sherline spindle controller with an add-on board to permit external control .. the controller has a PID inside it already
[14:56:15] <alex_joni> SWPadnos: no, I meant the PID control inside emc2
[14:56:44] <alex_joni> it takes a position prescription (or expects one at least)
[14:56:46] <alex_joni> I think..
[14:56:48] <SWPadnos> I understand. what I meant is that PID tries to get the controlled value to match the setpoint value - it's just a float, so for a spindle, it would be velocity
[14:57:09] <alex_joni> I see
[14:57:46] <jepler> I understood it more or less like SWPadnos -- as long as my command and feedback are both the same kind of thing, shouldn't it work?
[14:57:56] <SWPadnos> it "should" :)
[14:58:31] <jepler> so is the trouble my tuning, or the additional PID inside the sherline spindle driver box, or inappropriate use of PID at all?
[14:58:44] <alex_joni> usually 2 pid's are trouble
[14:59:06] <alex_joni> but under no circumstances it should settle on zero position
[14:59:11] <SWPadnos> yep, additionally, the timing of the system may make the PID not tunable
[14:59:23] <alex_joni> was the spindle speed consistent with the output from the PID controller ?
[15:00:19] <jepler> alex_joni: before trying to use PID, I was just using 'output duty cycle = requested_rpm * gain + offset' and it gave a consistent resulting RPM, but never exactly matched requested_rpm
[15:00:50] <alex_joni> probably because it's not linear
[15:02:04] <jepler> the last time I tuned it, it gave decent results for the range of 300..1200RPM or so
[15:02:45] <SWPadnos> what's the encoder resolution?
[15:03:13] <jepler> setp encoder.0.position-scale 4096
[15:03:29] <jepler> 1/4 that for counter, which I need to use in order to count the top speed
[15:03:32] <SWPadnos> so 1024 with the counter instead
[15:03:36] <SWPadnos> ok
[15:03:55] <SWPadnos> what speed range azre you trying to get?
[15:03:57] <jepler> (seems like counter could count both edges, but I'm not sure whether that matters to the subject at hand)
[15:04:23] <jepler> the spindle's top speed is something like 1400rpm
[15:04:27] <jepler> not fast by any means
[15:04:37] <SWPadnos> ok. I thought about using both edges, but then noise is a bigger issue
[15:04:40] <SWPadnos> maybe
[15:05:09] <SWPadnos> ok, so just under 24k pulses/sec
[15:05:27] <SWPadnos> and you're using PWM/PDM to send speed commands?
[15:05:31] <jepler> yes
[15:05:38] <SWPadnos> what's the BASE_PERIOD?
[15:06:08] <jepler> I can check .. but I was working with commanded speeds of 5..10 RPS so the base period is not the issue
[15:06:14] <jepler> brb, life is calling
[15:06:18] <SWPadnos> ok
[15:06:38] <SWPadnos> slow speeds may be more if an issue than high speedss, since granularity pokes its head into the picture
[15:06:43] <SWPadnos> s/if/of/
[15:13:25] <jepler> I think I'll leave this for some other time
[15:14:00] <jepler> it would probably be more fruitful to make a component that does the nonlinear conversion from duty cycle to speed, anyway
[15:14:04] <SWPadnos> if you can stick the files on unpy.net, maybe someone else can take a look and see if any suggestions pop into mind
[15:15:20] <alex_joni> jepler: lookup table?
[15:15:20] <alex_joni> :D
[15:15:41] <alex_joni> jepler: seems a float version of the lookup2comp would be needed :)
[15:15:43] <jepler> alex_joni: something like that
[15:15:57] <alex_joni> hmm.. this sounds a LOT like axis comp
[15:16:17] <alex_joni> wonder if you can't set spindle as an A axis, and use the compensation
[15:16:19] <SWPadnos> sort of - a table is pretty icky when an equation might suffice :)
[15:17:28] <alex_joni> remember: "never use the character '_' in lyx index entries"_
[15:17:44] <alex_joni> you can use ':' and '-' but not '_'
[15:18:05] <SWPadnos> I try to not use any characters in lyx entries ;)
[15:18:14] <alex_joni> lyx index entries
[15:20:45] <SWPadnos> well, I don't really do either lyx entries or lyx index entries all that well, so ... :)
[15:44:47] <alex_joni> lucky you
[15:47:03] <Lerneaen_Hydra> why would you need more than 1-10 pulses per turn for controlling spindle speed with a PID loop? a revolution doesn't take that long and accuracy isn't all that important
[15:47:23] <Lerneaen_Hydra> +- a few % doesn't matter much at all
[15:47:30] <SWPadnos> it depends on how fast the PID loop runs
[15:47:56] <Lerneaen_Hydra> oh, so you mean that you get issues if the loop is faster than the collected input data?
[15:48:19] <Lerneaen_Hydra> so it sees: move one increment, no movement, no movement, no movement, move one increment
[15:48:39] <Lerneaen_Hydra> is it possible to have different speeds for different PID loops?
[15:48:40] <SWPadnos> since we con't have "real" velocity (it's done as current counts - old counts), granularity could be a problem at low speeds
[15:48:45] <CIA-8> 03alex_joni 07HEAD * 10emc2/docs/src/Master_User.lyx: changed input to include, updated to 2.1
[15:48:45] <SWPadnos> right
[15:48:59] <SWPadnos> you can do that, but PID inside PID is generally regarded as bad
[15:49:02] <Lerneaen_Hydra> maybe some type of smoothing would be good
[15:49:11] <SWPadnos> and you can't change the speed from within a running HAL
[15:49:15] <SWPadnos> yes
[15:49:28] <Lerneaen_Hydra> can you have <1 increments?
[15:50:06] <SWPadnos> how do you mean?
[15:50:45] <CIA-8> 03alex_joni 07HEAD * 10emc2/docs/src/gui/ (axis.lyx tkemc.lyx): lots more indexes
[15:50:45] <CIA-8> 03alex_joni 07HEAD * 10emc2/docs/src/hal/ (drivers.lyx intro.lyx): lots more indexes
[15:50:45] <CIA-8> 03alex_joni 07HEAD * 10emc2/docs/src/config/ (ini_config.lyx ini_homing.lyx stepper.lyx): lots more indexes
[15:50:48] <CIA-8> 03alex_joni 07HEAD * 10emc2/docs/src/install/installing_emc2.lyx: lots more indexes
[15:51:14] <SWPadnos> ok - time for breakfast and stuff. bbl
[15:51:17] <Lerneaen_Hydra> if you have this now: 1,0,0,0,1,0,0,0,1,0,0,0 (where 1/0 is increment/no increment), would the motion interpreter accept "0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25," as an increment?
[15:52:05] <Lerneaen_Hydra> so that there would be some module that takes the time between one increment and the next and spreads that increment out over the preceeding no-increment bits
[15:52:12] <Lerneaen_Hydra> if that makes any sense
[15:52:40] <alex_joni> Lerneaen_Hydra: what you mean is have a stepgen or the like, which synchronizes to the outside
[15:52:52] <alex_joni> but it's not how it currently works.. it could be done though
[15:53:07] <Lerneaen_Hydra> I don't think that's what I meant, as this was input I was talking about
[15:53:08] <alex_joni> still.. you lose all the advantages of PID
[15:53:42] <alex_joni> spindle->parport->stepgen(sync)->counter->pid
[15:53:47] <alex_joni> but it's twisted
[15:59:11] <Lerneaen_Hydra> as I understand it, the current way that the PID loop accepts velocity is delta-position (position relative to the previous pid_loop_period), and you get issues if delta-position is irregular because of aliasing artifacts, so if the PID loop is much faster than the input from the spindle (say because the spindle is slow or has few holes/turn) you can get uneven delta-position even if the...
[15:59:14] <Lerneaen_Hydra> ...speed is constant. One was of smoothing this out would be by slowing the PID loop down considerably (as a spindle PID doesn't need to be all that responsive, a check every 10ms or so is probably enough). Another method of doing the same thing if all PID loops have to have the same period is by instead of having delta-position relative to the previous position, one could have it relative...
[15:59:14] <Lerneaen_Hydra> ...to the position X ms ago, and then divide the new delta-position by X ms, to get an average of the speed, and thereby reducing/removing aliasing.
[15:59:42] <alex_joni> right
[16:00:21] <Lerneaen_Hydra> but something with that was bad?
[16:00:27] <alex_joni> nope
[16:00:43] <Lerneaen_Hydra> what was the bit about stepgen about?
[16:01:09] <alex_joni> you can do the last part you talked about using a stepgen-like component
[16:01:17] <Lerneaen_Hydra> oh, I see
[16:01:37] <Lerneaen_Hydra> that's actually very close to stepgen now that I think about it
[16:01:50] <Lerneaen_Hydra> except it's inverse
[16:01:51] <alex_joni> that's why I chose stepgen ;)
[16:02:24] <Lerneaen_Hydra> I still don't see how I loose the advantages of PID though
[16:02:33] <Lerneaen_Hydra> (in this case, wouldn't PI be enough?)
[16:03:07] <alex_joni> probably
[16:03:37] <Lerneaen_Hydra> what's the issue?
[16:03:43] <alex_joni> no idea ;)
[16:03:51] <Lerneaen_Hydra> haha
[16:03:53] <alex_joni> trying not to think too hard :D
[16:03:56] <Lerneaen_Hydra> good idea
[16:21:48] <jepler> Lerneaen_Hydra: you can use the 'lowpass' component to smooth the granular output, but when you smooth the PID feedback value it decreases the usefulness of I or D (I forget which one) in the PID
[16:22:08] <Lerneaen_Hydra> probably the D bit
[16:22:37] <Lerneaen_Hydra> as it's more evened out (I however should be just as strong, as it's just spread out over a longer time, but will result in the same integral)
[16:22:54] <Lerneaen_Hydra> IMO a spindle doesn't really need a PID as much as PI
[16:25:38] <CIA-8> 03jepler 07HEAD * 10emc2/src/hal/classicladder/arrays.c: do not directly include mbuff.h
[16:28:20] <alex_joni> bbl
[16:29:08] <CIA-8> 03alex_joni 07HEAD * 10emc2/docs/src/gcode/main.lyx: lots more indexes
[16:29:10] <CIA-8> 03alex_joni 07HEAD * 10emc2/docs/src/gui/mini.lyx: lots more indexes
[17:17:30] <SWPadnos_> SWPadnos_ is now known as SWPadnos
[17:30:13] <jmkasunich> re: closed loop spindle speed control
[17:30:30] <jmkasunich> need two things: speed feedback that doesn't suffer from severe granularity
[17:30:44] <jmkasunich> and a PID loop that runs a little slower
[17:30:55] <jmkasunich> actually, the second is just one approach to getting the first
[17:31:21] <jmkasunich> it _is_ possible to run a PID loop in a different thread than all the other PID loops
[17:32:06] <jmkasunich> my guess is that you don't want much, if any, D gain
[17:32:20] <jmkasunich> because the granularity of the speed feedback means that the D term is very very noisy
[17:34:01] <SWPadnos_> SWPadnos_ is now known as SWPadnos
[17:53:50] <jmkasunich> if you are using a ddt block to generate the speed feedback from position feedback, you should run it in the same slower thread as the PID loop
[18:05:00] <alex_joni> hi jmk
[18:05:12] <jmkasunich> hi alex
[18:05:16] <alex_joni> what's up?
[18:05:55] <jmkasunich> filling out a rebate form...
[18:06:10] <alex_joni> way nicer than working on docs :(
[18:10:57] <alex_joni> heh.. braniac is nice today
[18:12:46] <Lerneaen_Hydra> jmkasunich: re: PID spindle: that just about sums it up :)
[18:13:19] <Lerneaen_Hydra> what about a PI loop?
[18:13:44] <jmkasunich> PI is nothing more than PID with Dgain set to zero
[18:13:59] <Lerneaen_Hydra> yeah, of course
[18:14:23] <Lerneaen_Hydra> how much processing power does the derivative bit take?
[18:14:30] <jmkasunich> not much
[18:14:44] <jmkasunich> a subtract, a multiply, and an add
[18:14:52] <jmkasunich> approximately
[18:14:53] <Lerneaen_Hydra> oh, so it's not worth making a PI loop then, rather than just using a PID with zero D
[18:15:13] <Lerneaen_Hydra> wouldn't you need a divide?
[18:15:32] <Lerneaen_Hydra> oh, the subtract maybe does that
[18:15:33] <jmkasunich> I think I multiply by the recipoical
[18:15:39] <Lerneaen_Hydra> oh, ok
[18:15:42] <jmkasunich> although I can't spell it ;-)
[18:15:56] <alex_joni> reciprocal ?
[18:16:39] <Lerneaen_Hydra> reciprocal of a is 1/a iirc
[18:16:41] <jmkasunich> yeah, that one
[18:17:01] <Lerneaen_Hydra> * Lerneaen_Hydra is not completely used to the english terms
[18:56:46] <Lerneaen_Hydra> alex: do you feel extra 1337 today?
[18:56:53] <Lerneaen_Hydra> ;)
[18:58:44] <skunkworks> the shaft that ran the resover on the servos are .24" None of our flex couplers smush down that far... Going to have to add a bit of shim stock around the shaft.
[18:58:52] <skunkworks> relsolver enve
[18:59:07] <skunkworks> even jeeze
[19:00:24] <SWPadnos> what's a relsolver? ;)
[19:00:53] <skunkworks> :) what they use now days on high end systems ;)
[19:01:42] <SWPadnos> no wonder I've never heard of them
[19:01:46] <SWPadnos> if I have to ask ...
[19:02:08] <skunkworks> I have said before - I can't spell my self out of a paper bag
[19:02:21] <SWPadnos> heh
[19:02:42] <SWPadnos> that's probably fine, I've never seen a paper bag that would release you for spelling well
[19:03:55] <skunkworks> SWPadnos: where are you headed?
[19:04:01] <SWPadnos> Washingont DC
[19:04:06] <SWPadnos> err - Washington ;)
[19:04:13] <skunkworks> state?
[19:04:15] <SWPadnos> DC
[19:05:36] <skunkworks> that isn't too far from where you are I guess
[19:05:49] <SWPadnos> about 500 miles
[19:06:20] <SWPadnos> or 1.5 hours by small jet
[19:07:09] <skunkworks> your personal lear? ;)
[19:07:16] <SWPadnos> err -yeah
[19:07:25] <SWPadnos> I just share it with United Express most days ;)
[19:07:35] <skunkworks> I have 2 but one is for parts ;)
[19:07:44] <SWPadnos> yeah - like a Ferrari
[19:07:48] <SWPadnos> Ferrarri
[19:07:54] <SWPadnos> Ferrrrrrarrrrrri!
[19:08:30] <skunkworks> I know the last one is spelled wrong - but the first two you could have snuck by
[19:08:38] <SWPadnos> heh
[19:08:52] <SWPadnos> I think they actually have two pairs of 'r's
[19:09:18] <skunkworks> Oh well - time to get carbon on my hands. (walk over to the shop and play)
[19:09:24] <SWPadnos> have fun
[19:09:31] <skunkworks> I usually do ;)
[19:12:07] <Lerneaen_Hydra> http://video.google.co.uk/videoplay?docid=-5157433404610777048&q=rainbow <-- O_o
[19:12:20] <Lerneaen_Hydra> something is rather wrong with that video
[19:14:04] <SWPadnos> yep -they recorded that as a joke at some point - it was never shown on air
[19:14:47] <Lerneaen_Hydra> pity that
[19:14:51] <SWPadnos> heh
[20:02:25] <robin_sz> there used to be a lot of that sort fo thing floating about inside TV stations
[20:03:04] <robin_sz> the BBC had "christmas tapes" of funny clips and out-takes ... nto any more though
[20:04:31] <robin_sz> seen les_w?
[20:04:53] <robin_sz> logger_emc, seen les_w?
[20:04:53] <robin_sz> I'm logging. Sorry, searching removed.
[20:05:04] <robin_sz> bah useless bot
[20:37:23] <anonimasu> robin_sz: it's a long time since last..
[20:37:27] <anonimasu> 2 months perhaps
[20:37:34] <robin_sz> coo
[20:38:13] <A-L-P-H-A> cause he hates you.
[20:38:14] <A-L-P-H-A> :)
[20:38:16] <A-L-P-H-A> what'sup?
[20:39:13] <anonimasu> I've spent most day in the sofa..
[20:39:14] <anonimasu> moving around hurts
[20:39:18] <A-L-P-H-A> on
[20:39:46] <anonimasu> gah..
[20:40:02] <A-L-P-H-A> that's another word that's odd... sofa/couch, soda/pop/coke,
[20:40:32] <anonimasu> most I did today was to mill a slot in some iron..
[20:40:42] <anonimasu> and tram/square my vise..
[20:41:03] <anonimasu> seems like my spindle works well in iron too
[20:41:32] <anonimasu> I foresee a pump with variable geometry comming up :)
[20:42:02] <Lerneaen_Hydra> anybody here know matlab?
[20:42:28] <A-L-P-H-A> I knew a Matlock on TV.
[20:42:34] <A-L-P-H-A> Matlab stayed in the computer lab.
[20:42:45] <Lerneaen_Hydra> if so, is there a function that given an input a+bi returns b?
[20:42:58] <Lerneaen_Hydra> the equivalent of Im(Z)
[20:43:05] <A-L-P-H-A> np
[20:43:16] <A-L-P-H-A> not that I know of.
[20:43:26] <A-L-P-H-A> but I honestly never used matlab much.
[20:43:29] <A-L-P-H-A> I used maple V.
[20:43:30] <anonimasu> though my speed was a bit high.. so it got pretty hot without coolant..
[20:44:20] <Lerneaen_Hydra> ah, it's apparently called imag(z)
[20:44:54] <jmkasunich> cd ~/emcdev
[20:44:55] <jmkasunich> oops
[20:46:19] <anonimasu> #
[20:46:49] <A-L-P-H-A> sudo rm -Rf /
[20:47:33] <Lerneaen_Hydra> * Lerneaen_Hydra loves cat /dev/urandom /dev/fb0
[20:47:38] <Lerneaen_Hydra> err
[20:47:48] <A-L-P-H-A> you love cats.
[20:47:50] <A-L-P-H-A> that's nice
[20:47:52] <Lerneaen_Hydra> indeed
[20:48:05] <A-L-P-H-A> I see cats as useful to kill mice.
[20:48:06] <A-L-P-H-A> that's about it.
[20:48:20] <Lerneaen_Hydra> cats are soft
[20:48:24] <Lerneaen_Hydra> at least the ones I have are
[20:48:40] <A-L-P-H-A> if I had a farm, I'd keep cats to kill field mice.
[20:48:45] <A-L-P-H-A> dogs aren't too good at that.
[20:48:59] <A-L-P-H-A> Animals better earn their keep.
[20:49:13] <jmkasunich> bah..
[20:49:22] <jmkasunich> A-L-P-H-A is just being a scrooge
[20:49:39] <Lerneaen_Hydra> my cats seem to be about as soft as rabbits
[20:49:54] <Lerneaen_Hydra> which is rather nice as they often come and sit in one's lap
[20:50:00] <Lerneaen_Hydra> *ones
[20:50:07] <jmkasunich> A-L-P-H-A: just for you http://kittenwar.com/c_images/2006/09/02/93845.2.jpg
[20:52:50] <A-L-P-H-A> I rather have another type of pussy sit on my lap. that cat is cute... I never said cats aren't cute. I just think they're not as affectionate as dogs.
[20:53:12] <jmkasunich> they're affectionate _differently_ than dogs
[20:53:18] <jmkasunich> not as needy
[20:54:35] <Lerneaen_Hydra> IMO dogs are too much like hyper 13 year olds on crack
[20:54:45] <jmkasunich> depends on the dog
[20:54:54] <Lerneaen_Hydra> yeah, definetly
[20:54:55] <anonimasu> more on the owner then the dog I think
[20:54:56] <A-L-P-H-A> some are. some are way more passive.
[20:55:03] <anonimasu> :)
[20:55:13] <A-L-P-H-A> depends on the breed, and that individual dogs personality.
[20:55:16] <anonimasu> understimulated dogs get ADD :p
[20:55:22] <Lerneaen_Hydra> ADHD?
[20:55:36] <anonimasu> or well 13 yo on crack ;)
[20:55:46] <jmkasunich> we have both: http://home.att.net/~jmkasunich/Pics/steps.jpg
[20:55:58] <anonimasu> )
[20:56:08] <anonimasu> :)
[20:56:20] <Lerneaen_Hydra> :)
[20:56:51] <Lerneaen_Hydra> oh, btw jmk, how was your quick stop in borkland?
[20:56:59] <jmkasunich> quick
[20:57:16] <A-L-P-H-A> isn't that the cat you etched out in plexi?
[20:57:35] <jmkasunich> the inside of an airport is an artificial environment, tells you nothing much about the city/country you are in
[20:57:45] <jmkasunich> A-L-P-H-A: that was jepler that etched the cat
[20:57:57] <A-L-P-H-A> oh. :) ops.
[20:58:48] <A-L-P-H-A> those two pets look like they shed like mad.
[20:58:54] <Lerneaen_Hydra> oh, you weren't even outside of the airport?
[20:58:56] <A-L-P-H-A> though the cat's cutter than the dog.
[20:58:59] <jmkasunich> the dog yes - the cat not so much
[20:59:01] <jmkasunich> http://home.att.net/~jmkasunich/Pics/bench3s.jpg
[20:59:16] <jmkasunich> she liked to hand out with me while I did stuff in the basement
[20:59:24] <Lerneaen_Hydra> aww, I get the same thing here with my cat
[20:59:24] <A-L-P-H-A> guess the cat likes static bags?
[20:59:34] <Lerneaen_Hydra> likes to sit on whatever paper you
[20:59:39] <Lerneaen_Hydra> 're writing on
[20:59:53] <jmkasunich> yep... "thou shalt not read, thou shalt pay attention to me"
[21:00:25] <A-L-P-H-A> I'm narcissistic, I don't want to compete against a pet for my own attention.
[21:00:31] <jmkasunich> unfortunately that cat died a few months ago... we have one cat left
[21:00:43] <jmkasunich> he likes to sleep with people, during the day he's more independent
[21:00:45] <Lerneaen_Hydra> after petting the cat for a bit she usually goes and sits under a lamp close by and watches
[21:00:46] <A-L-P-H-A> I'm sorry to hear that.
[21:00:50] <Lerneaen_Hydra> :(
[21:01:14] <A-L-P-H-A> but aren't cats supposed to be nocturnal?
[21:01:31] <Lerneaen_Hydra> depends on the cat and season I've found
[21:01:31] <jmkasunich> cats are "whenever-nal"
[21:01:51] <Lerneaen_Hydra> they still sleep a lot all the time though
[21:01:56] <jmkasunich> oh yeah
[21:02:26] <A-L-P-H-A> my little sister wants a shi-poo... where it's a shitzhu crossed with a poodle.
[21:02:38] <jmkasunich> ugh
[21:02:43] <jmkasunich> I don't like little dogs
[21:02:51] <jmkasunich> hyperactive anklebiters
[21:02:53] <A-L-P-H-A> she's a girl, in the city.
[21:03:38] <Lerneaen_Hydra> what do you get if you cross a bulldog with a chinese shitzhu?
[21:03:39] <Lerneaen_Hydra> a bullshit
[21:03:40] <A-L-P-H-A> A friend has a English sheep dog in her office... it nips at people's ankles if they don't walk fast enough to keep up with the 'herd'
[21:04:09] <A-L-P-H-A> kinda funny when I heard that... dog herds people.
[21:14:55] <A-L-P-H-A> rebooting to windows to play games
[21:57:20] <robin_sz> jmkasunich, my cat is very inquisitive
[21:57:44] <robin_sz> whenever a strange cat somes into the house, he tries to take it apart to see how it works
[22:00:34] <Lerneaen_Hydra> ...
[22:00:36] <Lerneaen_Hydra> what?
[22:00:43] <Lerneaen_Hydra> he tries to take the other cat apart?
[22:00:53] <Lerneaen_Hydra> like, kill it and perform an autopsy?
[22:08:23] <robin_sz> uh huh
[22:08:49] <robin_sz> well, not quite
[22:09:05] <robin_sz> open it up and perform an autopsy, yes,
[22:09:11] <Lerneaen_Hydra> but not kill it?
[22:09:13] <Lerneaen_Hydra> O.o
[22:09:15] <robin_sz> he doesnt seem too bothered whether thay are dead or not
[22:09:30] <Lerneaen_Hydra> you must have a messy doorway
[22:10:02] <robin_sz> this is a 16lb cat .. not fat, pure killign machine
[22:11:51] <robin_sz> it catches and eats full grown rabbits and eats everything except the head and front paws and some some squidgy bit of intenstine it always leaves
[22:12:18] <robin_sz> fur, rear legs, all other bones just go ...
[22:12:19] <Lerneaen_Hydra> O.O
[22:12:38] <robin_sz> it leaves the headm but eats the ears ... now thats weird
[22:12:49] <robin_sz> and rabbit witout ears looks weird
[22:26:55] <jmkasunich> do you actually _see_ it eat all that stuff?
[22:27:01] <alex_jon1> eww
[22:27:15] <jmkasunich> seems like volume of cat's stomach << volume of 90% of full grown rabbit
[22:27:37] <jmkasunich> gotta wonder if it isn't dragging parts away and saving them for later
[22:27:54] <Lerneaen_Hydra> looks like robins cat has an inside larger than the outside
[22:28:01] <Lerneaen_Hydra> handy storage
[22:28:24] <alex_jon1> alex_jon1 is now known as alex_joni
[22:28:45] <jmkasunich> alex_joni got grossed out and had to leave ;-)
[22:28:50] <alex_joni> heh.. close
[22:28:52] <Lerneaen_Hydra> drat, missed
[22:29:01] <alex_joni> found out I had 2 irssi's running
[22:29:13] <alex_joni> * alex_joni wonders what ctrl-a-a does on screen
[22:29:30] <Lerneaen_Hydra> if I were to change my name to alex_joni, could alex take that name back because it's registered?
[22:29:36] <Lerneaen_Hydra> and he knows the pw?
[22:29:42] <alex_joni> Lerneaen_Hydra: yes
[22:29:48] <Lerneaen_Hydra> cool
[22:30:06] <alex_joni> try /ns GHOST nick pass
[22:30:35] <Lerneaen_Hydra> I can't ghost myself
[22:30:42] <Lerneaen_Hydra> tell me your pw ;)
[22:30:46] <alex_joni> sure you can't :)
[22:39:35] <skunkworks> well the nice encoder we got on ebay is bad.
[22:39:49] <Lerneaen_Hydra> then it's not nice
[22:39:58] <skunkworks> right
[22:40:29] <skunkworks> it has a 339 comparator in it. I get nothing on any of the inputs to the comparator
[22:41:07] <skunkworks> Ir led - and it seems to be working (thanks to the cam corder)
[22:44:05] <skunkworks> so either there is a peice of crap on the sensor - or the sensor module is bad or the lm339 is bad or or or something else
[22:46:58] <robin_sz> air line!
[23:34:08] <Lerneaen_Hydra> 'night people
[23:35:29] <alex_joni> g'night all
[23:35:38] <anonimasu> ddork:night Lerneaen_Hydra
[23:35:41] <anonimasu> wrong place..
[23:35:45] <anonimasu> night lh..
[23:35:44] <Lerneaen_Hydra> err..
[23:35:50] <Lerneaen_Hydra> right,
[23:35:52] <Lerneaen_Hydra> night