#emc | Logs for 2004-11-29

[00:31:18] <cradek> I had INPUT_SCALE and OUTPUT_SCALE set to 8000 0 in emc1 - does anyone know how I should set them in emc2 (steppers)?
[00:32:42] <cradek> hmm, changing INPUT_SCALE doesn't seem to do anything
[00:34:05] <cradek> and... changing OUTPUT_SCALE doesn't do anything
[00:52:24] <ottos> day gents
[01:02:18] <paul_c> emc runs on a 2.6.9
[01:02:33] <cradek> 1?
[01:03:15] <paul_c> 2.6.9-adeos
[01:03:53] <cradek> I mean emc1?
[01:04:05] <paul_c> yup
[01:05:56] <jmkasunich> cradek: emc2 doesn't use INPUT_SCALE and OUTPUT_SCALE yet
[01:06:08] <cradek> so the scale is just fixed?
[01:06:10] <jmkasunich> scaling is determined by lines near the end of core_stepper.hal
[01:06:23] <cradek> aha
[01:06:25] <jmkasunich> currently 5080 counts/inch (200/mm)
[01:06:39] <jmkasunich> there is a commented out set of lines that are 8000 counts/inch
[01:06:47] <jmkasunich> and of course you can make it anything you want
[01:07:11] <jmkasunich> but you'll have to tweak the max_accel params as well
[01:07:21] <cradek> cool, the numbers in there explain my .636" inch
[01:08:42] <jmkasunich> the max_accel params should be about 1.5x the emc.ini MAX_ACCEL values (converted from inches per seconds^2 to steps/sec^2)
[01:09:14] <cradek> in emc1, jogging updates status.motion.traj.position and .actualPosition. In emc2 it updates only actualPosition. Is this intentional?
[01:09:39] <jmkasunich> yeah
[01:10:06] <jmkasunich> traj is a trajectory planner thing, jogging takes place in free mode, the planner is completely uninvolved
[01:10:52] <jmkasunich> in coord mode (MDI or AUTO), the traj planner is active, and you should see traj.position getting updated
[01:10:59] <cradek> yes, it is
[01:11:19] <cradek> but traj.Actualposition DOES get updated when jogging
[01:12:07] <jmkasunich> thats because the actual position is changing... the TP has to know where it is even in free mode, so that when you go into coord mode, there isn't a big jump back to the last traj position
[01:12:24] <cradek> ok, got it
[01:12:41] <jmkasunich> back to scaling for a moment...
[01:12:56] <jmkasunich> currently MAX_ACCEL is 20 in/sec^2
[01:12:56] <cradek> ok I set the scale to 8000
[01:13:15] <jmkasunich> times 5080 counts/inch, = 101600 counts/sec^2
[01:13:26] <paul_c>
[01:13:40] <jmkasunich> I set the stepgen.x.max_accel to 150000 - it must always be somewhat higher than the emc limit
[01:13:58] <jmkasunich> but if it's too high you will get the jitter
[01:14:28] <jmkasunich> if you are using 8000, then the nominal value in counts is 160000, and you should set the max_accel to about 200000-250000
[01:14:32] <jmkasunich> it's not too critical
[01:15:26] <cradek> hmm, my steppers are skipping...
[01:15:57] <jmkasunich> highly reliable that logger is.... not
[01:16:27] <jmkasunich> when do they skip? starting a jog, ending a jog, during the jog?
[01:16:34] <cradek> ok for the X axis emc1 has MAX_VELOCITY=.2 and MAX_ACCELERATION=2.0
[01:16:37] <cradek> starting a jog
[01:16:51] <jmkasunich> why so low?
[01:16:59] <jmkasunich> 0.2 inches/sec?
[01:17:16] <cradek> haha
[01:17:19] <cradek> that's as fast as it goes
[01:17:27] <jmkasunich> what kind of a machine is this?
[01:17:31] <cradek> a toy
[01:17:33] <cradek> err, maxnc
[01:18:01] <cradek> it uses 1/4-20 leadscrews and way too many steps per rotation
[01:18:31] <jmkasunich> 8000 steps/inch you said? that means 400 step/rev - must be half-stepping
[01:18:55] <cradek> yes
[01:19:09] <jmkasunich> I'd set the emc.ini MAX_VEL and MAX_ACC the same as in your emc1 setup
[01:19:15] <cradek> I did that
[01:19:36] <jmkasunich> and set the core_stepper.hal max_accel to 20000 or 25000
[01:20:05] <cradek> ok, testing...
[01:20:07] <paul_c> jmkasunich: Just added noreply@sf to emc-dev
[01:20:08] <jepler> cradek: did you ever try full-stepping it?
[01:20:57] <cradek> jepler: I'm pretty sure that made it less reliable (lower max speed)
[01:20:58] <jmkasunich> paul_c: good
[01:21:34] <jepler> cradek: was that before this controller board? Maybe you should double-check the step table...
[01:22:14] <cradek> jmkasunich: now it still skips and it goes to ESTOP RESET state after a jog
[01:22:16] <jmkasunich> hey! who assigned that bug to me?
[01:22:20] <cradek> (but no error pops up)
[01:22:28] <cradek> jmkasunich: me - apparently you're the default
[01:22:29] <jmkasunich> bet it's following error
[01:22:47] <cradek> it doesn't pop up like it should...
[01:22:59] <jmkasunich> that's yet another thing that doesn't work yet
[01:23:10] <cradek> ok
[01:23:12] <jmkasunich> I'm at a serious disadvantage not knowing much about the GUI
[01:23:33] <cradek> if you guys already know all these things don't work, I think I'm only being a pest
[01:23:35] <jepler> oh, well, gee -- cradek knows lots about the GUI
[01:23:40] <jepler> you should ask him for help
[01:23:43] <cradek> jepler: shhhhh
[01:24:01] <jmkasunich> not a pest - I need a few kicks in the ass to get me going
[01:24:17] <cradek> well you fixed one real roadblock already today
[01:25:22] <jmkasunich> you want to go thru the jmk way of tuning emc2 to your machine?
[01:25:47] <cradek> when I set accels to 40000, it jogs
[01:25:56] <jmkasunich> sounds good
[01:25:57] <cradek> but I think it's too high to be reliable
[01:26:13] <cradek> does DEADBAND not work either? I can't get it to quit twitching
[01:26:33] <jmkasunich> how twitchy is it? one every few seconds, or faster?
[01:26:47] <cradek> faster now
[01:26:51] <cradek> 8-10 a second
[01:27:06] <jmkasunich> dang
[01:27:35] <jmkasunich> it's like this... the good news is that stepgen contains a built in pretuned "PID" loop
[01:27:43] <jmkasunich> the bad news is you can't change the tuning
[01:27:47] <cradek> haha
[01:28:06] <cradek> and my machine is too slow for your tuning to work right?
[01:28:13] <jmkasunich> and I think it has a stability problem (in fact I created a tracker for that some time ago)
[01:29:36] <paul_c> Dang, I wa just about to pen a note to the U.P.
[01:30:14] <cradek> in emc1 I have X: VEL .233 P 160 Y: VEL .16 P 160 Z: VEL .167 P 30
[01:30:37] <rayh> What was it about to say?
[01:30:43] <cradek> don't ask me why it's set that way, but I tweaked for a long time to get it to be reliable
[01:32:49] <jmkasunich> willing to take a stab at tuning it for emc2/hal?
[01:33:06] <cradek> sure, if you want
[01:33:11] <jmkasunich> ok
[01:33:19] <jmkasunich> first step - lose emc2 ;-)
[01:33:30] <cradek> ok, done, now it works
[01:33:58] <jmkasunich> emc is shutdown, and you are at the emc2 root directory?
[01:34:05] <cradek> yes
[01:34:07] <jmkasunich> you root, or a user?
[01:34:17] <cradek> I can be either
[01:34:44] <jmkasunich> do whatever you want, but some steps will need su -c, or sudo, or you need to be root
[01:34:48] <cradek> ok
[01:34:55] <jmkasunich> I usually work as non-root, and use su when needed
[01:35:13] <jmkasunich> first, load the realtime stuff: su -c "scripts/realtime start"
[01:35:40] <cradek> ok, it loaded some modules
[01:36:51] <jmkasunich> bear with me, I'm makeing this up as I go along
[01:37:00] <cradek> no problem
[01:38:38] <jmkasunich> su -c "bin/halcmd loadrt stepgen cfg=\"0 0 0\" period=5000 fp_period= 1000000"
[01:39:02] <cradek> ok
[01:40:58] <jmkasunich> su -c "bin/halcmd loadrt siggen num_chan=1"
[01:41:24] <cradek> ok
[01:41:33] <jmkasunich> where is your parport? 0278, 0378?
[01:41:48] <cradek> 378
[01:42:09] <jmkasunich> su -c "bin/halcmd loadrt hal_parport cfg=\"378\""
[01:42:32] <jmkasunich> now we have all the modules loaded that are needed to move your motors
[01:42:36] <jmkasunich> gotta connect them
[01:43:45] <jmkasunich> oops
[01:43:51] <jmkasunich> do bin/halcmd show thread
[01:43:59] <jmkasunich> does it list one thread or two?
[01:44:19] <cradek> stepgen.threadFP and stepgen.thread
[01:44:42] <jmkasunich> ok, great - I made a type here, only got one... will fix
[01:45:26] <jmkasunich> ok, fixed that
[01:45:29] <jmkasunich> threads first
[01:46:01] <jmkasunich> bin/halcmd addf siggen.0.update stepgen.threadFP
[01:46:31] <cradek> ok...
[01:47:12] <jmkasunich> bin/halcmd addf stepgen.capture_position stepgen.threadFP
[01:47:38] <cradek> ok
[01:48:11] <jmkasunich> bin/halcmd addf stepgen.update_freq stepgen.threadFP
[01:48:46] <cradek> ok
[01:49:02] <jmkasunich> bin/halcmd addf stepgen.make_pulses stepgen.thread
[01:49:22] <jmkasunich> bin/halcmd addf parport.0.write stepgen.thread
[01:49:33] <jmkasunich> bin/halcmd show thread
[01:49:47] <jmkasunich> should show two threads, with three functs in the first one and two in the second
[01:50:02] <cradek> it does
[01:50:16] <jmkasunich> ok, now to connect signals
[01:50:41] <jmkasunich> bin/halcmd newsig Xpos bit
[01:50:45] <jmkasunich> bin/halcmd newsig Xdir bit
[01:51:07] <cradek> do I replace `bit' with my parport pin?
[01:51:13] <jmkasunich> nope
[01:51:26] <jmkasunich> bit is the type of the newly created signal
[01:51:52] <cradek> ok
[01:52:05] <jmkasunich> you using the emc standard pinout?
[01:52:08] <cradek> no
[01:52:24] <jmkasunich> what pinout do you need then ?
[01:52:39] <jmkasunich> step on 2, dir on 3?
[01:52:53] <cradek> yes that will work (it will move my Z which is fine)
[01:53:09] <jmkasunich> well let's do X, which pins is that?
[01:53:18] <cradek> well X will fall off the mill if I jog too far
[01:53:38] <jmkasunich> is Y or Z safer?
[01:53:41] <cradek> Z
[01:53:46] <jmkasunich> ok, Z it is
[01:54:10] <jmkasunich> I just realized I misnamed a signal anyway, I didn't want Xpos, I wanted Xstep
[01:54:27] <jmkasunich> bin/halcmd delsig Xpos
[01:54:33] <jmkasunich> bin/halcmd delsig Xdir
[01:54:47] <jmkasunich> bin/halcmd newsig Zstep bit
[01:54:54] <jmkasunich> bin/halcmd newsig Zdir bit
[01:54:58] <cradek> ok
[01:56:05] <jmkasunich> bin/halcmd linksp Zstep parport.0.pin-02-out
[01:56:10] <jmkasunich> bin/halcmd linksp Zdir parport.0.pin-03-out
[01:56:39] <cradek> ok
[01:56:47] <jmkasunich> bin/halcmd linksp Zdir stepgen.0.dir
[01:57:03] <jmkasunich> bin/halcmd linksp Zstep stepgen.0.step
[01:57:19] <cradek> ok
[01:57:40] <jmkasunich> bin/halcmd newsig Zpos float
[01:58:11] <jmkasunich> bin/halcmd linksp Zpos stepgen.0.position-cmd
[01:58:38] <jmkasunich> bin/halcmd linksp Zpos siggen.0.square
[01:58:40] <paul_c> g'night all.
[01:58:56] <jmkasunich> night paul
[01:59:46] <cradek> ok
[02:00:01] <jmkasunich> lets see - you have 8000 steps per inch, right?
[02:00:07] <cradek> right
[02:00:31] <jmkasunich> bin/halcmd setp stepgen.0.position-scale 8000
[02:00:47] <jmkasunich> and you have run it before at 0.2 inches per second?
[02:01:12] <cradek> Z at .167 ips
[02:01:38] <jmkasunich> ok, 0.167 * 8000 is 1336 Hz max step rate
[02:01:44] <jmkasunich> but we'll start slow
[02:02:03] <jmkasunich> bin/halcmd setp stepgen.0.maxfreq 500
[02:02:22] <jmkasunich> you did 2.0 inch/sec^2 acceleration before?
[02:02:23] <cradek> ok
[02:02:56] <cradek> 6.0 on Z
[02:03:00] <jmkasunich> ok
[02:03:17] <jmkasunich> that would be 48000 steps/sec^2, but again we'll start slow
[02:03:31] <jmkasunich> bin/halcmd setp stepgen.0.maxaccel 500
[02:03:37] <jmkasunich> bin/halcmd setp stepgen.0.maxaccel 5000
[02:03:42] <jmkasunich> sorry - that's too slow
[02:03:49] <jmkasunich> 5000 is good
[02:03:55] <cradek> ok
[02:04:35] <jmkasunich> bin/halcmd setp siggen.0.amplitude 0.1
[02:04:47] <jmkasunich> bin/halcmd setp siggen.0.frequency 0.2
[02:05:02] <cradek> ok
[02:05:17] <jmkasunich> bin/halcmd setp siggen.0.frequency 0.1
[02:05:40] <cradek> ok
[02:06:06] <jmkasunich> what we're doing here is commanding a square wave of position, 0.1", repeating every 10 seconds (so a 0.1" move every 5 seconds)
[02:06:18] <jmkasunich> let's save this config to save hassles later:
[02:06:44] <jmkasunich> bin/halcmd save >foobar
[02:07:07] <cradek> ok
[02:07:12] <jmkasunich> now at a later time, you can do the three loadrt commands, then do bin/halcmd -f foobar, and it will do all the others that we just did
[02:07:25] <cradek> great
[02:07:32] <jmkasunich> ok, amps turned on, and axis centered (at least 0.2" from any limits)?
[02:07:37] <cradek> yes
[02:07:40] <jmkasunich> bin/halcmd start
[02:07:44] <jmkasunich> should get movement
[02:08:00] <cradek> very very very slow
[02:08:09] <jmkasunich> 500 counts per sec
[02:08:17] <cradek> nope
[02:08:26] <cradek> 2-3 counts per sec
[02:08:38] <jmkasunich> hmmmm....
[02:08:48] <jmkasunich> * jmkasunich watches his motor turn nicely
[02:09:08] <cradek> hope I didn't typo
[02:09:27] <jmkasunich> bin/halcmd show net
[02:09:36] <jmkasunich> oops
[02:09:41] <jmkasunich> bin/halcmd show sig
[02:10:10] <jmkasunich> should be three signals, each with two pins connected (using ==> and <== to show data flow)
[02:10:19] <cradek> yes
[02:10:44] <jmkasunich> the Zpos signal is at either + or - 1.00000e-01?
[02:10:48] <cradek> -
[02:10:51] <jmkasunich> ok
[02:11:21] <jmkasunich> bin/halcmd show param | grep stepgen\.0
[02:11:34] <jmkasunich> should give 11 lines
[02:11:41] <jmkasunich> dirhold and dirsetup both 1
[02:11:41] <cradek> yes
[02:11:53] <cradek> yes
[02:11:58] <jmkasunich> frequency probably + or - 5.000e+02?
[02:12:13] <cradek> yes -500
[02:12:44] <jmkasunich> if frequency is 500, then you should be getting 500 step/sec
[02:13:16] <cradek> nope
[02:13:22] <cradek> oh, it just slowed down
[02:13:31] <cradek> now stopped
[02:13:41] <jmkasunich> that's so much better :-(
[02:13:50] <cradek> I was getting about 2.5 steps/sec when it was going "fast"
[02:13:56] <jmkasunich> was it moving the same direction the whole time?
[02:14:00] <cradek> it had an accel and decel period
[02:14:04] <cradek> yes I think so
[02:14:42] <jmkasunich> lets keep looking at parameters... stepgen.0.position-scale should be 8000 (8.00000e+03)
[02:14:51] <cradek> yes
[02:15:13] <cradek> dirhold, dirsetup: 1
[02:15:26] <jmkasunich> steplen, stepspace = 1
[02:15:27] <cradek> frequency: -.0119209
[02:15:34] <cradek> maxaccel 5000
[02:15:36] <cradek> maxfreq 500
[02:15:39] <cradek> pos-err 0
[02:15:42] <cradek> position-scale 8000
[02:15:45] <cradek> rawcounts -800
[02:15:50] <cradek> steplen, stepspace 1
[02:15:58] <cradek> vel-err -2e-10
[02:16:01] <jmkasunich> I thought you said frequency was 500?
[02:16:25] <cradek> it was earlier
[02:16:35] <cradek> when it was going "fast"
[02:16:44] <jmkasunich> hmmm
[02:17:04] <jmkasunich> bin/halcmd show param | grep siggen
[02:17:08] <jmkasunich> should be five
[02:17:17] <jmkasunich> amplitude = 0.1
[02:17:21] <jmkasunich> frequency = 0.1
[02:17:28] <jmkasunich> offset = 0
[02:17:39] <cradek> time 768 tmax 1888
[02:17:57] <jmkasunich> ok - that's execution time, I have 1000 and 5000 here - slower box
[02:18:23] <jmkasunich> bin/halmeter &
[02:18:24] <cradek> ok
[02:18:51] <jmkasunich> click select, then signals, then Zpos, then OK
[02:19:07] <cradek> -.1
[02:19:32] <jmkasunich> should change to +.1 after about 5 seconds, then back to -.1, etc
[02:20:00] <cradek> nope, not changing
[02:20:12] <jmkasunich> select, pins, siggen.0.triangle
[02:20:22] <jmkasunich> ,ok
[02:20:27] <jmkasunich> is that changing?
[02:20:31] <cradek> yes
[02:20:43] <cradek> slowly increasing
[02:20:56] <jmkasunich> should be ramping from 0.1 to -0.1 and back again, one cycle every 10 seconds
[02:21:06] <cradek> it's much slower here
[02:21:16] <jmkasunich> bin/halcmd show thread
[02:21:26] <cradek> changing something like .0002/sec
[02:21:41] <jmkasunich> period of threadFP should be approx 1million (ns)
[02:21:49] <jmkasunich> and thread should be about 50000
[02:21:53] <cradek> it's 1e6
[02:22:04] <cradek> thread is 5000
[02:22:06] <cradek> not 50000
[02:22:16] <jmkasunich> bet that was the type
[02:22:19] <jmkasunich> bet that was the typo
[02:22:34] <jmkasunich> my fault, when I was cuttin and pastin I bet I dropped a digit
[02:22:48] <jmkasunich> is your machine a little sluggish?
[02:22:57] <cradek> you did say 5000...
[02:23:05] <cradek> no, it's fine
[02:23:16] <jmkasunich> (cause you're running at 200,000 interrupts/sec....
[02:23:17] <cradek> how can I change it?
[02:23:35] <cradek> fast machine!
[02:23:44] <jmkasunich> unfortunately you can't without redoing the loadrt command
[02:23:56] <jmkasunich> got a good bash history? ;-)
[02:24:02] <jmkasunich> bin/halcmd stop
[02:24:15] <jmkasunich> su -c "bin/halcmd unloadrt all"
[02:24:18] <cradek> yes I do, and I wrote it to a file
[02:24:36] <jmkasunich> su -c "scripts/realtime restart"
[02:25:13] <jmkasunich> then find the loadrt commands in your history - there should be three, one for stepgen, one for siggen, and one for parport
[02:25:45] <jmkasunich> the stepgen one should have parameters called "period=50000" and "fp_period=1000000"
[02:26:14] <jmkasunich> oh, you'll need to close the halmeter too
[02:26:54] <cradek> ok, I'm caught up
[02:27:04] <jmkasunich> you ran all three loadrt commands?
[02:27:10] <cradek> yes
[02:27:19] <jmkasunich> bin/halcmd -f foobar
[02:27:29] <jmkasunich> that should set up all the pins, signals, and params
[02:27:30] <cradek> ok
[02:27:35] <jmkasunich> bin/halcmd start
[02:27:41] <jmkasunich> bin/halmeter &
[02:27:43] <cradek> now it's moving
[02:27:52] <cradek> back and forth every so often
[02:28:15] <jmkasunich> should be moving +/- 0.1 inches, every 10 seconds (one move every 5)
[02:28:30] <cradek> yes, that looks about right
[02:28:35] <jmkasunich> now we play
[02:29:03] <jmkasunich> bin/halcmd setp stepgen.0.maxaccel 500
[02:29:16] <jmkasunich> that should give you a quite noticable accel/decel ramp
[02:29:20] <cradek> cool
[02:29:56] <jmkasunich> we want to find the max speed first, then the max accel
[02:30:02] <cradek> ok
[02:30:02] <jmkasunich> how long is the axis?
[02:30:17] <cradek> around 6"
[02:30:33] <jmkasunich> so we can run much greater amplitude later - good
[02:30:43] <jmkasunich> we'll leave accel low for now
[02:30:55] <jmkasunich> bin/halcmd show param | grep maxfreq
[02:30:58] <jmkasunich> should be 500
[02:31:10] <cradek> yes
[02:31:25] <jmkasunich> bin/halcmd setp stepgen.0.maxfreq 1000
[02:31:46] <cradek> so far so good
[02:32:02] <cradek> it hardly has time to get up to max freq since the accel is so slow
[02:32:22] <jmkasunich> right - speed is 1000, accel is 500, so 2 second ramps at each end
[02:32:32] <jmkasunich> lets kick up the accel some - try 2000
[02:32:46] <jmkasunich> bin/halcmd setp stepgen.0.maxaccel 2000
[02:33:04] <cradek> ok
[02:33:07] <jmkasunich> now the ramp should only be 1/2 sec
[02:33:08] <cradek> now it ticks while stopped
[02:33:31] <jmkasunich> mine does too - that's the stability thing
[02:33:34] <cradek> ok
[02:33:39] <jmkasunich> I need to work on that, but let's ignore it for now
[02:34:21] <jmkasunich> we figured a max freq of 1336 steps before, right
[02:34:29] <jmkasunich> try setting maxfreq to 1200
[02:34:30] <cradek> yes
[02:34:41] <cradek> sounds very familiar
[02:35:13] <jmkasunich> try loading it with your hand or something, make sure it can do it
[02:35:28] <jmkasunich> then go faster a little bit at a time, see what it can do
[02:35:37] <cradek> yes it can still lift it when I'm pushing down somewhat
[02:36:11] <jmkasunich> try 1300, 1350, see what it can do
[02:36:40] <cradek> it becomes pretty easy to stop at 1800
[02:37:10] <jmkasunich> that's 0.225 inch/sec - quite a bit better than before
[02:37:17] <jmkasunich> but you'll need some safety margin
[02:37:44] <jmkasunich> try setting it to 1600 (0.2 ips)
[02:38:40] <jmkasunich> then you can start increasing the accel limit
[02:38:42] <cradek> seems like it can still lift the dead weight of my arm somewhat reliably
[02:38:46] <jmkasunich> currently 2000
[02:39:44] <cradek> still works at 32000
[02:39:59] <jmkasunich> the accel rate you had before (emc1) was something like 48000, so that isn't too surprizing
[02:40:12] <cradek> 64000 is iffy
[02:40:38] <jmkasunich> maybe 48-50K is good?
[02:41:02] <cradek> yeah 48000
[02:41:24] <jmkasunich> you can do setp stepgen.0.frequency 0.2 now - since it's running faster
[02:42:13] <jmkasunich> play around with maxfreq and maxaccel until you have numbers you are happy with, then write them down
[02:42:13] <cradek> stepgen.0.frequency is not writable
[02:42:38] <jmkasunich> my mistake - siggen.0.frequency
[02:42:44] <jmkasunich> to make the moves more frequent
[02:43:41] <cradek> ok, 1600 48000
[02:43:53] <jmkasunich> you'll eventually want to do the same for each axis
[02:44:09] <jmkasunich> those numbers represent the limits of the motors/screws/etc
[02:44:33] <jmkasunich> note that this is completely independent of emc - we're only running a signal generator into the stepgen module
[02:44:43] <cradek> I understand
[02:45:04] <jmkasunich> you can also do tests where you use sine (or cosine) instead of the square wave
[02:45:22] <jmkasunich> that tests your motors at a variety of speeds, looking for resonances, etc
[02:45:36] <cradek> cool
[02:45:39] <jmkasunich> X = cos, Y = sin, makes cute little circles ;-)
[02:45:44] <cradek> I am half-stepping so I don't think there should be a problem with that
[02:46:14] <jmkasunich> once you have numbers for all three axis, put them in your own copy of core_stepper.hal
[02:46:32] <jmkasunich> there are already lines in there for maxaccel, you'll need to add ones for maxfreq
[02:46:43] <cradek> so can I change just the parport bits to change the axis?
[02:46:58] <jmkasunich> yeah
[02:46:59] <cradek> how can I undo linksp?
[02:47:22] <jmkasunich> although you have three stepgen's loaded, so you could just link another one for X and the third for Y
[02:47:44] <jmkasunich> unlinkp <pinname> unlinks a pin
[02:49:07] <cradek> ok now x is jogging...
[02:49:10] <cradek> just a minute, be right back
[02:51:11] <cradek> back
[02:52:15] <jmkasunich> * jmkasunich is away for a minute
[02:59:49] <cradek> ok, I have all my numbers and put them in core_stepper.hal
[03:00:28] <cradek> but I think emc.ini is overriding them (making them slower)
[03:00:31] <jmkasunich> I strongly recommend that you keep a copy of core_stepper.hal and emc.ini under a different name - sooner or later, you're gonna do a cvs up and wipe them
[03:00:41] <jmkasunich> that's the next step
[03:00:55] <jmkasunich> take the numbers in core_stepper.hal, and convert to inches per sec
[03:00:59] <jmkasunich> (divide by 8000)
[03:01:21] <jmkasunich> the emc limits need to be a little below the hal limits
[03:01:41] <jmkasunich> set emc's MAX_VEL to about 95-98% of the scaled stepgen.maxfreq
[03:01:59] <jmkasunich> set emc's MAX_ACCEL to about 80% of the scaled stepgen.maxaccel
[03:02:45] <jmkasunich> that should give you an emc that runs pretty close to the machine limits, but doesn't ferror out or have severe jitter problems
[03:03:23] <jmkasunich> if your emc limits are too high, emc's commands can get ahead of what the stepgen can do (because of it's limits), and you'll get an ferror
[03:03:38] <cradek> ok, done
[03:04:14] <cradek> the jogs sound good now
[03:04:43] <jmkasunich> I need to write this procedure down sometime...
[03:06:03] <cradek> well I ran a program and it got only a few lines and estopped
[03:06:11] <jmkasunich> drat
[03:06:13] <cradek> again, no error popped up
[03:06:23] <jmkasunich> tail /var/log/messages
[03:06:42] <jmkasunich> (I often do tail -f in a shell window, and just leave it there)
[03:07:18] <jmkasunich> feel free to post the lack of error popups as a bug - that will motivate me ;-)
[03:07:56] <cradek> billions of messages of the form xxxxxx: CMD xxxx, code 1 ABORT
[03:08:07] <cradek> where xxxx are increasing numbers
[03:08:20] <jmkasunich> an abort storm...
[03:08:28] <cradek> also some code 5 DISABLE_AMP messages
[03:08:38] <cradek> code 3 DISABLE
[03:10:09] <cradek> I put those same values in emc1, let's see what it does
[03:10:13] <jmkasunich> I hate abort storms - they come from situations where the handshaking between user space and rt is wonky - the motion controller is stopped, but the user space is trying to clear an error by issuing ABORT commands, and the error is already clear (or something like that)
[03:12:21] <cradek> emc1 seems to play nice with those numbers
[03:13:05] <cradek> don't know how sharp my corners will be with those numbers...
[03:15:20] <jmkasunich> can you send me the part program that makes it fault?
[03:15:49] <cradek> I think it's quick reversals of direction that did it
[03:15:55] <jmkasunich> (and your .ini and .hal files?)
[03:16:06] <cradek> sure
[03:16:41] <jmkasunich> did you ever find the actual error buried in the kernel log, or did the abort storm hide it?
[03:16:50] <jmkasunich> (I'm guessing it was a following error)
[03:17:32] <jmkasunich> I'd like to set up halscope to trigger on following error, and see what happens
[03:18:08] <cradek> ERROR: joint 0 following error
[03:18:24] <cradek> watch value 0C06 (after set_operating_mode())
[03:18:25] <cradek> ABORT
[03:18:26] <cradek> ...
[03:18:53] <jmkasunich> that "watch value" stuff is leftover debugging printfs
[03:18:59] <jmkasunich> the ERROR is what matters
[03:19:12] <cradek> let me make sure it errors in the same place again
[03:20:00] <cradek> yep
[03:20:02] <cradek> email?
[03:20:24] <jmkasunich> jmkasunich AT att DOT net
[03:21:04] <cradek> sent
[03:22:26] <jmkasunich> got oit
[03:22:26] <jmkasunich> it
[03:23:08] <cradek> I think it errors around line 42-45
[03:23:20] <cradek> very short segments in opposite directions
[03:28:12] <cradek> does it error for you too?
[03:28:23] <jmkasunich> just starting it now
[03:30:09] <jmkasunich> yep
[03:30:22] <cradek> good
[03:30:30] <jmkasunich> * jmkasunich loads halscope
[03:34:09] <jmkasunich> how do you reset back to the beginning of the program?
[03:35:01] <jmkasunich> never mind...
[03:35:03] <jmkasunich> ;-)
[03:44:50] <jmkasunich> cradek - you still there?
[03:45:11] <jmkasunich> try changing the maxaccel numbers in core_stepper.hal from 48000 to 100000
[03:45:39] <cradek> ok
[03:46:25] <jmkasunich> actually it looks like even 64000 is enough
[03:47:24] <jmkasunich> or not
[03:47:49] <cradek> it's getting further
[03:48:00] <jmkasunich> right - but it still faults
[03:48:08] <jmkasunich> trying 100K now
[03:48:22] <cradek> yep
[03:48:27] <cradek> faulted at 64000 too
[03:48:40] <jmkasunich> right - that's what I triee
[03:48:43] <jmkasunich> right - that's what I tried
[03:51:50] <jmkasunich> what are we milling anyway?
[03:52:02] <cradek> it's a pcb
[03:52:24] <cradek> don't you have a viewer?
[03:52:48] <jmkasunich> didn't turn it on right away, then the scaling was wrong
[03:53:01] <jmkasunich> finally got it going, but the routing part was almost complete
[03:53:07] <jmkasunich> it's drilling holes now
[03:54:46] <jmkasunich> I think it's done
[04:01:14] <jmkasunich> some kind of little SMT connector, and a 0.100 header?
[04:01:45] <cradek> yeah
[04:01:56] <jmkasunich> working at your end?
[04:01:58] <cradek> it adapts a strange plug to .1 SIP
[04:02:07] <cradek> I didn't increase it past 64000
[04:02:21] <jmkasunich> at 100000, it seems to work fine
[04:02:35] <cradek> I worry about what my corners will look like
[04:02:44] <cradek> I have a spring-loaded zero backlash setup
[04:03:03] <cradek> just because the motors can reverse that fast doesn't mean the table can...
[04:03:40] <jmkasunich> then lower the max speed (in emc.ini - no need to change the maxfreq in stepper.hal)
[04:04:10] <jmkasunich> you're running 0.2 ips, with 2ips^2 accel?
[04:04:21] <cradek> yes I guess so
[04:04:32] <jmkasunich> so accel will take 0.2 seconds
[04:04:39] <jmkasunich> I bet your spring can handle that
[04:05:14] <cradek> .1 second?
[04:05:22] <jmkasunich> note that changing the maxfreq or maxaccel in .hal does not change what emc asks the motors to do
[04:05:38] <jmkasunich> it only changes the limits that the HAL will apply
[04:05:42] <cradek> I understand
[04:05:56] <jmkasunich> right, 0.1, my mistake
[04:06:07] <jmkasunich> 0.2 to reverse from +max to -max
[04:06:19] <cradek> ah, right
[04:06:46] <jmkasunich> you're afraid that the reversal will be too fast, and the spring will allow some backlash from table momentum?
[04:06:50] <cradek> so can a person find 1/4" fullthread with fewer than 20 tpi?
[04:06:54] <cradek> exactly
[04:07:17] <jmkasunich> has to be 1/4"?
[04:07:30] <cradek> yeah, then my mods would be reversible
[04:07:46] <cradek> and I wouldn't have to machine the table
[04:09:16] <jmkasunich> how about 10tpi?
[04:09:33] <cradek> I bet that would help
[04:09:44] <cradek> ugh, I wonder if I could find a tap to match it
[04:09:52] <jmkasunich> eek, never mind.... $111 for a 6ft length
[04:09:56] <cradek> wow
[04:10:19] <jmkasunich> looking in mcmaster carr
[04:10:34] <jmkasunich> that's acme thread, btw - lower friction than 60 deg threads
[04:10:41] <cradek> that would be nice
[04:10:49] <cradek> but I don't know how to make the nuts
[04:10:50] <jmkasunich> precision screws, 0.0006"/inch, stainless
[04:10:56] <cradek> yum
[04:11:08] <jmkasunich> matching plastic springloaded nuts are $17
[04:11:18] <cradek> plastic??
[04:11:28] <jmkasunich> \yep
[04:11:46] <jmkasunich> www.mcmaster.com ( I think - I'm reading in the paper catalog)
[04:12:07] <cradek> I think maxnc makes a model with those acme nuts and people say they have backlash of up to .008 or so
[04:12:25] <jmkasunich> p/n 6350K128 (screw) 6350K204 (springloaded nut) 6350K166 (regular nut)
[04:12:44] <cradek> maybe that's if there's enough pressure to compress the spring
[04:13:37] <jmkasunich> how about 4tpi ;-)
[04:14:30] <jmkasunich> $43 for a 3ft screw, $22 for a bronze nut
[04:14:32] <cradek> on 1.8 degree motors ... I don't think so
[04:14:46] <jmkasunich> if you could fit 3/8 diameter, you have lots more choices
[04:15:18] <jmkasunich> 1,2,4,5,6,8,10,12,16,20 tpi in 3/8 diameter Acme
[04:15:33] <cradek> I just don't think that would fit
[04:16:09] <cradek> maybe I should stick to what I have!
[04:16:16] <cradek> I just go get a snack while it's working...
[04:16:17] <jmkasunich> 16 tpi is available in 1/4 - not much better than 20 tho
[04:16:35] <jmkasunich> is the existing screw acme, or 60 deg?
[04:16:41] <cradek> 60
[04:16:48] <jmkasunich> acme would have lower friction
[04:17:08] <jmkasunich> so you could probably run it faster in RPM, as well has higher pitch (16 instead of 20)
[04:18:16] <cradek> thanks for looking
[04:18:30] <cradek> it's probably not worth $150 to me
[04:18:36] <jmkasunich> you'e welcome
[04:18:39] <cradek> (this is just a hobby machine)
[04:18:42] <jmkasunich> right
[04:19:09] <cradek> I can make excellent circuit boards now, I don't know why I need it any faster!
[04:20:06] <jmkasunich> I need to get busy making some chips here.... modifying a ballscrew to fit my Z axis
[04:20:20] <cradek> that sounds like what I need
[04:20:24] <cradek> let me send you my machine too
[04:20:38] <jmkasunich> this is 5/8 dia 5TPI
[04:21:00] <jmkasunich> only 6" long tho
[04:21:16] <cradek> sounds nice
[04:21:19] <cradek> oops, gotta run
[04:21:20] <cradek> goodnight
[04:21:23] <cradek> thanks for the tuning help
[04:21:28] <jmkasunich> goodnight
[04:21:31] <jmkasunich> you're welcome
[04:22:37] <jmkasunich> time for me to go too... IRC is hazardous to productivity ;-)
[11:48:27] <alex_joni> hello
[11:50:11] <paul_c> * paul_c compiles smdromod & vitalmod for 2.6.9
[11:51:23] <alex_joni> I've seen your screenshot...
[11:51:28] <alex_joni> _NICE_ job
[11:53:04] <alex_joni> so the next BDI will be 2.6 based?
[11:53:18] <paul_c> undecided...
[11:54:24] <paul_c> may well have both 2.6 and 2.4 kernels
[11:58:08] <alex_joni> even better
[12:03:45] <alex_joni> very cool...
[12:03:57] <alex_joni> * alex_joni adds to his todo list playing around with 2.6
[12:04:05] <alex_joni> probably I'll do this with the next BDI
[12:04:32] <alex_joni> will there be a unpatched kernel for the BDI ? (e.g. no realtime?)
[12:04:55] <alex_joni> or is it enough to do a apt-get kernel-2.4.2x ?
[12:05:35] <paul_c> why would you want an unpatched kernel ?
[12:07:11] <alex_joni> I'm thinking of changing the distro
[12:07:17] <alex_joni> even for other machines I install
[12:07:37] <alex_joni> if BDI works nice... I see no need to install it for EMC only ;)
[12:10:39] <paul_c> there would be nothing to stop you using any of the Debian kernel images....
[12:12:05] <paul_c> Back in a bit...
[12:15:44] <alex_joni> ok
[14:11:57] <paul_c> * paul_c notices a Scot joined....
[14:23:22] <alex_joni> Scot?
[14:23:58] <alex_joni> * alex_joni wonders what clan :-)
[14:49:38] <les> hi paul and alex
[14:50:04] <les> I must test that abort bug with the jogging
[14:50:13] <les> I have not seen it
[14:51:02] <les> and I have ofen done an abort on running code thousands of lines long
[14:51:19] <les> might be related to a repeated command only
[14:51:24] <cradek> it's not
[14:51:26] <alex_joni> hey les...
[14:51:29] <alex_joni> hey cradek
[14:51:31] <cradek> hello
[14:51:36] <cradek> I get it in my programs all the time
[14:51:42] <les> hi
[14:52:05] <alex_joni> les: did you try emc2 lately?
[14:52:11] <les> cradeck: nest time I fire up the machine I will try your code
[14:52:19] <cradek> ok
[14:52:23] <cradek> you can even see it with sim.run
[14:52:47] <les> alex: have not tried emc2...am in large production and cannot experiment much
[14:52:57] <alex_joni> I see.. ok no problem
[14:53:11] <alex_joni> I am still searching for people who did use emc2
[14:53:18] <les> hmmm...well sounds like a bad thing so I should check it out
[14:53:22] <alex_joni> and can try the new autoconf built ./configure
[14:53:42] <alex_joni> not such a bad thing
[14:53:56] <alex_joni> if you haven't used emc2 before it's not that concludent
[14:54:11] <alex_joni> (although I'll be happy with every test done)
[14:54:31] <les> I am running bdi 2.xx with a june 2004 emc build
[14:54:45] <alex_joni> on bdi it has been tested... should work
[14:54:57] <les> I slightly modified emcmot.c on it
[14:55:12] <alex_joni> BDI 2.18 is on the compile_farm
[14:55:19] <alex_joni> so there it works
[14:55:20] <les> I see
[14:55:47] <les> The only thing I do not have is per axis accel I think
[14:56:22] <les> But in my ap accels generally need to be matched
[14:56:30] <les> I think...
[14:56:51] <alex_joni> I see...
[14:57:53] <les> well ... better get back to autocad...must draw up CUSTOM router bit profiles
[14:58:13] <les> expensive to have made but saves big machine time
[15:00:43] <paul_c> * paul_c greps the generic.run script and thinks it could do with a major cleanup.
[15:38:46] <rayh> alex_joni: Did the vote go your way?
[16:12:09] <paul_c> * paul_c sneaks off to get a coffee - Then to write up on the 2.6 changes for emc-dev...
[19:52:57] <paul__c> * paul__c announces EMC running on a 2.6.9 kernel.
[19:53:44] <jepler> yay
[19:53:49] <jepler> emc2?
[19:54:07] <paul__c> EMC ver. 1
[19:54:18] <jepler> I'll have to try it on my fedora 2 box
[19:55:02] <paul__c> Just way too much to do to get emc2 to work with 2.6.x kernels.
[20:14:35] <jepler> of course, without actual hardware I'll have no way to verify that it works
[20:14:50] <cradek> jepler: you have an o'scope
[20:14:59] <cradek> jepler: that's kind of like a milling machine
[20:16:40] <jepler> blah
[20:28:23] <jepler> So in the traditional stepper pinout, it's direction on pin 2, step on pin 3, etc?
[20:29:36] <cradek> http://cvs.sourceforge.net/viewcvs.py/emc/emc2/configs/standard_pinout.hal?view=markup
[20:34:02] <jepler> thanks
[20:50:17] <les> cradek: I was checking code during lunch for that abort bug
[20:50:24] <cradek> any luck?
[20:50:30] <cradek> I was just starting to dig into it too
[20:50:40] <cradek> you reproduced it, right?
[20:50:46] <les> not in emcmot anyway
[20:51:19] <les> have not fired up the machine (office day) but if you say it reproduces I believe it
[20:51:43] <cradek> if you can run sim.run you can easily see it there
[20:52:00] <les> question was if it has always been that way or something got recently broken
[20:52:51] <cradek> Issuing EMC_TASK_ABORT -- (+503,+12, +28,)
[20:52:51] <cradek> emcTaskPlanClose() called at emctaskmain.cc:1893
[20:52:51] <cradek> emcTaskPlanRead() returned 0
[20:52:51] <cradek> emcTaskPlanLine() returned 1
[20:52:51] <cradek> emcTaskPlanCommand(g0x0) called. (line_number=1)
[20:52:53] <cradek> look at this
[20:53:02] <cradek> after the abort, line number 1 is executed
[20:53:15] <les> Because I routinely abort stuff running in the middle of a large 20,000+ line program
[20:53:33] <les> ah...that's it...my line 1 is never a motion code
[20:53:34] <cradek> is your emc old?
[20:53:43] <les> a few months old
[20:54:25] <les> so....something other thana motion code in line 1 would be a work around?
[20:54:36] <cradek> nope
[20:54:36] <cradek> Issuing EMC_TASK_ABORT -- (+503,+12, +33,)
[20:54:37] <cradek> emcTaskPlanClose() called at emctaskmain.cc:1893
[20:54:37] <cradek> emcTaskPlanRead() returned 0
[20:54:37] <cradek> emcTaskPlanLine() returned 2
[20:54:39] <cradek> emcTaskPlanCommand(g0x0) called. (line_number=2)
[20:54:53] <cradek> I put % at the beginning and end, and it runs line 2 after abort instead
[20:55:06] <les> hmmm
[20:55:23] <les> my cam programs usually put in %...
[20:55:46] <les> but still the first real line is something other than motion codes
[20:55:47] <cradek> but that doesn't help, darn
[20:56:20] <les> usually stuff like G64 etc
[20:56:39] <cradek> trying that...
[20:56:57] <les> working on one now...let me see
[20:57:09] <cradek> emcTaskPlanCommand(g64) called. (line_number=2)
[20:57:17] <cradek> ok, that works around it for this program
[20:57:27] <cradek> but I don't think it's a workaround for every program
[20:57:37] <les> no not every one
[20:57:38] <cradek> my pcb files will do it and they have a long preamble
[20:58:04] <jepler> cradek: elm320.ngc does start with a g0
[20:58:17] <les> but as I check the first 6 lines of code for me are spindle, units, etc
[20:58:36] <cradek> jepler: hmmmmmmm
[20:58:50] <cradek> jepler: but it doesn't execute that line, because it doesn't go straight up
[20:59:03] <paul__c> Hey Ray...
[20:59:27] <les> the dangerous part was going to 0,0,0 without z going up first
[20:59:37] <jepler> change that line to g0x0y0z0 and see if it still goes somewhere random
[20:59:43] <jepler> the z is always the z value in that first line
[20:59:58] <jepler> imagine that emc thinks it's at (1,2,3) and it sees g0z.04 -- it'll go to (1,2,.04)
[21:00:09] <rayh> Hi Paul.
[21:00:43] <jepler> (just a guess, testing it now)
[21:00:58] <paul__c> * paul__c has blown the primary parport...
[21:01:00] <jepler> yep, looks that way
[21:01:16] <les> Gosh I have 5 tool changes in the one I am doing now...and an array of at least 20
[21:01:19] <jepler> I changed the top line of elm320 to G00 Z0.040000 X1.234 Y1.390
[21:01:25] <rayh> paul__c: One place could do the copy but wanted $45 for it. I'll keep looking.
[21:01:36] <jepler> and sure enough that's where it when when I hit escape
[21:02:13] <paul__c> rayh: So it's not you downloading at the moment then ?
[21:02:39] <rayh> I don't think so. Unless they went ahead in anticipation.
[21:03:02] <rayh> Is it to a location near here? Or can you tell.
[21:03:08] <paul__c> Started just before 17:00GMT
[21:04:24] <les> Jepler: now stick a MO6T1 or G80 on line one and 2 and try it
[21:04:29] <rayh> So they've been at it three hours.
[21:04:39] <les> (not near a linux box that is up)
[21:05:07] <rayh> well les, let's get with the program;)
[21:05:38] <jepler> les: whatever's on line 2 doesn't make a difference (G80 anyway)
[21:05:53] <les> hmmm
[21:06:07] <les> still goes to 0,0,.04?
[21:06:25] <les> getting with it ray
[21:06:43] <rayh> You need me to come down there and set up a box for you?
[21:06:49] <jepler> Well, with the G0XYZ I mentioned above it goes to 1.234,1.390,0.04
[21:06:52] <les> doing a 20-50 array 5 tool change program now...
[21:07:01] <jepler> emcTaskPlanCommand(G01 X-1.469906 Y1.570106) called. (line_number=510)
[21:07:06] <jepler> emcTaskPlanCommand(G00 Z0.040000 Y1) called. (line_number=1)
[21:07:47] <jepler> I changed the program again. These are the latest emcTaskPlanCommands in the terminal. The machine ended up at -1.47, 1, 0.04
[21:08:33] <les> ray: have one emc box in the shop and one in the office (it's off though)
[21:08:35] <cradek> guys, please put whatever you figure out in the bug tracker
[21:08:41] <les> jepler: weird....
[21:09:14] <jepler> Oh, and I don't have a % on line 1, so when you say "insert G80 on line 2" it goes below that g0 motion
[21:09:24] <rayh> Oh. Okay Les, you're forgiven for using those other oses.
[21:09:57] <les> I have never ever seen that kind of stuff happen in two years of running
[21:10:23] <les> My preambles are usually 6-8 lines of non-motion commands
[21:10:45] <les> I am on xp now and I hate it
[21:10:47] <Timbo> paul__c: you mean me? :o
[21:11:01] <les> but that is what the software runs on so...
[21:11:33] <paul__c> Timbo just stirred ?
[21:12:06] <Timbo> joined the channel from work, just remembered now i'm home :)
[21:12:28] <les> hello timbo
[21:12:34] <Timbo> hi
[21:13:32] <rayh> paul__c: The guy I was talking with about the download is out for the day.
[21:13:42] <rayh> Won't know till morning if it's him.
[21:15:27] <les> bluh I have just about had it for today...I hate office days...today I am billing dept.
[21:16:07] <rayh> les: Know that feeling.
[21:17:07] <rayh> I was out in the weather (20f) today so happy to be back in.
[21:17:29] <les> But on cold days I have to ramp up the shop heat very slowly...if dew point > than the cast iron...
[21:20:56] <jepler> well I don't know what good it does to know this, but here's the stack in minimilltask when it re-executes line 1:
[21:21:00] <jepler> #0 emcTaskPlanCommand(char*) (cmd=0x80c1130 "G00 Z0.040000") at rs274ngc.hh:442
[21:21:01] <jepler> #1 0x0804e457 in emcTaskPlan () at emctaskmain.cc:1040
[21:21:01] <jepler> #2 0x08050b84 in main (argc=0, argv=0x0) at emctaskmain.cc:2887
[21:21:52] <les> jepler: latest emc source?
[21:21:59] <jepler> les: emc1 cvs from a week or two ago
[21:22:27] <jepler> updated on November 15
[21:22:30] <jepler> so it's a bit old
[21:22:42] <les> I need a copy of the exact file you are running
[21:23:10] <jepler> you mean the ngc file?
[21:23:29] <les> yes...or just a description of it
[21:23:32] <cradek> use my simple example from the bug report
[21:23:40] <jepler> jas
[21:23:54] <les> ok...it is exactly as in the report?
[21:23:59] <cradek> I simplified it for a reason
[21:24:06] <cradek> yes
[21:24:08] <jepler> I'm using a different file than in the bug report
[21:24:41] <les> ok
[21:24:51] <jepler> let me try the file in the bug report and make sure it happens to me
[21:25:23] <les> I will really need to check this...I have emc pushing around half a ton at very high speeds
[21:26:05] <cradek> my pcb drills cost $8 each and I don't like breaking them
[21:26:17] <cradek> (you win, but still)
[21:26:27] <les> I use them a lot as well
[21:26:35] <les> pcb drills
[21:26:48] <les> down to .02 diameter
[21:26:52] <cradek> carbide drills amaze me after trying to drill fiberglass with HSS
[21:27:08] <les> ha...yeah for sure
[21:27:09] <jepler> yes, it happens to me with the file described in #1074914 (though I repeated the line only 1000 times)
[21:27:21] <les> hmmm ok
[21:28:28] <jepler> I got that traceback by attaching gdb to minimilltask, then breaking on emcTaskPlanCommand when readLine == 1:
[21:28:31] <jepler> (gdb) break emcTaskPlanCommand
[21:28:33] <jepler> (gdb) condition 1 emcStatus->task.readLine == 1
[21:29:50] <jepler> cradek: the latest maxnc.ulp puts a comment and then G64 on the first 2 generated lines, if I can trust my reading of the source. So new files from eagle should be OK.
[21:30:21] <les> so it really ought to work with the first several lines non-motion preambles
[21:30:21] <cradek> jepler: I'm not at convinced that we understand the pattern
[21:30:28] <cradek> s/at//
[21:30:48] <jepler> cradek: I think I understand it
[21:30:58] <cradek> jepler: heh, ok, I trust you
[21:31:35] <cradek> jepler: so it runs the first command with the rest of the current "state" (non-specified coordinates) taken from the read-ahead spot?
[21:32:57] <jepler> yeah, I think that's right
[21:34:02] <les> In the many many aborts during running it just stops cold for me...sometimes a delay though
[21:34:18] <jepler> but I don't know enough to propose a fix, other than to say that emcTaskPlanCommand or emcTaskPlanExecute shouldn't be called here
[21:34:21] <les> but it stays on the tool path during the delay
[21:34:55] <rayh> paul__c: Is there a package missing from rc46 that prevents a good compile of today's sf?
[21:35:40] <jepler> speaking of rc46, is there a way to get apt-get to work without doing a hard-drive install? I have a USB flash drive if that helps. apt-get complains that there's not enough space, no matter what package I try to install.
[21:35:52] <paul__c> rayh: Not that I know of.
[21:36:10] <rayh> All the tickle stuff is there?
[21:36:19] <paul__c> yup
[21:36:25] <jepler> emc1 -- I just did a CVS update. Do I need to clean before I rebuild?
[21:37:13] <cradek> I think it's supposed to work right without a clean, but I doubt anyone knows for sure
[21:37:13] <jepler> well, cleaning anyway
[21:37:33] <cradek> (there are auto-generated depends anyway)
[21:37:39] <jepler> I think no important files changed, but I just want to reassure les this happens to me with emc1 HEAD
[21:38:16] <rayh> jepler: I extract the source using a script in emc/generic named packupsrc.
[21:38:22] <les> thanks
[21:39:13] <rayh> That makes a 2.5 Meg tarball that I move into a pristine directory.
[21:39:30] <rayh> When that is extracted you will see a couple of compile scripts.
[21:40:12] <jepler> I'm comfortable building out of my CVS tree
[21:40:22] <jepler> I'm not going to commit anything from it, since it's an anonymous checkout
[21:41:25] <les> I would try it today except for the several hour shop warmup time I have to do
[21:41:54] <les> just hate condensation on $100.ft rails
[21:41:55] <jepler> I'm doing all this on sim.run, no real machine involved
[21:42:14] <jepler> The file plat/linux_2_4_20/bin/minimilltask does not exist or is not executable.
[21:42:18] <rayh> I use a single developer checkout so I try not to corrupt it with compile files and such.
[21:42:21] <jepler> hmph
[21:42:51] <jepler> iosh.cc:43:23: tclExtend.h: No such file or directory
[21:42:55] <rayh> is linux_2_4_20 the version you are using.
[21:43:01] <jepler> did something change to require tclX?
[21:43:05] <les> well I could as well.... but best for me to fire it up and see it as long as the computer is in the cold shop
[21:43:26] <cradek> jepler: nothing has changed
[21:43:28] <rayh> I believe that tclx has been required for quite a while.
[21:43:31] <jepler> huh
[21:43:44] <jepler> required to build minimilltask?
[21:43:53] <jepler> I've never been able to build mini or tkemc, but that's fine
[21:43:54] <cradek> no, for tkemc I'm sure
[21:44:03] <cradek> try various -k incantations
[21:44:26] <rayh> I think that paul put a -k in the make files a while back.
[21:44:48] <rayh> tickle stuff should not be required for the c stuff.
[21:46:32] <rayh> jepler: Are you working from a bdi?
[21:46:54] <jepler> rayh: no, redhat9
[21:47:16] <rayh> But you have been able to compile from this before?
[21:47:19] <jepler> yeah
[21:47:40] <jepler> maybe I manually made in emctask last time. That's what I did just now, and I'm running
[21:48:16] <jepler> yep, still happens with a new HEAD compile in the simulator
[21:48:52] <rayh> I compiled the sf this morning under 46 without problems that I could see right off.
[21:49:04] <les> hmm ok
[21:49:29] <jepler> Probably the problems have to do with lack of tclx
[21:49:46] <jepler> but I don't know why make -k wasn't continuing on to do all the direcotires
[21:49:52] <jepler> erm, re-spell that last word please
[21:50:14] <les> cool new word...
[21:52:17] <les> I must run to the bank (still doing billing dept today)...be back in a while
[21:56:54] <jepler> my eyes! my eyes!
[21:56:56] <jepler> * jepler got mini to build
[21:57:04] <cradek> also strange: PLAN_SYNC isn't called until I hit ESC the second time
[21:57:12] <cradek> jepler: now be nice
[21:57:58] <jepler> sorry, I'm just a jerk
[21:58:27] <cradek> jepler: please put your new discoveries in the bug report
[22:15:50] <jepler> cradek: done
[22:34:10] <robin_sz> ah ha!
[22:34:59] <rayh> Hi Robin.
[22:35:16] <robin_sz> gday ray
[22:36:13] <robin_sz> what news from your end? any notable developments??
[22:39:41] <rayh> Not to much muddling through mostly.
[22:39:57] <les> oh hey robin
[22:40:17] <robin_sz> finally (after many months of messing about) finished my so**ding plasma design .. 2 going out next wednesday
[22:40:44] <robin_sz> hey les ...
[22:40:49] <les> how long to fabricate?
[22:41:04] <robin_sz> 1 to 1.5 day :)
[22:41:23] <les> ?????
[22:41:29] <les> for a machine?
[22:41:34] <robin_sz> * robin_sz nods
[22:41:49] <les> come now....haha
[22:42:04] <robin_sz> no, really
[22:42:25] <les> all prefab parts I guess
[22:42:30] <robin_sz> * robin_sz nods
[22:42:43] <les> I see
[22:42:51] <robin_sz> * robin_sz points to the CNC laser, the CNC pressbrake ...
[22:43:30] <les> I had to do two custom router bits on the cad today
[22:43:36] <les> a little pricey
[22:43:43] <robin_sz> tungsten?
[22:44:16] <les> yes C2...it's farmed out...tempted to make em in the shop
[22:44:32] <les> but would have to buy a lot of diamond wheels
[22:44:39] <robin_sz> well, if you had a cnc grinder .. :)
[22:45:03] <les> right....that is what the vendor uses
[22:45:16] <robin_sz> I suspect 1 single diamond 'cup' would do 90% of jobs
[22:45:36] <les> only about $160 setup...I can't touch that in house
[22:45:45] <robin_sz> true,
[22:45:52] <robin_sz> sometimes its best just to shop it out
[22:46:28] <les> it was just hard to find a facility that was not in China
[22:46:35] <robin_sz> heh
[22:46:48] <robin_sz> I shopped out my cnc turning ...
[22:46:50] <robin_sz> mistake.
[22:47:14] <robin_sz> bearing pockets sized at +5 thou
[22:47:15] <les> I am looking to aquire a cnc lathe and another cnc mill
[22:47:36] <les> +5 is big
[22:47:47] <robin_sz> theres some cheap cnc lathes on the uk ebay at the moment ..
[22:47:55] <robin_sz> Hardinge ...
[22:48:07] <robin_sz> would make nice emc donor machines
[22:48:20] <les> ..and I gave away two of those (olod) in Chicago
[22:48:25] <les> old
[22:48:34] <robin_sz> yeah, I remember
[22:48:51] <les> just got my fill of trucking the stuff
[22:48:56] <robin_sz> yip
[22:49:25] <robin_sz> theres nothing wrong with the Hardinge stuff though .. well made machines, with dinosaur controls
[22:49:47] <les> trying to do 20-50 up parts here on the router
[22:50:03] <les> have to use variables in the gcode I guess
[22:50:39] <robin_sz> * robin_sz forgets whether emc has subroutines
[22:50:52] <les> sadly it does not
[22:50:58] <robin_sz> ahh, shame
[22:51:05] <les> yup
[22:51:14] <robin_sz> cant be hard to add though ...
[22:51:23] <robin_sz> Art Fenerty managed it ...
[22:51:29] <les> I run out of g5x fixture offsets
[22:52:04] <les> so must pop new parameters in emc.var I guess (with gcode)
[22:52:07] <robin_sz> isnt there a 'start this program again from the beginning' gcode ...
[22:52:13] <les> emc does variables at least
[22:52:49] <les> prob...but with 5 tool changes it gets a bit complicated
[22:53:18] <robin_sz> right
[22:53:32] <robin_sz> still on a manual change too I guess
[22:53:45] <les> but even 5 manual changes is better than a lot of sanding
[22:53:54] <robin_sz> how about a nice pneumatic collet ...
[22:54:15] <les> there is a buggered perske with automatic changer on ebay cheap
[22:54:24] <robin_sz> ooh :)
[22:54:28] <les> a little risky
[22:54:51] <les> if bad bearings (likely) it is a good deal
[22:55:03] <les> bad windings...bad deal
[22:55:14] <les> it is at about $350
[22:55:28] <robin_sz> yeah, and a rewind costs how much again?
[22:55:42] <les> 40krpm after 10 min warmup...so prob the bearings
[22:55:52] <les> rewind=throw it away
[22:55:57] <robin_sz> really?
[22:56:22] <les> yup rated for 700 hz I think...
[22:56:31] <les> so likely the bearings are toast
[22:56:55] <robin_sz> why are they so much more to rewind than 3 phase motors of normal spindles?
[22:57:19] <les> just no economy of scale I guess
[22:57:27] <les> also big big g forces
[22:58:15] <robin_sz> I doubt the economy of scale thing is relevant, rewinds are all one offs, no?
[22:58:52] <les> perhaps...but then a 3" armature at 40krpm is...
[22:59:35] <robin_sz> I guess it depnds how toasted it is ..
[22:59:44] <robin_sz> if it still turns, buy it!
[23:01:24] <les> 77kG...must have made an error...
[23:02:12] <robin_sz> * robin_sz fails to find it in search
[23:03:15] <les> a=v^2/r
[23:03:59] <robin_sz> * robin_sz nods
[23:05:15] <robin_sz> still doing plaques?
[23:06:54] <les> yes...even though the magazine ads are shut off
[23:07:15] <robin_sz> damn those pesky cutomers huh?
[23:07:20] <les> but getting a lot of web hits
[23:08:01] <les> oh...and the numbers on the spindle were ok....therefore the armature must be much smaller diasmeter
[23:08:47] <les> 6" diameter @ 40,000 rpm= mach1
[23:08:59] <les> diameter...heh
[23:10:10] <les> should use one of those wren jets you have over there...160krpm turbine
[23:10:22] <robin_sz> heh
[23:12:09] <robin_sz> you can getr compresssed air powered engraving spindles that do 120K rpm
[23:12:29] <robin_sz> and some electronic sub-spindles for milss that do simialr speeds
[23:12:35] <robin_sz> mills
[23:13:22] <les> I need high rpm for the signs but this big production turkey thing just needs plain old horsepower
[23:13:41] <robin_sz> how many hp that perske?
[23:14:31] <les> only 3. I need 5 or 7 I think. More =better until cutting forces rupture or burn up the part
[23:14:43] <robin_sz> yeah, guess so.
[23:15:02] <robin_sz> still, a 3hp spindle with pneumatic collet ...
[23:15:06] <les> electricty=cheap. labor=$$$
[23:15:13] <robin_sz> gwaan .. you know you want it ...
[23:15:16] <robin_sz> no, wait ..
[23:15:20] <robin_sz> you NEED it :)
[23:15:50] <les> yeah when you suddenly have thousands and thousands of the things to make...
[23:16:15] <robin_sz> sets of 50 must be enough ...
[23:16:27] <les> but to not kid myself...75% 0f production cost is still sanding/finishing
[23:16:35] <les> have to do 500/week
[23:17:04] <les> emc is getting a real commercial workout here
[23:17:40] <robin_sz> thats the idea ...
[23:18:02] <les> yup...it is really an ideal project for the machine
[23:18:19] <robin_sz> yeah, you built it to do just that sort of work I guess
[23:18:28] <robin_sz> (well, except it needs a toolchanger ;)
[23:18:34] <les> I am actually most worried about getting some workers quick
[23:18:53] <les> you know, the sanding thing we talked about
[23:18:59] <robin_sz> oh yeah
[23:19:08] <robin_sz> hardly skilled work though
[23:19:13] <les> no
[23:19:18] <robin_sz> whats that, 10 bucks an hour?
[23:19:48] <les> just some dc motors, special chucks, and handheld sandpaper
[23:20:13] <les> yeah 10 or so if they are reasonably reliable
[23:20:41] <robin_sz> we do it differently over here
[23:21:10] <les> now spray painting operation...I am out of luck there
[23:21:23] <robin_sz> phillipinos or east european immigrants on half that rate ...
[23:21:37] <les> mexicans here...
[23:21:54] <robin_sz> ah yes, lets see. painting. let me guess, somehow, winter has unexpectedly arrived again?
[23:21:59] <les> and they go for about 7 but a little more if they are good
[23:22:06] <robin_sz> * robin_sz nods
[23:22:17] <les> yeah...and still no cross flow heat exchanger
[23:22:23] <robin_sz> ;)
[23:22:27] <les> but....
[23:22:55] <les> that is a $.40/hr problem...I should not dwell on it I think
[23:23:43] <les> I only am dumping 4kW...at $.10/kWh
[23:23:58] <robin_sz> If I remember ...
[23:24:08] <les> so that's down in the noise right?
[23:24:14] <robin_sz> there were extended periods you couldnt paint at all last year
[23:24:28] <robin_sz> even with heat
[23:24:39] <les> was using only 1.5 kW
[23:25:01] <robin_sz> right
[23:25:20] <robin_sz> 4kw will help, I suspect it will need more though :)
[23:25:33] <les> bought some more of those oil filled finned electric heaters...only $40 each
[23:25:55] <les> I calculated the temp rise/flow power thing
[23:26:14] <robin_sz> err
[23:26:16] <robin_sz> right
[23:26:33] <les> humidity too
[23:26:52] <robin_sz> humidity was my concern there
[23:27:09] <les> 4kw will get me about a 20c rise typically
[23:27:26] <robin_sz> wow, that must be low flow then
[23:27:40] <les> yes very low
[23:27:52] <les> about 250 scfm
[23:27:58] <robin_sz> right, I assumed you had several cu ft a minute
[23:28:04] <robin_sz> hmmm ...
[23:28:36] <les> haha if I did the calcs right
[23:28:55] <les> seems to be in the ball park from experiment
[23:29:15] <les> normally 10 times that much flow is used
[23:29:43] <les> you have to wear breathing apparatus with a flow that low
[23:30:41] <robin_sz> 1 j / gramme / c
[23:30:55] <robin_sz> well, 1.006 at 1013 mbar
[23:31:05] <les> for dry air?
[23:31:12] <robin_sz> * robin_sz nods
[23:31:33] <les> ach forgot the density@ 0c
[23:31:49] <les> pilots should have that memorized haha
[23:32:04] <robin_sz> 1.3 kg/m^3
[23:32:12] <robin_sz> (roughly)
[23:32:16] <les> ok
[23:32:44] <robin_sz> soo ... 1 m^3 needs 1300J to raise it one C
[23:33:04] <les> so 1.3 kJ /m/c
[23:33:12] <robin_sz> 'k
[23:33:12] <les> m^3 I mean
[23:33:43] <robin_sz> and 1 m^3 is ~32 cu ft right??
[23:34:05] <les> 1 m^3/s=1.3 kW
[23:34:47] <les> I am running only 250/32/min
[23:35:05] <robin_sz> 7.8 ~
[23:35:30] <les> so .13 m^3/s
[23:35:40] <robin_sz> 'k
[23:36:36] <les> .17 kW/degree c
[23:37:00] <robin_sz> yep your right ...
[23:37:12] <robin_sz> going to be nice and warm :)
[23:37:13] <les> 3.4 kW at my flow then
[23:37:17] <les> about right
[23:37:46] <robin_sz> just going to stack the heaters in the inlet I guess
[23:38:27] <les> yes I made room in the blower box...just stacked em up
[23:38:41] <les> 3 1.8 kw units
[23:39:20] <robin_sz> that should do it
[23:39:29] <robin_sz> I have the opposite problem
[23:39:37] <les> and $.40/hr....no worries
[23:39:42] <robin_sz> gets to damn hot!
[23:39:44] <les> too hot?
[23:39:48] <les> haha
[23:39:59] <robin_sz> laser sucks in 45kw
[23:40:39] <les> yikes
[23:41:02] <robin_sz> so 700w ends up as light ...
[23:41:09] <robin_sz> but even that ends up as heat eventually
[23:41:29] <robin_sz> I might have to push the chiller outside ...
[23:41:30] <les> yeah bad in the summer
[23:41:42] <robin_sz> I thought it would be great insode in winter, but its too much
[23:42:04] <les> forget about climate control...just blast huge amounts of makeup air in I guess
[23:42:19] <robin_sz> this is england
[23:42:28] <robin_sz> we dont do climate control
[23:42:31] <les> damp
[23:42:54] <les> Oh yeah haha I forgot...from when I worked a while at Lucas
[23:43:11] <robin_sz> Id say less than 1% of homes have aircon
[23:43:39] <les> prob 95% here
[23:44:00] <les> but we have nastier temp extremes
[23:44:45] <les> in chicago I remember...
[23:44:59] <les> highest temp= 107f
[23:45:11] <les> lowest=-27f
[23:45:30] <les> 134f range in one year
[23:45:45] <robin_sz> whats that in C ??
[23:45:51] <les> 70c or so!!!
[23:46:18] <robin_sz> I guess we do 30 odd max in the summer
[23:46:26] <robin_sz> -10 in winter
[23:46:54] <robin_sz> anyway ...
[23:47:09] <robin_sz> you know whats real cool with this laser,
[23:47:17] <robin_sz> little TV camera wayches the cut
[23:47:23] <les> cool
[23:47:34] <robin_sz> nice to sit in the office and see it still going
[23:49:44] <les> laser and plasma would be good for me to have really
[23:50:11] <robin_sz> laser, for wood/plastic?
[23:50:15] <robin_sz> or steel?
[23:50:15] <les> when I grow up and get rich here in a little while we will have to talk about that
[23:50:26] <les> wood/plastic
[23:50:50] <robin_sz> nice little 100W co2 tube from china then :)
[23:51:05] <robin_sz> maybe even 50w
[23:51:18] <robin_sz> less than 1000 bucks ...
[23:51:34] <les> actually...our Miller and Hobart divisions might be interested in your low cost units
[23:51:52] <les> put in a word when I'm there?
[23:51:55] <robin_sz> plasma tables?
[23:52:00] <les> yeah
[23:52:09] <robin_sz> sure .. go right ahead!
[23:52:27] <les> need brochure or web site...
[23:52:47] <robin_sz> could be arranged, I pulled the site for a revamp
[23:53:19] <les> well it will be a little while I hope..but they are bugging me to get up there
[23:53:35] <les> (have that turkey stuff to do)
[23:53:52] <robin_sz> basically I have interet from Cleveland Motion Controls, basically I'm fitting their CNC control to it at the moment.
[23:54:02] <robin_sz> its very industry standard I guess ..
[23:54:19] <robin_sz> probably used on 70% of cnc tables in the plasma industry ...
[23:54:35] <les> ITW likes that sort of thing
[23:54:47] <les> need a marketing hook or two
[23:54:53] <robin_sz> which is good I guess, because it makes it easy to sell and service
[23:55:16] <les> they want me to come back to corporate but I will not do it
[23:55:26] <les> can't take the stress
[23:55:38] <robin_sz> yeah ... 8hrs in an office is a killer
[23:55:49] <les> but I just consult for them...max 50% of the time
[23:55:56] <robin_sz> * robin_sz nods
[23:56:18] <les> the money is no fun if the stress makes you sick
[23:56:24] <robin_sz> too true
[23:56:54] <les> worked myself right into a hospital starting the Chronotherm division
[23:57:07] <robin_sz> bad move
[23:57:08] <les> along with some of my people
[23:57:20] <robin_sz> sigh ...
[23:57:33] <robin_sz> life too short
[23:57:40] <les> a little
[23:58:12] <robin_sz> without doubt, not worth putting yourself into hospital just to feed the corporate machine
[23:58:22] <les> just can't take that politics and jetting all over
[23:58:30] <robin_sz> * robin_sz nods
[23:58:34] <robin_sz> I dont do politics
[23:59:05] <robin_sz> I just do what needs to be done, and let others get upset about it
[23:59:23] <les> when you work at headquarters of a $12 billion corp your job IS politics
[23:59:32] <robin_sz> yeah
[23:59:35] <les> don't like it
[23:59:55] <robin_sz> then dont do it : .. oh, you arent. fair enough :)