jmkasunich: yes at the moment
what kind of noise issues are you seeing? random edges when you are far from the switch, or extra edges right around the real one?
oh whoops -- I just ran that trace isolation at 200% feed override
jmkasunich: random edges
is the switch NO or NC? (which state is it in when the random edges appear?)
I am using the NC terminal
so it is closed and you still see noise.... interesting
what is the existing circuit? pull up, pull down, cap, etc?
no cap. pull up.
switch is pulling down, right?
how strong is the pullup?
and are you sure you don't have any intermittent connections?
no I'm not that confident of my job soldering the switches
in fact that seems like the most likely cause of the noise to me
well, usually solder joints are pretty good, unless they are visibly hideous
I was envisioning crimped or twisted wires, etc
crappy crimps that is - proper crimps are very reliable
the problem is that immediately behind the solder joints I bent the wires to fit them into the available space
think they might have cracked?
that's my theory
jepler: have you halscoped any other pluto inputs?
(unfortunately, they are all in fact just floating -- there's no option to use in-fpga pull-ups or downs -- so it would be a pretty useless test)
(yes I know that is a bad thing)
would someone please tell month-ago-me to meter the supply voltages for the servo amps before I take the control all apart?
hah that's not funny at all
rayh: I did measure that one - it's +v, -v that I'm trying to find in the book
Where is that used? The logic, the stepper?
the logic, it's on the screw strip with the tach and velocity inputs
+15, -15, +-1
You got it.
hm it's optional...?
(thanks for the book!)
Glad I found it.
oh I see, they supplied a separate bias supply if requested
I don't think I ever saw one of those power supplies.
one of the 9 (!) other transformers is probably it, I can reuse it
There are a pile of transformers in there.
what's funny to me is the big one isn't the servo supply
is the big one making 5V and <large> amps?
I've got a three +5 volt switcher supplies out there 85 amp continuous.
the servo supply for the k&t is about 100 gallons of oil.. ;)
the nice thing about electricity is that when it leaks it doesn't leave a puddle
Do the servo proportioning valves still work on that k&t.
they did when the control finally smoked.. about 2 years ago
there are only 2 - we probably have 4 total
(initially we had 2 complete machines.)
question.. well - now that I think about it - I could just post jeplers release notes on his site... but there shouldn't be an issue posting on cnczone about the tormach config?
what kind of issue?
IMO anything that happens in irc, the mailing lists or cvs is public, unless it's an obvious error like posting a password. It's very much a matter of fact that there's a configuration for the tormach machine in 2.2.6..
oh, I agree if that's the question
whee I now have the switches wired independently, instead of in series
on about the third try I got a usable board ..
now I'd better make good on my promise to be social after getting this working :(
I mean :)
have a good night guys
jepler: I bet you could have wired the circuit up on perfboard in 1/2 the time it took to make a PC board
(if its the simple kind of thing I think you just did)
jmkasunich: I'm sure you're right, but I also want to exercise the machine and software
[02:00:07] <jepler> http://ask.metafilter.com/99131/Drowning-In-Waves
yay, got the servo drives and power supply out
I love the "questionable scientific merit" advice
ok - I think I compiled the gopt.. what is the incarnation?
skunkworks: gopt.py < input.ngc > optimized.ngc
input.ngc has to be a gcode file with special comments (the files generated by gcode.ulp fit into this category) or there will be no effect
gopt.py is very slick
it should print a few lines on the terminal, ending with a line that tells you how many inches of G0 moves you saved
Yes - I have used it before.
it works wonders
jepler: I understand completely
* jmkasunich is making a scraped straightedge - I could have bought one
do you need the < >?
yes you do :0
total inprovements 618? I assume that is mm?
if it's inch gcode, it's inches
look at the rapids before and after - it's very easy to see
[02:19:14] <skunkworks> http://imagebin.org/24197
ah, much better
[02:20:22] <skunkworks> http://imagebin.org/24164
^yes - original
618 inches is 20 extra minutes on my machine
the picture tells the story
I should get gopt into the package repository and blog it again..
do you have a blog entry for this? (showing sytax?)
it only works for closed loops or points (like drills)
skunkworks: http://axis.unpy.net/downloads/01103508580 http://unpy.net/cgi-bin/viewcvs.cgi/tsp/Attic/README?rev=126.96.36.199;content-type=text%2Fplain
hah I wrote that readme when max was much slower than it is now
that really hurt
30 seconds to move from one end of the board to the other...
(it's still slow, of course)
jepler: small world, one of the answers on the 'drowning in waves' page is my brother
heh he listens to feist
I'm logging. I don't understand 'bookmakr', skunkworks_. Try /msg logger_dev help
Just this once .. here's the log: http://www.linuxcnc.org/irc/irc.freenode.net:6667/emcdevel/2008-08-14.txt
good morning skunkworks
Good morning jepler
Are the limit switches sorted out?
now that they are on independent inputs I have to look at the noise issue again -- I will be able to tell if it's occurring on a particular switch.
there's also still no homeswitch on 'Z' (only the tool length sensor) so I'll want to add that at some point
jepler: do you have any filtering on the switches?
mozmck: before, I didn't. Now I have an RC filter but haven't tested again to see whether I get noise
the noise that worries me is not contact noise, it's spurious TRUE inputs when the switch is nowhere near being closed
like communication issues with the pluto?
skunkworks: no, I doubt that's it.
it's sooooo reliable .. communication errors would show up quickly as following errors
just a .1uF cap to ground will often work pretty well.
what is the input level on whatever you are inputting to? 5V?
the input circuit looks about like this: http://emergent.unpy.net/files/sandbox/inputs.png
(first revision had no cap) -- if the wiring to the switch terminals is intermittent, you'd get spurious HIGH/TRUE readings
3.3v pull-up going to 3.3v logic
With the pullup resistor it will be high all the time now won't it?
oh wait, no it won't
no -- I used the NC switch contact so normally the input is grounded
3.3v is much more difficult
far less noise immunity.
it's not correlated with running the spindle or other sources of noise
not even the axis motors?
I guess I didn't test with the drivers off
I'm not sure what a logic high is on a 3.3v system, but I know it's less than 3 volts.
bbl -- thanks for some troubleshooting ideas
the cap may do the trick.
one problem we had once is undershoot, I guess because of inductance on the switch lines.
we cured it by putting a 330 ohm resistor in series with the pin.
seb! sound like the hostmot is coming along :)
nothing like testing to find bugs...
That is about all I am good for ;)
hey seb... how's it going?
* alex_joni has been doing different CNC stuff lately
mostly physical things :D
coding is more fun sometimes ....
i'm looking forward to physical CNC things some day :-)
I've been aligning some robot positioners today
they were too big for transport so they were made from 2 pieces
~ 18m long both of them
aligning the rails on those is no fun
seb_kuzminsky: is it true that encoder index handling isn't in hm2_5i20 yet?
cradek: yes its true
ok, just checking
is it something you'd like to use? i could make it a priority to add it
yes that will keep me from using it on the hnc project
also the hnc could really use a feature I understand is in hm2, but may not be available in our driver: index input masking
i *think* it has that feature but i'm not sure
the hnc has many indexes per screw revolution, and a prox on the screw pulley that you can use to mask all but one per revolution
they call that prox the fine limit switch
there is also a coarse limit switch on the axis motion
it is an unusual setup.
sounds like a very precise setup
won't you have a single index with the resover->encoder converter
I could also AND the two home switches and feed that to motion's home switch input, but I think it would have trouble not overshooting the fine home switch
arg, I meant fine/coarse HOME switch above, not limit
skunkworks_: the resolver turns many times per screw rev
oh - some reason I thought it was attached to the leadscrew.. Must have been the tach
neither is attached directly to the screw. they are both geared up.
motor ---belt--- screw ---very precise gear--- tach and resolver
hopefully withou play
it is very carefully aligned so all three signals (index, both home switches) can happen at the same time. this is how the original control homed.
the home switch is on for only about .005" of travel and the index has to be within that.
err, 'both home switches are on'
the combo switch
it is not a great match for emc because you can be on the wrong side of it and not know.
but it would work nicely enough if I had the masking. I would have to start from the correct side, which would be easy.
how does encoder index masking work? i'm a noob
seb_kuzminsky: I think it's basically an AND of the index signal and another signal that takes place in the fpga before the index pulse handling is done
at least, that's what chris wants
yes I suspect that's it - I can't think of anything else that would be called that
the encounter should be reset to 0 and index-enable to false at the rising edge of index if index-enable and index-mask are true
if the fpga/driver doesn't have it, I could do the same thing in hardware. it is not a big deal really.
hm2 has "reset count on index"
I think I see what has to be done in the hostmot2 emc2 driver, assuming that what's in the hostmot firmware works
there's a bit in the encoder config register called "UseIndexMask", but i'm not sure what it does
seb_kuzminsky: yes -- I have been reading the vhd source code and I think it is going to be pretty easy to make it work with emc
if you want to AND the index with another signal, that signal needs to be available to the encoder module, and all it sees is A, B, and Index afaik
what am i missing?
'indexmask' is another input into the vhdl qcounter entity
I'm not sure what physical pin that gets read from..
in the old firmware it may have been pins 1, 3, 5, 7, 17, 19, 21, 23 on connector P4
but in the hostmot2 .PIN files there is no mention of an index mask pin
cradek: so if you want index mask, the old 5i20 driver may be your better bet
(I wonder how to enable it)
might need to hack the driver
add a new "index-mask" parameter in hal--when it's true you set another bit in the same 5i20 hardware register you set when you turn on index-enable
i just mailed pcw asking about this
I appreciate all your work, seb
cradek: assuming the pinout in the manual is right for old hal_m5i20 it looks easy to add to the driver .. we can test it when you have your machine moving
would we put that in a release? I'd really prefer to use an unmodified version.
if it doesn't belong in the release I would probably just use external hardware to do it.
if it's as easy as I think it is, I'd stick it in 2.2
also adds inverts for index and index mask signals: http://emergent.unpy.net/index.cgi-files/sandbox/5i20-index-mask-and-polarity.patch
neato. it does look simple.
I am happy with the mesa stuff so far. my only complaint is the screw terminals could be better.
oh on the 7i37t?
all three boards I got were "t"
the screws are inaccessible while the screw strip is plugged onto the board
the ones on the ppmc stuff are much, much better
but they stick off the end of the card - hmm
there has to be something better.
oh I didn't realize there was a 7i33t as well
I thought all their servo interfaces had the special amp connector blocks which are worse still
yeah, those are terrible.
there's simply not enough "edge" on the mesa boards to have 50 terminals..
at least not with .200 terminals
but they could use the type with the screw perpendicular to the board, and the wire goes in the side
some of elson's stuff uses .100, since it's all data and never power
then, face them opposite one another
(maybe it's all .100?)
these "t" boards are wire-perpendicular, screw-parallel
so one strip's screws face the other strip about .2" away
uh, I should give them my feedback, not you guys.
hah! looking for the terminal on digikey, I can choose the following for "pitch": 1.37" (3.50mm), 1.38" (3.500mm), 1.40" (3.50mm)
all aboard the failboat
seb_kuzminsky: info should be there by default I think
default rtapi debug level is 3 iirc
it's defined in /etc/emc2/rtapi.conf
jepler: actually neither of those is 3.50mm
I get .1378"
that sould be 1.3779527559055118110236220472441" :)
alex_joni: you fail too!
err.. yeah .***
your units are bogus anyways
here we go again
* alex_joni learned that they will never go again
so we won't go there again :D
alex_joni: yeah, it looks to me like eric's not seeing the info he wants because he didnt load the modules...
I think everyone so far has had trouble reading the documentation and getting the right sequence of load operations
jepler: for hostmot2?
ok, i'll try to fix that...
I sure didn't get it at first, but luckily alex_joni was here to read the docs to me
I think it was alex_joni, maybe it was cradek
I think it was me :)
what docs helped? which ones didnt?
the manpages are quite good
I'm not sure how much there is in the regular manual
I mostly read your emails to the list when I was trying to figure it out
seb_kuzminsky: I'd stick some comments in the README at least
yes I would have liked to see a sample config with some comments
one that works by default with my setup :-)
* alex_joni votes for a sample 4-4 config :)
like the ones in configs/hostmot2? :-P
4 steppers, 4 servos :D
seb_kuzminsky: that's even a really good place to put them :D
I guess those didn't make it into 2.2.6?
yea they did
I only see some hal's there
yes they did. my mistake.
[18:59:07] <alex_joni> http://cvs.linuxcnc.org/cgi-bin/cvsweb.cgi/emc2/configs/hostmot2/?only_with_tag=RELEASE_2_2_6
well that's true
right, just .hal, nothing else
that's not a sample config
a sample config is something you can pick from teh config picker :D
because i dont know the rest of the config system... i dont have a machine or anything yet...
my ui is halcmd ...
seb_kuzminsky: don't take it personal :)
any one of us could make this just as well
i hope to have my machines up and running by spring 2009, if no one adds the rest of the configs by then i will :-)
cradek has a 5i20, jepler has one, I have one, jmk has 2, swpadnos has 2, ...
but you all probably have them working with the m5i20 driver, so there's not much incentive to break working machines
mine is in a box
still in the original packaging
oh ok :-)
and it's a bit hard to plug it into my hardy laptop
and my machine is not working yet...
maybe if you fold it in half it'll fit in that slot on the side
nope. it's one of those half slots
so it'll be folding in 4
and by that time I doubt I can connect anything to Px
so I have incentive to use the newest driver possible so I don't have to mess with it for a long time
I don't use my m5i20 either -- but someday I'll want to try out the hm2/m5i20 step generator and see how it compares to pluto-step
cradek: if I recall when you started working with emc it was the other way around :D
i think the hm2 driver's going to be messy for a little while yet, but thanks for volunteering to alpha-test :-)
seb_kuzminsky: call it beta and he'll do it :D
or maybe gamma
oh yeah, that's what i meant, eric's the alpha
cradek: you also get 24/7 IRC support for FREE
and the frakking steppers didnt step, how embarassing :-(
although 50% of that support is rubbish :D
<cradek> can I ask a question about emc2?
I tried to use EMC and it didn't work. You losers can't expect me to use this if it doesn't even work. I am not a geek like all you abberations.
cradek: you misspelled "approbation" hth
I hope one of you guys understands peter's reply...
<SteveStallings> cradek - Is it safe to assume you have looked around the SourceForge site enough to be aware of the EMC2 development fork?
he's amazingly responsive to emc questions/users
<cradek> so is anyone using emc2? what's the status of it?
<cradek> I looked briefly at the hal and it looks very nice (configurable)
that's from 2004.05.30 ;)
peter's good people
cradek: would you believe it's only 4 years?
I recall AXIS was written for emc1
[19:16:36] <alex_joni> http://axis.unpy.net/01118085817
+ printf("alex_joni was here\n");
that was my debugging skills back then :)
seb_kuzminsky: so .. I don't have a stepper motor hooked up but I can see what position-fb looks like from here
seb_kuzminsky: it doesn't stay stuck at 0, but it doesn't seem right
position-fb changes on a 5i20 with hm2?
(I'm also on a remote machine from it so I can't halscope)
seb_kuzminsky: with your modified stepgen.c that you mentioned on the list
oh ok! whew, i thought i was on crazy pills!
position_fb = counts/position_scale
is that the right way to think of it?
hm, well i'll take a look at it tonite
[19:26:19] <jepler> http://emergent.unpy.net/files/sandbox/hm2-step-scoped.png
what is determining the rate it steps at?
since the input is a step function ..
the other thing I saw was in halcmd, on one occasion the velocity reported was 0 even though it was in "mid-move"
4 s32 OUT -16065 hm2_5i20.0.stepgen.00.counts
4 u32 OUT C13F8A56 hm2_5i20.0.stepgen.00.debug.accumulator
4 float OUT 2.3935 hm2_5i20.0.stepgen.00.debug.error
4 u32 OUT F1B2080C hm2_5i20.0.stepgen.00.debug.rate
4 float IN -4 hm2_5i20.0.stepgen.00.position-cmd
4 float OUT -1.6065 hm2_5i20.0.stepgen.00.position-fb
4 float OUT 0 hm2_5i20.0.stepgen.00.velocity-fb
ehm, the stepgen code is *very* primitive right now and i'm not surprise if it lies and misbehaves
rate = error * position_scale / fperiod
error = position_cmd - position_fb
a trace with velocity-fb: http://emergent.unpy.net/files/sandbox/hm2-step-scoped2.png
anyway bbl ..
it's interesting to look at what pluto-step does with a step input instead of a nice smooth input
(it also doesn't have an acceleration paramter, but relies on the position input to have an acceptable acceleration profile)
[21:53:30] <jepler> http://emergent.unpy.net/index.cgi-files/sandbox/pluto-step-position-step.png
[22:00:46] <jepler> http://emergent.unpy.net/index.cgi-files/sandbox/pluto-step-position-smooth.png
* jepler pushes pluto-step to a 4kHz servo cycle
Period FP Name ( Time, Max-Time )
249753 YES servo-thread ( 276141, 316987 )
not too shabby!
CPU is 2133MHz so that represents about 50% of the time in the servo thread and 50% for everything else
is that bad?
how responsive is it?
oh -- there's no real benefit and it does lower responsiveness of the GUI
but hey I can say I do it
I think it might do a tiny bit better at keeping up speed on flowsnake (lots of short segments and direction changes) at 4kHz than 1kHz
but frankly both are pretty good
does the R word do anything in the G38 cycle?
in the word table it says R is Arc radius or canned cycle plane
the example in the manual is G83 X0.285 Y0.00 Z-0.500 R0.2 L1 Q0.05 which doesn't make sense for a drilling cycle...
and looking at halscope velocity plots I'm not sure there's really a difference! http://emergent.unpy.net/index.cgi-files/sandbox/velocity-flowsnake-1khz.png http://emergent.unpy.net/index.cgi-files/sandbox/velocity-flowsnake-4khz.png
R in canned cycles is the 'retract plane'
BigJohnT: "All canned cycles use X, Y, R, and Z numbers in the NC code." "The R (usually meaning retract) position is along the axis perpendicular to the currently selected plane (Z-axis for XY-plane, X-axis for YZ-plane, Y-axis for XZ-plane)."
[22:44:35] <jepler> http://linuxcnc.org/docs/html/gcode_main.html#sub:G81-to-G89:
use of R- in canned cycles depends on the G98/G99 modal setting
ok thanks looks like the table is a bit confusing
ahh, it is much better explained in G81
be my guest if you want to improve it
.. but you know that
hm -- the xxx_PERIOD inifile settings are only used in the hal files, never by anything else that reads the inifile.
so you can have just a single PERIOD setting with an appropriate loadrt motion line (servo) or two xxx_PERIOD settings (stepper)
+loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]PERIOD servo_period_nsec=[EMCMOT]PERIOD traj_period_nsec=[EMCMOT]PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES
note use of PERIOD three times ^^
EMC: 03jepler 07v2_2_branch * 10emc2/debian/changelog: bump version after release
EMC: 03jepler 07v2_2_branch * 10emc2/VERSION: bump version after release
EMC: 03jepler 07v2_2_branch * 10emc2/src/configure: regenerate