#emc-devel | Logs for 2007-12-29

[03:03:15] <cradek> * cradek grumbles bitterly
[03:03:51] <jmkasunich> net troubles?
[03:04:15] <cradek> yes, it's been bad all day, it seems better now
[03:04:40] <jmkasunich> raining there too, eh?
[03:04:47] <cradek> nope, not even that
[03:07:36] <jmkasunich> I'm trying to figure a minimum effort, minimum probability of error approach to collecting screw comp data
[03:08:17] <cradek> borrow a glass scale from somewhere?
[03:08:39] <jmkasunich> no idea where, and that would need interfacing and such
[03:08:56] <jmkasunich> I have a 0.200 x 0.0001 indicator, and a set of gage blocks
[03:09:35] <jmkasunich> I want to record data sets consisting of coordinate (as seen by emc), direction of approach, indicator reading, and gage block stack
[03:09:40] <jmkasunich> a couple hundred of those
[03:09:55] <jmkasunich> mdi'ing all the moves gets old fast
[03:10:09] <cradek> as would shuffling the blocks
[03:10:16] <cradek> how much travel are you talking?
[03:10:23] <jmkasunich> 3.3" for Z
[03:10:31] <jmkasunich> (which is what I'm doing first)(
[03:10:48] <jmkasunich> thats only 15 or so block combinations
[03:10:49] <cradek> do you have largeish blocks?
[03:11:06] <cradek> I guess sets have a couple of 1"
[03:11:13] <jmkasunich> yeah, its a semi-binary approach
[03:11:34] <jmkasunich> .1 .2 .4 .5 1.0 2.0 4.0
[03:11:47] <jmkasunich> oops, .3 in there too
[03:12:00] <cradek> doesn't sound too bad
[03:12:07] <cradek> the real problem is not making a mistake
[03:12:11] <jmkasunich> right
[03:12:35] <jmkasunich> I was thinking in terms of a g-code program with o loops that would move the machine, pause while I read (M0), then move again
[03:12:37] <cradek> a second person would probably help (doublecheck the readings and do the recording)
[03:12:44] <jmkasunich> and at the right time would tell me to replace the blocks
[03:13:01] <cradek> that seems quite possible
[03:13:12] <jmkasunich> I know its possible
[03:13:19] <jmkasunich> but my brain is not cooperating
[03:13:19] <cradek> I wish O...repeat was in 2.2
[03:13:54] <cradek> how many readings do you want?
[03:14:06] <jmkasunich> EMC supports 256
[03:14:12] <cradek> you can do .190 of them at a time
[03:14:24] <jmkasunich> I was thinking something like every 0.030 inches
[03:14:29] <cradek> .015? .030?
[03:14:50] <jmkasunich> that would give me 110 over the range, and 6ish readings per turn of the screw (0.200 pitch)
[03:14:50] <cradek> so only 6 readings per stack
[03:15:08] <jmkasunich> 12, I'd do up and down without changing the stack
[03:15:16] <cradek> ah
[03:15:35] <cradek> I bet G91 relative mode is your friend
[03:15:56] <jmkasunich> that doesn't change the coordinate display does it?
[03:16:14] <cradek> no
[03:16:36] <jmkasunich> so if I set G91 I can just do Z-0.030, and Z+0.030
[03:16:45] <jmkasunich> up arrow to repeat on or the other as desired
[03:17:01] <cradek> yes
[03:17:03] <jmkasunich> read the display, write down that value and the indicator reading
[03:19:04] <fenn> maybe you should build one of those 6-axis block stacker robots first
[03:19:26] <jmkasunich> I doubt it could wring gage blocks
[03:20:49] <cradek> it could surely drop them on the concrete floor though
[03:23:20] <jmkasunich> what I really want is a touch probe
[03:23:44] <jmkasunich> although that would require a lot more gage block stacking, since I'd need one stack per point
[03:24:13] <jmkasunich> more accurate though - using the 0.200 range of the indicator also incorporates any indicator error over that range into the readings
[03:24:16] <cradek> what can you stack them on that's stable and (most importantly) perpendicular to travel?
[03:24:33] <jmkasunich> I have a very smoothly ground parallel clamped to the table
[03:24:53] <fenn> you could model the error functions in the screw and only measure at the peaks of cyclical errors
[03:24:54] <cradek> does it indicate flat with your .0001?
[03:25:14] <jmkasunich> that wouldn't tell me anything
[03:25:21] <cradek> I was just thinking that
[03:25:26] <fenn> it would tell you the systematic errors
[03:25:36] <fenn> er, non-periodic errors
[03:25:49] <jmkasunich> the indicator reads vertical travel
[03:26:04] <jmkasunich> measuring the change in the parallel as Y or X changes doesn't tell me anything about Z
[03:26:14] <jmkasunich> Z could be 3 degrees off vertical and it wouldn't show
[03:26:22] <cradek> you could swing the indicator like tramming
[03:26:30] <jmkasunich> it would only tell me if the top of the parallel is parallel to X
[03:26:33] <jmkasunich> cradek: good point
[03:26:46] <jmkasunich> to be honest, I wasn't even worrying about perpendicularity error
[03:26:53] <jmkasunich> that would be a linear term, cosine error
[03:28:17] <fenn> better to check it before you make a lot of bad measurements
[03:28:29] <cradek> yep
[03:28:37] <jmkasunich> even a 1 degree error (0.017" per inch off vertical) would only cause a cosine error of 0.0002 per inch
[03:29:32] <jmkasunich> I can measure the off-vertical at any time, and correct the data
[03:29:58] <jmkasunich> (the data will be going into a spreadsheet before I make the table - I want to plot the errors, see periodic vs random, etc
[03:46:06] <cradek> I have the feeling screw comp is about to be tested
[03:49:22] <jmkasunich> yep
[03:49:33] <jmkasunich> although I certainly hope it has already been tested
[03:50:03] <cradek> hmmmm hmm hmmm hmmmm I think my mom is calling
[03:50:42] <jmkasunich> whats she calling you?
[03:54:03] <jmkasunich> the real test will be when I get to the Y axis
[03:54:15] <jmkasunich> Z is a preloaded ballscrew, I expect little or no lash
[03:54:28] <jmkasunich> Y is acme, it it will be compensating for both error and lash
[03:54:36] <cradek> that will be very interesting
[05:20:11] <tomp2> jepler: i been playing with halui, and it draws Signal widgets in different position each time.
[05:20:13] <tomp2> That seems impossible unless i cant recognize some random() like call.
[06:24:01] <jmkasunich> took a couple hours, but I got all the data
[06:24:10] <jmkasunich> an O-word program helped a lot
[06:24:22] <jmkasunich> moved the indicator, and told me when to change blocks
[12:09:47] <alex_joni> cradek: yay, this sounds like they finally did something about udev: https://mail.rtai.org/pipermail/rtai/2007-December/018359.html
[14:50:51] <jepler> anyone know what tomp2 meant?
[14:53:01] <alex_joni> hmm.. I think he meant halgui
[15:04:49] <cradek> do you understand michael's report?
[15:05:55] <cradek> I think he's talking about a bug with run-from-line
[15:06:02] <cradek> (I thought you fixed those)
[15:06:14] <cradek> when I.m selecting vector 25 and resume from this line, EMC move to end
[15:06:17] <cradek> of 24 vector and then execute 25.
[15:06:24] <cradek> ^^ but I don't think it ever worked this way
[15:11:01] <jepler> oh -- I don't care about halgui.
[15:11:39] <jepler> and maybe we should just take run from line off the axis menu
[15:11:47] <jepler> bbl
[15:19:57] <alex_joni> cradek: I didn't understand that report
[15:31:16] <cradek> I think he is saying that 2.1 used to work by moving to the end of the previous line when you do run from line (I think this is wrong), but 2.2 gives a following error when you use run from line
[15:31:32] <cradek> (and I haven't tried it)
[16:00:44] <jmkasunich> odd - I left my machine on overnight (running EMC, but idle), and this morning I have the "unexpected realtime delay" popup
[16:15:49] <cradek> if it's still running, you could see how many you have with that hal param
[16:23:47] <jmkasunich> sleepy computer - it took several seconds just to bring up a shell
[16:25:16] <jmkasunich> what param?
[16:25:34] <jmkasunich> only one I saw that seemed remotely related was motion.servo-overruns, and it was zero
[16:25:57] <cradek> yeah that's the one
[16:26:04] <cradek> did your message say 'on task N'?
[16:26:34] <jmkasunich> yes, N = 1
[16:26:45] <cradek> hm, that's the "other" error then
[16:27:02] <cradek> jepler added it recently. it comes from rtai instead of timing tests
[16:29:22] <jmkasunich> it was a handy message before I added rtai_smi to the list of modules to be loaded, because it would remind me to load that
[16:29:38] <jmkasunich> I think this is the first time I've left the shoptask powered overnight
[16:31:34] <jmkasunich> I don't think I'm going to sweat it too much
[16:31:49] <jmkasunich> I have a few hundred numbers to type into a spreadsheet
[16:33:43] <cradek> that sounds so exciting
[16:34:00] <jmkasunich> yeah, I can't wait
[16:34:08] <jmkasunich> thats why I'm playing a game right now instead
[16:34:50] <jmkasunich> actually I am kind of eager to graph the results and see what it looks like
[16:35:17] <cradek> yeah
[16:35:39] <jmkasunich> just do it, I guess
[16:35:47] <cradek> are your screw pitch and indicator length different so you might see which one causes a particular periodicity?
[16:35:58] <jmkasunich> yes and no
[16:36:07] <jmkasunich> no, the indicator and screw are both 0.200 pitch
[16:36:28] <jmkasunich> but yes, cause the program sometimes added 0.100 of gage blocks to the stack and sometimes added 0.200
[16:36:40] <jmkasunich> (depending on where the readings were in the indicator range)
[16:37:25] <jmkasunich> I told it not to make readings within 0.010 of either end of the indicator, so it couldn't always add 0.200 to the stack and still be in-range
[16:38:02] <cradek> I'm anxious to see the results now too
[16:38:17] <jmkasunich> type type type
[16:48:57] <jmkasunich> half done
[17:03:57] <skunkworks> my portable does throw overuns as the screen goes blank.. (smi also)
[17:05:30] <skunkworks> I never looked into it.. as the screen starts to fade out as the latency test is running - you see the overuns countin up
[17:06:48] <jmkasunich> data entry done, now for some formulas
[17:11:44] <alex_joni> skunkworks: I think it's common for the 3d screensaver to cause problems
[17:11:50] <alex_joni> I usually disable it
[17:16:34] <skunkworks> Hi alex. (don't know if I have disabled it yet)
[17:18:45] <jmkasunich> I hate to say this, but open offices spreadsheet carts sucketh
[17:18:48] <jmkasunich> charts
[17:20:39] <alex_joni> heh
[17:21:12] <jmkasunich> something as fundamental as "use this column for X and that one for Y" seems to be impossible
[17:36:02] <jmkasunich> gawd, the interface designers should be shot
[17:36:20] <jmkasunich> cosmetics over everything seems to be their motto
[17:36:36] <jmkasunich> click on something like an axis, and you get all the useless cosemetic crap - you can change its color, etc
[17:36:59] <jmkasunich> but can you change actual _axis_ stuff like scaling? nooooooo
[17:37:17] <jmkasunich> you have to jump through fricking hoops to do that
[17:37:33] <jmkasunich> well hidden hoops
[17:38:56] <alex_joni> jmkasunich: I don't think it's OO's problem
[17:39:05] <alex_joni> they amde it as close to M$ office as possible
[17:39:09] <jmkasunich> bullshit
[17:39:19] <alex_joni> (people are actually used to jump through those hoops you mention)
[17:39:26] <jmkasunich> in excel, you right click on an axis and you get the axis menu
[17:39:39] <alex_joni> what was your last excel version :?
[17:39:55] <jmkasunich> I think work is running 2003
[17:40:12] <jmkasunich> I use excel a LOT at work
[17:46:00] <alex_joni> well.. I guess you're right
[17:46:09] <alex_joni> I just tried it now.. and it does suck
[17:46:39] <jmkasunich> lol
[17:47:03] <cradek> you could use gnuplot, which sucks differently
[17:47:22] <jmkasunich> do the math in a spreadsheet and export the data for plotting
[17:47:31] <jmkasunich> yes, that would suck in a whole new way
[17:48:08] <jmkasunich> I'm gradually finding out where the hoops are hidden, but why did they feel the need to reinvent things
[17:50:06] <alex_joni> what kind of graph are you after?
[17:50:07] <jmkasunich> arrg
[17:50:24] <alex_joni> (I think what you're after is use the first column as label..)
[17:50:27] <jmkasunich> X Y plot - one column is X, two more columns are Y
[17:50:52] <jmkasunich> excel calls it a scatter plot, OO calls it XY plot
[17:51:01] <jmkasunich> I have the graph type I want
[17:51:04] <alex_joni> ah, ok.. XY then
[17:51:08] <jmkasunich> and am slowly beating it into submission
[17:51:17] <jmkasunich> but its making me crazy
[17:51:36] <jmkasunich> in excel, you can right click the graph, and one of the items in that menu is "source data"
[17:51:38] <alex_joni> I would have guessed a regular graph with the first column as the X axis, and the other 2 as the values
[17:52:34] <jmkasunich> in "source data" you can add new lines, delete lines, and for each line you can specify the range with the X coords, the range with the Y coords, and the title that appears in the legend
[17:52:45] <jmkasunich> that entire functionality is either missing or deeply buried
[17:53:15] <alex_joni> I noticed that you can double click the center of the graph
[17:53:20] <jmkasunich> OO requires you to select all the regions when you start to create the graph, and if you want one line to use a different set of cells for X as another line you are screwed
[17:53:21] <alex_joni> then you have additional menu items
[17:53:47] <jmkasunich> like what?
[17:54:08] <jmkasunich> titles, axis, grid, etc?
[17:54:37] <alex_joni> yeah.. unusefull stuff
[17:54:40] <jmkasunich> title legend axis grid
[17:54:44] <alex_joni> err.. not usefull
[17:54:55] <alex_joni> but you can modify data range if you right click the graph initially
[17:55:10] <alex_joni> (doesn't have series like excel does..)
[17:55:14] <alex_joni> or at least I don'
[17:55:17] <alex_joni> t see them
[17:55:27] <jmkasunich> yeah, that is what I'm missing
[17:56:04] <jmkasunich> its pathetic really, both excel and oo have about 20 graph types, and the only one I ever use is scatter (or XY), because its the only one that is real
[17:56:16] <jmkasunich> real = you specify two sets of numbers that define points
[17:56:27] <jmkasunich> and it plots the points
[17:56:31] <cradek> ha
[17:56:39] <jmkasunich> bar graphs and all that crap are for powerpoint
[17:56:58] <cradek> seriously, maybe you should learn gnuplot if you want to do this all the time
[17:57:09] <cradek> it has lots of 'real' stuff
[17:57:23] <jmkasunich> but that kills the connection to the data
[17:58:02] <jmkasunich> when I'm doing spreadsheet work, I do things like plot the results of a bunch of formulas, then change a cell that contains a formula parameter and look at the graph to see if that improves the curve fit
[17:58:19] <cradek> ah, sounds like college :-)
[17:58:28] <jmkasunich> sounds like engineering
[17:58:32] <cradek> chemistry lab results
[17:58:42] <jmkasunich> nah, you fudge that data
[17:58:50] <cradek> yield was ... 98%, wow!
[17:59:25] <cradek> wah, I need to clean a volume control but it's so tedious to get to it
[17:59:41] <jmkasunich> I find myself doing things like trying to come up with a model that takes operating current, bus voltage, PWM frequency, and modulation index, and produces a result that matches junction temperatures as measured with a thermal camera
[18:00:11] <alex_joni> at least it updates the graph when you change values :D
[18:00:13] <cradek> sounds interesting, your job is not quite like mine
[18:01:11] <jmkasunich> unfortunately I've also found myself collecting data to prove that the $20000 thermal camera doesn't meet the vendors specs
[18:02:00] <jmkasunich> +/- 2 deg C, right.... maybe... in the very center of the screen... on a good day...
[18:09:06] <jmkasunich> http://jmkasunich.com/pics/quill-screw-error-1.png
[18:10:15] <cradek> blue/red are the two directions?
[18:10:18] <jmkasunich> yes
[18:10:31] <jmkasunich> I can't figure out how to change the damned legend
[18:12:34] <alex_joni> that graph gives me the impression you didn't "get" the exact tpi you thought
[18:12:37] <cradek> is it really off the total .002-3?
[18:12:55] <jmkasunich> seems so
[18:13:09] <jmkasunich> pretty close to 0.002 per 3.000" slope
[18:13:56] <jmkasunich> that would be 0.008 per foot, which is within spec for rolled ballscrews, ground ones are usually better
[18:14:01] <jmkasunich> no clue what I have, its surplus
[18:14:35] <cradek> interesting that .2in is quite close to 5mm
[18:14:39] <cradek> but not this close
[18:14:54] <alex_joni> well.. you can change the scale, or not bother and leave it like this :)
[18:15:22] <jmkasunich> there is also some 0.2" periodic error
[18:15:42] <cradek> yes but it's not always there (not at -2.0)
[18:15:49] <cradek> so I wonder if it's the indicator instead
[18:16:04] <cradek> not at -2.6 either
[18:17:01] <jmkasunich> its also quite spiky, I was hoping that something like bearing runout would be a 0.2" period sinewave
[18:18:19] <cradek> I wonder if the spikyness is real
[18:18:34] <jmkasunich> I'm sure there is some randomness to the data
[18:18:48] <jmkasunich> but there are many places where red and blue spikes match up
[18:18:54] <alex_joni> jmkasunich: next you need to do it again, using other combinations of blocks
[18:18:59] <alex_joni> and see if they match :)
[18:19:02] <jmkasunich> not
[18:19:13] <cradek> and a different indicator
[18:19:19] <cradek> and lazzzors
[18:19:24] <alex_joni> other combinations, in order to have the indicator in a different working pos.
[18:19:59] <jmkasunich> I am considering doing about 10 samples over the 0.2" range of the indicator, where I don't move the machine at all, and change the blocks instead
[18:20:07] <jmkasunich> that would spot any major indicator errors
[18:20:32] <jmkasunich> (replacing them with gage block errors)
[18:20:36] <cradek> is your indicator cheap or expensive?
[18:20:49] <jmkasunich> starrett
[18:21:05] <cradek> hmm, probably the same one I have
[18:21:50] <cradek> I wouldn't expect .0007 noise from a starrett .0001 indicator
[18:21:58] <jmkasunich> no
[18:22:31] <jmkasunich> some random noise is going to come from the balls rolling in the ballscrew itself, and in the ball bearing supporting the ballnut
[18:22:50] <jmkasunich> neither was new
[18:23:24] <cradek> finding these results would make me happy - the slope is very real (and easy to fix) but the rest doesn't need correction IMO
[18:23:46] <cradek> doesn't need = not useful to spend time trying
[18:24:07] <jmkasunich> the linear error could be screw pitch error, or it could be cosine error if the axis isn't perfectly parallel with the gage block stack and/or the indicator plunger
[18:33:36] <cradek> hm, the heater in the shop does run sometimes even with the thermostat turned all the way down (~ 42)
[18:33:42] <cradek> I wonder if that's a feature
[18:35:18] <jmkasunich> not for your electric bill
[18:40:33] <cradek> I bet it doesn't run much, wish I knew how much it is
[18:41:13] <jmkasunich> how is it controlled? thermostat switches 24V which pulls in a contactor?
[18:41:21] <cradek> yes
[18:41:40] <jmkasunich> any way you could hook up a mechanical electric clock so it runs when the heater does?
[18:41:43] <cradek> normal home thermostat
[18:41:58] <cradek> that's a great idea
[18:42:04] <jmkasunich> I'm smart
[18:42:33] <cradek> but, everything is 220, might be hard to find a clock here
[18:42:35] <jmkasunich> the heater is 240V though
[18:42:52] <jmkasunich> can you get into the heater?
[18:42:58] <jmkasunich> connect the clock from one pole to neutral?
[18:43:02] <cradek> I ran neutral to it, if the contactor switches both sides it would still be ok
[18:43:25] <jmkasunich> I was assuming it would switch both, but that may not be valid
[18:43:38] <cradek> yeah, seems like it should
[18:43:42] <cradek> I'd have to look
[18:43:48] <cradek> it's fairly accessible
[18:43:52] <jmkasunich> the other problem might be finding a mechanical electric clock around
[18:44:00] <cradek> yeah, there is that.
[18:44:17] <jmkasunich> I don't think I have one here - most are digital line powered, or quartz battery powered
[18:44:22] <cradek> I have one right here but I'd hate for it to get broken (glass front etc)
[18:44:46] <jmkasunich> do you have an hour meter tucked away in your junk bins anywhere
[18:44:48] <cradek> I'll be able to find something
[18:45:00] <cradek> no but I'm sure surplus center has them
[18:45:20] <jmkasunich> well, if you're gonna buy something, a clock is easier and cheaper
[18:45:26] <jmkasunich> go to a thrift store or something
[18:45:52] <cradek> doubt there is a real mechanical electric clock to be purchased anywhere in the city
[18:46:06] <jmkasunich> gotta be
[18:46:20] <jmkasunich> or have quartz battery ones taken over
[18:46:24] <cradek> yep
[18:46:33] <cradek> gotta buy those batteries you know
[18:46:54] <cradek> and who can read those non-digital clocks anyway?
[18:47:08] <cradek> (now I'm trolling a bit)
[18:48:12] <jmkasunich> just make a 24V AC to 1.5V dc power supply, and use a quartz clock (one with hands, that won't care about power interruptions)
[18:50:09] <jmkasunich> is there a blower on the heater?
[18:50:19] <cradek> yes
[18:50:44] <jmkasunich> put a pinwheel in the airstream and connect to a 1.5V generator
[18:50:51] <cradek> haha
[18:50:57] <cradek> thanks mr. goldberg
[18:51:10] <jmkasunich> always happy to help
[18:51:39] <cradek> * cradek is up to his knees in LISP
[18:51:53] <jmkasunich> on a serious note - anything "connected" by way of either air flow or air temp is inherently isolated
[18:52:07] <jmkasunich> you could hook it to a parport safely, and let hal accumulate the on time
[18:52:21] <jmkasunich> temp switch that is turned on by hot air?
[18:52:48] <cradek> not sure. I think the delays after element on and off are strictly time
[18:53:15] <cradek> a clock and two gator clips is definitely the simple way to do this test
[18:53:26] <jmkasunich> unless you don't have a clock
[18:53:44] <cradek> surely I can find one here somewhere.
[18:53:55] <jmkasunich> if not you need to change your domain
[19:12:27] <jmkasunich> well, after subtracting out the 0.00067" per inch linear ramp, there is about 0.0002 of a broad U in the data
[19:12:40] <jmkasunich> along with the +/- 0.0004 high frequency stiff
[19:12:43] <jmkasunich> stuff
[19:20:15] <alex_joni> bbl
[19:35:36] <jmkasunich> http://jmkasunich.com/pics/quill-screw-periodic-error.png
[19:35:53] <jmkasunich> no simple once-per-rev pattern
[19:36:12] <jmkasunich> but there is a pattern
[19:36:36] <jmkasunich> I'm not gonna sweat it
[19:36:47] <jmkasunich> change scale and forget about it
[19:37:03] <jmkasunich> I just have to figure out whether I should be making scale larger or smaller
[19:53:45] <cradek> looks like everything is mostly within 3 tenths - that seems pretty great to me
[19:54:17] <jmkasunich> yeah, except it didn't actually work out that nice when I tested it
[19:54:41] <jmkasunich> I changed the scale, and then measured at 0.280, 1.280, 2.280, and 3.280
[19:55:20] <jmkasunich> got 0.0004, 0.0007, 0.0004 and 0.0000 (I set the indicator zero at the last point)
[19:55:35] <jmkasunich> those are rough numbers, I didn't actually write them down
[19:57:20] <jmkasunich> I probably should take 5-10 points each way again, just to see what I have now
[19:57:38] <jmkasunich> I know I'm not gonna correct periodic errors, so I don't need to take anywhere near as many
[19:59:19] <jmkasunich> maybe I should take data every 0.2
[19:59:52] <jmkasunich> that would cancel out screw periodic error and indicator error, leaving only gage block error and cosine error
[20:00:02] <jmkasunich> and cosine error should be linear