#emc | Logs for 2006-06-11

Back
[00:00:09] <alex_joni> no, but I included your name on the line
[00:00:12] <alex_joni> davidf: like this
[00:00:22] <alex_joni> probably your IRC client highlights lines like that
[00:00:42] <davidf> Oh. That's different behavior than I got in windows. I like that feature.
[00:00:44] <alex_joni> davidf: the 1 inch/min is that for jogging? you should have a slider to go faster
[00:00:59] <davidf> ok...
[00:01:02] <alex_joni> most/any IRC client can do that, but needs to be set up
[00:02:23] <davidf> OH, way cool. 60 inches per minute is smmoth as silk.
[00:03:01] <alex_joni> 25.4 mm / sec, sounds like something
[00:03:05] <alex_joni> big machine?
[00:03:08] <davidf> I'm ecstatic. I'll be making chips by tomorrow, finally.
[00:03:32] <davidf> No, actually a Taig micro mill. 12 in X 5 inch Y
[00:04:03] <davidf> I wont be cutting at that speed! :)
[00:04:03] <alex_joni> still nice..
[00:04:41] <davidf> Seems like I could double that /w no problem. Not that I'd want to.
[00:06:45] <alex_joni> ok, 3am.. heading for bed finally..
[00:06:49] <alex_joni> g'night all
[00:06:56] <alex_joni> davidf: have fun with your mill
[00:07:26] <davidf> Sure appreciate all the help you guys gave me on this. And ESPECIALLY can't express how much I appreciate all the hard work so many folks have put into creating all this incredible open source free stuff. It's just absolutely amazing. A whole new world of possiblility.
[00:07:42] <davidf> Good night. Thanks again! :)
[00:07:54] <alex_joni> davidf: I'm just one of the many..
[00:08:24] <davidf> Thats even more incredible.
[00:08:42] <alex_joni> well, not that many :) but quite a few
[00:08:56] <alex_joni> especially because the project is about 10 years old ?
[00:09:21] <davidf> Lots and lots of folks when you consider linux itself, etc.
[00:09:48] <davidf> Go to bed. 3 AM Geez. :)
[00:10:16] <alex_joni> davidf: 3am is early by my standards..
[00:10:23] <alex_joni> I actually like your timezone better
[00:10:27] <alex_joni> lol
[00:10:40] <davidf> Actually, 3AM is routine for mee too.
[00:11:17] <davidf> If you could fly back and forth, You'ld never have to sleep.
[00:11:36] <davidf> Where are you alex_joni ? Netherlands?
[00:11:44] <alex_joni> further east
[00:11:46] <alex_joni> romania ;)
[00:11:52] <davidf> Wow.
[00:12:20] <alex_joni> not that exciting ;)
[00:12:24] <davidf> English language common there?
[00:12:42] <davidf> Hey, neither is Missouri, USA
[00:13:39] <alex_joni> davidf: english seems to be common everywhere
[00:13:45] <alex_joni> especially around 'puters
[00:13:56] <davidf> Steriotypical US culture. No imagination. Just work, sleep, eat, watch the tube, etc.
[00:14:26] <alex_joni> yah.. same here, except I kinda stopped watching the tube in favour of being in here ;)
[00:14:33] <davidf> Your english is perfect. Id never know you werent next door.
[00:14:50] <alex_joni> well, thank you very much :)
[00:15:06] <davidf> I can speak a few words of Russian... Peruski?
[00:15:09] <alex_joni> been chatting in here for a few years
[00:15:15] <alex_joni> russian .. no :)
[00:15:29] <alex_joni> I do speak german ( a bit better than english )
[00:15:34] <alex_joni> and some french
[00:15:46] <alex_joni> and a bit of hungarian (but only a tiny bit)
[00:16:55] <davidf> Almost nobody here speaks anything but English of course. we don't have much need I guess, because everybody else does all the work of learning our language for us I guess.
[00:17:47] <davidf> Except Spanish is becoming more universal here with the large influx of immigrants from Mexico.
[00:18:13] <alex_joni> yeah, I heared
[00:18:40] <alex_joni> probably should start worrying about learning spanish.. or should i rather face one of those funny right-to-left written languages?
[00:18:59] <alex_joni> just kidding ;)
[00:19:25] <alex_joni> ok.. off to bed
[00:19:44] <davidf> In this political climate, I'd be afraid I might read something I'd rather not understand.
[00:19:57] <davidf> Good Night. Thanks again.
[00:22:21] <davidf> cradek, Thank you so much. Tomorrow I'll try to be up & running making parts. Can't wait. Wish I could express my appreciation better that just repeating it over and over. It's been a long haul. Way Before I even came accross Linux & emc. But this is for sure the best.
[00:23:04] <davidf> 'Night.
[00:35:36] <j_cox> just an open question, Is it posible to be running in auto,Pause, do some MDI and then resume from the last ponit in the program ( point where pause was hit ) ?
[00:36:23] <j_cox> trying to solve manual tool change with collets
[00:36:39] <j_cox> doh.... ment withoout collets
[00:41:21] <jepler> j_cox: as far as I know, it's not possible to jog during a program pause.
[00:41:41] <j_cox> thats a pitty
[00:42:13] <j_cox> I am using your tsp software and it's great. only problem is the tool changes
[00:42:29] <jepler> you can create multiple files, one for each tool change
[00:42:30] <jepler> it's not ideal
[00:42:50] <jepler> if it's simply to set the tool height, you can use the tool table and tool length offsets without a tool changer
[00:43:13] <jepler> thanks, not many people seem to have "discovered" tsp
[00:43:24] <j_cox> but I dont know whst they are as they will change for each tool I manualy put in the chuck
[00:43:34] <Jymmm> Tri Sodium Phosphate?
[00:43:53] <j_cox> no tool path shortner
[00:43:58] <Jymmm> =)
[00:44:11] <Jymmm> ah, angle grinder
[00:44:21] <j_cox> use with jepler's g-code generator for eagle PCB
[00:44:26] <jepler> j_cox: you said in your e-mail that you can do what you want in tkemc. When I hit F3 to go back to manual mode during an M0 pause, it doesn't resume when I return to auto mode.
[00:45:02] <j_cox> I made a mistake, program dosn't resume it restarts
[00:45:12] <jepler> ok -- I was pretty sure that was the unavoidable behavior
[00:45:58] <j_cox> Im going to have to step away for a moment and look after the new baby, hope to be back soon
[00:47:49] <j_cox> im back, is it posible to use MSG as a form of block and have button in AXIS to jump to each MSG statment and start form ther ?
[00:48:57] <jepler> you can use "set next line" manually
[00:49:43] <j_cox> yah, then I have to rember the line no, as you know there are tipicly thousands to chose from
[00:50:37] <jepler> you can click the line you want in the program area
[00:51:10] <jepler> when the machine pauses, the red line is G00 Z#7, the next line is (MSG,INSERT FINE-MILL), then M00, then S1000 M3.
[00:51:25] <j_cox> just starting up AXIS and yse
[00:51:26] <jepler> dismiss the message window, then click S1000 M3 to select it
[00:51:29] <jepler> it turns blue
[00:51:45] <jepler> hmm, I'm beginning to see the problem
[00:51:48] <jepler> that'll get lost when you Offset
[00:52:24] <j_cox> just wondering how emc will do the with a real auto changer?
[00:52:39] <jepler> probably you'd use tool length offsets on a machine with a real auto changer
[00:52:46] <Jymmm> j_cox Ray says it's in there.
[00:52:58] <fenn> http://cncgear.com/Files/mazak-small.avi
[00:53:05] <fenn> ^^ mazak changing tools
[00:53:13] <jepler> j_cox: is your system set up so that you could insert the tool but not tighten the chuck, then lower Z and tighten it, so that the tip of the tool is just touching the copper surface?
[00:53:28] <j_cox> I supose that offsets would work as they wouldn't change with a auto changer
[00:54:06] <j_cox> thats the plan, but once you move the axis it goes back to idle
[00:54:14] <jepler> j_cox: if so, you can write a toolchanging sequence right in your ngc file
[00:54:22] <jepler> in the first pause, you insert the tool but don't tighten it
[00:54:23] <j_cox> and AXIS dosn't allow this type opf move
[00:54:35] <jepler> then the next g-code is a G1 F(small number) Z0
[00:54:39] <jepler> then another M0 pause
[00:54:43] <j_cox> didn't think of that
[00:54:48] <jepler> at the second pause, just tighten the chuck
[00:55:32] <j_cox> send it back to 0,0,0 and tighten as that will never be milled
[00:55:50] <jepler> yeah it would be important to be over a spot that is always unmilled copper
[00:55:59] <j_cox> I will look at modifing your g-code scripts for eagle
[00:56:32] <j_cox> there is a chance that i will have a PCB mill in the next day or so
[00:56:32] <jepler> ok---if you can't figure it out, I can probably help you
[00:57:06] <jepler> what's the purpose of the first board you're trying to mill?
[00:57:33] <j_cox> Para port beakout of EMC :) of corse
[00:57:46] <j_cox> tide up the wirers
[00:58:19] <j_cox> its fun typing with a baby on your lap, leads to all sort of errors
[00:58:22] <Jymmm> j_cox that's it? nothing fancy like opto or anything?
[00:58:52] <jepler> j_cox: good luck. If you have a digital camera, I'll look forward to seeing a photo of your board
[00:58:58] <Jymmm> not making light of what your doing, just inquiring =)
[00:59:38] <j_cox> no just a stepper at this stage, possible servo based upon more of jepplers great stuff ( micro servo etch )
[00:59:53] <j_cox> and maybe a drill mill
[01:00:01] <Jymmm> ah
[01:01:29] <j_cox> thanks for all the help, might go give the modifing of the script ago
[01:02:13] <CIA-8> 03jepler 07HEAD * 10axis/scripts/axis.py:
[01:02:13] <CIA-8> after reloading a file, select the same line number. This might improve things
[01:02:13] <CIA-8> when manually changing tools, so that the line to be continued on can be
[01:02:13] <CIA-8> clicked before a return to manual mode to zero the new tool.
[01:05:17] <jepler> j_cox: you're looking for the part that says 'void toolchange_s(string tool) {', around line 80
[01:05:40] <j_cox> thanks
[01:05:41] <jepler> j_cox: just add the additional lines of g-code you need to execute, with a "\n" (programmer-speak for "newline") after each line.
[01:06:23] <j_cox> just put baby to sleep and then give it ago
[01:06:31] <jepler> I'll check back later
[01:41:49] <j_cox> jepler: changed the line to ..
[01:41:57] <j_cox> M5\nG00 Z%s\nX0Y0\n(MSG,INSERT %s Do not tighten chuck)\nX0Y0\nZ0\nG00\n(MSG, tighten chuck with tip on PCB)\n\Z%s\n\nS1000 M3\nG04 P3\nG00 Z%s\n"
[01:42:17] <j_cox> it is messy but works, so I can start soon on the PCB
[01:48:44] <Jymmm> In respect to pcb's... what does FR4 represent?
[02:00:23] <j_cox> jymmm: dont know
[02:00:29] <Jymmm> =)
[02:03:28] <j_cox> sill messin with the code for my tool change ........
[02:19:54] <j_cox> jepler: change the code with the following
[02:20:00] <j_cox> printf("M5\nG00 Z%s\nX0Y0\n(MSG,INSERT %s Do not tighten chuck)\nM000\nX0Y0\nZ0\n(MSG, tighten chuck with tip on PCB)\nM00\n\Z%s\n\nS1000 M3\nG04 P3\nG00 Z%s\n",
[02:20:00] <j_cox> toolchange_height, tool, toolchange_height, safety_height );
[02:20:34] <j_cox> and it works fine now, willl be sticking in a blank PCB later today ( I hope )
[02:22:47] <skunkworks> good luck - not having to etch is nice
[02:23:20] <j_cox> only using a dremel type tool for the head could be problem tho
[02:24:01] <skunkworks> I am using a 'rotozip' style tool
[02:24:15] <skunkworks> I would think a dremel would work just fine
[02:24:43] <skunkworks> the main problem is if the surface is flat enough
[02:25:39] <j_cox> I have pre milled the table to be "true" to the head if thats what you mean ?
[02:26:29] <skunkworks> yes - good. How are you going to hold it down? I hear double sided carpet tape works good
[02:26:40] <skunkworks> (i have a vaccume table I have been using)
[02:27:21] <j_cox> small weilding clamp on the edge of the table
[02:27:48] <j_cox> mark 2 will hopfully have vacume table
[02:28:22] <j_cox> this is just he mill to build the mill. if you know what i mean
[02:28:51] <j_cox> mark 2 is a small sojurn ( i think that what you call it )
[02:29:15] <j_cox> small gantry type ( 1000mm x 1000mm )
[02:29:56] <j_cox> only for doing panels ( PCB,Aluminium, custom wood ... )
[02:30:52] <Jymmm> 39 inches isn't that small
[02:31:11] <Jymmm> mines 24"x24"x5.5" of travel
[02:31:32] <skunkworks> nice
[02:33:32] <j_cox> no not small just a nice "round" size
[02:35:16] <Jymmm> what are you using for a tool changer?
[02:37:13] <j_cox> i will have to come up with somthing by then, i have a few idears thanks to a cabinet maker close to my work who has a cnc panel cutter
[02:37:36] <j_cox> its a linear changer down opne end of the table
[02:37:48] <Jymmm> got pics?
[02:39:51] <j_cox> no but if ask when i go back, it shouldn't be a problem
[02:44:18] <Jymmm> cool, I'd like to see =)
[02:51:56] <Jymmm> detailed pics are alwasy best =)
[02:55:12] <j_cox> i will post them some where when i get them
[03:55:29] <A-L-P-H-A> sup? I'm back
[03:56:00] <A-L-P-H-A> could I have messed up the phases from before?
[04:22:06] <wholepair> hello
[05:22:41] <Jymmm> Jymmm is now known as CodesWithIdiots
[05:24:41] <CodesWithIdiots> CodesWithIdiots is now known as Jymmm
[08:29:10] <etla> the websites are down :-(
[08:49:58] <etla> now they seem to work again
[10:25:11] <alex_joni> morning all
[10:33:38] <Bo^Dick> mornin'
[10:34:35] <alex_joni> 'sup?
[10:48:13] <CIA-8> 03alex_joni 07HEAD * 10documents/lyx/emc2/hal_rtcomps.lyx: applied Anders Wallin's patch manually, info about x4-mode
[11:16:13] <etla> alex: it might be that I ran diff the wrong way around if the patch looked strange
[11:40:30] <alex_joni> etla: seems that way
[11:41:09] <alex_joni> Reversed (or previously applied) patch detected! Assume -R? [n]
[11:42:25] <etla> so it should diff <old file> <new file> > patch ?
[11:42:30] <etla> should be
[11:42:42] <giacus> morning guys
[11:48:02] <etla> in halcmd, is there a command to unlink signals/pins ?
[11:57:07] <alex_joni> etla: unlinkp or similar
[11:57:56] <alex_joni> yup, unlinkp pinname
[11:58:05] <alex_joni> and delsig if you want to remove the signal
[11:58:20] <alex_joni> Deletes HAL signal \fIsigname\fR.
[11:58:20] <alex_joni> Any pins currently linked to the signal will be unlinked.
[11:59:09] <alex_joni> morning giacus
[11:59:58] <giacus> hi alex_joni
[12:00:41] <etla> got the DACs working - now I have a LP filter which produces the analog command for the servodrive. soon it's time to hook up the servodrive and see what happens...
[12:01:23] <alex_joni> etla: nice
[12:01:53] <alex_joni> giacus: seen this: http://cncgear.com/Files/mazak.avi ?
[12:01:59] <alex_joni> would be great for the movie
[12:02:03] <alex_joni> especially the last few minutes
[12:02:16] <giacus> looking
[12:02:25] <alex_joni> 0:56-01:22
[12:02:47] <etla> is it the emc controlled mazak ?
[12:02:48] <alex_joni> 0:35 - 01:22 even
[12:02:53] <alex_joni> etla: yeah, changing tools
[12:03:10] <etla> I'm downloading, but will it play on standard ubuntu ?
[12:03:11] <giacus> oh .. already know it then
[12:03:15] <giacus> yeah
[12:03:25] <alex_joni> etla: you might need w32codecs
[12:03:37] <alex_joni> the ubuntu wiki says how to install those
[12:03:47] <alex_joni> * alex_joni favours mplayer
[12:05:59] <giacus> I'm actually playng with blender, attempting to learn how to create a short animation with the emc logo and a penguin
[12:06:41] <giacus> that could be used for any videoclip
[12:07:16] <alex_joni> giacus: seems your finding reasons to do something else :D
[12:07:36] <anonimasu> hello
[12:07:40] <alex_joni> 'lo
[12:08:12] <alex_joni> etla: sent me a new patch?
[12:08:37] <anonimasu> Im ýn turkeyçç
[12:08:43] <giacus> really, i'm thinking to create separated videoclips, until we'll get more video resorces for a long one
[12:08:46] <anonimasu> on vacatýon..
[12:08:47] <giacus> hi anonimasu
[12:09:32] <anonimasu> whats up?
[12:09:36] <alex_joni> anonimasu: nice.. where?
[12:09:41] <alex_joni> kusadasi?
[12:10:00] <anonimasu> ýn a lýttle town named turunç
[12:10:05] <anonimasu> near marmarýs
[12:10:09] <alex_joni> nice
[12:10:17] <alex_joni> airplane trip?
[12:10:22] <giacus> anonimasu: isnt time for the world cup there ?
[12:10:33] <alex_joni> giacus: that's in germany, not turkey
[12:10:46] <anonimasu> yeah
[12:10:52] <giacus> oh, anonimasu is in turkey ?
[12:10:52] <anonimasu> lots of mad englýsh peopl over here
[12:11:00] <alex_joni> anonimasu: why mad?
[12:11:00] <anonimasu> yeah
[12:11:11] <alex_joni> 15:13 < anonimasu> Im ýn turkeyçç
[12:11:15] <alex_joni> giacus: :P
[12:11:28] <giacus> Im ýn turkeyçç
[12:11:28] <anonimasu> oh they are ýnvadýng all the bars and lookýng at soccer
[12:11:41] <anonimasu> hm ýrssý works
[12:11:47] <anonimasu> wýth turkýsh charachters
[12:11:52] <giacus> sorry.. didnt understand it, having some issue with char set
[12:12:08] <giacus> :)
[12:12:51] <giacus> anonimasu: smoking much there ?
[12:12:59] <anonimasu> nope
[12:13:03] <anonimasu> ýts half outdoors
[12:13:09] <anonimasu> hows stuff goýng?
[12:13:45] <alex_joni> anonimasu: kinda ok ;)
[12:13:54] <anonimasu> nýce
[12:14:00] <alex_joni> * alex_joni is watchin F1
[12:14:07] <alex_joni> 8 more laps
[12:14:26] <anonimasu> we are here too
[12:14:49] <alex_joni> alonso's pretty good today
[12:14:57] <giacus> * giacus lost interest in any sport
[12:15:20] <anonimasu> f1 ýs cool
[12:15:30] <anonimasu> too bad there ýsnt any behýnd the scenes stuff
[12:15:32] <giacus> especially after seen what happen in the soccer here around ..
[12:15:41] <anonimasu> ýd love to see the devel stuff goýng on
[12:15:54] <alex_joni> anonimasu: so would the other teams
[12:15:54] <alex_joni> :D
[12:26:45] <alex_joni> at least michael is second ;)
[12:29:16] <anonimasu> hhe
[12:33:02] <anonimasu> laters
[12:33:48] <alex_joni> enjoy the beaches there
[12:47:59] <alex_joni> !ops
[12:48:16] <alex_joni> oops.. wrong channel :)
[12:48:59] <giacus> /j #beaches ?
[12:49:01] <giacus> :D
[12:52:18] <etla> hurray! I can now spin the motor from a vcp panel with HAL....
[12:52:26] <alex_joni> etla: nice
[12:52:29] <etla> next is hooking up the encoder and testing with emc
[12:52:36] <alex_joni> is that spindle? or some motr?
[12:52:44] <etla> the test setup is a little ad-hoc... but it works
[12:52:54] <etla> it's going to be the new spindle
[12:52:58] <alex_joni> great
[12:53:01] <etla> 1kW sanyo p5 brushless servo
[12:53:19] <alex_joni> yummy ;)
[12:53:21] <etla> I might have to update my blow with a pic later today - some might find it entertaining :)
[12:53:28] <etla> blog ;)
[12:54:13] <alex_joni> nice
[12:54:13] <etla> I'm learning that switching even <1A currents at 20kHz generates a lot of interference/noise in all my signal wires...
[12:54:29] <alex_joni> not the switching, the picture would be nice ;)
[12:54:47] <etla> I can do a pic quite quickly now if you are interested... wait.
[12:55:09] <alex_joni> nah.. even later is ok
[12:55:16] <alex_joni> * alex_joni needs to work on something :(
[12:58:29] <jepler> etla: what's the url of your blog?
[12:59:29] <alex_joni> morning jeff
[12:59:36] <jepler> hi alex
[13:01:01] <etla> DIY brushless servodrive connected to HAL/emc via m5i20 card : http://electronics.physics.helsinki.fi/personal/awallin/pic3.jpg
[13:01:27] <etla> sorry for the shitty jpeg quality...
[13:01:28] <jepler> that's a lot of wires!
[13:02:11] <etla> yeah, need to tidy up the design for the final version a bit :)
[13:03:44] <jepler> what's the tiniest board for?
[13:04:14] <etla> it filters the pwm from the m5i20 to an analog 0-5V for the servodrive
[13:04:22] <jepler> ah
[13:04:40] <etla> it's kind of backwards to output digital pwm, then filter it to analog, and digitize it at the microcontroller
[13:04:49] <etla> but let's hope it works for now
[13:05:48] <etla> in principle I could use some fancy serial protocol from the fpga to the microcontroller but I don't think I have skills, energy and time for that
[13:48:18] <A-L-P-H-A> hey robin_sz... I got a problem.
[13:48:26] <A-L-P-H-A> remember how my emc machine runs super slow?
[13:48:39] <A-L-P-H-A> I'm trying to fix that... and you're a guru.
[13:48:48] <alex_joni> he's probably not around
[13:49:01] <alex_joni> 16:32 -!- robin_sz [n=robin@adsl.redpoint.org.uk] has quit [Read error: 110
[13:49:01] <alex_joni> (Connection timed out)]
[13:49:01] <alex_joni> 16:32 -!- robin_sz [n=robin@adsl.redpoint.org.uk] has joined #emc
[13:49:07] <alex_joni> sounds like an autoconnect to me
[13:49:23] <A-L-P-H-A> oops
[13:49:23] <A-L-P-H-A> yeah
[13:50:40] <A-L-P-H-A> no pastebin working atm.
[13:51:12] <alex_joni> works here
[13:52:42] <A-L-P-H-A> pastebin.com?
[13:52:46] <A-L-P-H-A> I'm geting a mysql error
[13:52:54] <A-L-P-H-A> with the query spat back at me... (bad...)
[13:52:55] <alex_joni> works here
[13:53:18] <A-L-P-H-A> "Query failure: Table 'pastebin.pastebin' doesn't exist"
[13:53:38] <alex_joni> http://pastebin.com/771260
[13:53:43] <alex_joni> see what you mean :D
[13:55:03] <jepler> alex_joni: I'm trying to write a kinematics module. It simulates a C axis on a 3-axis milling machine, which I hope will be useful when milling 2-sided circuit boards (you can measure the rotation, rather than trying to make it exactly 0)
[13:55:21] <jepler> alex_joni: I think I've written the right thing in the kinematics module itself, but now I'm not sure how to configure my ini file
[13:55:42] <alex_joni> jepler: the problem will be the HOME & HOME_OFFSET vars I think
[13:55:51] <alex_joni> ini shouldn't really make much difference
[13:55:58] <alex_joni> update Makefile.inc.in though
[13:56:20] <jepler> I changed Makefile.inc to list my kins, maybe I should change .in too
[13:56:41] <jepler> I don't need to add additional [AXIS] sections to my ini file?
[13:58:02] <alex_joni> you do have 3 axes in the ini?
[13:58:14] <jepler> right now there are 3 axes
[13:58:19] <jepler> but for the kinematics I'll refer to "C"
[13:58:29] <alex_joni> then I think you need to define them all
[13:58:34] <alex_joni> xyzabc
[13:58:53] <alex_joni> but I would first try to define XYC
[13:59:18] <alex_joni> jepler: I'm afraid you'll find most of this stuff isn't quite right :(
[14:00:54] <jepler> "joint 5 following error"
[14:00:55] <jepler> hmms
[14:01:37] <alex_joni> * alex_joni remembers
[14:01:43] <alex_joni> joint 5 won't be enabled
[14:01:50] <alex_joni> because motion assumes the stuff in the ini is joints
[14:01:54] <alex_joni> which it kinda is
[14:02:09] <alex_joni> so I think the easiest thing for now is to put XYZABC in the ini
[14:03:08] <jepler> I did that, and added loopbacks for the "C" position
[14:03:13] <jepler> I don't know if that's important
[14:03:22] <A-L-P-H-A> http://pastebin.ca/64301 :) alternative.
[14:03:24] <alex_joni> I think it is
[14:03:58] <jepler> I store the rotation in joint 5 so that I can have a KINEMATICS_BOTH
[14:04:05] <jepler> so it will command motion on joint 5
[14:05:24] <alex_joni> jepler: can you put the kins somewhere for me to look at?
[14:07:25] <jepler> I have to add a degrees-to-radians first
[14:08:25] <alex_joni> brb, need to go to get some more coke :)
[14:10:23] <jepler> this looks promising. I commanded 'G0 X1 C12' and halcmd shows
[14:10:23] <jepler> 03 float R- 9.78148e-01 axis.0.motor-pos-fb <== Xpos
[14:10:23] <jepler> 03 float R- 2.07912e-01 axis.1.motor-pos-fb <== Ypos
[14:11:11] <jepler> http://emergent.unpy.net/index.cgi-files/sandbox/ckins.c
[14:15:24] <A-L-P-H-A> http://www.geckodrive.com/photos/3900IPM.avi <-- 3900"/min.
[14:18:10] <jepler> how many RPM is that?
[14:18:19] <jepler> the screw looks pretty coarse
[14:19:22] <alex_joni> it doesn't say how many pulses / inch
[14:19:56] <alex_joni> jepler: nice
[14:20:10] <alex_joni> now you can modify axis to do jogging with TELEOP ;)
[14:20:23] <jepler> hmph
[14:20:34] <alex_joni> jepler: lol
[14:20:58] <alex_joni> jepler: also switching from jointspace to world
[14:23:16] <jepler> hmph
[14:48:22] <robin_sz> * robin_sz is around
[14:48:26] <robin_sz> just lurking
[14:56:48] <A-L-P-H-A> having big issues with my emc machine.
[14:56:51] <A-L-P-H-A> getting shit speeds. :(
[14:57:07] <A-L-P-H-A> I'm gonna nap first, and then poke at it with a stick.
[15:04:41] <alex_joni> nap always helps
[15:49:11] <davidf> hello..
[15:51:16] <etla> hi
[15:51:37] <davidf> ANybody know of a freeware dxf to g-code program for linux?
[15:52:37] <alex_joni> cam.py I think
[16:01:03] <dan_falck> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl/emcinfo.pl?Cam
[16:02:54] <davidf> alex_joni, dan_falck : Thanks. I found that page googling cam.py just now. Several things there.
[16:06:56] <jmkasunich> hi robin
[16:12:00] <robin_z> hi john
[16:13:18] <alex_joni> hi john
[16:13:23] <jmkasunich> hi
[16:13:30] <alex_joni> jmkasunich: care to see something?
[16:13:43] <jmkasunich> depends on what it is
[16:13:46] <jmkasunich> ;-)
[16:13:51] <alex_joni> a nice picture: http://www.robcon.ro/emc/dapper.png
[16:14:16] <jmkasunich> heh, thats the bootsplash?
[16:14:25] <alex_joni> yeah
[16:14:54] <alex_joni> like it?
[16:14:59] <dmessier> nice..
[16:15:05] <alex_joni> it's a bit oddly rescaled by the VMware server
[16:15:16] <jmkasunich> I'm not fond of bootsplash in general, but if you are gonna use it, thats a nice pic
[16:15:41] <alex_joni> jmkasunich: people can chose to use it instead of the ubuntu default one (apt-get install emc2-artwork-usplash=
[16:15:49] <alex_joni> s/=/)/
[16:16:25] <alex_joni> also I'd like to note that it's a pita to work in 16 colours
[16:18:24] <NickServ> This nickname is owned by someone else
[16:18:24] <NickServ> If this is your nickname, type /msg NickServ IDENTIFY <password>
[16:19:10] <jmkasunich> I'll be traveling all next week... won't be in IRC at all, might have email access (depends on the hotel I'm at)
[16:19:47] <jmkasunich> just updated a laptop with breezy and fresh cvs checkouts, dunno if I'll get anything done or not
[16:22:47] <jmkasunich> alex_joni, you're using the free VMware?
[16:22:56] <alex_joni> jmkasunich: yeah, the VMware Server
[16:22:59] <alex_joni> works great
[16:23:15] <jmkasunich> have you done any speed comparisons between vmware and native?
[16:23:29] <jmkasunich> with qemu the emulation was something like 5x slower
[16:23:32] <alex_joni> jmkasunich: RT stuff works like crap
[16:23:42] <cradek> has anyone read the license agreement for vmware server beta to see if it'll stop working one day?
[16:23:43] <alex_joni> but the system boots pretty fast, and is highly responsive
[16:23:48] <jmkasunich> RT stuff = actually running RT code?
[16:23:58] <alex_joni> jmkasunich: yeah, running sim-axis
[16:24:05] <alex_joni> push the jog, wait 2 seconds it's there
[16:24:13] <jmkasunich> what about the RT patched kernel?
[16:24:19] <alex_joni> works ok
[16:24:37] <alex_joni> I'm using the dapper stuff
[16:24:41] <jmkasunich> so compiles don't take much longer than on a native system?
[16:24:52] <alex_joni> a bit longer, but still OK
[16:25:12] <alex_joni> I didn't actually compile emc2 yet, but jepler said it's a few minutes slower
[16:25:17] <alex_joni> I suspect 10-15%
[16:25:24] <jmkasunich> 10-15% I can live with
[16:25:30] <jmkasunich> 500% is another story
[16:25:34] <alex_joni> indeed ;)
[16:25:52] <jmkasunich> I'd like to consolidate the compile farm to a bunch of virtual machines
[16:28:05] <alex_joni> jmkasunich: the downside is that you need a pretty good machine for it
[16:29:27] <jmkasunich> thats what I was afraid of
[16:29:44] <jmkasunich> unless I use my main box (which I don't want to do) the best I have is a dual P3-600
[16:29:57] <alex_joni> might be too slow
[16:30:26] <alex_joni> my laptop is kinda struggling.. :)
[16:30:35] <jmkasunich> seems like all things are relative aren't they?
[16:30:53] <alex_joni> indeed
[16:31:04] <jmkasunich> IOW, emulating something on a P3-600 should be 10-15% slower than running it native on a P3-600
[16:31:16] <alex_joni> right.. so probably taking a while ;)
[16:31:22] <alex_joni> I'm used to faster stuff..
[16:31:30] <alex_joni> btw, you probably need a good share of memory
[16:31:32] <jmkasunich> since the farm currently runs on a P1-200.....
[16:31:34] <alex_joni> 256 for the VM
[16:31:43] <alex_joni> non-X stuff might be GREAT
[16:31:54] <alex_joni> * alex_joni is talking about the desktop install
[16:31:55] <jmkasunich> the dual P3 box has 768M ram
[16:32:02] <alex_joni> and probably xubuntu would be better
[16:32:24] <jmkasunich> thats because ubuntu (and all other modern desktops) is bloatware
[16:32:39] <alex_joni> xubuntu is xfc4
[16:32:43] <alex_joni> so that might be faster ;)
[16:32:54] <jmkasunich> I'm running xubuntu on the laptop
[16:33:18] <jmkasunich> dunno how fast the laptop is, its a P2-something
[16:33:59] <alex_joni> oh :-O
[16:34:04] <jmkasunich> 366MHz I think
[16:34:20] <jmkasunich> 718 bogomips
[16:34:21] <alex_joni> then I guess running the same on the P3 box in a VM should be similar
[16:34:43] <alex_joni> bogomips : 2803.83
[16:35:08] <jmkasunich> It would be really nice to have a fast fast system as a server
[16:35:24] <jmkasunich> it could run the compile farm, the backup cvs server, and a few other things
[16:35:40] <alex_joni> jmkasunich: wait a few more months
[16:35:44] <alex_joni> till vista comes out ;)
[16:36:05] <alex_joni> then you'll get great machines for free
[16:36:39] <jmkasunich> I'd like something I can rackmount
[16:36:56] <jmkasunich> thats whats nice about that P3 box
[16:37:12] <jmkasunich> not only is it rackmount, I have pretty much a 2nd complete system for spares
[16:40:39] <alex_joni> 4U ?
[16:47:39] <kerry_> logger_aj, bookmark
[16:47:39] <kerry_> See http://81.196.65.201/irc/irc.freenode.net:6667/emc/2006-06-11#T16-47-39
[16:47:40] <jmkasunich> 2U
[16:51:18] <kerry_> Hi guys. Rayh here. Setting up a box for Kerry.
[16:51:25] <jmkasunich> hi ray
[16:51:30] <jmkasunich> been a while since
[16:51:35] <jmkasunich> since you've been here
[16:52:09] <kerry_> Yes. I miss it. Busier than a cat in the litter box.
[16:53:14] <jmkasunich> did I hear you bought a business?
[16:53:15] <alex_joni> hi ray
[16:53:19] <alex_joni> missed you lately ;)
[16:53:42] <alex_joni> kerry_: do you still have the notes from fest?
[16:53:51] <alex_joni> especially the list for stuff we want for 2.1.x ?
[16:53:59] <kerry_> Yes. I bought out my father-in-law's wood carving block business.
[16:54:00] <alex_joni> * alex_joni seems to have misplaced it :(
[16:54:31] <kerry_> I don't remember many notes that I took.
[16:54:41] <kerry_> Board meeting?
[16:54:57] <jmkasunich> "wood carving block"? is that "blocks for people to carve on" or "blocks that are already carved"?
[16:54:57] <kerry_> Oh 2.1.
[16:55:16] <kerry_> "blocks for people to carve on"
[16:55:25] <jmkasunich> like basswood and such?
[16:55:35] <kerry_> Basswood and a few other soft hardwoods.
[16:55:46] <jmkasunich> heh, soft hardwoods ;-)
[16:55:49] <alex_joni> kerry_: yeah, board meeting and 2.1 ;)
[16:56:29] <kerry_> Darn I don't think I know any more about 2.1 than is in the wiki stuff you put up.
[16:56:40] <kerry_> Hi Todd.
[16:56:59] <roltek> hi
[16:56:59] <kerry_> rayh here
[16:57:07] <roltek> chris are you in
[16:57:08] <jmkasunich> yesterday alex pasted some notes into the board channel, then he and I made SF "tasks" for them
[16:57:19] <jmkasunich> I don't think cradek is around right now
[16:57:28] <kerry_> Okay. Let me look.
[16:57:48] <roltek> could you tell me if handwheel is working in rt
[16:58:44] <jmkasunich> you mean jogging from a handwheel?
[16:58:51] <roltek> yes
[16:58:55] <jmkasunich> not really
[16:59:13] <jmkasunich> chris did some work on it during the fest, going thru halui (which is non-realtime)
[16:59:29] <jmkasunich> the results weren't impressive IMO, too jerky
[16:59:29] <SWPadnos> hi folks
[16:59:48] <jmkasunich> I think a proper jogwheel needs to be done in realtime, whcih complicates things
[16:59:56] <jmkasunich> can't just send NML jog messages
[17:00:00] <alex_joni> jmkasunich: we probably want to do the RT handwheel in motion somewhere
[17:00:02] <SWPadnos> I don't think there's any way to get a motion command *from* an RT component
[17:00:16] <roltek> if its not in real time you might crash tools or something else
[17:00:17] <alex_joni> jmkasunich: like slaving an joint to it
[17:00:46] <jmkasunich> doing the actual motion in the motion controller isn't hard
[17:00:48] <roltek> what about how the threading is working
[17:00:49] <SWPadnos> the motion controller is still in RT, but the commands that describe motions aren't
[17:00:58] <jmkasunich> what will be complex is controlling it
[17:01:13] <jmkasunich> telling the motion controller what axis to drive with the wheel, and what scale factor to use
[17:01:22] <jmkasunich> when _not_ to drive an axis with the wheel
[17:01:35] <jmkasunich> (for instance, never jog during a program ;-)
[17:01:51] <roltek> i seen chris moving the spindle by hand and the z was following it
[17:02:31] <SWPadnos> that's spindle sync
[17:02:34] <jmkasunich> right
[17:02:46] <jmkasunich> similar but not the same as jogwheel
[17:03:04] <jmkasunich> I have to leave very soon (5 mins)
[17:03:16] <roltek> not the same but in principle it should work
[17:03:22] <jmkasunich> maybe later if chris is around we can brainstorm on alternate ways to approach jogwheel
[17:03:32] <jmkasunich> (alternate to the halui approach)
[17:03:38] <roltek> great look forward to it
[17:03:45] <SWPadnos> or hte more generic idea that there should be an RT motion command path
[17:03:58] <SWPadnos> which you can then connect HAL blocks to
[17:04:04] <SWPadnos> (or similar)
[17:04:17] <jmkasunich> it can't be too generic
[17:04:33] <jmkasunich> for instance it should be mode-aware
[17:04:34] <kerry_> what is Make halcmd use GNU getline in interactive mode?
[17:04:36] <SWPadnos> no - just generic enough ;)
[17:04:52] <SWPadnos> so you can do caaommand line editing, similar to bash
[17:04:57] <jmkasunich> the motion controller has three modes, auto, teleop, and free, jogging is a free mode thing
[17:04:58] <SWPadnos> argh - can do ...
[17:05:20] <SWPadnos> also tab completion, and regexp matching for HAL names
[17:05:29] <SWPadnos> (shuold be on the list, if they're not)
[17:05:35] <roltek> have to leave see you guys later
[17:05:37] <SWPadnos> damn, I can't type this morning
[17:06:42] <kerry_> Okay. That won't affect the way that halshow interacts with halcmd then.
[17:06:57] <jmkasunich> for jogwheel, part of the design issues is dealing with simultaneous spinning of the jogwheel and jog commands from a GUI
[17:06:59] <SWPadnos> nope - only matters for interactive mode
[17:07:02] <jmkasunich> kerry_, right
[17:07:16] <jmkasunich> the interactive mode is when you do halcmd -f <nofilename>
[17:07:26] <kerry_> Okay.
[17:07:29] <jmkasunich> and it prints a "hal:" prompt
[17:07:56] <jmkasunich> gotta go
[17:08:36] <SWPadnos> see you later
[17:09:08] <alex_joni> later jmkasunich
[17:10:35] <kerry_> This install is a Dell Latitude. Any wisdom here for how to complete the installation?
[17:10:57] <SWPadnos> are you having particular troubles?
[17:11:30] <kerry_> Getting emc2 now.
[17:11:44] <kerry_> No the install and upgrade seems to have gone well.
[17:12:09] <kerry_> Probably will not try the modem configuration unless kerry really wants it.
[17:12:28] <SWPadnos> upgrade to dapper, or just an update to breezy?
[17:13:58] <kerry_> breezy
[17:14:06] <kerry_> I don't have that much courage.
[17:14:08] <SWPadnos> phew. that should make it easier :)
[17:14:18] <kerry_> How is that Dapper stuff going?
[17:15:00] <SWPadnos> Alex has some packages that seem to work, but after upgrading breezy, I had several problems getting a viable build environment again
[17:15:10] <SWPadnos> err - opgrading to dapper
[17:15:16] <SWPadnos> upgrading - argh
[17:15:30] <SWPadnos> also some problems with the new X server and my old ATI card
[17:15:42] <kerry_> Oh. Build problems. ..
[17:16:03] <kerry_> Note to self -- Don't go there!
[17:16:18] <SWPadnos> well, some libraries went missing during the install, and it took a bit to figure out whet they were
[17:16:23] <SWPadnos> mostly GL, for axis
[17:16:58] <kerry_> You did the dapper upgrade on line from breezy?
[17:17:03] <SWPadnos> yes
[17:17:13] <SWPadnos> I hear it's a lot smoother if you do a clean install
[17:17:26] <kerry_> I need to order dapper cds and try from there.
[17:17:28] <SWPadnos> though alex did have to do some work on the packages
[17:18:07] <SWPadnos> are you on dial-up rght now, or some fine business connection? ;)
[17:20:22] <kerry_> Biz.
[17:20:28] <kerry_> Nice to be fast.
[17:20:38] <SWPadnos> so downloading may be faster than mail from Europe then ;)
[17:22:18] <kerry_> Might be. I should find a box here with a burner and do that. Thanks
[17:23:13] <SWPadnos> any time
[17:24:09] <kerry_> We had frost at home the last two nights. Darn cold for this time of year.
[17:24:18] <alex_joni> kerry_: cold over here too
[17:24:24] <SWPadnos> yep. about 20 degrees below normal here as well
[17:24:25] <alex_joni> 12-15 degrees max
[17:24:31] <alex_joni> and it should be 30+
[17:24:40] <kerry_> That is coat weather.
[17:24:42] <alex_joni> kerry_: I advise a clean install for dapper
[17:24:43] <SWPadnos> cold, and record rainfall in several locations
[17:25:06] <kerry_> You guys got a lot of rain.
[17:25:15] <alex_joni> yeah, we too
[17:25:28] <SWPadnos> there was flooding in NH, about 100 miles from me
[17:25:35] <SWPadnos> also some in VT, but not as bad
[17:26:08] <kerry_> Tough on gardens here.
[17:26:45] <SWPadnos> heh - and my wife just got the gardening "bug"
[17:26:52] <SWPadnos> she's out there in rain pants right now ;)
[17:26:54] <kerry_> alex_joni, If I do a clean install, what do I have to do to modify the emc install script?
[17:27:08] <SWPadnos> s/breezy/dapper/g
[17:30:51] <alex_joni> SWPadnos: any problems you had?
[17:30:56] <alex_joni> except the X stuff
[17:31:09] <SWPadnos> I don't think so - they were all X and build related
[17:31:34] <alex_joni> ok.. I was thinking more about that build problem
[17:31:58] <SWPadnos> it was missing libs, that apt thought were there - not the emc build itself (I think)
[17:32:15] <alex_joni> I mean the rtai
[17:32:26] <alex_joni> it should be perfectly acceptable to have both installed
[17:32:36] <alex_joni> but you need to use ./configure --with-rtai=..
[17:32:53] <SWPadnos> right - I saw that it found both, but just chose the first one
[17:33:37] <SWPadnos> that's an upgrade / dependency issue
[17:33:59] <SWPadnos> they would have been removed if your debs are marked as replacements for chris'
[17:34:38] <alex_joni> no, that's what I mean
[17:34:46] <alex_joni> I thought more about it and they shouldn't conflict
[17:34:57] <alex_joni> because some (even I) might want to have more than one installed
[17:35:07] <SWPadnos> ok - they're like multiple kernel versions
[17:35:50] <SWPadnos> so either configure should choose the highest numbered RT version found, or people like me should be smart enough to specifythe one they want to use
[17:35:57] <SWPadnos> or both ;)
[17:36:33] <alex_joni> exactly
[17:36:46] <alex_joni> it's no error to have more than one
[17:37:07] <alex_joni> maybe someone will have magma/vesuvio/... installed
[17:37:12] <alex_joni> for the same kernel
[17:37:19] <SWPadnos> heh - or --with-rtai wouldn't be there, I guess :)
[17:37:21] <kerry_> I see that I'm not registered as kerry so get mixed stuff on private.
[17:37:22] <alex_joni> so that number is also a red herring :)
[17:37:37] <alex_joni> mixed stuff?
[17:39:19] <SWPadnos> "sorry bud - you can't /msg people unless you're registered" - that kind of thing?
[17:40:24] <skunkworks> when I got the source from cvs - It gave me an error - something about numbers not matching. (didn't effect anything though)
[17:40:28] <kerry_> * kerry_ goes to find the registration info
[17:40:40] <SWPadnos> "/ns help register"
[17:40:43] <skunkworks> I forgot to save the error.
[17:40:55] <SWPadnos> the axis code, or emc2?
[17:41:06] <SWPadnos> s/code/source/
[17:41:13] <skunkworks> it would have been the emc2
[17:41:39] <skunkworks> remember I thought axis would also download from the csv
[17:41:41] <skunkworks> :)
[17:41:44] <SWPadnos> right
[17:42:04] <SWPadnos> was this the first time you tried to checkout? (on a new install)
[17:42:24] <skunkworks> I asked me right after issuing checkout - I actally had to say yes - continue
[17:42:43] <jepler> there's a message that the host key is not recognized
[17:42:48] <skunkworks> thats it
[17:42:55] <jepler> yeah, that is normal for the first time
[17:43:09] <skunkworks> ok - like I said - it worked
[17:43:47] <jepler> The authenticity of host 'cvs.linuxcnc.org (206.222.212.221)' can't be established.
[17:43:47] <jepler> DSA key fingerprint is 5b:b7:3d:04:9d:dd:86:ad:dc:c6:78:81:d4:3d:05:8e.
[17:43:47] <jepler> Are you sure you want to continue connecting (yes/no)?
[17:44:53] <skunkworks> yes that looks like it.
[17:56:19] <kerry_> gotta reboot into rtai
[18:04:19] <jepler> * jepler struggles with timers on avr
[18:05:18] <alex_joni> procyon stuff?
[18:05:30] <SWPadnos> whatcha trying to do?
[18:07:17] <kerry_> EMC2 works!
[18:07:22] <jepler> I'm trying to count the rate of incoming pulses, and generate some other pulses at a related rate. basically, a step multiplier
[18:07:24] <SWPadnos> weird ;)
[18:07:35] <giacus> strange :D
[18:07:42] <alex_joni> kerry_: of course it does.. did you have any doubt?
[18:08:02] <alex_joni> jepler: so basicly set one up as a counter, and another as a ulse generator?
[18:08:07] <jepler> alex_joni: yes
[18:08:11] <SWPadnos> jepler, using software to do the quadrature counting, based on a timer interrupt?
[18:08:13] <giacus> he's just happy as I was when i seen it running the first time :P
[18:08:28] <alex_joni> jepler: avrlib? or asm?
[18:08:31] <jepler> when I see a pulse, I want to count how much time passed since the last pulse
[18:08:35] <giacus> kerry_: congrats ;P
[18:08:35] <SWPadnos> you can do the pulse generator easily with the PWM mode
[18:08:39] <jepler> alex_joni: I'mw riting in "C" so far
[18:08:56] <alex_joni> you should look at avrlib (from procyon)
[18:08:59] <SWPadnos> ok, setting up the timer as a clock tick counter, and using an interrupt for the input edge trigger?
[18:09:02] <alex_joni> http://hubbard.engr.scu.edu/embedded/avr/avrlib/docs/html/index.html
[18:10:00] <alex_joni> http://hubbard.engr.scu.edu/embedded/avr/avrlib/docs/html/group__timer.html
[18:10:45] <jepler> SWPadnos: yes
[18:11:06] <SWPadnos> ok. those libraries look cool (after a quick look-see)
[18:11:21] <jepler> in my interrupt, how do I use TCNT0 and TOV0 to reliably get the amount of time that has passed since the last SIG_OVERFLOW0?
[18:11:26] <alex_joni> * alex_joni used them quite a few times
[18:11:31] <SWPadnos> but there will definitely be a performance penalty for using C (vectoring the interrupts, if nothing else)
[18:11:46] <SWPadnos> reset the timer on SIG_OVERFLOW
[18:12:05] <SWPadnos> oops - overflow is the counter overflow - duh
[18:12:18] <SWPadnos> * SWPadnos doesn't know what anything is called in avrgcc ;)
[18:13:16] <SWPadnos> timer 0 is usually an 8-bit counter, right?
[18:13:22] <jepler> yes, it is
[18:13:37] <SWPadnos> ok
[18:13:54] <SWPadnos> if you read TCNT0, that's the number of ticks since the last timer overflow
[18:14:11] <SWPadnos> you should have an overflow interrupt that increments a high byte (or word) variable
[18:14:29] <SWPadnos> that gives you the number of cycles (or prescaled clock ticks) that have elapsed.
[18:14:31] <jepler> uint8_t now_h;
[18:14:31] <jepler> SIGNAL(SIG_OVERFLOW0) { if(now_h != 255) now_h++; }
[18:14:40] <jepler> that's what this code is intended to do
[18:14:52] <jepler> it's the "high byte" of the time, and saturates at 255
[18:14:58] <SWPadnos> ok.
[18:15:11] <SWPadnos> what does it do now?
[18:15:25] <jepler> I don't know, I haven't got enough of a program to test
[18:15:29] <SWPadnos> aheh
[18:15:52] <SWPadnos> how is SIG_OVERFLOW generated in the C library?
[18:16:08] <SWPadnos> or is it actually hooked to the TOV0 interrupt?
[18:16:27] <jepler> SIGNAL(SIG_OVERFLOW0) arranges to put the address of the prologue of this function in the interrupt table, when you actually link the binary
[18:16:36] <SWPadnos> ok
[18:16:48] <SWPadnos> what chip, by the was?
[18:16:50] <SWPadnos> way
[18:17:06] <jepler> probably at90s2313 or attiny2313 but nothing's definite
[18:17:25] <SWPadnos> unless you have some, more likely the mega2313 ;)
[18:17:30] <SWPadnos> or the tiny
[18:17:41] <SWPadnos> but the plain old 2312 is EOL
[18:17:44] <SWPadnos> argh
[18:17:46] <SWPadnos> 2313
[18:17:58] <jepler> oh yeah? I haven't kept track. cradek has a stash of DIP at90s2313s
[18:18:05] <jepler> SIGNAL(SIG_INTERRUPT0) {
[18:18:05] <jepler> uint16_t now = TCNT0;
[18:18:05] <jepler> if(now == 0 && (TIFR & _BV(TOV0))) { now += 256; }
[18:18:05] <jepler> now |= (now_h << 8);
[18:18:07] <SWPadnos> ok. that'll work
[18:18:14] <alex_joni> SWPadnos: not your best day at typing..
[18:18:19] <SWPadnos> by far
[18:18:27] <jepler> here's my guess at how to use TCNT0, TOV0, and now_h to get a 16-bit timestamp
[18:18:42] <SWPadnos> TCNT0 is an 8-bit number, so it should be a uint8_t
[18:18:55] <alex_joni> or 0 | TCNT0
[18:19:18] <SWPadnos> _BV?
[18:19:31] <jepler> _BV(X) == (1<<X)
[18:19:36] <SWPadnos> ok
[18:19:38] <SWPadnos> bit value
[18:20:20] <SWPadnos> I'm not sure that TOV0 will be true when in the interrupt
[18:20:53] <SWPadnos> argh - thinkos and typos today
[18:21:13] <jepler> if the overflow is pending because the overflow "just happened" then TOV0 will be set
[18:21:21] <SWPadnos> yep
[18:21:50] <SWPadnos> interrupts are still disabled when in this function, right? (ie, the RTL doesn't "acknowledge" the int, then pass control to your function)
[18:21:57] <jepler> yes, interrupts are disabled
[18:22:00] <SWPadnos> ok
[18:22:15] <SWPadnos> now may not be 0 though, so just check the flag
[18:22:51] <SWPadnos> read TCNT0, combine with high_byte, if flag is set then add 256 to total
[18:23:09] <SWPadnos> (flag = TOV0)
[18:23:12] <jepler> but if now was 255 and then I read TOV0 as set, it would be because it just overflowed and I shouldn't add 256 more
[18:23:30] <SWPadnos> yep ;)
[18:23:37] <SWPadnos> there's a race no matter how you look at it
[18:24:00] <SWPadnos> you can check for TCNT0 < 20 or something like that
[18:24:15] <SWPadnos> but =0 will be very unlikely
[18:24:20] <SWPadnos> argh = 0
[18:24:25] <SWPadnos> silly smilies ;)
[18:24:35] <jepler> I think I'll use the /64 prescaler so it's actually pretty likely
[18:25:36] <SWPadnos> ok, then use 0 or 1, in case the function preamble is long enough to overflow the prescaler
[18:26:13] <SWPadnos> now <= 1 should take care of all cases if the preamble is short
[18:27:32] <SWPadnos> is this a divider or a multiplier? (or both)
[18:28:09] <jepler> this one is intended strictly as a multiplier
[18:28:18] <SWPadnos> ok
[18:29:24] <jepler> so once I know 'dt', the time between input pulses, I'll set the Output Compare Register of timer 1 accordingly
[18:29:38] <SWPadnos> yep
[18:30:16] <jepler> so now I'm looking for documentation on what happens if TIMER1 = 100, and I change OCR from 200 to 50
[18:30:24] <SWPadnos> actually, you should look at the mega series instead - they have variable period PWM, much easier to use
[18:30:55] <SWPadnos> well, in timer mode (not PWM), it'll wait until the next time around before changing the output
[18:31:12] <SWPadnos> in PWM mode, it'll do the same thing, but for a different reason ;)
[18:32:08] <SWPadnos> actually, in PWM mode, it'll complete the current cycle at the old rate, then load the new rate, so it would "switch" a little faster
[18:32:31] <SWPadnos> in timer mode, it'll have to overflow the timer
[18:38:10] <SWPadnos> actually jepler, I think you'll want to use afst PWM mode (or phase correct mode if you don't need the speed)
[18:38:49] <SWPadnos> you'd set it so that ICR1 is TOP, and OCR1A would set the pulse width
[18:39:13] <jepler> * jepler hmms
[18:42:30] <SWPadnos> are you trying for square waves, or fixed-width output pulses?
[18:42:49] <SWPadnos> (or "whatever you get, within limits")
[18:42:52] <jepler> "whatever"
[18:42:55] <SWPadnos> ok
[18:43:17] <SWPadnos> it's easiest for me to look it as a fized-width pulse, and a variable period
[18:43:23] <SWPadnos> fixed-width
[18:43:38] <SWPadnos> that's easy to do in the single-slope (fast) PWM mode
[18:43:59] <SWPadnos> you just have to use a register as the period, rather than one of the fixed periods (of course)
[18:46:44] <jepler> CTC mode?
[18:46:46] <SWPadnos> do you have the dir_out bit connected to OCR1B?
[18:47:28] <jepler> there's no board yet so I can have whatever I like
[18:48:17] <SWPadnos> ok. you can have the PWM control the DIR pin, or do stepper phase drive if you use the timer pins for both
[18:50:09] <SWPadnos> I have a timer setup for this - let me translate from mega162 registers to see what I did ;)
[18:51:05] <SWPadnos> gah - processor datasheets make me want the Be file system
[18:52:17] <A-L-P-H-A> could someone double check my math? http://pastebin.ca/64461
[18:52:44] <A-L-P-H-A> Be File system?
[18:52:51] <A-L-P-H-A> pardon?
[18:53:27] <SWPadnos> looks right to me
[18:53:40] <A-L-P-H-A> I should be welllllll within that range.
[18:53:41] <SWPadnos> you can add extra parameters to files - the FS is like a database
[18:54:06] <SWPadnos> so I could do things like have a vendor name (doc2455.pdf) and my own name "ATMega162.pdf"
[18:54:16] <SWPadnos> and search by either or both
[18:54:18] <A-L-P-H-A> 0.00046875 <-- is that too fast?? I don't think it is... but it's so short I can't actually picture that speed.
[18:54:29] <SWPadnos> for the BASE_PERIOD?
[18:54:46] <A-L-P-H-A> I dunno now.
[18:54:47] <SWPadnos> (step generation thread)
[18:55:11] <SWPadnos> well - you need twice that, since it takes at least two PERIODs to generate a pulse (set high, then set low)
[18:55:19] <SWPadnos> twice the speed, half the period, that is
[18:55:27] <A-L-P-H-A> give me a sec... while I boot up the EMC machine.
[18:55:42] <jepler> A-L-P-H-A: you want the BASE_PERIOD to be several times faster than the maximum step rate. The default BASE_PERIOD of 50us should be fine to generate 2133 steps/second
[18:55:43] <SWPadnos> you should easily be able to get by with the default, which is either 0.000020 or 0.000050
[19:03:55] <alphalaptop> oh the fun begins on the emc machine.
[19:03:58] <alphalaptop> this is the BDI.
[19:04:18] <alphalaptop> should I just scrap the BDI and install the ubuntu that AJ or Cradek made?
[19:05:29] <giacus> that could be OT
[19:05:53] <giacus> BDI have his hown website, ML amd maybe irc channel
[19:06:02] <giacus> own*
[19:06:47] <alphalaptop> I had a cycle time of CYCLE_TIME = 0.00024
[19:07:03] <alphalaptop> giacus, ? what are you talking about?
[19:07:25] <alphalaptop> BDI is the brain dead install of EMC... a while back.
[19:07:30] <alphalaptop> with emc 1
[19:08:12] <giacus> I just sayd was I think about
[19:08:24] <skunkworks> If it where me - Go the ubuntu route. Painless
[19:08:40] <skunkworks> but make sure you use breezy and not dapper
[19:09:12] <skunkworks> they don't have dapper setup yet with the real time kernel yet
[19:09:47] <giacus> s /was/ what
[19:09:48] <alphalaptop> 'ight...
[19:09:52] <dmessier> whats up ahpha
[19:10:22] <alphalaptop> setting up the mill... trying to figure out why my speed is so slow. when it shouldn't be at all... I'm thinking it's a BDI issue... so going the better newer support route
[19:11:32] <dmessier> throw puppie with emc2 on at for a quick check...
[19:11:58] <dmessier> see what it says..
[19:12:03] <SWPadnos> can you pastebin your ini file?
[19:12:31] <dmessier> seemed pretty slick to me... no machine to try it on and all..
[19:12:34] <alphalaptop> SWPadnos, yup
[19:12:35] <alphalaptop> sec
[19:12:53] <SWPadnos> also let us know what kind of speeds you get now
[19:13:01] <skunkworks> alphalaptop: this was running on a laptop? Have you run the latency test on it? That could be part of your problem - some laptops don't play well with rt
[19:13:07] <alphalaptop> nono
[19:13:14] <SWPadnos> (no sense throwing ubuntu at it until we know what's wrong, or that we can't figure it out ;) )
[19:13:16] <alphalaptop> alphalaptop is now known as alpha_EMC_Workst
[19:13:22] <alpha_EMC_Workst> not on the laptop
[19:13:29] <alpha_EMC_Workst> on a crappy duron 700 with 512megs ram
[19:13:47] <SWPadnos> faster than my crappy celeron 500 with 512M, which works fine
[19:13:48] <skunkworks> ah - what about - on board video?
[19:13:56] <alpha_EMC_Workst> SWPadnos, http://pastebin.ca/64482
[19:13:59] <skunkworks> right that machine should work well
[19:14:03] <dmessier> i think you might have mm to inch issues that would cause this sorta booboo
[19:14:42] <A-L-P-H-A> k
[19:14:45] <A-L-P-H-A> back in the other room.
[19:15:46] <SWPadnos> your max velocity is set to 0.4 (TRAJ) or 0.32 (AXIS_xx)
[19:16:00] <SWPadnos> that's 24 IPM or ~20 IPM
[19:16:16] <SWPadnos> err - 24 or 19.2 IPM
[19:16:24] <SWPadnos> is that about what you get?
[19:16:54] <dmessier> about 1/2 if im not mistaken
[19:17:00] <dmessier> 10 ipm
[19:17:32] <A-L-P-H-A> getting half that.
[19:17:45] <A-L-P-H-A> installing that emc+ubuntu iso that was floating around.
[19:17:54] <SWPadnos> ok
[19:18:03] <dmessier> hmm you sure you got the gearing math right ALPHA
[19:18:11] <alpha_EMC_Workst> yeah
[19:18:15] <alpha_EMC_Workst> 30 teeth onthe motor.
[19:18:19] <alpha_EMC_Workst> 48 teeth on the ball screw
[19:18:53] <alpha_EMC_Workst> I was using bdi 4.2
[19:19:00] <alpha_EMC_Workst> brb
[19:19:02] <SWPadnos> 4.20?
[19:19:38] <SWPadnos> (that actually means four point twenty, not four point two zero)
[19:20:00] <Jymmm> 420
[19:20:00] <dmessier> you've got the mackin's for a SUPER -precision machine there... dont fry it
[19:20:28] <SWPadnos> is that a 10TPI screw?
[19:22:15] <SWPadnos> gotta make a quick run to the store - bbiab
[19:23:12] <Jymmm> SWPadnos pick me up some steaks while your there
[19:27:31] <dmessier> APLHA... are you using inch or mm to program??
[19:30:48] <etla> if anyone is interested: some notes and pics of my servdodrive and jog-pendant project: http://www.anderswallin.net/2006/06/first-steps-with-brushless-servodrive-microchip-dspic-irf-irams/
[19:32:47] <jepler> etla: what are the two empty DIP sockets on the power stage?
[19:34:53] <jepler> A-L-P-H-A:
[19:34:54] <jepler> #
[19:34:54] <jepler> #
[19:34:54] <jepler> DEFAULT_ACCELERATION = 0.5
[19:34:54] <jepler> #
[19:34:55] <alpha_emc> well...
[19:34:56] <jepler> MAX_ACCELERATION = 0.5
[19:34:59] <jepler> argh, excuse the bad paste
[19:35:11] <alpha_emc> hi.
[19:35:20] <jepler> A-L-P-H-A: these are fairly low accelerations. is it possible you just can't reach 20ipm at this acceleration?
[19:35:30] <alpha_emc> I'm now booted with the the ubuntu CD... not dapper drake.
[19:35:37] <dmessier> it is a small machine
[19:35:46] <etla> jepler: they were meant for current sensing amplifiers. that way the microcontroller would monitor the phase currents all the time and control them in a pid loop
[19:35:46] <alpha_emc> it's 27" x 7" or something like that.
[19:35:50] <alpha_emc> it's a bench top mill.
[19:36:00] <alpha_emc> largish bench top... as it's still a bench top
[19:36:10] <dmessier> still small enuf
[19:36:26] <alpha_emc> <-- finally knows enough knowledge of linux to get NETWORKING up and running on a live CD...
[19:36:35] <alpha_emc> the live CD wouldn't auto config my network card... whacked.
[19:36:36] <etla> but I'm not using them currently, it's enough of a challenge to get the open-loop servodrive working. I'm hoping that EMC can close the loop.
[19:37:13] <jepler> I guess that's still <1 second to accelerate to 20ipm so that can't be the cause of the low speeds...
[19:37:48] <dmessier> puppy networked fine on 5-6 boxes i tried it on... even could mount some long lost drives...
[19:38:57] <dmessier> could you be feeeding inch data into a mm system???
[19:39:17] <alpha_emc> don't know.
[19:39:22] <alpha_emc> haven't even looked at the sample configs yet
[19:39:25] <alpha_emc> which I'm about to do
[19:39:57] <dmessier> good luck brother ; )
[19:40:07] <fenn> alpha_emc: try "ifconfig eth0 up ; route add default gw (router's IP here)"
[19:40:08] <jepler> (in bdi4emc) did you verify that when you command a 1 inch move it actually moves 1 inch?
[19:40:46] <dmessier> i havent tried a a U install yet
[19:40:48] <A-L-P-H-A> what's a good base point for me to start probing around with?
[19:41:27] <A-L-P-H-A> okay... time to start reading emc2 manuals.
[19:42:00] <jepler> A-L-P-H-A: there are several stepper configs in /etc/emc2/sample-configs -- if your machine has a "standard" (sherline) or "xylotex" pinout for the step+dir pins you can start there
[19:42:04] <dmessier> confirm machine...
[19:42:31] <dmessier> gecko right?/
[19:42:41] <A-L-P-H-A> I'm looking atm i forget my pinout... I'd have to check everything again anyways. This time I'm documenting stuff.
[19:43:09] <dmessier> LOL... been there done that..
[19:43:27] <jepler> A-L-P-H-A: the emc2 .ini file is very similar to the bdi4emc .ini file. But there are also one or more .hal files that specify the pinout (among other things)
[19:43:53] <A-L-P-H-A> looking at the stepper_inch.ini file now.
[19:45:44] <A-L-P-H-A> okay... to get up and running, this doesn't seem too bad...
[19:46:06] <A-L-P-H-A> tackle the standard+pinout.hal file... make sure stepper_inch.ini file is correct... andI'm up and running!
[19:46:28] <jepler> I'm not sure what provision there is for saving the config files when using the ubuntu live CD
[19:46:38] <A-L-P-H-A> usb key... that's about it.
[19:46:58] <jepler> normally, you copy /etc/emc2/sample-configs/whatever to ~/emc2/configs/ and it will appear on the menu
[19:47:39] <jepler> you can use a USB key but it won't appear on the menu. instead, you'll have to open a terminal and start it with this command: emc /media/...../example.ini
[19:49:04] <A-L-P-H-A> I could handle that...
[19:49:19] <A-L-P-H-A> http://mirror.cs.umn.edu/ubuntu-releases/5.10/ <-- found breezy badger
[20:02:20] <A-L-P-H-A> someone change the topic so that is states EMC2.0.1 is out
[20:02:25] <A-L-P-H-A> need freak'n food.
[20:03:23] <giacus> darn blender
[20:03:32] <giacus> fantastic app :D
[20:05:20] <giacus> * giacus learnig, learning learning, reading all tutorials can found
[20:05:57] <A-L-P-H-A> model a naked women... then model another... umm... then make movies. :)
[20:06:07] <giacus> :P
[20:06:29] <giacus> great 'piece of software' !
[20:08:20] <giacus> 4 week playng with multimedia apps
[20:08:38] <giacus> I should see some result soon ..
[20:08:42] <A-L-P-H-A> cool.
[20:08:56] <A-L-P-H-A> lets see some naked woman.
[20:09:45] <giacus> A-L-P-H-A: nice time for strawberry here :)
[20:09:57] <giacus> sweet and good
[20:10:10] <A-L-P-H-A> woman with strawberries in strategic locations. :)
[20:10:19] <giacus> I have to stop eating
[20:10:27] <A-L-P-H-A> I eat strawberries with sugar.
[20:10:29] <giacus> let me move the plate away ..
[20:10:51] <giacus> 1/2 kg is enough for now
[20:10:55] <giacus> :D
[20:11:37] <A-L-P-H-A> it'd be nice to add some raspberries, blackberries, strawberries, protein power, scoop of peanut butter, and a touch of water... yummy protein shake.
[20:11:45] <A-L-P-H-A> oh a banana
[20:11:48] <A-L-P-H-A> too
[20:12:11] <giacus> A-L-P-H-A: 90% of womans are a very bad thing for developers or advanced computer users :(
[20:12:29] <A-L-P-H-A> very true.
[20:12:32] <A-L-P-H-A> where was I reading.
[20:12:49] <A-L-P-H-A> that scientists that get married, loose all ability to produce good results.
[20:14:16] <giacus> however, I can't live without they ..
[20:16:02] <giacus> strange effect
[20:16:18] <giacus> but true
[20:28:24] <SWPadnos> A-L-P-H-A, you have a hold time of 4 in your BDI ini file - that means 4 periods step pulse width
[20:28:30] <SWPadnos> that would slow things down a little
[20:28:48] <SWPadnos> and 2 for SETUP_TIME
[20:30:05] <SWPadnos> though with a 0.000024 PERIOD, you should still be able to get ~7 KHz
[20:34:39] <CIA-8> 03jepler 07HEAD * 10emc2/src/Makefile: print the 'sudo make setuid' message only when it's needed
[20:38:46] <A-L-P-H-A> OH!!!
[20:38:55] <A-L-P-H-A> FUCK... that would slow down shit loads.
[20:38:59] <A-L-P-H-A> hhhhhhhhhhhhm.
[20:39:20] <A-L-P-H-A> SWPadnos. thanks.
[20:39:35] <A-L-P-H-A> on my way to install breezy and then emc2.
[20:46:28] <CIA-8> 03jepler 07HEAD * 10emc2/src/hal/classicladder/ (drawing.c drawing.h): partial support for rendering ladders as postscript. not yet hooked up to the GUI.
[20:49:30] <alex_joni> oh-oh
[20:49:49] <alex_joni> jepler: that sounds like you're on to something :D
[20:52:27] <jepler> actually it's work I had laying around on my hard drive that I never finished
[20:54:32] <alex_joni> still nice
[21:01:00] <K4ts> hello
[21:01:05] <K4ts> ciao
[21:01:10] <K4ts> nonsoir dmessier
[21:01:18] <K4ts> bonsoir
[21:01:40] <K4ts> ça va mieux ce soir
[21:01:55] <K4ts> merçi pour votre preier
[21:02:00] <K4ts> :-)
[21:05:06] <alex_joni> wow, seems linuxcnc has quite some traffic
[21:05:19] <SWPadnos> really?
[21:05:45] <alex_joni> 17724 Visitors, 126612 Hits since 04.20
[21:06:16] <fenn> http://www.cs.unm.edu/~dlchao/flake/doom/
[21:06:16] <SWPadnos> hmmm - still <200GB transfer expected this month
[21:06:33] <SWPadnos> fenn, seen that - pretty funny
[21:06:34] <fenn> oh man that interface should be standard on all systems
[21:06:35] <alex_joni> SWPadnos: this is text mostly
[21:06:42] <alex_joni> and linuxcnc.org does gz
[21:07:06] <SWPadnos> that's total for all my DH domains, so it includes cncgear iso downloads
[21:07:28] <SWPadnos> ~4.5GB for linuxcnc alone
[21:07:57] <alex_joni> that is used traffic?
[21:08:03] <alex_joni> sounds like way too much
[21:08:08] <SWPadnos> expected for this billing cycle
[21:08:12] <SWPadnos> 30 days
[21:08:24] <alex_joni> I can't figure out what would sum up for that
[21:08:31] <SWPadnos> images and pdfs, probably
[21:08:33] <fenn> ubuntu iso's
[21:08:41] <SWPadnos> the isos are on cncgear.com
[21:08:42] <alex_joni> fenn: those aren't on linuxcnc.org
[21:09:08] <jepler> axis website was 1.8GB last month, 7800 visits
[21:09:27] <SWPadnos> not to worry - I've got > 2TB/month of transfer available
[21:09:30] <alex_joni> the manuals are about 3MB or so (pdf)
[21:09:47] <alex_joni> SWPadnos: I'm not worrying.. just can't imagine what would be that much traffic
[21:10:11] <giacus> wait some week ..
[21:10:14] <giacus> hehe
[21:10:38] <Jymmm> SWPadnos what has 4.5GB of traffic?
[21:10:42] <alex_joni> jepler: 230kB / visit.. sounds pretty much
[21:10:48] <giacus> SWPadnos: you like large size videoclip ;P
[21:10:50] <SWPadnos> linuxcnc.org, web transfers
[21:10:53] <SWPadnos> heh
[21:11:02] <giacus> multimedia files can do the difference
[21:11:37] <giacus> right now, I'm dowloading blender video tuorials of 60-80 mb each :/
[21:11:47] <SWPadnos> alex_joni, most people visiting the axis site are probably downloading the latest.gz, in addition to the (small) images and the pages leading to the cvs downloads page
[21:11:57] <SWPadnos> or was that 230k for linuxcnc?
[21:12:08] <Jymmm> SWPadnos what to the logs say? Is someone hotlinking?
[21:12:14] <SWPadnos> I have no idea
[21:12:29] <Jymmm> no log analizer?
[21:12:33] <alex_joni> jepler: well, actually the first page has pictures of about 190kB on axis.unpy.net
[21:12:42] <SWPadnos> yeah yeah - gotta rememer the password ;)
[21:12:46] <SWPadnos> remember, too
[21:12:52] <CIA-8> 03jepler 07HEAD * 10emc2/src/emc/nml_intf/canon.hh: Merge nearly colinear segments into a single segment when interpreting ngc files
[21:12:52] <Jymmm> lol
[21:12:52] <CIA-8> 03jepler 07HEAD * 10emc2/src/emc/task/ (Submakefile emccanon.cc emctask.cc): Merge nearly colinear segments into a single segment when interpreting ngc files
[21:13:09] <Jymmm> SWPadnos get a notebook
[21:13:15] <alex_joni> Jymmm: and be able to type too
[21:13:19] <alex_joni> SWPadnos isn't today
[21:13:29] <SWPadnos> ytpng dosn;et hlpe!
[21:13:30] <Jymmm> not a requirement
[21:13:41] <CIA-8> 03jepler 07HEAD * 10emc2/src/emc/task/Submakefile: remove debugging flag
[21:14:17] <SWPadnos> they're almost all internal referrers
[21:14:42] <SWPadnos> oops - wrong report section ;)
[21:15:03] <jepler> yeah I've been wishing for a list only of external referrers, but webalizer doesn't have that
[21:15:34] <SWPadnos> http://pastebin.com/703342
[21:16:04] <SWPadnos> looks like sherline is the biggest customer
[21:16:31] <Jymmm> but what is the biggest bw hog?
[21:17:02] <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
[21:17:26] <SWPadnos> 99.37% are .iso files
[21:17:46] <SWPadnos> of bandwidth, that is
[21:18:18] <SWPadnos> gah - of course, these stats are from cncgear, because I haven't had wnough pots of coffee today
[21:18:20] <jepler> that failure may be due to the makefile change I quickly reverted, it makes no sense to me
[21:18:21] <SWPadnos> enough
[21:18:35] <Jymmm> or too many =)
[21:18:48] <alex_joni> http://pastebin.com/703345
[21:19:31] <alex_joni> rtl_ulapi.c:204: undefined reference to `__test_bit' <- jepler, you think?
[21:19:53] <SWPadnos> wow - this one is much more interesting
[21:20:32] <SWPadnos> http://pastebin.com/703352
[21:20:57] <jepler> alex_joni: it's due to the "-fno-inline" that I accidentally checked in a bit earlier. It's fixed already
[21:21:49] <Jymmm> SWPadnos: Might consider installing/using awstats
[21:21:51] <alex_joni> http://pastebin.com/703354
[21:21:56] <alex_joni> jepler: oh, ok
[21:22:12] <SWPadnos> Jymmm, might not be able to - this is a shared hosting site
[21:22:49] <Jymmm> SWPadnos just a pl script, does return very nice results
[21:23:14] <Jymmm> SWPadnos http://awstats.sourceforge.net/
[21:23:30] <SWPadnos> I've heard of it. these are done with analog 6.0, which is comparable AFAIK
[21:23:56] <Jymmm> SWPadnos: I've just always found analog to be a bit sterile
[21:24:01] <SWPadnos> heh
[21:24:11] <SWPadnos> awstats does look nicer, I'll admit
[21:24:18] <Jymmm> SWPadnos heres a demo of awstats... http://ns3744.ovh.net/awstats/awstats.pl?config=destailleur.fr
[21:24:54] <alex_joni> jepler: love those points
[21:25:28] <alex_joni> . ` ` .
[21:25:39] <jepler> alex_joni: thank you
[21:26:05] <alex_joni> the rest of the mail si fine too
[21:26:13] <alex_joni> but you won me over with them points
[21:27:31] <jepler> bbl
[21:27:48] <CIA-8> 03compile-farm 07BDI-2.18 (2.2.18-rtl3.0) * 10emc2head/: build PASSED
[21:27:50] <jepler> I love checking in a controversial change on sunday afternoon because I can leave for family dinner and come back after the debate is over
[21:27:53] <jepler> yay
[21:28:05] <K4ts> hi Jymmm
[21:28:16] <K4ts> how are you?
[21:28:36] <alex_joni> jepler: I'm off to bed :)
[21:28:48] <alex_joni> will see tomorrow if there was a debate or not
[21:28:51] <alex_joni> g'night all
[21:29:01] <SWPadnos> heh
[21:29:07] <SWPadnos> see you Ale
[21:29:09] <SWPadnos> x
[21:37:54] <fenn> perhaps the planner should use 1/2*P if it's going to go and double the deviation from what was specified
[21:38:33] <SWPadnos> the planner only goes off by P, but so does the segment aggregator, so they can conceivably be additive
[21:39:09] <cradek> p/2 would have to be used in both places (easy enough to do)
[21:39:14] <SWPadnos> and I guess you have a 4P window, because it's +/- 2P
[21:39:29] <cradek> that's the meaning of tolerance :-)
[21:39:33] <SWPadnos> yep
[21:40:58] <cradek> but still it takes some understanding - if I specify a tolerance of .1" and I cut a cube 1" on a side, I might be surprised when I measure it to find that it's .81" across
[21:41:25] <SWPadnos> yep
[21:41:26] <fenn> not a cube, a circle maybe
[21:41:33] <SWPadnos> square
[21:41:45] <SWPadnos> even better, is that it could be 0.81 x 1.19
[21:41:46] <cradek> that's appropriate considering path tolerance mode, but that's not how the tol in the blueprints works
[21:41:50] <fenn> it wouldn't aggregate the points if there were only 4
[21:41:54] <cradek> right
[21:41:59] <fenn> would it?
[21:42:14] <cradek> fenn: I'm talking about path tolerance in general, not necessarily this new algorithm
[21:42:19] <fenn> oh
[21:42:29] <SWPadnos> I suppose that depends on cutting speed and which way it moves when starting the cut
[21:43:35] <SWPadnos> even more funny would be an oval instead of a rectangle, with the 0.8+ and 1.2- minor and major diameters ;)
[21:43:48] <SWPadnos> due to blending
[21:43:49] <cradek> "close enough"
[21:44:22] <SWPadnos> heh - yep. "if you want a square, turn off G64 Pxx"
[21:44:40] <fenn> or use a decent cam algorithm
[21:44:52] <fenn> a cloverleaf shape would still generate a square
[21:45:10] <SWPadnos> this is path following, so it deosn't matter what the CAM is (unless you;re talking about something like STEP instead of G-code)
[21:46:34] <cradek> I think it's a shame that we (?) have such crappy cam software that we have to do this kind of thing in emc
[21:46:44] <cradek> that tolerance handling should be before the gcode
[21:47:08] <SWPadnos> no, because it's dependent on parameters that can't be known ahead of time (such as drag on an axis)
[21:47:25] <SWPadnos> you still need a tolerance spec for the machine
[21:47:41] <cradek> but that's a separate problem
[21:48:04] <cradek> I'm talking about throwing out segments that are unnecessary (they make no difference considering the tolerance)
[21:48:05] <fenn> blending due to accel constraints can be known ahead of time - by the cam program
[21:48:27] <SWPadnos> but not due to cutter load, temperature, etc
[21:48:55] <fenn> well, actually..
[21:49:10] <fenn> it depends on how much you're willing to spend :)
[21:49:22] <SWPadnos> heh
[21:49:49] <SWPadnos> like the ones Jon Elson was talking about - immersed in oil that's temperature controlled to 0.1 or 0.01 degree
[21:50:57] <fenn> i meant modeling the cutting forces and doing FEA on the machine :)
[21:51:03] <SWPadnos> heh
[21:51:20] <fenn> trying to find my bookmark of that paper
[21:51:30] <SWPadnos> I'd love to see the system that could model accurately to know when a flying chip will be sitting on the ways, causing extra drag ;)
[21:51:42] <fenn> http://web.umr.edu/~vrpl/proj-cam.htm
[21:51:55] <fenn> drag schmag
[21:52:58] <SWPadnos> cool stuff there, actually
[21:53:38] <fenn> too bad we'll never see anything of it
[21:57:15] <SWPadnos> I don't know of any open source FEA packages, though I haven't looked for one
[21:57:31] <fenn> there are actually a lot of them
[21:57:47] <SWPadnos> I suppose BRL-CAD should have something along those lines, right?
[21:57:52] <fenn> seems weird that there are no cad packages given how many fea packages there are
[21:58:09] <fenn> yes, it should, but i dont think it does
[21:58:09] <SWPadnos> UI has always been an issue for open source, and the CAD part is mostly UI
[21:59:27] <SWPadnos> wow - this photo tells me a lot about the chip: http://rocky.digikey.com/WebLib/Altera/Web%20photos/544-240-PQFP.jpg
[22:02:05] <jmkasunich> * jmkasunich is back
[22:02:15] <SWPadnos> hiya jmk
[22:02:18] <jmkasunich> hi
[22:03:00] <giacus> SWPadnos: neat datasheet
[22:03:07] <SWPadnos> heh
[22:03:08] <giacus> hello jmkasunich :)
[22:03:44] <jmkasunich> hi giacus
[22:09:59] <giacus> G'night all
[22:11:59] <cradek> hi jmk
[22:12:03] <jmkasunich> hi
[22:12:23] <K4ts> G N
[22:12:26] <K4ts> notte
[22:12:32] <jmkasunich> jeff has been busy
[22:13:15] <cradek> yeah
[22:13:27] <cradek> he wrote the segment merging a while back, but never checked it in
[22:13:34] <cradek> it's a bit of a scary change
[22:13:58] <skunkworks> segment merging for the tp?
[22:14:10] <cradek> yes, based on the specified tolerance
[22:14:17] <skunkworks> * skunkworks starts scrolling up in the conversation
[22:14:23] <cradek> it's in email
[22:14:35] <jmkasunich> is it done in the TP? or in user space?
[22:14:40] <cradek> userspace
[22:14:46] <jmkasunich> thats what I thought
[22:14:57] <jmkasunich> hey, wanna talk about jogwheels?
[22:15:18] <cradek> that reminds me - I can't track that tracking number you sent
[22:15:32] <jmkasunich> hmm
[22:15:33] <cradek> but sure, at least until dinner is ready
[22:15:59] <jmkasunich> * jmkasunich checks the number, maybe I typoed it
[22:18:03] <jmkasunich> did it say invalid format or unable to track?
[22:19:07] <jmkasunich> might be not in the UPS system yet... I shipped from a Staples (office supply) store
[22:19:17] <jmkasunich> maybe they didn't pick up Sat afternoon
[22:19:22] <jmkasunich> try again monday
[22:19:51] <jmkasunich> ok, jogwheels....
[22:20:17] <jmkasunich> I'm starting to think that a user space app sending NML jog messages will never give a truly smooth move
[22:20:30] <jmkasunich> better to do it in realtime
[22:22:54] <cradek> I'm sure that's right
[22:23:11] <jmkasunich> so, how to do it....
[22:23:31] <jmkasunich> simplest approach is to define a hal pin for the wheel, sticking out of the motion controller
[22:23:38] <SWPadnos> wouldn't that imply that the interpreter also needs to be RT? (or do we get around that because of buffering?)
[22:23:41] <fenn> provide a jog_enable pin from task?
[22:24:05] <cradek> is it ok to jog whenever in free mode?
[22:24:14] <jmkasunich> I think so
[22:24:24] <jmkasunich> checking
[22:24:49] <fenn> it would be nice to have a way to change modes from hardware buttons
[22:24:55] <cradek> just like jog messages, the wheel will update the goal position while in free mode, motion takes care of moving as best it can?
[22:25:04] <fenn> like the "mode select" rotary switch on the old mazak panel
[22:25:07] <SWPadnos> fenn, halui can do that
[22:25:30] <cradek> I'm gonna cry if we start talking about modes again
[22:25:36] <jmkasunich> ok, command.c will accept a jog command as long as the following is true:
[22:25:42] <jmkasunich> 1) in free mode
[22:25:44] <jmkasunich> 2) enabled
[22:25:55] <jmkasunich> 3) the jog doesn't drive us farther onto a limit
[22:27:09] <cradek> so we'd use the same algorithm
[22:27:13] <cradek> poll the jogwheel position
[22:27:16] <jmkasunich> I suspect the same rules would apply to wheel jogs
[22:27:28] <cradek> increment the goal position in motion by the jogwheel delta
[22:27:47] <jmkasunich> (respecting the axis limits)
[22:27:50] <cradek> right
[22:28:10] <jmkasunich> now the complications
[22:28:14] <cradek> heh
[22:28:25] <jmkasunich> 1) you might have only one wheel, and need to choose which axis it controls
[22:28:36] <jmkasunich> 2) you might want to change the scaling
[22:29:05] <jmkasunich> 3) you might have more than one wheel and want wheel A to apply to X and wheel B apply to Y
[22:29:53] <cradek> that can all be done in hal I guess, but it's complex
[22:29:57] <SWPadnos> 4) you might have more than one wheel, but only want to use one at a time, for a selected axis (multiple panels with one each)
[22:29:57] <jmkasunich> somebody even mentioned using the same wheel to control feedrate override and/or spindle speed in addition to jogging
[22:30:54] <jmkasunich> we want to decide on a set of HAL pins for the motion controller
[22:30:57] <SWPadnos> I think it can't all be done in HAL - the choice of one jogwheel input or one for each axis is pretty significant
[22:31:32] <jmkasunich> one wheel input per axis maybe? (You can connect the same wheel to all of them, and enable one at a time, or you can connect different wheels to each one)
[22:31:45] <jmkasunich> that implies an enable pin per axis....
[22:32:13] <cradek> I don't see any way around that
[22:32:25] <cradek> you do want to allow a jogwheel per axis, so they each need their own pins
[22:32:56] <fenn> can you use a... er, demux?
[22:33:11] <SWPadnos> yes, fora float value. no for a bit or int
[22:33:26] <jmkasunich> SWPadnos, there is no demux at this point
[22:33:39] <jmkasunich> only mux
[22:33:41] <SWPadnos> I thought there was a float demux
[22:33:50] <SWPadnos> oh well - easy enough to write
[22:33:58] <cradek> I think it doesn't matter - I want to turn X and Y wheels at the same time
[22:34:01] <SWPadnos> (harder to decide what to call the pins, and which component to put it into)
[22:34:02] <jmkasunich> demux is complicated to define - what do you output to the "unselected" outputs
[22:34:26] <SWPadnos> why, a "default" parameter value, obviously ;)
[22:34:45] <jmkasunich> cradek, if motion had one input per axis, a demux might be used by the guy with only one wheel
[22:34:52] <jmkasunich> altho personally I don't like that approach
[22:34:57] <jmkasunich> the demux is messy
[22:34:58] <fenn> would the jogwheel delta get set back to zero every time it is read by the axis?
[22:35:03] <cradek> I see
[22:35:06] <jmkasunich> yes
[22:35:20] <jmkasunich> (to fenn)
[22:35:29] <jmkasunich> sort of...
[22:35:37] <SWPadnos> how about 1 per axis, plus 2 more, one for spindle and one for "anything", controlled by another input
[22:35:38] <jmkasunich> the actual encoder count wouldn't change
[22:35:53] <fenn> i'm thinking about jogwheel running at different speed than the motion module
[22:36:17] <SWPadnos> motion would hold an internal count, and update it for each read
[22:36:19] <jmkasunich> the actual count is updated at whatever rate the counter driver is running
[22:36:23] <SWPadnos> the delta would be calculated there
[22:36:38] <jmkasunich> motion would remember the last value it read, subtract from the new value for delta
[22:37:05] <jmkasunich> when enabled... when disabled, it would just do old = new so its ready when enabled again
[22:37:09] <fenn> SWPadnos: so, 5 outputs? why not an arbitrary parameter to set the number of outputs?
[22:37:29] <jmkasunich> outputs? I thought we were talking about inputs to the motion controller
[22:37:36] <SWPadnos> me, too ;)
[22:37:39] <fenn> hm.
[22:37:55] <fenn> one for "anything" doesnt make much sense then
[22:38:13] <fenn> since presumably pins going into motion would have functions attached :)
[22:38:17] <SWPadnos> you'd need that as a load-time parameter anyway - modules can't dynamically create / delete hal pins (not easily anyway)
[22:38:19] <jmkasunich> nor does one for spindle, at least as long as the spindle is controlled by iocontrol in user space
[22:39:08] <SWPadnos> if you have only one wheel, connect it to the anything input, and connect a switch or something to the int "selector" input
[22:39:17] <SWPadnos> that would be the 1 wheel approach
[22:39:32] <SWPadnos> with multiples, connect them to the individual axis wheel inputs
[22:39:33] <jmkasunich> I favor one input per axis, with matching enable pins
[22:39:49] <SWPadnos> hi petev
[22:39:55] <petev> hi steve
[22:39:56] <jmkasunich> connect one wheel to all inputs, use the selector to enable one of the N enables
[22:40:04] <jmkasunich> hi pete, not seen you lately
[22:40:18] <petev> been real busy and trying to get my machine together
[22:40:24] <petev> started a major retrofit
[22:41:49] <jmkasunich> planning to use a jogwheel in that? (thats what we're discussing right now)
[22:41:57] <petev> yes, I am
[22:42:45] <petev> is sending jog messages from the NML interface too slow?
[22:42:57] <jmkasunich> seems that way, the result is jerky
[22:43:14] <petev> are the results the same when sending jog commands from the GUI?
[22:43:29] <jmkasunich> GUI jogs are inherently jerky ;-)
[22:43:57] <petev> yeah, I noticed they lagged and would keep moving after I would let go of the button
[22:44:05] <petev> so maybe it's not the GUI
[22:44:17] <jmkasunich> you click on jog continuous, it moves until you release, with incrementals, one click = one short move
[22:44:37] <jmkasunich> with a knob, you want it to track the knob perfectly, regardless of the speed it is turned
[22:44:45] <petev> but I have held down the jog continuous and it moves after I let it go
[22:44:56] <petev> like it can't keep up with the queued key strokes
[22:45:13] <jmkasunich> held down an arrow key? or a GUI button with the mouse?
[22:45:26] <jmkasunich> I bet autorepeat in the keyboard raises hell with it
[22:45:31] <petev> either, seemed to both behave the same
[22:45:37] <jmkasunich> hmm
[22:45:50] <jmkasunich> how long does it run on after you release?
[22:46:04] <jmkasunich> some overrun will be due to decel time
[22:46:05] <petev> the machine just moves a bit more, then stops
[22:46:16] <petev> seems like much more than decel
[22:46:26] <SWPadnos> that could be a queue thing, possibly
[22:46:31] <jmkasunich> sizable fraction of a second?
[22:46:42] <petev> it was moving much slower than machine limits too
[22:46:56] <petev> jmk: yes, I would say so
[22:47:54] <petev> do u think the user space tasks may have much more latency than expected between time slices?
[22:48:06] <jmkasunich> its user space, anything is possible
[22:48:23] <jmkasunich> but more than say 100mS would be odd
[22:48:39] <SWPadnos> if it's consistent, then I'd suspect emc, assuming that the PC is a reasonable speed
[22:48:52] <SWPadnos> or - consistently longer than expected
[22:49:13] <petev> what kind of machine was used to test the jog wheel?
[22:49:24] <petev> did the gui jogs behave on it?
[22:49:25] <jmkasunich> mostly the NIST lathe
[22:49:31] <jmkasunich> think so
[22:49:55] <SWPadnos> the PC was cradek's machine, whatever that is
[22:49:56] <petev> The behavior I saw was with quite old code
[22:50:07] <petev> I haven't tried with the newest code
[22:50:51] <jmkasunich> which GUI?
[22:51:03] <petev> tkemc
[22:51:09] <jmkasunich> I just tried the sim-axis config, seems pretty responsive to both mouse and keyboard
[22:51:45] <petev> I wonder if it would be easy to add some time stamping to the NML stuff?
[22:51:53] <jmkasunich> dunno
[22:51:59] <petev> then we could see where the delays are
[22:52:00] <jmkasunich> we've digressed quite a bit
[22:52:04] <jmkasunich> that happens a lot ;-)
[22:52:23] <jmkasunich> we were discussing ways to do the jogwheel in RT
[22:52:34] <jmkasunich> hal input pin(s) connected to the motion controller
[22:52:43] <jmkasunich> so the wheel connects directly to the controller
[22:52:48] <petev> hmm, but if the problem still exits for the GUI, that won't fix both
[22:53:19] <jmkasunich> I just ran sim-tkemc as well, no apparent problem
[22:53:36] <petev> ok, so let's assume GUI is good for now
[22:53:42] <jmkasunich> I think the GUIs poll at 0.1 seconds or such, they're never going to be truly responsive
[22:54:24] <petev> so the idea is to add more pins to the motion controller and read the jog encoder directly?
[22:54:32] <jmkasunich> yeah
[22:54:47] <petev> and some pins for axis select too?
[22:54:58] <jmkasunich> actually we were looking at one input per axis
[22:55:11] <petev> what about jog increment?
[22:55:12] <jmkasunich> some folks might actually have multiple wheels and want to dedicate one to each axis
[22:55:31] <jmkasunich> we hadn't quite gotten that far when you arrived and we digressed ;-)
[22:55:34] <petev> ok, I guess one wheel could be muxed with an external module
[22:56:01] <jmkasunich> for muxing, I was thinking each axis has one analog input that is wheel position, and one bit that is enable
[22:56:15] <jmkasunich> if you have only one wheel, wire it to all the inputs, and only enable one at a time
[22:56:29] <petev> why analog input?
[22:56:34] <SWPadnos> or get 45 degree jogs by enabling two ;)
[22:56:35] <petev> why not quadrature?
[22:56:50] <SWPadnos> that's a hardware-dependent implementation
[22:57:07] <petev> I don't follow
[22:57:08] <SWPadnos> the encoder drivers provide a float and int position
[22:57:16] <petev> shouldn't the commands be delta?
[22:57:20] <petev> not absolute
[22:57:21] <jmkasunich> the jogwheel can be read by a motenc, ppmc, stg, etc, or by a software encoder counter
[22:57:35] <SWPadnos> the mesa card already decodes the quadrature, that should be in the hardware driver
[22:57:44] <jmkasunich> its easy to make a delta from an absolute
[22:57:54] <SWPadnos> there's a software encoder component as well
[22:58:01] <jmkasunich> assume an integer HAL pin called "counts"
[22:58:14] <petev> but what about overflow/wrap?
[22:58:14] <jmkasunich> each time thru the servo loop, we do this per axis:
[22:58:36] <jmkasunich> new = *(hal->counts)
[22:58:44] <SWPadnos> I think the counters are supposed to be 32 bits, so overflow shouldn't be a big issue
[22:58:45] <jmkasunich> if ( enable ) {
[22:58:49] <SWPadnos> especially with a handwheel
[22:58:58] <jmkasunich> jog_incr ( new - old );
[22:59:03] <jmkasunich> }
[22:59:08] <jmkasunich> old = new;
[22:59:16] <petev> swp: it will happen if the operator keeps turning the wheel in the same direction, maybe while not enabled, etc.
[22:59:36] <jmkasunich> swp: overflow can't be ignored, but it can be handled pretty easily
[22:59:39] <petev> so old gets read on enable?
[22:59:43] <SWPadnos> it could, but even overflowed values will yield correct results when subtracted
[22:59:52] <jmkasunich> old is an internal variable
[23:00:08] <petev> yes, but it should be read when enable asserted
[23:00:08] <jmkasunich> SWPadnos, exactly
[23:00:10] <SWPadnos> yes - old should be read when enable goes high
[23:00:19] <jmkasunich> old is updated all the time
[23:00:26] <jmkasunich> jogs are only issued when enabled
[23:00:31] <SWPadnos> true
[23:00:37] <petev> ok, that will work too
[23:00:43] <jmkasunich> that way if you turn the knob 100 turns while disabled, you don't issue a 100 turn jog when you re-enable
[23:00:50] <SWPadnos> heh - oops ;)
[23:01:03] <jepler> this assumes you'll use raw-counts or whatever it's called? I thought that was a parameter, not a pin
[23:01:14] <jmkasunich> not raw_counts, just counts
[23:01:27] <jmkasunich> raw_counts only exists in the software encoder counter
[23:01:29] <SWPadnos> raw-counts can be removed, since counts replaces it
[23:01:33] <SWPadnos> I think
[23:01:39] <jepler> ok, there is an output that is not a "float"
[23:01:44] <jmkasunich> raw_counts is updated in the fast thread of the encoder counter module
[23:01:52] <jepler> that's what I was worried about, since you don't wrap. you just lose precision and then get stuck
[23:01:53] <jmkasunich> mostly for debugging or other fast stuff
[23:02:02] <SWPadnos> is counts scaled?
[23:02:11] <jmkasunich> counts is an s32, and is part of the canonical interface
[23:02:15] <jmkasunich> counts is not scaled
[23:02:21] <jmkasunich> the float value is scaled
[23:02:22] <jepler> ok, then I think my concern is addressed
[23:02:43] <SWPadnos> ok, I know that the software encoder just sets *(counts) = rawcounts
[23:03:00] <SWPadnos> +- some syntax issues ;)
[23:03:05] <jmkasunich> right
[23:03:19] <jmkasunich> other encoder drivers won't have rawcounts
[23:03:29] <petev> ok, so each axis has an integer count input, jog increment input/scale, and an enable?
[23:03:47] <SWPadnos> that's my point though - counts is identical with raw_counts, so raw_counts can be deleted
[23:03:54] <jmkasunich> (rawcounts is equivalent to the actual count register of an encoder counter board, counts is the captured value of that register)
[23:04:19] <SWPadnos> ah - and counts is dependent on index resets and such?
[23:04:37] <jmkasunich> SWPadnos, thats a side issue, related to whether or not rawcounts is considered a usefull feature of the software encoder counter
[23:04:53] <SWPadnos> true - I can stop with that digression now ;)
[23:05:00] <jmkasunich> counts can be reset by an index pulse
[23:05:31] <jmkasunich> but you wouldn't connect the index-enable pin of an encoder that is being used for a jogwheel
[23:05:45] <SWPadnos> nope - you're right, it's a side issue
[23:05:57] <jmkasunich> back to scaling
[23:06:08] <SWPadnos> petev: yes, I think. count, enable, scale per axis
[23:06:12] <jmkasunich> we have an s32 input for counts, and bit input for enable
[23:06:25] <jmkasunich> scale is ?
[23:06:36] <SWPadnos> jog scale, float
[23:06:37] <petev> to determine how much each count moves
[23:06:51] <jmkasunich> do we really want to have to select between 0.1 1 10, etc with a HAL mux? messy
[23:06:58] <fenn> what is the point of scale? in a practical sense
[23:07:16] <SWPadnos> I want a button for 0.0001, 0.001, 0.01, 0.1 inch scaling on my pendant
[23:07:18] <petev> sometimes you want a certain movement per wheel increment
[23:07:27] <SWPadnos> scaling per click of the wheel
[23:08:08] <SWPadnos> how I get those to motion is my problem, in the HAL setup
[23:08:20] <SWPadnos> I thikn it's cleanest to have a float input to motion for that
[23:08:24] <petev> jmk: I think the module that turns the absolute to delta should apply the scale to the delta
[23:08:40] <SWPadnos> that's internal to motion, in the current model
[23:08:45] <petev> yes
[23:08:48] <SWPadnos> (currently being discussed model)
[23:09:42] <fenn> so scale will have to get values from the ini as well as a hardware switch, correct?
[23:09:43] <SWPadnos> interestingly enough, you can fool motion into jogging by summing an encoder input with the position error ;)
[23:10:02] <SWPadnos> err - position itself, not the error
[23:10:16] <jmkasunich> thats an offset, not a jog
[23:10:19] <SWPadnos> fenn, probably
[23:10:24] <SWPadnos> heh
[23:10:46] <fenn> which increments to use
[23:10:47] <SWPadnos> well, since I used the word "fool" in that sentence, it's probably a foolish thing to do anyway
[23:11:01] <jmkasunich> the advantage of a float input pin for scale it that its a clean implementation in the motion module
[23:11:14] <petev> jmk: agreed
[23:11:16] <jmkasunich> but actually selecting the scale you want requires non-trivial hal-foo
[23:11:24] <petev> not so bad
[23:11:38] <petev> a mux module can be used
[23:11:41] <jmkasunich> perhaps an analog mux with constants driving its inputs and "something" driving its select bits
[23:11:43] <SWPadnos> fenn, you don't have to have ini values, but the constants would need to be codded somewhere - either in a HAL file or in the ini (read from a HAL file)
[23:11:54] <petev> with the values set from hal config file
[23:12:07] <SWPadnos> use an int for the selector, and use the weighted summer for bits -> int
[23:12:38] <jmkasunich> the existing muxes already have bits for the selector
[23:12:58] <jmkasunich> even the weighted summer isn't right (alone)
[23:12:59] <SWPadnos> that works well for power-of-two selections
[23:13:07] <petev> just set the input pin values from the hal config to whatever scales you want
[23:13:10] <jmkasunich> you probably want more of a "radio button" effect
[23:13:25] <SWPadnos> weighted summer -> mux with int selector
[23:13:33] <SWPadnos> and limits
[23:13:49] <jmkasunich> how does that get you the radio button effect?
[23:14:21] <jmkasunich> on my panel, I want either buttons labeled 0.0001, 0.001, 0.01, and 0.1, or a knob that picks one of those 4 values
[23:14:29] <SWPadnos> set the weight for each bit input to the index of the scale constant you want
[23:14:39] <SWPadnos> and insure that only one at a time is on ;)
[23:14:47] <jmkasunich> the latter might give you two binary weighted signals, but the former will give you 4 pins
[23:14:52] <jmkasunich> momentary ones at that
[23:15:22] <petev> pins or bcd from selector need to be encoded to the int for mux
[23:15:49] <jmkasunich> I'm sure there are several ways this can be done in HAL
[23:15:56] <SWPadnos> yep
[23:16:05] <jmkasunich> before we dig too deep into the specifics, a bigger question:
[23:16:14] <jmkasunich> do we want to do it in HAL?
[23:16:25] <SWPadnos> that part, yes (I think)
[23:16:35] <jmkasunich> or should we hard code it somewhere to make things simpler for the average user/integrator?
[23:16:37] <petev> I don't think it matters for the implementation of motion
[23:16:51] <petev> motion gets a float for scale from somehwere
[23:16:57] <SWPadnos> unless you want (a) an int for the power-of-10 or (b) bits to select the power-of-10 scale
[23:17:05] <petev> maybe some implementations just set it to one value
[23:17:09] <SWPadnos> for each axis
[23:17:29] <SWPadnos> right - it's simple, unless you have a setup that needs more complexity
[23:17:39] <SWPadnos> many people could just set it to 0.001 or something, and be done with it
[23:17:47] <jmkasunich> ok, just wanted to raise the issue...
[23:18:10] <jmkasunich> I'm comfortable putting more stuff in HAL, but not sure about Joe Average
[23:18:22] <fenn> sort of on the same topic, would a pendant have a "goto home" button? would that work without any extra C code?
[23:18:44] <jmkasunich> fenn: what is "goto home"?
[23:18:48] <SWPadnos> hmmm - I'm not sure that halui has a "home" input (yet)
[23:18:51] <fenn> like when you press the "home" button in the GUI
[23:19:00] <jmkasunich> "home" as we use it now means "run a homing sequence"
[23:19:03] <fenn> right
[23:19:15] <jmkasunich> that sequence can be more or less than "go to some place"
[23:19:19] <fenn> yes
[23:19:22] <petev> I think thats a halui issue
[23:19:32] <jmkasunich> yeah
[23:19:33] <SWPadnos> a duplicate of the GUI home buttons, similar to the duplicate of the mode buttons that HALUI has
[23:19:38] <petev> I don't see the need for realtime for that
[23:19:38] <fenn> what is the difference between halui and a jog wheel?
[23:19:42] <jmkasunich> unlike the jogwheel, home doesn't need to be RT
[23:20:00] <SWPadnos> halui takes HAL stuff as inputs, and emits NML messages as output
[23:20:03] <jmkasunich> halui is a gui that gets its buttons from HAL instead of screen widgets
[23:20:29] <jmkasunich> heh, in fact, halui might indeed still support jogs, but they would be jog buttons, just like the existing GUIs
[23:20:37] <jmkasunich> push button, it jogs, release, it stops
[23:20:57] <SWPadnos> yep - no continuous needed on a physical wheel ;)
[23:21:05] <SWPadnos> one other thing (just for consideration)
[23:21:13] <SWPadnos> what about "shuttle"?
[23:21:19] <jmkasunich> ?
[23:21:45] <SWPadnos> like on a VCR - turn clockwise to increase "positive" speed
[23:21:45] <jmkasunich> what is shuttle?
[23:22:04] <SWPadnos> counterclockwise to decrease positive speed or increase negative
[23:22:06] <jmkasunich> well, we can't go backwards
[23:22:07] <petev> have you seen that on a machine before?
[23:22:18] <petev> I think he means for jog
[23:22:18] <SWPadnos> no - only on professional VCRs ;)
[23:22:35] <SWPadnos> one mode is jog - motion proportional to wheel movement
[23:22:52] <fenn> * fenn does some target shooting on SWPadnos' idea
[23:22:55] <SWPadnos> shuttle is basically velocity proportional to wheel motion
[23:22:58] <petev> let's just get a jog wheel working for now
[23:22:59] <SWPadnos> heh
[23:23:16] <SWPadnos> more like a power feed mode
[23:23:18] <jmkasunich> SWPadnos, you are referring to motion thru a program, not single axis jog motion, right?
[23:23:28] <SWPadnos> no, but that would be nice as well
[23:23:37] <SWPadnos> jog or shuttle a la FO
[23:23:49] <jmkasunich> oh, I get it, you want velocity to be proportional to knob position
[23:23:54] <SWPadnos> right
[23:23:59] <SWPadnos> like a power feed lever
[23:24:10] <SWPadnos> more like a joystick, I guess ;)
[23:24:10] <fenn> or a joystick? :)
[23:24:15] <petev> just spin your wheel faster or slower ;)
[23:24:21] <SWPadnos> I'm too lazy :)
[23:24:25] <jmkasunich> the adaptive feed input is half way there
[23:24:30] <SWPadnos> it's oh so hard to spin the wheel
[23:24:33] <SWPadnos> right
[23:24:42] <jmkasunich> you could use the wheel to adjust that level between 0.0 and 1.0
[23:24:54] <jmkasunich> but that needs a move to apply it to
[23:25:14] <SWPadnos> FO is different from shuttle, but similar
[23:25:34] <jmkasunich> oh, I know!
[23:25:45] <SWPadnos> shuttle would tell motion to issue a new move every cycle, based on the wheel-set velocity
[23:25:46] <jmkasunich> for shuttle, send the knob signal to an integrator ;-)
[23:25:48] <SWPadnos> right ;)
[23:25:53] <SWPadnos> can do
[23:26:02] <SWPadnos> then mux between
[23:26:09] <SWPadnos> with a jog/shuttle button
[23:26:13] <jmkasunich> yeah
[23:26:27] <petev> swp: you will want a new wheel that springs back to neutral
[23:26:28] <SWPadnos> woohoo - my BP will be just like a pro VCR!!
[23:26:43] <jmkasunich> petev, not neccessarily
[23:26:44] <SWPadnos> oh yeah - maybe I should buy an expensive digibeta deck, and take the wheel out
[23:27:03] <jmkasunich> he may want to set it to a specific feed and let it go for 5 minutes as it makes a cut
[23:27:19] <petev> oh, that's ugly, use mdi
[23:27:20] <jmkasunich> although he could do the same thing easier with an MDI command
[23:27:38] <fenn> not necessarily
[23:27:42] <SWPadnos> true, though the spring-back wheel is probably safer, and more commonly what one would want
[23:27:53] <SWPadnos> adjust feedrate by ear with the wheel ;)
[23:27:55] <jmkasunich> anyway, we've digressed again
[23:28:14] <fenn> what did you want to get at again jmk? :)
[23:28:20] <SWPadnos> shuttle could be added later with a pos/vel input bit, if we want to
[23:28:34] <SWPadnos> but I agree with pete, let's get jogging done first
[23:28:42] <jmkasunich> are we in agreement with the idea of "axis.N.jog-counts" "axis.N.jog-enable" and "axis.N.jog-scale"
[23:28:56] <petev> yes, and scale is a float
[23:28:58] <jmkasunich> counts = s32, enable = bit, scale = float
[23:29:02] <SWPadnos> yep
[23:29:34] <jmkasunich> ok, I'll start coding it
[23:29:44] <SWPadnos> at some point, we may want a non-axis-bound input as well, for things like FO, spindle speed, and jogging through a program
[23:30:09] <jmkasunich> we'd make specific inputs as needed
[23:30:13] <jmkasunich> for FO, its already done
[23:30:17] <SWPadnos> right
[23:30:21] <jmkasunich> called motion.adaptive-feed
[23:30:33] <jmkasunich> float 0.0 to 1.0
[23:30:36] <SWPadnos> that only goes from 0.0 to 1.0x
[23:30:57] <SWPadnos> and you can't do the mux thing when the value is an absolute
[23:31:07] <SWPadnos> for the encoder, it's all based on deltas
[23:31:38] <SWPadnos> anyway - it's separate from axis jogs, so we can table that until someone remembers it again ;)
[23:31:46] <jmkasunich> sounds like a plan
[23:31:51] <petev> ok, I'm going to run to the store to get some more hardware to mount my motors so I can test jmks code ;)
[23:32:01] <jmkasunich> heh
[23:32:04] <fenn> adaptive feed can only be slowed down?
[23:32:09] <SWPadnos> yes
[23:32:19] <SWPadnos> it's for EDM/plasma ...
[23:32:20] <jmkasunich> either I'll commit tonight, or next weekend (traveling for work all week)
[23:32:24] <fenn> any particular reason for that?
[23:32:31] <fenn> safety, perhaps
[23:32:34] <SWPadnos> you never speed up for EDM or plasma ;)
[23:32:58] <jmkasunich> fenn: most straightforward way to implement it... if you allow greater than 1.0, then you have to define how much greater
[23:33:12] <SWPadnos> adaptive feed is applied in addition to FO, so the operator can still speed things up if they want
[23:33:15] <jmkasunich> btw, its not just for plasma and edm
[23:33:22] <jmkasunich> on the Mazak we used it to implement feedhold
[23:33:30] <SWPadnos> cool
[23:33:34] <jmkasunich> a mux that switches from 1.0 to 0.0 when you push the hold button
[23:33:40] <SWPadnos> right
[23:36:27] <CIA-8> 03jmkasunich 07HEAD * 10emc2/src/emc/motion/mot_priv.h: removed unused structure member
[23:40:42] <CIA-8> 03jmkasunich 07HEAD * 10emc2/src/emc/motion/ (mot_priv.h motion.c): removed some unused code
[23:44:19] <CIA-8> 03jmkasunich 07HEAD * 10emc2/src/emc/motion/ (mot_priv.h motion.c): removed some more unused code
[23:44:34] <jmkasunich> heh
[23:44:39] <jmkasunich> making lots of progress ;-)
[23:44:47] <SWPadnos> I thought you were supposed to add stuff ;)
[23:44:56] <jmkasunich> getting there
[23:45:03] <jmkasunich> making room for the new stuff ;-)