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