Is there a way for a HAL pin state change to cause a message to be displayed to the operator?
look at hal_manualtoolchange.py
or whatever it's called
I've got some error conditions that I want to cause an abort or at least feed hold, and display a message.
mshaver: if the GUI you're using is AXIS, then rtapi_print_msg with level RTAPI_MSG_ERROR will be shown "like an operator message"
actually, now that I think a bit harder, that's not GUI dependent -- they should all show it like an operator message
[01:43:46] <jepler> http://media.unpythonic.net/emergent-files/sandbox/error.comp
for aborting, you've got various ways, probably including tickling halui and maybe a pin directly on the motion controller
jepler: Has that error.comp been made into a component? I mean, is it in TRUNK so that I can loadrt it?
Now that I think of it, there wouldn't be a way to change the message.
There's no "string" type in HAL...
I guess I could make these custom for my application.
Or, I could put a barn door on the machine ;)
mshaver, it seems like a good way to do it would be to add some functionality to halui, something paralleling how MDI commands are handled
if it's possible for halui to get error messages emitted
mshaver: no, that component's not in emc2; it's far too silly to be
gah, there has to be a better way to drill holes
SWPadnos: I don't *think* that one UI can produce an operator message for another UI
EDM but the cycle time and tool wear sucks.
I wasn't sure if it might be possible to write to an NML error channel
Skullworks: I'm not that bad off ;-)
I have 8 pieces, each gets 4 holes, 0.105 diameter and 1" deep
I'm pecking them, but I have to tend it constantly to keep the chips from turning into a big wad around the drill
I'm feeding at 0.001 per rev, 0.0005 per flute
maybe a little slow?
I'm scared of breaking a bit in those deep holes
(this is aluminum btw)
extruded, probably 6063
brush lube try about .006"
that's why I want to get my flood coolant set up
chip isn't thick enough to break up
I went up to 0.0013 on the last part (3 done now, 5 to go)
I'll try more
doing it by hand you can feel the drill sink right in at the higher pressure - cnc your stuck trusting the numbers
to be honest that was something I used to do when I started in CNc - pre test a drill in a drill press to see how "free" it cut.
I still do that with reams to see how close to nominal they cut in the material I'm using.
did the last one at 0.0025, better
gonna try 0.004 now
thanks for the advice Skullworks - I wound up at 0.005 per rev and increased the peck size
only tending it needed was a little squirt of WD-40 every other peck, to keep the chips flowing
wow - this seems to be doing what it is supposed to.. (leading edge blanking circuit) http://imagebin.ca/view/e6TQ4lb3.html
simple - bottom of the second page.. http://www.edn.com/contents/images/52903di.pdf
jmkasunich: like a lube shot in a plc ( 1 squirt per distance of axis travel ), do one wd40 shot per number of pecks (in hal)
of course the hal to jmk interface may be tricky ;)
Well it might require reformatting the variable tables or loading a second table - but it would be great if someday (EMC4?) we could do programmable coolant offsets also.
what does that mean?
(what's a coolant offset?)
you have 9 axis - all it would take is 2 for an adjustable nozzle..
the coolant nozzle re-aims its point of spray based on the tool offets length or a pre taught position
actual only 1 axis
or really - you only need 1
but - how to store | recall this
I don't know if "current tool length" is available in HAL, but adding it should be easy, and once it's there the math to position a servo should be pretty easy
(yes it is)
well OK then
but pointing at the end of the tool isn't always what you want
that's what you get though, with my method :)
I think there's no way to automate it - just put the "aim" in the gcode (use u/v/w axes like skunkworksemc said)
as long as your tool isn't too wide or anythinh
it wouldn't work for a shell mill, for example
sure, or an M-code for "analog output"
aim always to the surface of the part... with a tool diameter offset.
(if you know what he surface of the part is I guess)
Oh well - I think it is bedtime.
shell mill = extra messy = vapor cloud at 12,000 rpm
toastyde1th is now known as toastydeath
Good morning guys
I have a spec of an issue, I can't seem to convert a pbm to a g3 for faxing. Any ideas? It seems all I am capable of is making jibberish with pbm2g3
it doesnt actually write a g3 file from my pbm file and I just don't know what to do. The manual just doesnt say anything about outputting jibberish
thats a bit off topic for emc. but wth, try converting to a suitable intermediate format? then to g3. or investigate any good output from pbm2g3, or build it from src.
tompadmin is now known as tomp
Yes, it is out of topic but I find the majority of the people in here more hjelpful than other places I have been to.
how is it gibberish? what did you view the output with?
I thought it would output a file for me to end with the fax prgram but I got various letters
I mean, all I want is to make a g3 file then send it
but I cant find anything that will do it
understood, booting a linux box now to 'man pbm2g3'
i found i have pbmtog3 not pbm2g3
same thing Im sure
and man suggests that the cmd fmt is 'pbmtog3 <pbmfilename>'
so, the output may need to be 'put into a file' else it just spills onto the terminal screen
i gotta play a bit...
thats what happens
i have no pbm's. try 'pbm2g3 yourpbmfile > testg3file' then check the new file 'testg3file'
if it works, read up on 'redirection'
redirection captures the output into a file
worked great ty\
alex hello hello
my father will be heading to work right now and when he gets there he will reply with if the fax came through correctly or not
I shouldn't reply before a few cups of coffee.. - random
[15:31:40] <skunkworks_> http://www.cnczone.com/forums/showthread.php?p=564147#post564147
looks like a fairly good answer
looks good to me too
eric_unterhausen: did you see this? http://imagebin.ca/view/e6TQ4lb3.html
I think this is the last addition to the h-bridge.
* skunkworks_ doesn't know when to quit ;)
did you mean to post oscope traces?
you can read about it here http://www.edn.com/contents/images/52903di.pdf
- second page. ignores the gate/drain turn-on spike.
yes - the top trace is the 'blanking'
then I don't have to filter the piss out of the current sense comparator. which is a bad way if doing it imho. but what do I know. (just enough to be dangerous)
[15:45:08] <skunkworks_> http://imagebin.ca/popup/YspeH-r.html
hi, i'm using 2.28 when i load smartprobe.ngc emc gives unknown g code near line 39. i think it's g38.3. googling was no help
the advanced probing gcodes are not in 2.2
I must have mentioned in 2.2 in error but it is not included with 2.2 I don't think
just made a sweet little vertical probe out of a pilot g2 fp pen :)
hey skunkworks_ maybe you should make a webpage documenting your h-bridge so that in a year when you are bored with it and forgot all the details the information won't be gone
heh - I should.
I hope not to get bored.. I have actually had time to work on it the last few months. (more than I have in the last year or more.
once I get the bugs worked out of the 'big' h-bridge - I think I can fit 2 on one board pretty easy for the puma.
48v and a few amps will be easy.
fenn: have you revisited your control project?
i got distracted
* skunkworks_ has that problem/
The garage build in march is going to be a big distraction.
KFC honey - 'contains 11% honey'
how do they do that?
is there a good calender planning program for linux?
skunkworks: what do you use for mosfet drivers in your h-bridge?
cool, I've got one prototype board up n' running here with two irf2301's
seems to work really nicely so far
skunkworks: what specs are you aiming for with your design?
or there abouts.
skunkworks: cool, have you had any problems with reverse interference blowing your irf's?
I am using ir2184 and I also have some samples of the ir21844 <- which has programable dead time. (and separate motor gnd and logic gnd)
skunkworks: yeah, separate grounds could be handy
I have had some driver issues.. but I have a few problems yet. ;)
skunkworks: are you using a oscillator to charge the bootstrap cap when running at 100% PWM, or do you not worry about that case?
skunkworks: what's left for your design?
I run the pwm to 90%
and whatever other issues I run into... ;)
skunkworks: I've got two 7555's to deal with the 100% case, but I'm not convinced I need to...
but they do work as charge pumps quite nicely
skunkworks: is your stuff online anywhere?
* jst_home hasn't put his up yet...
I never woried about 100% dc - the extra circuit wasn't worth just setting the software to 90%
[16:55:55] <skunkworks_> http://www.cnczone.com/forums/showthread.php?t=61437
skunkworks: I'm building a simple servo controller into the board too, one that simply takes step/dir pulses, and listens to the encoder
that sums it up.
eric_unterhausen: there are some mediocre calendar apps for linux. "evolution", the outlook knock-off has a calendar, for instance.
(I haven't used it myself, just happen to know it's there)
jst_home: ah, like http://members.shaw.ca/swstuff/dspic-servo.html
skunkworks: I've got an ATMega88 doing the PID control etc
jepler: yes, much like that, only with a beefier H-bridge
ah - ok. I am making emc do that work :)
(position back to emc)
skunkworks: yeah, makes sense :)
how fast can you accurately read quadrature on the atmega? the dspic that lawrence used has a dedicated encoder counter, greatly simplifying that part of it.
jepler: It's been a while since I did the math on that, but it was way beyond what I needed at the time, which was aiming for a 4000 rpm with 300 cpr
jepler: I'm running the cpu at 20MHz
jepler: most of the code that runs with interrupts disabled runs very fast, so the encoder pins are available for interrupt handling as much as possible
ah, that's about 80kHz
250 AVR cycles @ 20MHz
yeah, I don't think I ever spend anywhere near 250 instructions with interrupts disabled
I need to write this project up on the web as well. Working on a prototype interface board now to plug the PC into which will then talk to the servo controller boards through opto couplers etc
skunkworks: I found that putting a 2200pF high voltage cap across the motor helps significantly with noise
haha, I read that as 2200uF. seemed like very bad advice.
cradek: heh, yeah, that'd be a bit excessive :)
yah - though what works at lower voltages doesn't at higher. :)
skunkworks: doesn't help, or blows the cap?
doesn't work - for me anyways.
the bigest problem I am having is non symetrical current limit. (sounds like I am not the only one)
hmm, I haven't tackled that problem myself yet...
current limiting, that is
krutz on cnc zone mentioned that 'About the switching noise, it is dependent on circuit inductances as well as internal Mosfet capacitances charging and are unavoidable, you could minimize it by a good PCB power and ground layout, but that is the reason professionally made drives use blanking time on the current sense. If you increase the sense current filtering you will avoid its influence on early torque limiting, but your cu
which doesn't seem to fix it 100% http://www.cnczone.com/forums/showpost.php?p=561067&postcount=223
that is why I went the direction of blanking. (also glad I am not alone) ;)
kreutz is the one that designed the HP_uhu drive
[17:22:53] <skunkworks_> http://www.cnczone.com/forums/showpost.php?p=561695&postcount=227
jst_home: are you the Johnny Stenback of mozilla fame?
skunkworks: I don't know about fame, but yes, that's me
If you make it on a wiki - you're famous :)
reminds me of a saying
what brings you to emc?
"He's world famous in Vermont"
skunkworks: used to do a bunch of ee back in the day, then I found software and got stuck for 15 years doing nothing but coding. Now I'm getting back into tinkering with electronics n' stuff again...
skunkworks: picked up a bridgeport clone (randomly stumbled upon one that was so cheap I couldn't not get it), and got the CNC bug
SWPadnos: do you ever do fixed price consulting?
skunkworks: but buying parts and bolting them on seemed too boring, so I decided to see what of ee I still remember
yes, but generally at a higher price (unless it's a very well-defined project)
skunkworks: turned out, not much initially :)
jst_home: same here. - I just wing it a lot...
eric_unterhausen, ie, there's always padding in fixed bids :)
skunkworks: cool :)
my problem is that there are teleconferences every two weeks
what do you talk about if you are done?
"thank you, come again"
skunkworks: what machinery are you working on?
so you've finished all your work, but the rest of the project hasn't noticed?
purely theoretical situation at this point
SWPadnos: Thank you and come again when you can't stay so long.
[17:32:15] <skunkworks_> http://www.electronicsam.com/images/KandT/DSCCurrent.JPG
not sure I can do what the client wants with 100% confidence
that's a place for a T&M bid, or a very inflated fixed price
or send them to someone else
skunkworks: holy shit, what *is* that? :)
send them to SWPadnos
don't think it's his line of business
(if they don't know what they want, send them away. if you know what they want, but you're not sure you can do it, then tell them that)
you break stuff - I can do that too :)
er, destructively test I mean
in this case I'm trying to keep things from breaking
oh. that's harder
duct tape, bailing wire, and crzy glue!
don't forget the bubble gum wrappers
big 3 axis horizontle mill..
well - the table will index in 5 degree increments.
skunkworks: that's one hell of a machine!
jst_home, you need to see his youtube videos
It will be one hell of a machine with emc running it. (but this has been a few years in the making) (I have a real job and this is just a hobby) (one of many)
eric_unterhausen: I do!
skunkworks: I hear ya
skunkworks: And I hear you're building a new garage too? :)
skunkworks: that's one hell of a angle plate you have sitting on there
heh - we have a few other tombstones also.
skunkworks: where's your videos?
dad finally got the over-head crane built also.
nothing too exciting. http://www.youtube.com/user/samcoinc
skunkworks: you know, I've been thinking about one of those myself, but so far I've been able to lift everything I've dealt with, but if I had that setup, I'd sure as hell build one of those right away! :)
some are not mine
SWPadnos: I have question: In what way can be described in ini file flexible toolchanger events path ?
I don't think any system described in the ini file can be sufficiently flexible
I think something like jepler's proposed hal-based motion is needed
he described it on the devel list quite a while ago - you should be able to find it in the archives
cradek: I found it, interesting
cradek: do you know if there's docs on the protocol between a pluto paralell port card and emc anywhere, or should I go read the source?
Or can someone here explain roughly what the communication looks like?
that's firewire isn't it?
er. yes. i mean ieee 1284: http://www.fapo.com/eppmode.htm
there's another layer on top of that, which is specific to pluto
right, that's the one I'm interested in
beyond that i'd say look at FUNCTION(write) in src/hal/drivers/pluto_servo.comp
fenn: ah, ok, thanks for the pointer!
i think jepler is sort of done with the whole pluto thing, it probably won't be updated much in the future
ok, good to know
it's been superseded by the mesa 7i34 which is much better
the Pluto hardware is "hobby quality"
which means you shouldn't get it anywhere near an industrial machine
for $20 extra or so, the 7i34 has 4x or 8x the number of gates, lots more I/O points, and some signal conditioning
good evening.i have control my spindle with two gear canghe with success.i have only another point open on my machine , the tool change
very difficolt but fuction ok my spindle
i use the mux 4 and 2 mux 2 combination with classicladder for correct control
Hi there. I am having problems with the hal joycounts example
if I load hal_joystick, the axis.0 doesn't seem to be available in the same hal script
it is there when I run hal meter
I tried using -W with loadrt
foe example I have this in my hal file:
loadusr hal_joystick -d /dev/input/js0 -p joypad
loadrt joycounts count=3
net velX joypad.axis.0 => joycounts.0.axisvalue
at this point, joypad.axis.0 is not yet available
probin: I think I know how you can work around this
probin: first, let me tell you what I think the solution is; then, if you want me to go into details about it, I will
probin: add after the 'loadusr hal_joystick' line and before trying to link its pins: loadusr -w sleep 3
this will make emc wait 3 seconds, so that hal_joystick will create its pins.
sound good to me
Almost all components do the proper thing, a long as you use "loadusr -W", but hal_joystick is ill-behaved and doesn't work in this way
let me try that
ok, I am trying it now
will get back
Thank You very much
do you want to improve the wiki to mention this? otherwise, I can do it later.
I will try
let me see if I have access
click BasicSteps at the bottom to find out how to get write access
we have to make it a little bit non-obvious because of stupid spammers
Ok, I added a note in the wiki
I added it to the instructions but not the actual doanloadable hal file since I couldnt find a way
the forward kins is working in one quadrant - I haven't tested it in any other quadrants but finally I have some good results - whew :) :) :) :)
but is should be clear to anyone who reads the text following the link
probin: that sounds good enough to me
on to the inverse
stustev: heh .. only 75% left to go, then!
yeah but I now think I may be able to get there
this has been a struggle - but fun and all consuming :)
be careful getting too good at programming in C, or we will start assigning bugs to you
in truth it was not a 'C' problem it was a 'me' problem
C is easy - now maybe good C is not so easy
gdb is the bomb
yes, it sure is
with gdb I can see what I am doing
a lot of programmers never learn to use it - I don't understand it
it sounds like you had a bit of a struggle with gdb, glad it's now working for you instead of against you
how do you get anything done without it?
finally the light went on
well, you don't need it if you write the code correctly in the first place
manipulating gdb/emc2 was the hard part
My first time through NCL is never correct - with C it is not possible to be correct the first time through
I think getting the program intercepted at the right time is the tricky part about using the debugger
the interception was not the problem - restarting was the problem
stustev: great news
alex_joni: hi - thanks
bbl - the inverse kins is calling :)
[Global Notice] Hi all. One of our client (leaf) server sponsors is having network connectivity problems. We've removed the server from the DNS rotation until the issue is resolved. Sorry for the disruption and thanks for using freenode!
good morning.I want realization spindle orientation for tool change. in mazak example the pid is enable only in orientation, but i don't understant the scale degrees because is used.some idea?
I don't think that it's important that position be in degrees. What's important is that you keep track of units and be consistent about them.
if you intend to do rigid tapping, though, you should use spindle units of 1 = 1 revolution in the spindle encoder
thank jepler.The rigid tapping fuction ok, but i want crate the sequenze for tool change and is important orientation spindle
which search the index for encoder + offset for correct position tool
in the mazak example use pid output in input on mux2 for load the velocity orientation
but i dont't understan which search 0 position for tool change
well, it's easy to see that if you give PID an orientation command and a feedback rotation from the spindle, and use that to command the spindle velocity, it'll turn to that angle
it also monkeys with the index-enable so that the spindle position will be close to 0 revs; otherwise, if you ran the spindle for 1 minute at 1000RPM, it would be at about +1000 turns and take a long time to "unwind" back to somewhere in the first turn,
ok jepler i repeat.Noirmaly i rotation the spindle for 5 minut and my position encoder count is 300000 abaut for example.now i search position tol change , abaut 5 grad at index encoder.i wait 5 minut for decreese the counter encoder pos(300000) at 0 position?
no; that's what I was saying about using index-enable
to start spindle orient, set the spindle encoder's index-enable true, and just let pid do its thing. As soon as the spindle crosses the index pulse, its position gets reset to 0 revs, and pid turns it less than one revolution to get to the desired orientation
i set true index-enable whith pid enable the spindle rotation and stop at index encoder?
ok i understand
thanks jepler tomooorw i prove on my maschine
after if you can help me for jogwheel
if the tool change finisch an jog wheel finisch the maschine is complete
and i can study the interpret iso the emc2
after toolchange, I think jogwheel will seem easier
alex in italy are 11,15 pm and i stay on at 5.00 am , i want sleep , good night
good night all