#emc | Logs for 2006-08-20

[02:01:21] <mdynac> is there anybody.....out there.......
[02:02:03] <cradek> just us chickens
[02:02:20] <mdynac> kewl
[02:02:33] <mdynac> are you coding?
[02:03:18] <cradek> nope, not today, but I am working on an emc-related thing
[02:03:51] <mdynac> well i made it back from Cheeseland in one piece......
[02:04:03] <cradek> that's good
[02:04:06] <cradek> how was the cheese/
[02:04:08] <cradek> ?
[02:04:31] <mdynac> outstanding, as usual.....the beer was better tho....
[02:07:03] <cradek> so how's the edm?
[02:10:48] <mdynac> well monday i go to the shop to start the installation of my emc stuff into an andrew edm generator cabinet....i ripped out the old stuff and have all my panels etc made to incorporate the new stuff in to the cabinet.....i am also configuring the cabinet to just plug in to the machine tool so i can just swap out my generator cabinets from original to new by just swapping cables....
[02:13:13] <cradek> I saw someone at fest working on a "homebrew" edm - were you in on that?
[02:13:34] <cradek> it looked like a sherline mill, bread pan, and turkey baster
[02:13:46] <mdynac> my plan is to modify the generators in house and just ship the cabinet to the customer and swap out cabintes on site......with minimal work to do at the customer...just install and set up emc.....which of course we do not sell.....
[02:13:47] <cradek> not sure if they ever finished it
[02:14:27] <cradek> oh I didn't know you were going to do a series of these machines, interesting
[02:15:00] <mdynac> the sinker guys from University of Arkansas had a working sinner edm at the fest, and it produced quite the nice finish i might add....
[02:15:20] <cradek> too bad, I didn't see that
[02:15:54] <mdynac> they used IGBT's for the current source.....unique to edm current output circuitry.....
[02:24:43] <mdynac> he used a penny as an electrode and burned a damn fine impression of it in tool steel.....like a 26 finish or so......
[02:27:03] <mdynac> i suggested that he stop using US currency as an electrode....as the Feds might be interested in such activity, be it experimental or not!!!!!
[02:28:24] <mdynac> his EE was the guy in the wheelchair......
[02:30:24] <cradek> darn I wish I had seen that demo
[02:30:55] <mdynac> twas impressive....
[02:32:26] <mdynac> he will be writing a new howto edm book using that technology, and uv course my suggestoiions!!!!
[02:59:36] <lerman_> lerman_ is now known as lerman
[03:49:39] <A-L-P-H-A> this sucks... I think I have a cavity. :(
[09:14:04] <alex_joni> A-L-P-H-A: does your cavity contain vacuum?
[15:01:54] <jmkasunich> very quiet this morning
[15:06:30] <Roguish> good morning. hey, what's the plannede work on Classic Ladder?
[15:06:39] <Roguish> planned
[15:07:06] <jmkasunich> on phone
[15:22:57] <jmkasunich> back
[15:23:08] <jmkasunich> I'm not sure what if anything is planned for CL
[15:23:18] <jmkasunich> it certainly needs some work
[15:37:10] <robin_sz> afternoon
[15:41:22] <jmkasunich> hi
[15:41:36] <jmkasunich> still morning here
[15:48:35] <Lerneaen_Hydra2> 'lo folks
[15:48:39] <Lerneaen_Hydra2> logger_aj: bookmark
[15:48:39] <Lerneaen_Hydra2> See
[15:49:35] <Lerneaen_Hydra2> 'lo there jmk
[15:50:23] <jmkasunich> \hi
[15:52:24] <Lerneaen_Hydra2> jmk, you don't know much about g33 and stuff perhaps?
[15:52:33] <jmkasunich> not much
[15:52:34] <Lerneaen_Hydra2> hal configuring and so on
[15:52:35] <Lerneaen_Hydra2> ok
[15:52:43] <jmkasunich> well the hal side maybe
[15:52:46] <jmkasunich> what do you need to know?
[15:53:20] <Lerneaen_Hydra2> I think I've set it up correctly. but when issuing the command the tool stays still and does nothing
[15:53:30] <Lerneaen_Hydra2> I'm using the counter module though, could be that
[15:53:44] <Lerneaen_Hydra2> "counts" counts up, so that appears to work
[15:53:44] <jmkasunich> time to get out your halmeter
[15:53:54] <jmkasunich> the counter is counting when the spindle is turning?
[15:54:12] <Lerneaen_Hydra2> it counts the total number of increments
[15:54:17] <Lerneaen_Hydra2> AFAICT
[15:55:07] <Lerneaen_Hydra2> counter.0.counts counts up one per increment of the hole disc
[15:55:17] <jmkasunich> if you are _not_ doing a G-33, what does the counter do? It will either be counting up and up and up (to a very high number) or it will be counting up to one rev and then resetting to zero each revolution
[15:55:28] <Lerneaen_Hydra2> phaze A and phaze Z behave as they should
[15:55:51] <Lerneaen_Hydra2> jmkasunich: I'm not sure how it should behave, but currently it just counts up and up and up
[15:56:06] <jmkasunich> is the index-enable signal hooked up?
[15:56:53] <Lerneaen_Hydra2> yes, but that is always false, though alex_joni said that that was the intended behavior
[15:57:16] <Lerneaen_Hydra2> phaze Z behaves as it should though
[15:57:18] <jmkasunich> it should go true briefly when you execute the G33
[15:57:28] <jmkasunich> "behaves as it should" means what?
[15:57:34] <jmkasunich> one pulse per rev, right?
[15:57:53] <Lerneaen_Hydra2> phaze Z is false, except for one pulse of true per rev
[15:58:05] <jmkasunich> good
[15:58:07] <Lerneaen_Hydra2> oh, I see
[15:58:38] <jmkasunich> when you do the G33, index-enable goes true telling the counter to reset to zero on the next index pulse
[15:58:52] <jmkasunich> then when the index pulse arrives, the counter resets and index-enable goes false
[15:58:54] <Lerneaen_Hydra2> oh, ok, I se
[15:59:05] <Lerneaen_Hydra2> so a very, very very long thread may cause issues?
[15:59:12] <Lerneaen_Hydra2> with a fine pitched encoder
[15:59:23] <jmkasunich> kilometers long might cause issues ;-)
[15:59:29] <Lerneaen_Hydra2> yeah ;)
[16:00:06] <Lerneaen_Hydra2> 1*10^99 the highest value?
[16:00:17] <jmkasunich> for the counter?
[16:00:24] <Lerneaen_Hydra2> values in genereal
[16:00:33] <jmkasunich> 2^32 = ~4x10^9
[16:00:39] <Lerneaen_Hydra2> oh, ok
[16:00:40] <Lerneaen_Hydra2> 32bit
[16:00:56] <jmkasunich> thats for ints
[16:01:11] <jmkasunich> for floats, its not so much the highest value, its dynamic range
[16:01:57] <jmkasunich> if you have two floats that are both about 10^6, then you can only resolve differences between them that are about 0.1 or so
[16:02:15] <alex_joni> hi guys
[16:02:19] <Lerneaen_Hydra2> oh, so it's more of a relative value more than absolute
[16:02:22] <Lerneaen_Hydra2> hi there alex
[16:02:26] <jmkasunich> yeah
[16:02:38] <Lerneaen_Hydra2> or significant figures perhaps
[16:03:01] <jmkasunich> so you can achieve better than one micron accuracy on parts that are a few meters in size, or better than 1mm on parts that are a few km in size, etc
[16:03:39] <Lerneaen_Hydra2> sounds like a really nice system
[16:03:55] <Lerneaen_Hydra2> better than arbitrary limits at least
[16:04:02] <jmkasunich> yeah
[16:05:08] <Lerneaen_Hydra2> uh, anyway, back to the g33-stuff, so everything appears to behave as it should?
[16:05:26] <jmkasunich> I can't tell
[16:05:53] <Lerneaen_Hydra2> if I rephrase, is there anything that you can see that would be wrong?
[16:06:05] <jmkasunich> when you are not doing G33, I expect the counter to count up and up and up (not sure, but it doesn't matter)
[16:06:15] <Lerneaen_Hydra2> yes that's what it appears to do
[16:06:30] <Lerneaen_Hydra2> does it overflow to 0 after reaching 2^32?
[16:06:47] <jmkasunich> when you start G33, you should see index-enable go high, until the next index pulse, then it goes low, the count value resets to zero and starts incrementing
[16:06:55] <Lerneaen_Hydra2> hm, ok
[16:06:57] <jmkasunich> yes, count would overflow to 0 after 2^32
[16:07:15] <jmkasunich> actually, it will probably overflow to -2^31 when it hits 2^31
[16:07:27] <jmkasunich> but thats a long time even with a fast spindle and a high count encoder
[16:07:35] <Lerneaen_Hydra2> yeah
[16:07:41] <Lerneaen_Hydra2> just as long as it doesn't crash
[16:07:54] <Lerneaen_Hydra2> and it will get reset to 0 when starting g33
[16:08:02] <jmkasunich> yes
[16:08:06] <Lerneaen_Hydra2> I'll test to see if index-enable goes high then
[16:09:07] <jmkasunich> halscope is the best tool for that - trigger in rising edge of index-enable
[16:09:37] <Lerneaen_Hydra2> hmm, nope, counts isn't reset, it continues up, and index-enable is still false
[16:09:47] <jmkasunich> it never went true?
[16:09:53] <Lerneaen_Hydra2> I rotated the spindle by hand so it was easy to control
[16:09:54] <Lerneaen_Hydra2> nope
[16:10:07] <Lerneaen_Hydra2> yet phaze Z does to true
[16:10:10] <Lerneaen_Hydra2> s/to/go
[16:10:21] <jmkasunich> can you pastebin the result of "halcmd show sig" ?
[16:10:52] <Lerneaen_Hydra2> that was in bin/halcmd, right? (for run in place)
[16:10:57] <jmkasunich> yeah
[16:12:22] <Lerneaen_Hydra2> http://pastebin.ca/140666
[16:13:31] <alex_joni> Lerneaen_Hydra2: bet I know what it is
[16:13:37] <Lerneaen_Hydra2> essentially I just copied cradek's NIST hal bit, and changed to the counter instead of encoder
[16:13:45] <jmkasunich> the not isn't being executed I think
[16:13:46] <alex_joni> look if the not function is added to the right thread
[16:13:47] <Lerneaen_Hydra2> alex_joni: ooh, what would that be?
[16:13:55] <jmkasunich> do a halcmd show thread
[16:14:00] <jmkasunich> I bet not.0 isn't in the list
[16:14:12] <alex_joni> jmkasunich: great minds .. :D
[16:14:14] <Lerneaen_Hydra2> indeed it isn't
[16:14:16] <Lerneaen_Hydra2> haha
[16:14:19] <jmkasunich> because its input and output are both false
[16:14:31] <Lerneaen_Hydra2> oh, yeah that sounds fishy
[16:14:45] <jmkasunich> addf not.0 servo-thread should do the trick
[16:15:04] <Lerneaen_Hydra2> in the start of the threading portion of the hal file?
[16:15:12] <jmkasunich> yeah
[16:16:36] <Lerneaen_Hydra2> are there and/or/nand/nor functions as well in hal, or do you need CL for that?
[16:16:44] <alex_joni> and2, or2
[16:17:00] <alex_joni> those are part of blocks.. but lots of others aswell
[16:17:02] <jmkasunich> hmm, something else is wrong here
[16:17:12] <jmkasunich> the index enable signal, IIRC, is bidirectional
[16:17:15] <Lerneaen_Hydra2> you want the whole halfile?
[16:17:34] <jmkasunich> its intended to go between the motion module and the encoder/counter module with nothing else in the way
[16:17:41] <jmkasunich> why are you running it thru a not?
[16:17:45] <Lerneaen_Hydra2> hmm. ok
[16:17:48] <Lerneaen_Hydra2> cradek did
[16:18:03] <Lerneaen_Hydra2> alex knows why, I think
[16:18:13] <jmkasunich> ok, maybe I don't know what I'm talking about then
[16:18:14] <alex_joni> I don't really..
[16:18:24] <alex_joni> but I suspect it needs inverting?
[16:18:25] <alex_joni> :D
[16:18:30] <Lerneaen_Hydra2> haha :D
[16:19:00] <alex_joni> jmkasunich: I guided Lerneaen_Hydra2 based on the default config chris did
[16:19:37] <Lerneaen_Hydra2> interesting
[16:19:45] <alex_joni> Lerneaen_Hydra2: what is?
[16:19:49] <Lerneaen_Hydra2> counts is reset once per turn when issuing a g33
[16:19:56] <Lerneaen_Hydra2> but there isn't any movement
[16:20:18] <Lerneaen_Hydra2> and index-enable is always true
[16:20:21] <jmkasunich> I'm studying the nist-lathe config, trying to figure out how it works
[16:21:25] <Lerneaen_Hydra2> uh, just to make sure this isn't a stupid problem, is index (phaze z) supposed to be false with a true pulse?
[16:21:36] <jmkasunich> doesn't matter
[16:21:40] <jmkasunich> its the edge that matters
[16:21:47] <Lerneaen_Hydra2> oh, edge sensitive
[16:27:07] <Lerneaen_Hydra2> any ideas?
[16:27:13] <jmkasunich> studying the code
[16:27:19] <Lerneaen_Hydra2> oh, ok
[16:28:48] <jmkasunich> ok, if I read the code correctly, when you are NOT doing a G33, spindle-sync should be false, index-enable should be true, and the counter should be counting from zero up to one rev, then resetting and starting over
[16:29:20] <jmkasunich> at the beginning of the G33, the code waits for one of those one-rev to zero resets, and then sets spindle-sync true
[16:29:38] <jmkasunich> the inverter makes index-enable false, and the counter starts counting up and up and up during the threading move
[16:29:57] <jmkasunich> do you see that happening?
[16:30:01] <Lerneaen_Hydra2> I'll test
[16:30:37] <Lerneaen_Hydra2> hmm, I don
[16:30:45] <Lerneaen_Hydra2> 't have spindle sync in halmeter
[16:30:48] <Lerneaen_Hydra2> oh, nevermind
[16:31:47] <Lerneaen_Hydra2> not g33, spindle sync, false, index_en true, coutner resets once per turn
[16:31:50] <Lerneaen_Hydra2> so that looks right
[16:32:49] <Lerneaen_Hydra2> when doing g33 spindle sync is never set to true
[16:33:08] <jmkasunich> counter is still resetting once per turn?
[16:33:12] <Lerneaen_Hydra2> yes
[16:33:19] <Lerneaen_Hydra2> same behavior as before g33
[16:33:38] <jmkasunich> same thing at motion.spindle-revs?
[16:33:53] <Lerneaen_Hydra2> http://pastebin.ca/140705 <-- whole hal file
[16:34:21] <alex_joni> Lerneaen_Hydra2: is your G33 correct?
[16:34:30] <Lerneaen_Hydra2> I did G33 z-10 k1
[16:35:33] <jmkasunich> I don't know the proper G33 syntax
[16:35:37] <Lerneaen_Hydra2> motion is reset to 0 after each turn
[16:35:41] <Lerneaen_Hydra2> even when doing g33
[16:35:45] <jmkasunich> but I'm thinking this isn't a hal problem
[16:35:46] <Lerneaen_Hydra2> bbl, dinner
[16:36:36] <alex_joni> jmkasunich: same here
[16:37:00] <jmkasunich> got a feeling the motion controller is never seeing the g33
[16:38:44] <alex_joni> jmkasunich: how do you feel about http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?EMC2_Documentation ??
[16:39:00] <alex_joni> does the integrators TOC look OK?
[16:39:33] <jmkasunich> yeah
[16:39:59] <alex_joni> oh well.. then I guess I should get started.. sigh
[16:40:01] <jmkasunich> I'm not sure about config 3 - shouldn't the ini file be one of the first things, then let it lead you into hal
[16:40:09] <jmkasunich> (instead of doing hal first)
[16:40:36] <alex_joni> once they are done, it's easy to swap them
[16:40:41] <jmkasunich> true
[16:40:45] <alex_joni> I'm more concearned about content now
[16:41:11] <jmkasunich> true, but there is still a flow...
[16:41:39] <jmkasunich> the simplest configs use stock hal files and require little or no hal knowledge
[16:41:51] <jmkasunich> I'd start with that, then extend it into hal stuff
[16:42:56] <jmkasunich> the outlines in general are a great idea - they will keep doc writers from flailing around trying to figure out what to write about
[16:43:02] <jmkasunich> (happens to me a lot)
[16:43:50] <alex_joni> yeah, it happens to me all the time
[16:43:58] <alex_joni> I always start with the TOC, and then go from there
[16:45:31] <jmkasunich> its tempting to divide the integrators book into basic/intermediate/advanced sections
[16:45:45] <jmkasunich> basic = use stock .hal files, modify params to fit machine
[16:46:00] <jmkasunich> intermediate = some hal stuff
[16:46:33] <jmkasunich> advanced = ladder logic, custom hal stuff like torch height control
[16:48:30] <rayh> IMO there should be a chapter on standard configs in the User book.
[16:48:37] <jmkasunich> yeah
[16:49:16] <jmkasunich> that wiki page has a users book toc as well, and it includes "hal tweaking", stuff like swapping step and dir for xylotex I assume
[16:49:19] <rayh> I'll cvs up and get a look at the books.
[16:49:41] <jmkasunich> the wiki page is more relevant right now ray
[16:49:48] <rayh> okay.
[16:49:59] <alex_joni> it's a pretty old page
[16:50:06] <jmkasunich> the wiki is alex's proposal for where we should go, not where we are
[16:50:22] <alex_joni> jmkasunich: I was more thinking about the integrator stuff
[16:50:32] <alex_joni> the User Manual was written after that page existed :)
[16:50:55] <jmkasunich> alex: I know you are thinking about integrator right now
[16:51:10] <rayh> There is some question about how much integration ought to be in user.
[16:51:23] <rayh> In the old stuff I broke it between stepper and servo.
[16:51:26] <jmkasunich> but in general, having all three TOC's in one place gives us a good overview of what is (will be) covered where
[16:51:32] <rayh> But that doesn't seem quite right now.
[16:51:36] <jmkasunich> and what we might be overlooking
[16:51:40] <rayh> Sure.
[16:51:43] <alex_joni> jmkasunich: and how much they are overlapping
[16:51:48] <jmkasunich> right
[16:52:25] <rayh> Darn. Error accessing.
[16:52:32] <alex_joni> rayh: keep reloading
[16:52:36] <alex_joni> happens to me too
[16:52:49] <alex_joni> SF services at their highest qualities again
[16:55:46] <rayh> got it.
[16:57:30] <Lerneaen_Hydra2> back again
[16:57:40] <jmkasunich> time for lunch here
[16:57:43] <Lerneaen_Hydra2> hmm, what if I test the sample threading file?
[16:57:51] <Lerneaen_Hydra2> the one that comes with EMC
[16:57:55] <rayh> In user I'd flip over AXIS, Mini, Tkemc so they are alpha
[16:58:04] <rayh> Other than that it looks great.
[16:58:23] <rayh> Integration -- installing.
[16:58:36] <rayh> How is this different from the user installing?
[16:58:47] <alex_joni> rayh: not much
[16:59:07] <jmkasunich> same chapter included in both books?
[16:59:20] <alex_joni> jmkasunich: that was my initial idea
[16:59:26] <rayh> Should we assume that the integrator book builds on the user book.
[16:59:48] <alex_joni> I was thinking that each document would live on its own
[16:59:50] <rayh> BTW -- I think what is happening here is GREAT!
[17:00:16] <alex_joni> they would point the reader in the other directions too, but should contain enough basic info to get him going
[17:02:12] <rayh> The User book tells folk how to copy a config to their home directory and edit it?
[17:02:46] <rayh> Does the integrator book include compiling emc2 from cvs?
[17:03:57] <alex_joni> rayh: 1. not currently, but it should
[17:04:00] <alex_joni> 2. I don't think so
[17:04:27] <alex_joni> rayh: we have source form releases, I think that's better than arbitrary CVS versions
[17:05:15] <rayh> Ah yes. How to compile from a released version's source.
[17:05:18] <alex_joni> rayh: but instructing people how to compile from source may be interesting
[17:05:30] <alex_joni> even if it's a self documenting thing
[17:05:48] <rayh> So that an integrator can add machine specific stuff like kinematics.
[17:06:08] <alex_joni> rayh: they don't need that in 2.1.x :)
[17:06:24] <alex_joni> unless they write their own kins
[17:06:52] <rayh> Sure. There will be quite a bit of custom kins in integration.
[17:07:18] <rayh> I wonder how that would affect that integration book.
[17:07:26] <rayh> We have never written much about kins.
[17:08:08] <Lerneaen_Hydra2> the included g33 .ngc file works :D
[17:08:15] <alex_joni> Lerneaen_Hydra2: GREAT
[17:08:17] <Lerneaen_Hydra2> so something with my g33 was wrong
[17:08:32] <alex_joni> maybe missing I, J or so
[17:08:37] <alex_joni> check the wiki for a description
[17:08:40] <dmessier> Hi all
[17:08:49] <Lerneaen_Hydra2> one thing I noticed however, I didn't get f_error when needed feed > maxvel
[17:09:03] <Lerneaen_Hydra2> it just went at maxvel and continued
[17:09:27] <Lerneaen_Hydra2> oh btw, is the wiki down?
[17:10:20] <rayh> Hey the kins page is a good start.
[17:10:26] <alex_joni> Lerneaen_Hydra2: keep reloading
[17:10:49] <rayh> Might want it a bit less "folksy" but the ideas are all there.
[17:11:08] <rayh> Where would we want that in the integration book.
[17:11:26] <rayh> appendex, chapter 8, or before tuning
[17:11:47] <rayh> Chapter 6 Configuration 4
[17:11:50] <Lerneaen_Hydra2> overloaded wiki server?
[17:12:14] <rayh> overloaded sf redirection
[17:13:01] <Lerneaen_Hydra2> oh
[17:15:02] <alex_joni> rayh: overloaded sf server
[17:15:09] <alex_joni> the wiki is hosted on their site
[17:15:13] <Lerneaen_Hydra2> The G33 syntax is subject to change. Right now, the usage is:
[17:15:13] <Lerneaen_Hydra2> G33 X- Y- Z- K-
[17:15:13] <Lerneaen_Hydra2> can someone verify this?
[17:15:39] <alex_joni> Lerneaen_Hydra2: only one I can think of, and he's probably not around :D
[17:15:41] <Lerneaen_Hydra2> if correct I don't see why G33 z-5 k.1 doesn't work
[17:15:47] <Lerneaen_Hydra2> haha :D
[17:15:58] <alex_joni> Lerneaen_Hydra2: check the commands in the example file
[17:16:10] <Lerneaen_Hydra2> the strange thing is that they were the same
[17:16:28] <alex_joni> maybe it doesn't work from the MDI ?
[17:16:36] <Lerneaen_Hydra2> possible I guess
[17:17:23] <rayh> IMO you need an x position
[17:17:37] <Lerneaen_Hydra2> the sample script doesn't have X
[17:17:43] <Lerneaen_Hydra2> and adding that didn't help
[17:20:23] <rayh> Is there a spindle encoder simulation?
[17:23:04] <alex_joni> rayh: there is an encoder simulation
[17:23:25] <rayh> How do I start that?
[17:24:24] <alex_joni> not sure if nist-lathe isn't using that
[17:28:29] <rayh> I'll look.
[17:37:21] <A-L-P-H-A> alex_joni, no... it contains bacteria that's decaying my tooth.
[17:37:52] <alex_joni> A-L-P-H-A: oh.. didn't know bacteria can suck :D
[17:39:46] <rayh> Editing the wiki is somewhat of a pain cause you loose your changes if it errors out.
[17:40:04] <alex_joni> rayh: no you don't.. just reload and it'll be Ok
[17:40:17] <alex_joni> but it's always best to select all, copy to clipboard before hitting the save button
[17:40:29] <alex_joni> if it fails, a simple paste will restore it all
[17:41:33] <robin_sz> ahh such fun :)
[17:43:00] <rayh> Yep. I see that now.
[17:44:31] <rayh> alex_joni, I made a couple changes to the outline. Comments?
[17:45:51] <rayh> If you don't like it set it back or revise.
[17:46:20] <alex_joni> rayh: looking now
[17:46:31] <alex_joni> I also moved one of the Configuration earlier
[17:46:48] <alex_joni> looks great
[17:47:44] <Lerneaen_Hydra2> ooh documentation :D
[17:48:12] <Lerneaen_Hydra2> how was it you sent messages to users that will appear when they log in?
[17:48:26] <Lerneaen_Hydra2> or maybe someone can ask cradek if g33 in MDI doesn't work?
[17:50:57] <A-L-P-H-A> I just don't understand the middle east.
[17:51:21] <A-L-P-H-A> Most Arabs in that region hate Isreal, and especially America. But why are Arabs killing other Arabs?
[17:54:51] <robin_sz> mmm ... I know!
[17:55:07] <A-L-P-H-A> care to share with the rest of the class?
[17:55:17] <dan_falck> A-L-P-H-A: this is the emc channel
[17:55:18] <rayh> money money money
[17:55:38] <robin_sz> its like this: They have been doing it for at least the last 2000 years, and they don't want to stop
[17:55:48] <A-L-P-H-A> dan_falck, this is an open community
[17:55:57] <dan_falck> ok...
[17:56:01] <A-L-P-H-A> robin_sz, so the reason is lost... and diluted, and just out of habbit you say?
[17:56:18] <alex_joni> dan_falck: we lost control over the talks in here a while ago :)
[17:56:49] <robin_sz> A-L-P-H-A, well, tha and religion. when in doubt blame it on magic-sky-pixies.
[17:57:12] <davidf> hi
[17:57:17] <alex_joni> hi
[17:57:31] <davidf> alex_joni, or anyone...
[17:57:47] <davidf> Q re hal file traj settings etc
[17:58:01] <davidf> Just hooked up my mini lathe
[17:58:17] <alex_joni> davidf: go on
[17:58:18] <davidf> I want to use the spindle as A axis
[17:58:24] <davidf> thanks.
[17:58:43] <davidf> But using units = 1 (for degrees,
[17:58:49] <CIA-10> 03alex_joni 07HEAD * 10emc2/scripts/emc.in: added emcrsh to the stuff beeing killed at shutdown
[17:59:06] <robin_sz> A-L-P-H-A, I think in Europe we did the fighting thing, religious wars etc and got deomocracy. fighting and killing based on religion was deemed bad for the economy and for people, so we formed alliances and discussion groups to solve it without fighting. You can largely attribute the various religious conflicts now to non-democratic states.
[17:59:20] <davidf> the accel & velocity magnitudes are out of practical range when setting defaults etc.
[17:59:35] <alex_joni> davidf: explain ..
[17:59:53] <A-L-P-H-A> robin_sz, hmm...
[17:59:58] <davidf> my vel for lead screw is like 1.0
[18:00:16] <davidf> max-vel for the machine was set to about 2
[18:00:21] <rayh> 72 IPM
[18:00:29] <A-L-P-H-A> robin_sz, I guess that's happening all over the place... Asia did it, Europe did it... Latin America [do they still do it? They have rebel fighting, and massive crime]
[18:00:37] <davidf> but with deg for units on spindle, that's 2 deg / sec.
[18:00:37] <rayh> 2 = 120 IPM
[18:00:40] <A-L-P-H-A> Parts of Africa still do it...
[18:00:40] <davidf> too slow.
[18:00:57] <rayh> Yes.
[18:00:59] <alex_joni> davidf: you can set speed on each axis differently
[18:01:01] <davidf> 3 min/rev.
[18:01:26] <A-L-P-H-A> but those parts of Africa have democracy... albeit corrupt, but still. Maybe it's cause they don't have a developed sense of economy
[18:01:26] <davidf> But it is limited by the machine default max right?
[18:01:41] <alex_joni> davidf: not the rotary moves
[18:01:42] <robin_sz> A-L-P-H-A, the difference between the middel east and africa is we just leave africa to get on and kill each other, whereas we take a greta interest in the middle east, because they have oil
[18:01:47] <davidf> OH!
[18:01:58] <davidf> missed that in the manual.
[18:02:00] <rayh> davidf, There are/were a few issues if linear and angular were wildly different.
[18:02:12] <alex_joni> rayh: were (I hope)
[18:02:19] <rayh> I use 3 on linear and 30 on angular without problems.
[18:02:33] <davidf> OK, I'll try again & get back if I can't get it right.
[18:02:43] <rayh> But the [TRAJ] section has to be set to 30
[18:02:44] <alex_joni> davidf: get back even if it does :D
[18:02:57] <A-L-P-H-A> robin_sz, but in parts of Africa they have diamonds... does that count? or that's not enough cause we don't buy diamonds once week or more?
[18:03:01] <davidf> Good luck with the world peace thing.
[18:03:24] <davidf> Let us know if you get it solved. =)
[18:03:26] <robin_sz> A-L-P-H-A, we dotn run our industry on diamnods, generally speaking
[18:03:30] <davidf> 'bye.
[18:03:31] <robin_sz> or our cars
[18:03:41] <alex_joni> davidf: bye
[18:04:35] <robin_sz> oh I dont think it will be solved
[18:04:56] <robin_sz> look what happened with project "democracy in Iraq" ...
[18:05:13] <A-L-P-H-A> robin_sz, plus we have synthetic diamonds, and synthetic industrial diamonds.
[18:05:19] <robin_sz> as soon as the brakes where off, they set about killing each other as fast as possible
[18:06:19] <A-L-P-H-A> I wonder if we didn't need oil, how the middle east would be.
[18:06:32] <robin_sz> poor and sandy
[18:06:47] <robin_sz> actually, most of it is
[18:07:43] <robin_sz> Iran has one of the worlds largest oil reserves, but 99% of its people are badly off, the money ends up in a few large pockets
[18:09:54] <robin_sz> anyway, enough of that.
[18:10:34] <CIA-10> 03alex_joni 07HEAD * 10emc2/docs/src/install/compiling_emc2.lyx: added compile from source instructions
[18:12:52] <Lerneaen_Hydra2> I just had a strange, non-reproducable bug in EMC2 HEAD from a few weeks ago
[18:13:03] <Lerneaen_Hydra2> my X and Z jogwheels worked fin
[18:13:07] <Lerneaen_Hydra2> *fine
[18:13:17] <Lerneaen_Hydra2> but my FO wheel and spindle on/off didn't work
[18:13:39] <Lerneaen_Hydra2> encoder phase A/B worked, as did spindle-on/off in halmeter
[18:13:51] <Lerneaen_Hydra2> yet it didn't get applied
[18:13:55] <Lerneaen_Hydra2> on restart it works again
[18:15:49] <alex_joni> Lerneaen_Hydra2: odd..
[18:15:56] <alex_joni> sounds like halui crapped out
[18:16:11] <alex_joni> try not to close it the next time, and see if anything else is working
[18:16:24] <alex_joni> then turn up DEBUG level, and see if any NML messages get sent
[18:16:47] <alex_joni> they should get printed in the terminal where you started emc
[18:19:36] <Lerneaen_Hydra2> oh, ok
[18:19:49] <Lerneaen_Hydra2> yeah
[18:19:55] <Lerneaen_Hydra2> well I was running a program at the time
[18:19:59] <Lerneaen_Hydra2> so that worked
[18:20:18] <alex_joni> I was more eager to know of commands coming from halui
[18:20:31] <Lerneaen_Hydra2> the wheels didn't stop working midway through, I don't know when they stopped working
[18:20:47] <Lerneaen_Hydra2> in this case I started EMC from a launcher
[18:20:55] <Lerneaen_Hydra2> how would I get the NML messages in that case?
[18:21:17] <CIA-10> 03alex_joni 07HEAD * 10emc2/docs/src/Master_Integrator.lyx: some initial parts included (install, compile)
[18:21:22] <alex_joni> Lerneaen_Hydra2: you won't
[18:21:33] <Lerneaen_Hydra2> nothing you can do about it?
[18:21:47] <robin_sz> haha: http://www.porkolt.com/other/dynamite/more/bumm/blast/we-need-more-dynamite-4894.html
[18:22:29] <Lerneaen_Hydra2> (I'll be lerneaen_Hydra from now on)
[18:31:14] <dmessier> http://www.porkolt.com/other/babes/ass/dance/babes-with-gr8-ass-3236.html
[18:32:12] <dmessier> http://www.porkolt.com/other/fly/lawnmower/flying-lawnmower-2050.html
[18:32:16] <alex_joni> dmessier: not quite emc
[18:42:08] <CIA-10> 03alex_joni 07HEAD * 10emc2/docs/src/config/ini_homing.lyx: changed textclass (reduces a warning)
[18:42:47] <CIA-10> 03alex_joni 07HEAD * 10emc2/docs/src/config/ini_config.lyx: typo (it's .emcrc not .emcsh) + a footnote about the location
[18:46:39] <CIA-10> 03alex_joni 07HEAD * 10emc2/docs/src/Master_Integrator.lyx: include the ini reference
[18:46:53] <davidf> hi
[18:47:15] <davidf> alex_joni, this is not making sense to me.
[18:47:50] <davidf> alex_joni, still there?
[18:48:11] <alex_joni> davidf: yes I am
[18:48:17] <alex_joni> what's wrong?
[18:48:54] <davidf> OK, I have a 400 step / rev motor.
[18:49:15] <alex_joni> go on
[18:49:20] <davidf> Gearing is 20 teeth on the motor and 80 on the spindle.
[18:49:32] <robin_sz> * robin_sz nods
[18:49:44] <alex_joni> so 1:4
[18:49:56] <davidf> so I figure 400 * 80/20 steps/rev of the soindle.
[18:50:15] <robin_sz> 1600 steps/rev
[18:50:19] <davidf> and that / 360 for steps / degree.
[18:50:33] <alex_joni> right
[18:50:43] <robin_sz> are you sure its 400 steps rev?
[18:51:03] <alex_joni> 4.44 steps / deg
[18:51:06] <alex_joni> kinda low
[18:51:12] <davidf> yes it is a vexta motor.
[18:51:24] <davidf> 4.44444 right.
[18:51:25] <robin_sz> 400 is a very unusual motor ...
[18:51:30] <davidf> yes.
[18:51:36] <robin_sz> but, if it is, it is.
[18:51:45] <alex_joni> robin_sz: it's like the 200 one :)
[18:52:01] <robin_sz> yeah, most are 200, almost all.
[18:52:02] <alex_joni> only double
[18:52:12] <alex_joni> davidf: so what's the issue?
[18:52:18] <robin_sz> anyway ...whats the problem?
[18:52:57] <Lerneaen_Hydra> ooh, cradek's here
[18:53:00] <Lerneaen_Hydra> * Lerneaen_Hydra pokes cradek
[18:53:05] <cradek> hi
[18:53:13] <davidf> hi cradek
[18:53:20] <alex_joni> cradek: G33 stuff for Lerneaen_Hydra
[18:53:21] <Lerneaen_Hydra> I've got threading working now
[18:53:24] <davidf> OK, so here's the problem:
[18:53:35] <Lerneaen_Hydra> however there are a few things that I find strange
[18:53:59] <Lerneaen_Hydra> cradek: the first being that issuing g33 z-5 k0.1 (when starting at z0 x0) does nothing
[18:54:09] <davidf> I set 4.444 in the ini for the input scale on A and it turns like 1 rev/ gillion hours or so.
[18:54:22] <alex_joni> davidf: did you try to jog it?
[18:54:32] <alex_joni> or using MDI G0A360 ?
[18:54:41] <davidf> yes. super slow.
[18:55:03] <alex_joni> davidf: try MDI G1Axxx
[18:55:04] <cradek> Lerneaen_Hydra: sure it does...?
[18:55:07] <davidf> I set max vel for 3600
[18:55:07] <alex_joni> F something too
[18:55:20] <Lerneaen_Hydra> cradek: the only way that I could get g33 to work was running the sample program
[18:55:21] <cradek> what's the accel on A?
[18:55:36] <alex_joni> davidf: did you set the traj max_vel to that?
[18:55:52] <Lerneaen_Hydra> cradek: g33 z-5 k0.1 just sits there, and waits. It never sets index-enable to true
[18:56:14] <cradek> do you have the spindle turned on? (s100 m3)?
[18:56:17] <Lerneaen_Hydra> cradek: and as such counts resets once/rev, and the rest
[18:56:24] <cradek> wait maybe that doesn't matter
[18:56:27] <cradek> hmmm
[18:56:36] <Lerneaen_Hydra> I didn't issue m3 as such, just turned it on via hal
[18:56:44] <davidf> alex_joni, I tried that before. still slow.
[18:56:56] <Lerneaen_Hydra> maybe I should test cvs -dP and recompile
[18:56:56] <cradek> http://cvs.linuxcnc.org/cvs/emc2/configs/stepper-xyza/
[18:57:05] <cradek> here is a correctly-working XYZA configuration
[18:57:20] <cradek> you might want to check your velocity and accelerations against it
[18:57:37] <davidf> k
[18:57:47] <davidf> here are mine:
[18:57:51] <davidf> #+ Fourth axis
[18:57:51] <davidf> [AXIS_3]
[18:57:51] <davidf> TYPE = ANGULAR
[18:57:51] <davidf> UNITS = 1.0
[18:57:51] <davidf> HOME = 0.0
[18:57:51] <davidf> MAX_VELOCITY = 3600.0
[18:57:53] <davidf> MAX_ACCELERATION = 360.0
[18:57:55] <davidf> STEPGEN_MAXVEL = 6236.0
[18:57:57] <davidf> STEPGEN_MAXACCEL = 624.0
[18:57:59] <davidf> BACKLASH = 0.000
[18:58:01] <davidf> CYCLE_TIME = 0.001000
[18:58:05] <davidf> INPUT_SCALE = 4.4444444444 0
[18:58:07] <davidf> OUTPUT_SCALE = 1.000 0.000
[18:58:11] <davidf> MIN_LIMIT = -36000.0
[18:58:13] <davidf> MAX_LIMIT = 36000.0
[18:58:15] <davidf> FERROR = 5.0
[18:58:17] <davidf> MIN_FERROR = 1.0
[18:58:19] <cradek> 3600 degrees/second?
[18:58:19] <davidf> HOME_OFFSET = 0.0
[18:58:21] <davidf> HOME_SEARCH_VEL = 0.0
[18:58:23] <davidf> HOME_LATCH_VEL = 0.0
[18:58:25] <davidf> HOME_USE_INDEX = NO
[18:58:27] <davidf> HOME_IGNORE_LIMITS = NO
[18:58:31] <cradek> 3600 degrees/second?
[18:58:32] <robin_sz> input and output scale different?
[18:58:53] <davidf> yes.
[18:58:57] <rayh> This for emc2?
[18:59:03] <davidf> yes.
[18:59:45] <davidf> 600 rev/min guess that is pretty fast.
[18:59:45] <cradek> davidf: what are max accel and max vel in the traj section?
[19:00:01] <davidf> real slow. just a sec.
[19:00:07] <cradek> I doubt any rotary axis can do 10 revs/second
[19:00:31] <robin_sz> with 4.4 steps/degree ...
[19:00:33] <cradek> you traj settings have to be faster
[19:00:35] <robin_sz> its kinda coarse
[19:00:39] <davidf> DEFAULT_VELOCITY = 20.0
[19:00:39] <davidf> MAX_VELOCITY = 2.0
[19:00:39] <davidf> DEFAULT_ACCELERATION = 2.0
[19:00:39] <davidf> MAX_ACCELERATION = 10.0
[19:00:49] <cradek> that's your problem
[19:00:56] <robin_sz> 2 ?
[19:00:58] <cradek> check out http://cvs.linuxcnc.org/cvs/emc2/configs/stepper-xyza/inch.ini?rev=1.4
[19:00:59] <davidf> But alex_joni I thought said those dont apply to angular axes.
[19:01:00] <alex_joni> cradek: unless it's an spindle with orient
[19:01:17] <cradek> davidf: he's wrong then :-)
[19:01:17] <alex_joni> davidf: I said you can use high velocity angular along with linear ones
[19:01:21] <robin_sz> is that 2 degrees/minute?
[19:01:34] <cradek> that will limit it to 2 deg/second
[19:01:38] <alex_joni> but [TRAJ] needs to be max(axis_0,axis_1, ...)
[19:01:39] <robin_sz> tight
[19:01:41] <robin_sz> right
[19:01:47] <robin_sz> 3minutes per rev
[19:02:00] <davidf> that's about what it looks like.
[19:02:32] <alex_joni> davidf: make the TRAJ read 3600, and 360 for accel
[19:02:36] <alex_joni> and try again
[19:02:36] <davidf> ok, so how to resolve it? increase traj settings way high for the linear axes?
[19:03:23] <davidf> 3600 max vel is like miles per minute???
[19:03:32] <davidf> on the lead screw.
[19:03:44] <cradek> the linear axes will be limited to the lower velocity in the [AXIS] sections
[19:03:46] <alex_joni> davidf: yeah, the linear will still work ok, as long as their [AXIS_0] define the rigth values
[19:04:04] <davidf> OK. I can see that.
[19:04:29] <davidf> I just thought that that method might not be the right approach,
[19:04:39] <cradek> it is
[19:04:56] <davidf> since it makes the traj settings kind of pointless for a system with an angular axis.
[19:05:36] <alex_joni> it's not pointless
[19:05:43] <cradek> the traj section is of dubious value on any machine where some axes have different units.
[19:06:08] <cradek> but this configuration does work
[19:06:25] <davidf> Just an extra insurance policy that is usually useful I guess?
[19:06:49] <davidf> ok, I'll try that.
[19:07:05] <Lerneaen_Hydra> cradek: there was another thing strange with g33, and that was that if the required feed > max_vel, there was no error message, emc just tried to run it as close as possible
[19:07:27] <cradek> Lerneaen_Hydra: yeah, it's your responsibility to not do that
[19:07:43] <cradek> Lerneaen_Hydra: aborting with a following error would be pretty destructive
[19:07:54] <Lerneaen_Hydra> cradek: hmm, yeah that's true
[19:08:17] <Lerneaen_Hydra> cradek: still it was a bit surprising to see that
[19:08:23] <alex_joni> cradek: how about a report message?
[19:08:35] <alex_joni> I remember there was a NML for that
[19:09:19] <alex_joni> cradek: interp checking the stuff during read-ahead, and reporting a "possible" problem if it's close to machine max
[19:09:21] <cradek> at the beginning of the move (before entering) it might be possible to check
[19:09:22] <Lerneaen_Hydra> cradek: it would still be good if there was an onscreen message that said something like "blah blah required feed exceeded max feed n cuts, thread may be damaged"
[19:09:37] <cradek> I agree
[19:09:37] <Lerneaen_Hydra> cradek: that sounds like a good idea
[19:09:58] <Lerneaen_Hydra> cradek: also if EMC controls the spindle then it should be able to tell if the speed is too fast
[19:10:14] <Lerneaen_Hydra> though if it checks before the move then that won't matter
[19:10:41] <cradek> there are other ways to program bad threads too...
[19:11:00] <Lerneaen_Hydra> huh?
[19:11:17] <cradek> like not having enough distance for acceleration before the thread starts
[19:11:26] <Lerneaen_Hydra> oh, yeajh
[19:11:28] <cradek> you really have to know what you're doing.
[19:11:33] <Lerneaen_Hydra> EMC can't do anything about that though
[19:11:45] <cradek> yeah I'm not saying we should do nothing
[19:11:56] <Lerneaen_Hydra> threads are finiky though
[19:12:03] <cradek> yeah they are.
[19:12:29] <Lerneaen_Hydra> probably would be best to implement as much safety/warnings as possible, and trust the user not to do the other things
[19:12:39] <Lerneaen_Hydra> that at least is how commercial lathes do that
[19:24:37] <alex_joni> hi les
[19:25:53] <cradek> Lerneaen_Hydra: I think there's a bug with G33 when feed rate is 0, just program a Fxx before your G33 line
[19:26:13] <alex_joni> cradek: want me to look at that?
[19:26:21] <cradek> that would be great
[19:26:34] <cradek> the max sample config has simulated spindle feedback
[19:26:38] <alex_joni> reporting Error: G33 with zero feedrate?
[19:26:49] <alex_joni> I will look at the interp I guess
[19:26:54] <alex_joni> and not allow that at all
[19:26:54] <cradek> well G33 has no use for the feed rate
[19:27:03] <alex_joni> oh
[19:27:18] <cradek> maybe there is special handling for F=0 that's not appropriate for G33
[19:28:24] <alex_joni> can you give me an example G33 line?
[19:28:51] <cradek> g0x0z0
[19:28:54] <cradek> s500m3
[19:28:58] <cradek> g33z-.5k.1
[19:28:58] <cradek> m2
[19:29:07] <cradek> will cause no motion
[19:29:09] <A-L-P-H-A> h45045!
[19:29:18] <cradek> but if you put F99 after the m3 line it will work fine
[19:30:47] <cradek> brb
[19:38:31] <Lerneaen_Hydra> cradek: that sounds possible
[19:39:08] <Lerneaen_Hydra> that would explain the bad behavior
[19:43:10] <alex_joni> cradek: followed it to tpAddLine
[19:43:16] <alex_joni> it gets there with speed=0
[19:43:30] <alex_joni> ini_maxvel and acc are !=0
[19:50:14] <alex_joni> cradek: not sure what to check next in the TP
[19:50:30] <robin_sz> quick emc lateh question?
[19:50:55] <alex_joni> robin_sz: shoot
[19:50:58] <robin_sz> is it done with the free-spinning spindle as master, and the motion slaved to that throughthe counters?
[19:51:04] <alex_joni> right
[19:51:11] <robin_sz> right :)
[19:51:30] <robin_sz> jus checkin'
[19:51:32] <alex_joni> there's a spindle pos signal (going from 0 to 1 on each rotation)
[19:51:46] <alex_joni> so motion knows how far the spindle is in the current rev
[19:51:51] <robin_sz> right
[19:52:13] <alex_joni> it's a bit more complicated than that, but that's the bit I know :D
[19:52:34] <robin_sz> and the encoder on the spindle?
[19:52:38] <robin_sz> 1 pulse?
[19:53:14] <alex_joni> shouldn't matter with HAL
[19:53:33] <robin_sz> can I pass on some info from another well known motion controller and lathe?
[19:53:34] <alex_joni> the encoder should be some cpr, along with an index pulse
[19:53:54] <alex_joni> it can be an encoder, or a simple disk with holes
[19:53:57] <alex_joni> robin_sz: why not
[19:54:17] <robin_sz> for fastish threading with big heavy chucks, 1 pulse works fine
[19:54:30] <alex_joni> it can be 1 pulse too
[19:54:39] <alex_joni> HAL doesn't limit you at all :)
[19:54:45] <alex_joni> it can be 1 or 1000000
[19:54:49] <alex_joni> your choice
[19:54:55] <robin_sz> on smaller chucks and sloooow speeds, it works better with multiple pulses and an index
[19:55:09] <alex_joni> you always need an index
[19:55:14] <robin_sz> * robin_sz nods
[19:55:18] <alex_joni> in your case you have only the index
[19:55:41] <robin_sz> with a big heavy chuck going quick, you get minimal changes in roational velocity per rev, even under load
[19:56:11] <robin_sz> on smaller, light chucks and/or low speeds, you can get significant variations, so multiple pulses really help
[19:56:48] <robin_sz> you track chuck velocity/position
[19:57:29] <robin_sz> they managed a neat way of getting mutiple pulse and index from the same sensor too,
[19:57:39] <robin_sz> just like they do on car ignition systems ...
[19:58:10] <robin_sz> 7 normal lenght pulses, and one long one
[19:58:35] <robin_sz> that was it really. dunno if any of that is of use.
[19:59:50] <alex_joni> I know that's a bit cheaper, but I wouldn't trust that
[20:00:13] <alex_joni> if spindle blocks, or has big velocity variations, then one longer pulse means nothing
[20:01:33] <robin_sz> seems to work on cars, I guess a 10" 4 jaw chuck doesnt vary that much ;)
[20:01:51] <alex_joni> nope, but one to turn watch parts might
[20:02:03] <alex_joni> .5mm screws
[20:02:37] <alex_joni> I guess it wouldn't be that hard to check for the longer pulse
[20:02:51] <alex_joni> using a ddt or something, then filter that and generate the index pulse
[20:06:08] <robin_sz> possibly
[20:06:44] <robin_sz> I think one way people use is to paint white and black segments on the back of the chuck, and a opto-reflective sensor
[20:07:00] <robin_sz> cheap, but nasty
[20:07:53] <cradek> seems to me like you can get reasonable resolution (hundreds per rev) by drilling holes in a disc
[20:08:16] <cradek> about as cheap as paint, but less nasty
[20:08:23] <alex_joni> robin_sz: printing might be an option too
[20:08:55] <alex_joni> print on clear foil, stick it onto a blank cd (the ones found at the end of the bulks)
[20:09:03] <Lerneaen_Hydra> cradek: the hole disc I have sure seems to work well
[20:09:03] <robin_sz> uh huh
[20:09:05] <alex_joni> cradek: seen my findings above?
[20:09:20] <cradek> yes thank you
[20:09:24] <alex_joni> cradek: it seems to be getting OK up to tpAddLine..
[20:09:25] <cradek> I'm trying to figure it out after that
[20:09:29] <alex_joni> phew
[20:09:32] <Lerneaen_Hydra> super easy to do to, especially if you have a mill with a, uh, rotary table with divisions
[20:09:50] <robin_sz> I know soem others get on OK with the reflective thing and bits of paint, not exactly hi tech, but useable
[20:09:52] <cradek> Lerneaen_Hydra: or you have a cnc mill and basic math skills
[20:09:58] <Lerneaen_Hydra> yeah
[20:11:12] <davidf> hi
[20:11:20] <alex_joni> hello again
[20:11:27] <davidf> =)
[20:12:04] <davidf> Well, now I have something at least, but the distance moved is way off & I cant find the prob.
[20:12:26] <davidf> If I do G00 A360, the spindle goes maybe 5 degrees.
[20:12:49] <davidf> I have units=1.0, and input scale = 4.44444
[20:12:55] <alex_joni> jog it by hand till it does a full revolution
[20:13:03] <alex_joni> and check the position in the GUI
[20:13:10] <davidf> Seems right, but obviously somethings not right.
[20:13:17] <alex_joni> obviously :)
[20:13:28] <davidf> Yeah, its like thousands of degrees.
[20:13:54] <davidf> I'll try to see as best I can how much it's off ratio - wise.
[20:14:07] <cradek> microstepping drives?
[20:14:12] <davidf> yes.
[20:14:33] <alex_joni> hmmm.. you didn't say anithing about microstepping
[20:14:41] <alex_joni> how many microsteps/step ?
[20:14:44] <davidf> Thought about that, but I think it's right. Maybe not. Not sure I understand the drive right.
[20:14:55] <davidf> OK,
[20:15:11] <davidf> I have a number of options for the microsteps....
[20:15:32] <davidf> I have the box set for 400 steps/rev right now.
[20:15:47] <davidf> And the motoer is 400 spr
[20:16:16] <alex_joni> what other options are there?
[20:16:36] <davidf> Just a minute. Let me check how I did it for the other axes, re the input scale. They are right.
[20:18:03] <robin_sz> probably 64 or 128 usteps. some of those vexta drives are a bit that way inclined
[20:18:12] <robin_sz> nice if you can afford them
[20:18:35] <davidf> These are Parker-Hannifin drives. Top end...
[20:19:00] <davidf> As for options, 16 options foor Micro stepping from 200 to 50,000.
[20:19:15] <alex_joni> ok, so you probably have 400 microsteps/step
[20:19:37] <alex_joni> that means your input_scale is off by a magnitude of 400 ?
[20:19:49] <robin_sz> 5 degrees to 360?
[20:19:57] <robin_sz> 360 / 5 is?
[20:19:59] <davidf> For the linear axes, (that all work right) I have set input scale to 8000.
[20:20:00] <alex_joni> 72
[20:20:20] <alex_joni> davidf: describe that setup
[20:20:27] <robin_sz> coo. and you can get emc to work with 8000 steps/ rev?
[20:20:30] <alex_joni> the linear axis: motor (steps/rev), etc
[20:20:40] <davidf> 200 step motors, 400 steps per inch setting on the drive,
[20:20:53] <davidf> 20 threads per inch screws.
[20:21:08] <davidf> so I took 400 * 20 = 8000.
[20:21:29] <davidf> set input scale to that, and set the drive for 400 steps per rev.
[20:21:33] <alex_joni> oh, now I get it
[20:21:41] <alex_joni> the drives expect 1 turn = 1 inch
[20:21:53] <robin_sz> yeah
[20:21:57] <alex_joni> so when you set 400 steps/inch at the drive it will half step
[20:22:00] <davidf> That gives the correct position / displacement, and runs the 200 step/rev motor in half step mode.
[20:22:21] <robin_sz> I doubt its "steps per inch" on the drive, that will be "steps per rev"
[20:22:33] <alex_joni> robin_sz: probably so
[20:22:36] <davidf> But this motor on the lathe spindle is 400 steps/rev, so it should be in full step mode.
[20:22:52] <davidf> yes. typo.
[20:22:53] <robin_sz> no no
[20:22:56] <alex_joni> wonder how the drive knows that
[20:23:01] <Mhel> Hi, am trying ot run axis on a Pentium2 333, but it give's me minigl module not found, what am I missing? tkemc works fine tho.
[20:23:04] <davidf> don't know.
[20:23:08] <robin_sz> if the motor is 400 steps per rev
[20:23:24] <alex_joni> Mhel: missing gl ?
[20:23:25] <davidf> I think it assumes a 200 step/inch motoer & does the math based on that.
[20:23:36] <Mhel> alex: yes
[20:23:36] <robin_sz> and the drive is 10 micro steps, its then a 4000 steps per rev drive/motor combo
[20:23:39] <alex_joni> Mhel: what linux distribution ?
[20:23:56] <Mhel> alex: slack
[20:24:08] <alex_joni> Mhel:does glxgears work?
[20:24:25] <Mhel> it's seems fine in a p4
[20:24:31] <davidf> robin_sz, yes, but the chart on the drives is not set up with that terminology.
[20:24:35] <Mhel> glxgears what is it?
[20:24:41] <alex_joni> Mhel: I'm afraid I don't know how to set up OpenGL on slack
[20:24:41] <davidf> The figures are in steps/ rev.
[20:24:51] <Mhel> oki thanks.
[20:25:03] <alex_joni> Mhel: how did you compile/install emc2?
[20:25:12] <robin_sz> davidf, you have a 400 step motor, you dotn need to drive it with a "400 step" drive (whatever that may be)
[20:25:16] <davidf> So I think it assumes the motoer steps/rev are 200. 200 is the lowest option on the drive.
[20:25:39] <Mhel> Alex: i followed the isntall,
[20:25:51] <alex_joni> Mhel: what emc2 version?
[20:25:53] <robin_sz> doesnt matter, use any setting with any motor, depepnding how many steps per rev you want on the input
[20:25:55] <davidf> my only options are 200,400,1000,2000,...50,000
[20:26:07] <Mhel> Alex: it's running on rtai3.3 kernel 2.4.31
[20:26:10] <robin_sz> thats steps per rev
[20:26:13] <alex_joni> Mhel: what emc2 version?
[20:26:20] <davidf> yes. steps/rev
[20:26:25] <Mhel> EMC 2.03
[20:26:30] <robin_sz> assuming a 200 step motor probably
[20:26:44] <alex_joni> Mhel: ok, on emc2.0.3 you need to get AXIS as a separate install
[20:26:57] <alex_joni> I suspect something went wrong while you did that
[20:27:15] <robin_sz> you say your motor is a special 400 step motor (very rare I have to say) assuming thats true , set the drive to 2000 and you have 4000 steps per rev on the input
[20:27:21] <alex_joni> Mhel: did you use ./configure or ./configure --enable-run-in-place for emc2
[20:27:23] <alex_joni> ??
[20:27:24] <davidf> robin_sz, yes, that's what I said above.
[20:27:47] <Mhel> Axis is built in EMC2 dir, I use ./configure
[20:27:57] <robin_sz> 1 rev of the motor = how many degrees on spindle?
[20:28:07] <davidf> robin_sz, The motor is 400 steps/rev. It is labeled right on the motor, 0.9 degrees/step.
[20:28:12] <robin_sz> k
[20:28:16] <robin_sz> I beleive you
[20:28:18] <robin_sz> so ...
[20:28:21] <davidf> Promise. +)
[20:28:26] <Mhel> alex: I tried separate install of Axis but it keeps asking me for Plat
[20:28:30] <alex_joni> Mhel: I _think_ you can only build AXIS in the emc2 dir when you configure for run-in-place
[20:28:31] <davidf> cyclops typo smile.
[20:28:31] <robin_sz> 1 motor rev = how many spindle degfrees?
[20:28:45] <davidf> 90 degrees
[20:28:50] <alex_joni> Mhel: configure emc2, make && sudo make install
[20:28:56] <davidf> (4:1 gears.
[20:28:57] <robin_sz> thats fscking coarse ...
[20:29:16] <robin_sz> you could EASILY put a 20:1 reduction on that
[20:29:25] <davidf> I'm not useing it for turning, just indexing.
[20:29:32] <robin_sz> exactly
[20:29:43] <Mhel> alex: funny thing is, it works on my other setup, but I'm trying to make a dedicated PC jus for EMC
[20:29:45] <davidf> Don't need it.
[20:30:02] <alex_joni> Mhel: I suspect you are runnign in place on the other system?
[20:30:15] <robin_sz> well, its like 20 times coarser than any indexing chuck Ive seen ... but anyway ..
[20:31:11] <davidf> Trust me, it works fine. for my purposes.
[20:31:13] <alex_joni> davidf: anyways, set it up like robin suggested, then increase the INPUT_SCALE accordingly
[20:31:22] <robin_sz> 2000 / 90 = steps per degree
[20:31:36] <Mhel> alex: not really, I installed EMC2, then copied axis, MDI, somethingTOP to emc2 install dir, it works on the othe setup.
[20:31:46] <davidf> ok I'll try it.
[20:32:09] <alex_joni> Mhel: sounds like you forgot to copy minigl.so
[20:32:38] <Mhel> ok, I'll try again, thanks.
[20:32:51] <alex_joni> it's in emc2/lib/python on my emc2
[20:32:59] <robin_sz> normally, you gear indexers WAY low, you dont need em to go fast, but you do want them to resist the significant forces from say, drilling. it might just try and spin around
[20:33:13] <robin_sz> most are a 20: worm drive
[20:33:28] <robin_sz> or more
[20:33:45] <alex_joni> Mhel: it should get copied to python site-packages
[20:34:01] <alex_joni> Mhel: on my system /usr/lib/python2.4/site-packages
[20:34:30] <alex_joni> Mhel: emc.so, gcode.so, minigl.so, rs274/ ...
[20:34:45] <Mhel> alex: thanks, got to shutdown for now, I only have one monitor at the moment and am still using XP on this PC untill I could get a modem that works with slack. thanks again
[20:34:56] <alex_joni> Mhel: no problem
[20:34:56] <davidf> robin_sz, I do understand that... In this config, I'm using a tool post mounted grinder to shave off .005 from a 3/32 inch diameter steel rod. I've cut hundreds of parts with no problem with this setup.
[20:35:24] <robin_sz> davidf, fair enough .. just sanity checking ... we get allsorts in here ;) ;) ;)
[20:35:26] <Mhel> alex: BTW all of the files are in the right folder, just didn't get compiled I think
[20:35:51] <alex_joni> Mhel: if it says it's not found, I suspect it's not in the right place
[20:36:04] <Mhel> oki thanks.
[20:36:06] <alex_joni> Mhel: try a make clean before the compile
[20:36:13] <davidf> sure do.
[20:36:18] <davidf> ;)
[20:36:21] <Mhel> Alex: will do
[20:37:54] <davidf> Here's the skinny, robin_sz
[20:38:33] <davidf> 3/32 diameter * pi = .29 inch circ.
[20:39:01] <davidf> 400 steps/360 deg= .9
[20:39:12] <davidf> degrees/step
[20:39:49] <davidf> so look at .29 total circumference, and divide that by 400.
[20:40:00] <davidf> =.0007 max error
[20:40:05] <davidf> (inch)
[20:40:35] <davidf> +/- .002 tolerance is fine in this ap.
[20:41:01] <davidf> &, I happened to have a 20 and 80 tooth gear on hand. =)
[20:42:17] <davidf> So that's why I ddi it that way. I do have a 72-turn rotary table, but this is convenient as far as the setup.
[20:42:36] <davidf> For the lathe operation anyway.
[20:42:54] <alex_joni> davidf: any update?
[20:43:19] <davidf> So, I'll try the 2000 microstep mode. At least that will get my input scale up by a factor of 5.
[20:43:30] <davidf> one minute...
[20:43:50] <alex_joni> ok
[20:46:00] <robin_sz> oh yeah, +- .002 what? degrees?
[20:47:03] <robin_sz> for a start, stepper motors are typically +- 1 degree
[20:47:13] <robin_sz> even under no load
[20:47:37] <alex_joni> 200 steps/rev steppers ;)
[20:47:47] <alex_joni> these might be +/- .5 degs
[20:47:58] <robin_sz> yeah, but 50 steps != 90 degrees
[20:48:03] <robin_sz> often +-1 degree
[20:48:33] <robin_sz> thats why indexers use worm gears and divide down like crazy
[20:49:05] <robin_sz> and a 4:1 gear pair? with .002 degrees od backlash or less?
[20:49:41] <robin_sz> ah well, I'll assume that was .002 of a rev, not .002 degrees
[20:49:57] <davidf> robin_sz, I meant the edge of the cut could be off by .002 inches. a full step is only 7 ten - thousanths.
[20:50:35] <robin_sz> davidf, assume the motors are +- 0.5 degree
[20:50:49] <davidf> I was speaking of fractions of an inch around the circumference.
[20:51:06] <robin_sz> so the spindle will be +- 0.125 degrees
[20:51:10] <davidf> robin_sz, The accuracy is not an issue.
[20:51:42] <alex_joni> yay, emc development really got somewhere ;)
[20:51:50] <alex_joni> 3640 messages since the first one, 1.94 years ago, for an average of 4.66 hours between messages
[20:52:57] <davidf> The setup is just to cut two flats on the side of a blank shaft for a diamond coated reamer bit.
[20:53:29] <robin_sz> davidf, OK, I understand
[20:53:30] <davidf> they need to be close to 180 deg. apart and measure .005 deep each.
[20:53:55] <davidf> When I measure accross them, I need +/- .002.
[20:54:10] <robin_sz> they will be within 0.25 degrees of 180 probably
[20:54:16] <davidf> Thickness of the shaft across the flats.
[20:54:38] <davidf> Right now with this setup I get about +/- .0005
[20:54:45] <davidf> Plenty accurate.
[20:55:14] <robin_sz> I thnk we are talking about different things .. but it does your job, so thats all that matters
[20:55:16] <davidf> Oh, and this is a 7 X 12 inch mini lathe. Not a big honkin one.
[20:55:54] <robin_sz> anyway ... does it move right yet?
[20:56:15] <davidf> :( no.
[20:56:37] <davidf> looks like it's off by a factor of 10 or so...
[20:57:00] <robin_sz> a pragmatic approach
[20:57:07] <robin_sz> crank it up by 10, try that
[20:57:22] <alex_joni> davidf: try MDI: G0A3600
[20:57:26] <davidf> A SWAG. ;)
[20:57:27] <alex_joni> and see if it does a full turn
[20:57:35] <robin_sz> then try and back-track the numbers to work out what it shoudl be really
[20:57:53] <davidf> Right that's what I'm doing now...
[20:59:04] <robin_sz> * robin_sz is still almost tempted to buy a motion card for emc
[20:59:07] <robin_sz> almost
[20:59:20] <robin_sz> its the price tag that still scares me
[21:03:20] <davidf> OK, I entered G00 A21600 and it went about 360 degrees.
[21:03:25] <davidf> Factor of 60.
[21:03:32] <davidf> Geez.
[21:03:37] <alex_joni> robin_sz: 5I20PCI Anything I/O -- 72 I/O bits - 200K Spartan II FPGA$199
[21:06:10] <alex_joni> MOTENC-Lite PCI 4-Axis Passive Motion Board: $550.00
[21:09:21] <robin_sz> yeah the mesa card ...
[21:09:29] <robin_sz> plus $69 for servo interface
[21:09:42] <robin_sz> and a IO card
[21:09:43] <alex_joni> still quite cheap
[21:10:44] <robin_sz> yeah
[21:10:48] <robin_sz> ughh ... idiots.
[21:11:11] <robin_sz> who, WHO designs an opto card with the optos NOT in sockets huh?
[21:11:28] <robin_sz> * robin_sz looks for his cluestick
[21:11:55] <alex_joni> people who want to sell more than one card?
[21:12:03] <robin_sz> sigh ...
[21:12:41] <robin_sz> so $350 gets it sorted anyway
[21:13:03] <alex_joni> or 550 for the Motenc
[21:15:38] <robin_sz> and the mesa card will do 4 servos plus 8 out, 16 in digital IO at the same time with emc?
[21:16:44] <alex_joni> yup
[21:16:53] <alex_joni> and you can always plug another one in
[21:17:01] <robin_sz> that will do I think ...
[21:17:01] <alex_joni> to double that
[21:19:11] <robin_sz> wonder what shipping to the eu is?
[21:20:13] <davidf> OK, I found out something at least.
[21:20:34] <davidf> Looks like robin_sz is right re the microstepping setting.
[21:21:07] <davidf> ie, setting the drive for 400 gets the same result as setting it at 10000
[21:21:47] <alex_joni> * alex_joni heads to bed
[21:21:49] <alex_joni> night all
[21:21:52] <davidf> whatever the drive does, it does it all by itself without needing extra input steps to get more steps out.
[21:22:02] <davidf> night alex_joni
[21:22:52] <davidf> And, I'm getting 18000 for the A position, when I make a 360 degree move.
[21:23:13] <davidf> Factor of 50.
[21:23:37] <davidf> Bizarre.
[21:23:49] <davidf> Bizzarre?
[21:24:03] <davidf> Bazaar?
[21:24:15] <davidf> CAINT spill nothin.
[21:25:26] <jmkasunich> thats nuttin!
[21:25:49] <davidf> thinks alot fer th lesen.
[21:26:00] <jmkasunich> yerr welcum
[21:26:12] <jmkasunich> coming in late - what seems to be the problem?
[21:26:14] <davidf> gollllieee
[21:26:24] <davidf> My brain hurts.
[21:26:37] <davidf> fix it.
[21:26:40] <jmkasunich> take two asprin and call me in the morning
[21:26:58] <davidf> thats an odd name.
[21:27:08] <jmkasunich> ?
[21:27:15] <robin_sz> "in the morning"
[21:27:22] <jmkasunich> ;-)
[21:27:25] <davidf> in the morning.
[21:27:30] <jmkasunich> just don't call me late to dinner
[21:27:38] <davidf> hee.
[21:27:40] <robin_sz> are you?
[21:27:50] <jmkasunich> getting there, 5:30 pm here
[21:27:54] <jmkasunich> but my wife is taking a nap
[21:28:06] <davidf> ok, well, jmkasunich here's my latest and greatest conundrum.
[21:28:13] <robin_sz> 11:30 pm here
[21:28:27] <jmkasunich> a carborundum conundrum?
[21:28:29] <davidf> 4:30 pm here.
[21:28:42] <davidf> no, that's my skull.
[21:28:52] <robin_sz> nah thats wooden
[21:29:53] <davidf> I have a 400 step/rev motor (tell him, robin_sz ) and I have a 4:1 gear ratio on the linkage to the spindle on my mini lathe.
[21:30:05] <davidf> :D
[21:30:11] <jmkasunich> ok, so 1600 steps/rev on the spindle
[21:30:37] <davidf> Well, its carborundum on the outside, cork on the inside.
[21:30:47] <davidf> yes.
[21:31:03] <davidf> Then, units are degrees = 1.0
[21:31:16] <jmkasunich> armored on the outside, padded inside - not a bad brain-bucket there
[21:31:25] <davidf> so 1600/360 = 4.44444 for the input_scale on axis 4.
[21:31:33] <davidf> right?
[21:31:49] <jmkasunich> 4.44 steps per degree, assuming you are using degrees as the angle units
[21:31:57] <davidf> yes.
[21:32:29] <davidf> But, when I do a g01 A18000, I get one revolution.
[21:33:06] <davidf> go figer.
[21:33:06] <jmkasunich> first things first - what happens when you jog it?
[21:33:15] <davidf> it moves.
[21:33:16] <davidf> :)
[21:33:20] <jmkasunich> how far ;-)
[21:33:41] <davidf> However far I want.
[21:33:47] <jmkasunich> wiseass
[21:33:51] <davidf> Watcha mean?
[21:34:06] <jmkasunich> if you jog by 180 degrees as indicated on the display, does it move 180 degrees for real?
[21:34:13] <davidf> no.
[21:34:31] <jmkasunich> ok, then there no sense in messing with g01 A anything
[21:34:38] <davidf> Like I said, 360 degrees for real = 18000 degrees displayed.
[21:34:55] <jmkasunich> ok, just making sure jogs and g-code agree
[21:35:08] <jmkasunich> jogs are simpler (IMHO) so I'd try to get that right first
[21:35:10] <davidf> let me double check.
[21:36:35] <jmkasunich> this is stepper and parport, right? nothing fancy?
[21:37:04] <davidf> yes jogs & G01 agree.
[21:37:24] <davidf> Stepper/parport, Parker microstepping drives
[21:37:33] <jmkasunich> open a shell
[21:37:44] <davidf> But I think I have ruled out any microstepping issue.
[21:37:49] <davidf> ok.
[21:38:03] <davidf> done.
[21:38:15] <jmkasunich> run halcmd show sig stepgen | grep cmd
[21:38:32] <jmkasunich> that should give you one line per axis, paste em here
[21:39:23] <jmkasunich> last one is probably " 05 float R- 0.00000e+00 stepgen.3.position-cmd <== Apos-cmd"
[21:39:51] <davidf> It didn't do anything but give me a new blank line.
[21:40:02] <jmkasunich> hmm
[21:40:10] <jmkasunich> try halcmd show pin
[21:40:17] <jmkasunich> that should get you a crapload
[21:40:30] <davidf> that works.
[21:40:43] <jmkasunich> ok, halcmd show pin stepgen
[21:40:48] <jmkasunich> a smaller crapload
[21:41:16] <davidf> yes.
[21:41:27] <jmkasunich> ok, halcmd show pin stepgen.3.po
[21:41:42] <davidf> Maybe it's the syntax with | grep cmd
[21:41:47] <jmkasunich> that should get you two lines and a header
[21:41:58] <jmkasunich> maybe, don't worry about it
[21:42:08] <jmkasunich> you got the stepgen.3.po output?
[21:42:16] <jmkasunich> something like this maybe?
[21:42:25] <jmkasunich> Component Pins:
[21:42:25] <jmkasunich> Owner Type Dir Value Name
[21:42:25] <jmkasunich> 05 float R- 0.00000e+00 stepgen.3.position-cmd <== Apos-cmd
[21:42:25] <jmkasunich> 05 float -W 0.00000e+00 stepgen.3.position-fb ==> Apos-fb
[21:42:34] <davidf> ;
[21:42:37] <davidf> Component Pins:
[21:42:38] <davidf> Owner Type Dir Value Name
[21:42:38] <davidf> 04 float R- 1.27291e+05 stepgen.3.position-cmd <== Apos-cmd
[21:42:38] <davidf> 04 float -W 1.27291e+05 stepgen.3.position-fb ==> Apos-fb
[21:42:43] <jmkasunich> ok, great
[21:42:57] <jmkasunich> so we know that stepgen.3 is the one being used for the A axis
[21:43:16] <jmkasunich> now: halcmd show param stepgen.3.po
[21:43:18] <davidf> ok.
[21:43:34] <jmkasunich> that should show you your position scale, which should match the input scale of 4.4444
[21:43:46] <jmkasunich> probably looks like 4.444444e+00
[21:44:18] <davidf> 04 float -W 4.44444e+00 stepgen.3.position-scale
[21:44:21] <jmkasunich> ok
[21:44:55] <davidf> hey wait.
[21:45:05] <jmkasunich> going back to the previous command - it looks like its commanding the axis to go to 127291 degrees
[21:45:19] <davidf> awhile ago I somehow got 22.222222 for the right number.
[21:45:35] <davidf> That is a factor of 50 & that's what Im off by.
[21:45:50] <jmkasunich> seems like a factor of 5 to me
[21:46:05] <davidf> oops.
[21:46:23] <davidf> told you--- cork.
[21:46:27] <jmkasunich> ;-)
[21:46:43] <jmkasunich> I have no idea how the commanded position got so high
[21:46:53] <jmkasunich> restart EMC, so it will start at zero
[21:46:56] <jmkasunich> then we can run some tests
[21:47:10] <davidf> so re the 127291 - I was just doing several rotations
[21:47:31] <davidf> And as I said it takes 18000 steps to go around once.
[21:47:47] <davidf> but why is beyond me.
[21:47:57] <jmkasunich> 400 per rev * 4:1 = 1600 steps/rev
[21:48:03] <davidf> yes.
[21:48:13] <jmkasunich> so why did you just say 18000 steps?
[21:48:40] <davidf> first, 400 steps / rev = 4.4444 per degree.
[21:48:45] <davidf> Thats the units.
[21:49:05] <davidf> I said I have to go 18000 steps to get a rev.
[21:49:18] <jmkasunich> ok, you're just confusing me
[21:49:26] <jmkasunich> have you restarted emc yet?
[21:49:32] <davidf> Even though the numbers say it should be only 1600.
[21:49:46] <davidf> I restarted the whole computer.
[21:49:55] <jmkasunich> huh?
[21:49:56] <jmkasunich> why?
[21:50:04] <davidf> I'll shut down emc & try again.
[21:50:13] <jmkasunich> I guess that computer isn't the one that you are using for IRC?
[21:50:15] <davidf> awile ago in desperation.
[21:50:24] <davidf> yes it is.
[21:50:46] <davidf> I meant I did it already an hour ago. Didn't help.
[21:50:48] <jmkasunich> I meant - I asked you to restart emc a few minutes ago, and I wanted to know if you did that or not
[21:51:01] <davidf> not yet. just a sec.
[21:51:33] <jmkasunich> once emc restarts, in your shell do the following:
[21:51:47] <jmkasunich> halmeter pin stepgen.3.position-cmd &
[21:51:54] <jmkasunich> halmeter pin stepgen.3.counts &
[21:52:04] <Lerneaen_Hydra> 'night people
[21:52:12] <jmkasunich> goodnight Lerneaen_Hydra
[21:52:48] <jmkasunich> davidf: you should now have two meter windows on your screen in addition to the emc window, shell, irc, etc
[21:53:11] <davidf> Goodnight.
[21:53:27] <jmkasunich> lemme know when you are ready for the next step
[21:53:28] <les_w> oh, hi jmk
[21:53:36] <davidf> ok.
[21:53:53] <jmkasunich> set the jog speed (slider) fairly low
[21:54:04] <jmkasunich> and jog the A axis with the jog buttons
[21:54:27] <jmkasunich> the values displayed on the meters should change
[21:54:35] <jmkasunich> and the motor should turn
[21:54:42] <davidf> ok...
[21:54:55] <jmkasunich> compare the value on the counts meter with the rotation of the shaft
[21:55:42] <jmkasunich> I don't care what the drive or motor specs are
[21:56:16] <jmkasunich> the value displayed by "stepgen.3.counts" and the physical rotation of the shaft tells you the pulses per rev that your hardware is giving you
[21:57:40] <jmkasunich> hi les_w
[21:57:46] <davidf> stepgen.3.counts = 81208 (but I just eyeballed one rev.)
[21:57:47] <jmkasunich> hi Mhel
[21:57:53] <les_w> hi jmk
[21:58:02] <jmkasunich> then you got 81000 counts or so per rev
[21:58:03] <les_w> hi Mhel
[21:58:04] <Mhel> hello
[21:58:09] <davidf> yes.
[21:58:21] <jmkasunich> that means about 20000 counts per motor rev
[21:58:25] <davidf> And position command is about 18K
[21:58:34] <jmkasunich> ignore that for now
[21:58:46] <jmkasunich> it is driven by the scaling, and the scaling is obviously wrong
[21:59:12] <jmkasunich> for some reason that drive is giving you 20000 steps per rev of the motor
[21:59:40] <davidf> eh?
[21:59:40] <jmkasunich> it must be doing 50 microsteps/fullstep or something
[21:59:48] <davidf> so counts is steps?
[21:59:53] <jmkasunich> yes
[22:00:01] <Mhel> I just wanted to let alex_joni know if he's still here, that I manage to make axis works on slackware on a pentium2 333, rtai3.3, emc2.03
[22:00:16] <jmkasunich> I think alex went to sleep
[22:00:20] <davidf> Well, I have it set for 400 steps/rev.
[22:00:28] <jmkasunich> well, its not doing that
[22:00:36] <davidf> I can try a different drive easily.
[22:01:11] <jmkasunich> do you have an oscilliscope? if there is some doubt about what the drive is getting nothing beats checking it directly
[22:01:43] <Mhel> anyone using stepper? mind sharing their ini file, so I could learn how to setup mine.
[22:01:46] <jmkasunich> but I'd be amazed and extremely dissapointed if the stepper module put out a number of steps that doesn't match "counts"
[22:02:10] <jmkasunich> there are sample ini files as part of the install
[22:02:37] <davidf> I do have a scope.
[22:02:52] <jmkasunich> this is a lathe spindle, right?
[22:02:56] <davidf> yes.
[22:02:59] <jmkasunich> no travel limits, it can spin all day?
[22:03:07] <davidf> yes.
[22:03:33] <jmkasunich> ok, I can walk you thru setting up HAL to send it a 1KHz stream of steps
[22:03:45] <jmkasunich> then you can verify the 1KHz with the scope, and see how fast the motor turns
[22:03:53] <jmkasunich> do you want to do that?
[22:03:58] <davidf> ok...
[22:04:20] <jmkasunich> just leave emc running, we'll modify that config by adding stuff
[22:04:32] <jmkasunich> run the following commands in the shell:
[22:05:12] <davidf> jmkasunich, why do this?
[22:05:16] <Mhel> will there be archive of today's conversation? just wanted to try jmkasunich: walktru later.
[22:05:48] <jmkasunich> davidf: troubleshooting - if we can prove that the drive is actually doing 20000 steps/rev, then you know the issue is the drive
[22:06:03] <jmkasunich> its up to you, thats why I asked if you wanted to do it
[22:06:06] <davidf> ok.
[22:06:23] <jmkasunich> ok, first step:
[22:06:30] <davidf> I could just look at the pulse period on the scope.
[22:06:37] <jmkasunich> halcmd loadrt freqgen step_type=0
[22:06:53] <jmkasunich> you mean during a jog or something?
[22:07:01] <davidf> yes.
[22:07:10] <davidf> but lets try this.
[22:07:26] <jmkasunich> well, if you can do that, it might save time
[22:07:37] <davidf> ok.
[22:07:40] <jmkasunich> I was assuming that the jog would stop too soon to allow you to mess with the scope
[22:07:49] <jmkasunich> so I wanted to get a constant frequency signal
[22:08:22] <jmkasunich> tell me which you'd rather do
[22:08:47] <jmkasunich> getting a constant 1KHz signal will take us about 5 mins or less
[22:08:54] <davidf> hey, i got a phone call. I'll be back later....
[22:09:00] <jmkasunich> ok
[22:10:30] <jmkasunich> well, here goes anyway, you can follow these steps if you want:
[22:10:46] <jmkasunich> first, load the freqgen module (I already gave you this command, don't repeat if you did it already)
[22:10:54] <jmkasunich> loadrt freqgen step_type=0
[22:11:10] <jmkasunich> disconnect the step and dir signals from the old step generator
[22:11:16] <jmkasunich> unlinkp stepgen.3.dir
[22:11:18] <jmkasunich> unlinkp stepgen.3.step
[22:11:28] <jmkasunich> connect them to the new frequency generator
[22:11:42] <jmkasunich> linksp Adir freqgen.0.dir
[22:11:52] <jmkasunich> linksp Astep freqgen.0.step
[22:13:23] <jmkasunich> make a signal for the commanded frequency:
[22:13:28] <jmkasunich> newsig frequency float
[22:13:34] <jmkasunich> connect it to the freqgen input:
[22:13:45] <jmkasunich> linksp frequency freqgen.0.velocity
[22:15:04] <jmkasunich> set up threads:
[22:15:26] <jmkasunich> addf freqgen.0.make-pulses base-thread
[22:16:24] <jmkasunich> addf freqgen.capture-position servo-thread 1
[22:16:51] <jmkasunich> addf freqgen.update-freq servo-thread
[22:17:35] <jmkasunich> connect a signal to enable the freq generator
[22:18:25] <jmkasunich> oops, never mind the enable part, freqgen doesn't need that
[22:19:06] <robin_sz> hmmm thats interesting .. the mesa card uses pwm to generate a +-10V signal ...
[22:19:08] <jmkasunich> ok, the last step - set a frequency
[22:19:23] <jmkasunich> robin_sz: yeah, cheaper than putting dacs on it
[22:19:32] <robin_sz> indeed
[22:19:41] <jmkasunich> and they can swap between analog outputs and ordinary digital ones easily
[22:20:01] <jmkasunich> shame A/D doesn't work the same way
[22:20:08] <robin_sz> it doesnt?
[22:20:37] <robin_sz> * robin_sz thought it did
[22:20:52] <jmkasunich> I suppose you could compare an analog input to a triangle wave and generate PWM, then measure the duty cycle digitally
[22:21:04] <jmkasunich> I don't know what they're doing on that card
[22:21:10] <robin_sz> successive approximation A->D is a common technique
[22:21:35] <jmkasunich> yeah, but when the DAC is a filtered PWM, successive approx is gonna be damn slow
[22:22:08] <robin_sz> if the input is filtered, you know its not far from wher you last left it ...
[22:22:40] <robin_sz> but yeah, successive approximation is slow
[22:22:40] <jmkasunich> depends on how heavy the filter is
[22:23:09] <robin_sz> the A-D on the PIC chips is mainly doen that way
[22:23:15] <robin_sz> but they have a real D to A
[22:23:32] <jmkasunich> right, so the dac is a few uS, and the ADC a few tens of uS
[22:23:40] <robin_sz> indeed
[22:23:48] <robin_sz> this si going to be way slower I guess
[22:23:51] <jmkasunich> but with a PWM dac, the dac is probalby hundreds of uS, and the AD would be several mS
[22:24:08] <robin_sz> which may/may not be useful
[22:24:13] <jmkasunich> depends
[22:24:17] <jmkasunich> gotta go for a bit
[22:24:18] <robin_sz> indeed
[22:24:24] <robin_sz> enjoy your bit
[22:24:25] <jmkasunich> davidf: the last step: set the desired frequency
[22:24:52] <jmkasunich> sets frequency 1000
[22:24:55] <jmkasunich> (for 1KHz)
[22:25:22] <jmkasunich> max frequency depends on your setup, probably about 10KHz or better
[22:25:38] <jmkasunich> can see it with "show param freqgen.0.maxfreq"
[22:25:40] <jmkasunich> gotta go now
[22:40:19] <robin_sz> so, having played with the maths of it ... and got it to work on paper, I'm going to actually set up an emc box and have more of a play at this tube laser nonsense.
[22:41:02] <robin_sz> I see the X being across one face of the tube,
[22:41:08] <robin_sz> Y being up its length
[22:41:16] <robin_sz> and Z being Z axis height
[22:41:28] <robin_sz> A being rotation of the tube.
[22:41:45] <robin_sz> for square/rectangular tube, A is never used directly.
[22:42:28] <robin_sz> Mxx will be called to select a new face,
[22:44:05] <robin_sz> M99 1 selects face 1 or whatever .... so, I see the motion moving the head to say X0 (middle of face 1) ... then starting to cut. moves up to the edge line of face 1, then rotates the tube to end up on the edge of face 2, continues the cut to the centre of face 2
[22:46:55] <robin_sz> the slight problem there might be that M99 2 sthat selects face 2 of the tube, will cause X, Z and A to move. we dotn really care about Z and A, they are pretty much "slaved", we dont control them directly
[22:47:46] <robin_sz> but X being moved might cause grief in the interpreter
[23:09:17] <robin_sz> hmmm really, I guess face selection is obviously modal, but its also sequential (at least while cutting) you can;t go to face 2 unless you are already on face one or three
[23:09:39] <robin_sz> and at the correct edge of the face also
[23:11:58] <robin_sz> perhaps hijacking the G53,54,55,56 workspace commands for face selection?