jepler_ is now known as jepler
I'm doing the random-toolchanger stuff
I think (hope) I have a coherent design
the spindle is pocket zero
oh, this is "remember how the tools are permuted in the carousel"?
and a happy side-effect is remembering which tool is left in the spindle across runs
will you write out the tool file at each change, then?
you'll use that "wtf" column, so no change in format?
yes another happy accident
(does this mean you're going to soon have a machine with a tool carousel?)
some time this week, I bet
well it'll be here - sure won't be working for a while
yep I'm really excited
have a link about it?
I recall you had some page with a similar machine on it..
I'll find a picture
[01:28:47] <cradek> http://www.youtube.com/watch?v=_UXd9df0-RM
ingrid doesn't seem too impressed
but she's worried when I told her you said it would fit with an inch to spare
actually it fits with about -2 inches to spare
we may have to raise the ceiling just a bit
make a skylight, actually
I know you enjoy a challenge
ingrid's forbidden me to get anything I can't carry downstairs
the ceiling is a very minor challenge compared to everything else
so I can't take your old bp
that may be
it would fit in your garage...
I still like to park there in the winter
pretty sure you still could...
and ingrid would blow a gasket when I announced that the garage would have to be heated and cooled
she sure talks you out of a lot of fun stuff
yeah I know
she says I don't need it, I can go play with yours whenever I want
she apparently doesn't feel I need to ask you
that's very interesting
what is this "need" thing?
ingrid's big into "needs"
I think it's a gender thing
that looks very mazak-esque
so you made the leap, eh?
it looks like it will be great
it's a linear rail machine
screws and everything look OK?
I think so - kind of hard to tell since it doesn't work - but it all moves smoothly
indicator on table, push/pull and see if it moves? (backlash check)
can't lock the screws
I could get to X and turn it manually, and it felt perfect
I think usually it's the worst
what kind of servo motors? DC?
what about spindle? DC like the mazak, or AC?
ac, only one gearing, big fancy looking drive
only one ratio? so not a ton of torque at low speed
what is rated spindle HP?
5 hp constant, 7.5 for a half hour
how much power do you have available to feed it?
so you'll get rated HP
I haven't been able to figure out what all is 3ph. I don't have wiring diagrams.
I can keep using my rotary converter if I have to.
[02:34:08] <cradek> http://timeguy.com/cradek-files/emc/pockets.png
this is a good start...
the hal output is a pocket number, not a tool number
also, there's no longer a low limit on valid tool numbers
wouldn't 1 be a valid lower limit?
but hm, two tool 1s
there's no longer an arbitrarily-low upper limit
you can still only have 56 or so pockets
you can name your tool T1237583 if you want
because those bytes are more expensive :)
well it's still a fixed size array
which makes some sense - you only have so much carousel
yeah, though there are "chain-type" changers with a couple hundred tools IIR
you can fix it by enlarging a mumble mumble nml mumble buffer
yep, in mumble.cc/.hh
you can't make it arbitrary-sized easily, because it has to fit in the buffer sized in emc.nml
while I was away my coconspirator found a banjo at a garage sale
needs some repair but it looks basically sound
neat! what is it?
(change CANON_TOOL_MAX in canon.hh)
(it's 56, who knows why..)
"epiphone made in china"
why, that's a 7-byte bitfield lenght, of course!
my python component works fine on emc2 master, but it dies on emc2 2.3.2 with this "custom.hal:10: pin 'serial-relays.0.relay1A' does not exist"
same setup. oops. I changed it from serial-relays.relay1A to serial-relays.0.relay1A to see if that helped, but same error.
is your component loading? check halcmd show?
put a "show pin" before you try to link it. see what pin name (if any) is actually created. Make sure you're using the right "wait" flag with loadusr.
cradek: that will probably make a good starter banjo...
jepler: "wait" flag?
yeah, loadusr -W or -Wn
here's my custom.hal
net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood
net coolant-mist => serial-relays.0.relay1A
net coolant-flood => serial-relays.0.relay1B
ok, the component name is "serial-relays"? Then use loadusr -Wn serial-relays ./serial-relays.py
loadusr -W ./serial-relays.py
no, that only works if the component name is ./serial-relays.py, unless some name processing was added when my back was turned
oh - it probably wasn't :)
(the heuristic you're imaging would probably be a good one, though)
why does it work fine on master without it?
I doubt very much it works 100% of the time on master, or fails 100% of the time on 2.3
halcmd and serial-relays.py are two separate unix processes. if linux happens to run halcmd through the 'net' line before it runs serial-relays through the corresponding .newpin() line, then it doesn't work
if it's the other way around, it does
maybe something's changed about the timing in master to make "success" more frequent, but it's still just luck
hmm, seems to. I tried SWPadnos line and it looks like emc is running in the background or something. how to I kill it all?
just kill the serial-relays process
halrun -U tries to forcibly stop and unload every hal-using thing
should the 'n' after -W be some number?
no, it's the component name
got it! maybe the bit about loading the component should be in the documentation page on making python components
or halcmd help loadusr
it should be in the manual too
(but I don't know for sure)
if I could read, it would be helpful
oops, hadn't looked there. I was looking on the website
you're right though, feel free to add a note to any wiki pages you think need it :)
will do, but that was on the linuxcnc documentation pages.
halcmd won't run here.
RTAPI: ERROR: could not open shared memory (errno=2)
you need to have halcmd loaded
this is on hardy with a standard install
err, you need to have emc loaded
or halcmd can't run (even for help, which is annoying)
I see. I haven't really used halcmd yet...
well, get to it! :)
workin' on it!
ok, I better go tell the fellow I made the component for how to load it properly now...
cradek: what's wrong with the banjo?
hardly anything - broken string, slightly bogus bridge
we'll probably take it to the local tune-up guy who fixed our mandolin
the action seems high so I bet he can shave down the bridge and save it
ah. shouldn't be too bad. if he knows banjos he can get it to sound pretty good.
don't shave the bridge, adjust the neck
the bridge has little chunks out of the top of it
it was twisted 90ish degrees while at least one string was through its notch
probably best off with a new bridge. the neck just bolts on, and can be adjusted one way or another.
would you adjust the bridge position by getting the octave fret to sound like an octave? it seems like it should be easy to get it close?
head tension is critical to a good sound, and even a bad banjo can sound decent with a good setup, but most repair people don't know enough about banjos to do it right.
duh, or measure it
maybe I'll bring it to fest next year :-)
you can measure it to get it real close, then I put a tuner on it and fret at the 12th fret and make sure it is identical to the open note.
ok, sounds easy enough
:) yeah, I can do a setup pretty quickly. I had my banjo in the truck this time...
HAL tuner anyone?
dang, you should have played for us.
didn't think about it.
yay, glad I took tomorrow off. I feel like I've been driving all weekend.
where was the machine?
cradek_ is now known as cradek
in case you didn't see them yet: http://emergent.unpy.net/01248037746
jepler, you and Ingrid probably would have enjoyed the bike tour Sharon and I did this past Saturday
started at an orchard, rode a few miles to Shelburne Farms, had lunch and a coulpe of rours (bakery and cheese making), biked to another farm. then a winery, then back to the orchard
with talks at each of the farms about how they do things
SWPadnos: sounds fun
ugh, I should go to the office :(
oh, and there was food involved, and a wine tasting as well :)
it all sounds fun except for the biking part
only 10 miles over the whole day
jepler: very neat. I don't know how you can get so close :)
macro lens :)
but the bug still has to stay there.. ;)
so I'm thinking of another mesa order for the new mill - at least 5i20/7i33. what other new cool stuff do they have that I've missed?
you got a new mill?
it's not here yet, but yes
when you count the ATC, you might think about a 5i22 instead
the extra connector could come in handy
SWPadnos: I was wondering about that. a lot more expensive though.
2x 5i20 is not much more than 1x 5i22, and you get 6 instead of 4
that is true
the 5i23 isn't much more than the 5i20, and has a larger FPGA ($229 vs. $199). though I don't know what the extra gates would be useful for at this point
if hostmot2 fits, I don't care how much room is left
I wonder how tight it is currently
one day, I think it would be cool to have something like CL In the FPGA
or at least a part of it (logic and some timers)
cradek: unless I get reenergized about the beagleboard project, I have a 7i43 spare
that'd plus a 5i20 gets you 5 connectors of I/O
cool, I'll keep that in mind
I seem to be missing a few 5i20 cards
I wonder where I put them
oh. there are two in that test machine. phew
have spares you want to unload?
I probably don't need them all, considering that I have a 5i22 as well :)
sigh. time to further disassemble the washing machine
cradek: what did you get?
a small vmc with tool changer
[15:04:11] <cradek> http://www.emachinetool.com/usedcnc/catalog/vertical.cfm?ProductID=13201
haha, ignore that price, wow
"machine appears to be in good condition"
very neat - after looking at the mori seikis at stuarts shop - they look really nice.
big ballscrews (1.5"?) and linear rails
8k rpm spindle
used for parts
what kind of servos?
anything major missing?
don't think so. The oiler is busted, control boards missing, a few holes in the table
but basically sound I think/hope
huh, I pushed a new branch to git and didn't get any email or cia
"random_toolchange"? I see it on gitweb..
jepler: i haven't been paying too much attention lately.. what's "the beagleboard project"?
EMC: 03cradek 07random_toolchange * r028dd2b265c5 10/src/emc/ (7 files in 5 dirs): stop being ridiculous and start counting properly from zero
fenn: I had hoped to get workable realtime on the beagleboard, and get emc running with the interface hardware being a 7i43 conversing over spi
just curious, but, why?
fenn: Since rtai isn't ported to OMAP, I did some work based on rt-preempt and kernel threads. This gives some pretty good results on an x86 PC (enough to possibly run servo-thread-only systems) .. but on beagleboard I got 300us latencies in good trials and worse latencies in other trials..
what's interesting to me about beagleboard is its small size and low power consumption; not super useful in a machine tool
fenn: why? well, I thought (wrongly, as it turns out) that in such a simple system it would be possible for me to identify and fix the causes of latency .. easier than in x86 where stuff like SMI, PCI bus mastering, and so on are so variable from one machine to the next
and unlike a lot of embedded systems, OMAP3 has a useful-sounding floating point unit so that wasn't expected to be a problem
anyway, I am glad I learned the kernel threads stuff even if it turned out to have limited applicability
i hope rtai gets ported to OMAP eventually
either I'm not enough of a hacker to do it, or I don't care about it strongly enough
I prefer to think it's the latter
cradek: in random_toolchange, how do you make sure no tool is loaded in the spindle?
you have to load a "tool" from an empty pocket. there is no way to load no tool, since the only operation supported is to exchange two pockets.
in effect, you'll have to keep track of which pocket goes with tool number 0?
you could put tool zero in your tool table, and leave it empty
but that's up to you and not hardcoded anywhere
a machine with 16 carousel positions can happily use 17 tools - there really are 17 pockets.
cradek: thank you.
you will use this, won't you
that would be the easy way... yes.
the harder way would be to use the barcode rings on the tools. (that might be phase 2) ;)
it would be nice to do the random change but also verify the barcode and error if it's wrong
it's pretty easy to get it all confused
anyone have a junk box full of 40 taper tooling they don't need?
I think we only have 50 taper
and I have 30...
I thought that tool 0 was supposed to guarantee that no tool is in the spindle
there is no such operation on a random-toolchange machine
it cannot remove a tool without putting another one in its place
unless it's pulling from an empty pocket
sure, some pockets may be empty
but IMO, it's silly to require you to keep one empty for the sake of a T0 rule
I guess that depends on how that spec might be used, which I surely don't know
the spec doesn't support this kind of machine
I don't know that the interp is the place to put the pocket/tool code actually
yeah I wonder about that too.
that should be in HAL, since it's a hardware specific thing
seems like HAL should only care about pockets - hardware is pockets
I think tool numbers are bookkeeping, not hardware
something has to convert from T# to pocket, and I don't think that's a job for HAL
I think pocket numbers are hardware-specific, so the interp shouldn't care ;)
in theory, the interp should ask for a certain tool number, and HAL/"the rest of the machine" should deliver that tool number
the interp does manipulate the tool table
it has to read it (diameters, lengths) and write it (G10 L1)
whether it has to spin to a certain spot, move to somewhere to pick it out of a pocket, prompt the user, or email mcmaster to buy one
using it to do translations is no more dirty than that
that's true, though the offsets are interp numbers, not HAL numbers
it's sure true that this does nothing for grid tool changers
maybe I haven't thought big enough
that's really a problem because of the motion though
wow. custom cable, only $3/foot
more or less cat5e + USB2 in a single sheath
EMC: 03cradek 07random_toolchange * r410af7ebc429 10/src/emc/ (4 files in 3 dirs): fix AXIS's tool display, tool touch off
huh, every time I type a character in the touch off window, I get a traceback about set_xy_rotation.
I wonder how long that's been broken
EMC: 03cradek 07master * r92893893e598 10/src/emc/usr_intf/axis/scripts/axis.py: fix traceback when typing into the touch off window
EMC: 03cradek 07random_toolchange * rc52ebfcbcc6d 10/src/emc/usr_intf/axis/scripts/axis.py: fix traceback when typing into the touch off window
neat, AXIS comes up with the currently loaded tool showing
hm, now that I really like the idea of the tool table keeping track of what tool's in the spindle, I'm not sure how to handle the non-random (manual?) case
I had it do everything except change and rewrite the tool table, but the pocket-0-is-spindle assumption doesn't work then
I could copy the selected tool into pocket 0, but that's kind of ugly
it strikes me that a human can emulate a random tool changer (number the pockets in the tool holder on the table)
but I don't see much benefit to doing it that way
I put the tools in the table holder in the job's order
I hate when I run out of design before I'm done
including losing track of the loaded tool? that's a neat feature (and there's the M61 evil hack because it was missing)
losing track over a restart?
it's not much trouble to T9M6 or whatever
or do you mean in case I've forgotten which tool that is?
think of the mazak
it's nonrandom, but a pain
why wouldn't you use it as random with your patches?
also, I wonder what problem M61 solved -- something similar I think
I think you're missing the point, let me try to explain
say you have a tool changer that puts back its tools where it got them, like a table grid
if you have a tool loaded and restart emc, you can now not change tools because you can't put yours back where you found it -- you don't know what it is
so you have to do some recovery process
I was thrown off when you mentioned mazak
well considering its ladder logic set, it's currently nonrandom and has this problem
so I think it's valuable to save the spindle tool's data
but the mazak needs that in hal, so saving it in the tool table gives you nothing
(except AXIS shows the right tool info when it starts)
so the two possibilities are "returns to pocket == tool number" and "returns to pocket == new tool's pocket number"?
well, I don't like pocket == tool number because I want to number all the tools in my shop uniquely
drills start at 1000, end mills start at 2000
* cradek inflates a giant balloon
so you'll have to remember the pocket number that the loaded tool came from, except there's no place to store it..
in which case do you mean?
in the case of the table grid
otherwise how do you know what pocket to put T2000 in
when you put it away
the tool table has pocket 1 = tool 2000
I thought if it was loaded it has pocket 0 = tool 2000
well that's the problem
that's why I proposed the bad idea of copying pocket 1's data to pocket 0
that's confusing for the user I bet
there could be another column "currently in spindle"
blah, I want to get out of the office
talk to you later
me too, bbl
hi stustev !
good evening jepler
I was just reading some history from the last couple days
I like the random tool changer :)
big surprise, cradek is working on a feature he needs for himself
ve discovered a secret for how to get a feature into emc)
I was somewhat accused of being diabolical
bbl - must work on car - old but new to me
jepler: you make it sound like a bad thing!