raw material pricing is sure wacky... I can get "finished" goods cheaper then "raw" material :/
raw material is cheaper when you buy it by the ton to feed into screw machines
direct from the mill?
nah, from whoever
small quantities and sizes are hard to deal with for a supplier
in small quantities, i.e. Home Depot -
I can pay about $4 for a 36"x2"x0.125 peice of strapping
or I can pay about $10 for a similiar size peice of hot rolled
guess I'll cut up strapping instead unless the scrap dealers around here can do better
home depot is set up to deal with very small orders.
you'd probably get a steal if you bought a whole roll of .125 hot roll.
they are both small quantities
a whole roll?
like, a six ton roll?
no the straps vs the 36" bar of hot roll
yeah, i was saying if you bought the entire spool of .125" hot rolled
from the mill
you'd probably get a great price
what are you making, by the way
a clone of an import hydraulic press
need it to drop a punch
[01:05:50] <ds2> http://www.harborfreightusa.com/usa/itemdisplay/displayItem.do?itemid=1666&CategoryName=&SubCategoryName=
like that but with more Z clearance (not travel, just clearance)
the entire top part is laminated ~0.125 peices, just need some C channels and I should be set
punching is so much nicer then drilling for sheet stock
no crapped up edges
no spinning blade of death on the drill press from not properly clamping it ;)
Ran across this looking for stepper motors, eyecandy
[01:31:24] <skinnypuppy1334> http://cgi.ebay.com/Bronze-Copper-and-Brass-Cube-Puzzle-Sculptures_W0QQitemZ260156632510QQihZ016QQcategoryZ45208QQssPageNameZWDVWQQrdZ1QQcmdZViewItem
If the parport is set to EPP mode in the BIOS and the LED on the pluto board goes out when the driver loads with no errors, why does the 'pluto.hal' file not make the LED blink?
maybe there's something wrong in pluto.hal?
that though crossed my mind....
you do know the file I am refering to, right?
Also, the pluto.hal uses dashes instead of dots and warns that 'linkpp' is outdated(?) and to use 'net' instead
oh, its a short halfile that just makes the LED on the pluto board fade in and out(product of sine)
sounds like it's outdated
I would think it would error out and not run.
where did it come from?
Guest211 is now known as skunkworks
um, it floats around on the net, I cant remember where I got it from...
do you want me to pastbin it?
jmkasunich_ is now known as jmkasunich
pluto hal file floating around the net.. interesting. where in the net is carmon plutiago. :)
skunkworks, how often do I have to remind you to take your meds? :)
ok, I think this is the link: http://pluto.pastebin.com/m16b5559
That is a version that I had modified to try to get it working...
oh - it was funny. I was laughing.
does halscope on pwm.0.value show the signal?
did you check whether pwm.0 has a scale that needs to be set?
hal is mostly greek to me at this point...
check the man page, or at least use halcmd show and look for obvious stuff that needs to be set
the man page for halcmd?
or halcmd -h
or for pluto_servo
or help at the halcmd: prompt
I'll bet the docs (at least the online ones) also have information on pluto and halcmd
now where's the key for my 0-4mm jacobs chuck...
on the chair
that is cute. :)
incorrect - the right answer is "probably right around here somewhere dammit"
sorry - on the brown chair :)
does anyone know of an LED blink hal-file that should work with the cvs-version of emc? (or am I just asking the wrong question in the right place)
I can blink LEDs ...
in the 5i22
I have not used it in a while - but about a month ago it did.
what are you trying to blink LEDs with? parport? pluto? m5i20?
setp pluto-servo.pwm.0.scale 26 # volts supply
sorry, yeah the pluto...
there is a scale. you're not setting it. discuss.
should default to 1. if it doesn't, whose fault is it?
sorry, I can't run mine right now or I'd figure it out for you
could it be .... SATAN?
thats ok, thanks anyway
wasting our natural race horses!?
she (he) was very funny
did we all forget to take our medication?
oh ... nevermind.
biab - be warned
I had a teacher who used to say that. whenever I said "see you later" he'd say "thanks for the warning"
argh, I keep looking places I've already looked. that's a sign of insanity isn't it?
hmmm. that's the same one who, when I'd say "shit happens" would say "yeah, but you don't have to stand under the elephant"
only if you expect the outcome to change
I have an Idea / ?
hey I found it! it was last place I looked
weird. that *always* happens
not to me - I keep looking for other things after I've found what I need
shoot this down if I'm wrong.
ok, I have located where I got the pluto.hal from...
I was thinking of taking a US Digital E4P and having custom discs made with only 2 slots on the disc
by changing the angle of seperation it would change the effective resolution
skyfox00: I think this is the last one I played with. http://pastebin.ca/701448
Skullworks-PGAB, was that the whole idea?
os you could rig up a circuit to read A/B as an index for precision homing of steppers (if the encoder is mounted on the screw not the motor)
oh, btw, I was looking in the 5i2* drivers the other day and it looked like the 5i22 stuff was commented out.... so what is the current status of the 5i20/5i22?
Skullworks-PGAB, I'd just get one of their wheels with the index and be done with it
thanks skunkworks, I'll save it and when I get my thumb-drive in here I'll stick it on and try it...
The E4P encoder alnoe is cheaper than adding the index option to a encoder
skyfox00, 5i20 works with the Mesa HOSTMOT4 configuration (4xPWM+encoder inputs, 32 digital inputs, 16 digital outputs)
skyfox00: that .hal file runs the LED on my system (dapper / TRUNK)
this is to supply index only info - used only for homing
I ran it with: halrun -I -f skyfox.hal
the 512x (supporting the 5i20 and 5i22) with the reconfigurability options is still a work in progress
Skullworks-PGAB, then only hook up the index channel ...
I'm sure it's less expensive to pay the extra $10 to USDigitl to get an encoder with index than it is to get a custom disk made
jepler: did it give warnings about anything?
m16b5559.txt:37: Warning: linkpp command is deprecated, use 'net'
yes - but for an open loop stepper system why pay $54 for an encoder if your not going to use the quad when a $19 unit can do the same task - for homing only.
SWPadnos: (screen -> start_x_app)
ok, yeah, thats what it tells me...
Skullworks-PGAB: why not use the encoders for postion feedback? seems to work so far :)
I'm talking about using it for someone running a Xylotec or other simple stepper system
well, the computers BIOS says it can do and is currently set to EPP mode, but maybe it can't.
skyfox00: at least try epp_wide=0 on the loadrt pluto_servo line
also, after an emc crash/bail, why does /dev/tty vanish?
just to provide a fine repeatable home index
jepler: will give it a try....
You guys using any last second bid placers for ebay? I'm watching several motors that all end at the same time.
skyfox00: because the runscript removes $DEBUG_FILE and $PRINT_FILE which is set to /dev/tty depending on the flags you run emc with
oh, that would do it...
skyfox00: the emc script is designed to be run as a user, where "rm -f /dev/tty" does nothing, harmlessly.
skinnypuppy: snip (maybe thats old technology now ) www.snip.pl
* Skullworks-PGAB is not buying - but notes it is often cheaper to buy Kelinc motors via ebay than from his websight - better shipping prices
jepler: and because I run it as root.... by-by /dev/tty
skyfox00: don't do that!
These are from seller cncinmotion. How are the quality of the kelinc stepper motors?
some of the best
Skullworks-PGAB, you don't need an encoder reading module to get an index pulse. All you need is an opto-interrupter and a disc with an opaque spot on it
like one of these, for $0.87: http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=CNA1303K-ND
right - but to make that pulse active width very narrow
Good to know, if I don't score some pacsci motors on fleebay by this thursday i'll prob order from kelling
it doesn't need to be particularly narrow -- a repeatable rise position is most important
cradek: I have to use 'insmod' and 'rmmod' directly in /etc/init.d/realtime because the
emc_module_helper cant find the modules...
you can use a disc with a slot in it, and have a comparator externally, so it only trips at a certain brightness
SWP - something like that is what I would use for a spindle tach
well, hm, the situation is going to be a bit different because there's no "index-enable" pin in this stepper + index pulse setup
true - you need to have an index input to the thing counting, and stepgen don't got one
but in any proper system, the index pulse is edge triggered, so the width doesn't matter as long as it's "wide" enough to be seen
tomp, thaks for the snip.pl link
ok, I'm going to go try epp_wide=0, bbl
* skyfox00 is back
* skyfox00 is away: bbl
OR IS HE
What's a good agp video card for emc? I've got nvidia in both boxes....and run time message on both but didn't worry since I've only been doing sim
Matrox G400 or G450
Trident 8700 8 bit ISA
no, that's not good
actually the 7-bit cards work better because they leave at least one bit free for emc at all times
also, 128 colors is enough for anyone
Hercules for sure
it has a parallel port too
2 colors... amber ofr green
I'll check those out, while I'm at it, preference b/t asus abit and gigabit brand mb?
SWPadnos: good point
SWPadnos: I still hav a working one too
but how can you tell?
no, I mean the monitor
skinnypuppy: I hate to say it but it always feels like a crapshoot buying a new PC for emc...
I don't think there
SWPadnos: POS display
skinnypuppy: recently I've had good luck with two AMD machines, both abit motherboards I think
I don't think there's a known difference between motherboard manufacturers as far as realtime performance
SWPadnos: 12" CRT's RULE!!!
I shall chew on this further as I give the new employees SHIT = ( Super High Intensity Training ) - I've trained 3 noobs in 2 days.
hehe hear ya there jepler, kind of been that way for linux a little, but better than crawlin with the windows buggggssss
if you get intel, you'll probably have to deal with smi which is just one more hassle..
Skullworks-PGAB: If anyone is gonna give em shit it be you, you're so full of it
everyone cross your fingers for my #0 center drill
good luck, #0 center drill
* Skullworks-PGAB squits some black oil...
"We'll miss you!"
Jymmm: haha no kidding
don't do anything I wouldn't do
System Management Interface
SWPadnos: drilling has nothing todo with food
damn. now I'm hungry
skinnypuppy: SMI is a way for software in the BIOS to unexpectedly execute code when the OS (even 32-bit protected-mode OS like linux) didn't expect it
surface speed * 4 / diameter = INFINITY!?
set surface speed = 0
then might an amd box be better for emc?
skinnypuppy: both amd and intel support it in their CPUs, but only intel's chipsets seem to use it at the moment
SWPadnos: and me trying to avoid starches
well, you don't have to eat the potatoes
skinnypuppy: in the case of several common intel chipsets there is a hack (rtai_smi.ko) to disable smi
you can just stare at them
skinnypuppy: so I wouldn't say that intel is an absolute no (since there's rtai_smi.ko) and since the amd cpus support SMI there's no reason to believe their BIOSes won't start using it at some point
skinnypuppy, I think jepler had it right the first time - it's more or less a crap shoot
SWPadnos: Can't really eat anything fast food.... buns, tacos, chips, fries, tortillas, bread, etc
(intel apparently uses it for stuff like thermal management)
Jymmm, that's probably best anyway
SWPadnos: Yeah, but wehn you work till wee houtrs of the morning it's hard to find anything
I guess on the otherhand the amd 2.4 I have may be less crapshoot with a new vid card
"I had one Intel motherboard that worked pretty well most of the time, but every 64 seconds it had a very bad 300uS latency. Fortunately that was fixable, see FixingDapperSMIIssues" -- http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?TweakingSoftwareStepGeneration
linking to http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?FixingDapperSMIIssues
Intel got a plane load of cash out of Boeing for the pIII cpu & PIIX4E chipset - for real time fly by wire uses
Jepler, I'm bookmarking those. thanks
hmmm. Intel has a page up where they're taking suggestions for future processor enhancements
wikipedia explanation of SMI: http://en.wikipedia.org/wiki/System_Management_Mode
I was thinking of asking for some internal timer interrupt mechanism, and maybe a second set of registers for interrupt context or something
didn't Z80 or some other early 8-bit have quick swap to an alternate set of registers?
yep, I think it was Z80
the problem with extra sets is that they only allow one level of interrupts
and there are CPUs that have sliding windows into large register files (like SPARC, I think)
they only allow one "fast" interrupt - but it would be nice if you could assign that one to something
given that CPUs now have many K of full speed memory on chip (cache), having dozens of "register sets" would be easy
they're just blocks of cache ram
and small blocks at that
the idea I had was to make a TSC-like register that the microcode scheduler knows about, and it can use code like hyperthreading to just execute the interrupt code periodically
in fact, if you used cache for them, you could have the most deeply nexted sets automatically flushed out to main memory, if you nest deep enough that you have to loop around
it knows that a 50-cycle pipeline needs to start getting populated with the interrupt code (locked in L1 cache) 50 cycles before the timeout (which is internal to the CPU)
apparently Z80 had EX AF,AF' and EXX which exchanges BC, DE, and HL with their counterparts
I don't see an instruction that swaps them all, and it doesn't seem to swap PC
swapping PC doesn't make any sense
PC can't be swapped
well, it can in a way
call "swaps" it's old value to the stack
my memory had made it into essentially a "task swap" operation
and ret swaps it back
whee, 150 holes with one #0 center drill, I could never do that without cnc
hmph, units can't convert drill gauge to length
maybe it's a #00, I'm not sure
looks small to me
you mean like #7 drill = 0.201" diameter?
smaller drill numbers are smaller diameter?
jepler: funny isn't it
no, larger numbers are smaller dia, like wire gages
jmkasunich: not on center drills
they have their own numbering scheme (of course)
I thought he was talking about ordinary number drills
there aren't that many center drill sizes
oh yeah I'm drilling with #49 :-)
it's about the same size as #0, maybe a bit bigger
#0 center drill you mean?
so a #0 center drill is about the same size as a #49 drill?
more or less
#49 is the same as the little tip part of #0 center drill?
what wire and screw gauges are about the same size?
screw numbers are the other way
maybe 12 gauge wire
[02:55:33] <jepler> http://i-logic.com/utilities/CenterDrills.htm
those actually have a formula
screw number * 0.013" + 0.060"
what's a #00 screw?
wiregauge has a formula too, but it's 92^((36+(-g))/39) according to this program...
a #00 screw would be about 1.19in if it existed and if units is right when it applies its formula to g00
SWPadnos: dunno about those screws, but its a safe bet they're smaller than a #0000 wire
do you start subtracting the 0.013?
jepler: no, it would be tiny
#0000 are used in watches and things
jmkasunich: very true
they're very small
#0000 wire is about as thick as a finger
someone was asking on CCED about turning them
units 'screwgauge(g0000)' 'mm'
that sounds reasonable
and jmkasunich is right about the gauge formula, he gave the same one as units has
now the only problem with that formula is that a #000000 screw has a negative diameter
so it does subtract?
like all formulas it only applies over a certain range
I'm sure when you get into the smaller sizes they want steps that are less than 0.013"
What would I be looking for in dmesg regarding a realtime error? I'm reading it now
* skyfox00 is back
skinnypuppy: if you get this popup that says this: Unexpected realtime delay: check dmesg for details.
then dmesg will tell you "In recent history there were [several numbers] elapsed between time to the motion controller. This time there were [number] which is so anomalously large that it probably signifies a problem..."
Jepler, I'll keep an eye on that while reading, thanks!
ok, epp_wide=0 has no effect.. I now have 2 hal files that are saposed to make the LED blink and nither works... when I do 'modprobe parport_pc' it says the parport is 'PCSPP,TRISTATE,EPP' for whatever its worth...
skinnypuppy: these numbers need to be essentially the same all the time .. otherwise, emc is not issuing step pulses or otherwise controlling the speed of the motors at a stable rate
ive seen that message before
skinnypuppy: on a stepper system this means stalls; on a servo system this means following errors
skyfox00: you do not want to do modprobe parport_pc
skyfox00: last time we went through this, we discovered that loading parport_pc made the port unusable by pluto_servo until reboot
parport_pc is a normal linux parport driver and it will interfere with realtime drivers
I figured as much, kind of left the pc end as my last concern
I loaded the parport_pc just to see what it said I had, when(via halrun -I) I loadrt probe_parport, nothing shows up in dmesg...
skyfox00: but iirc you did ultimately get the led to blink on another system of yours, so that leaves me assuming there's something wrong with your compile of kernel, rtai, emc2, or some incompatability with your hardware
i.e., it's not narrowed down by much
also, when I do halrun -I pluto.hal, the LED goes out... when I quit halrun, the LED comes back on...
I didn't see anything in dmesg about elapsed time, looks like it's all hardware/bios related
[03:13:11] <Skullworks-PGAB> http://wubi-installer.org/faq.php
vapt to emc, kral's book on apt, xmpl 1 http://imagebin.ca/view/EE6Mf47.html
the cad view of it http://imagebin.ca/view/7_qq634.html
tomp2, how does it know to offset into the inside of C4?
is that in text that's not visible in the screenshot?
swp going counterclockwise around c2, then "gofwd lx / tanto c4" means go along x-axis until you're tangent to c4, which in that case only happens when you're inside of c4
er. first happens when you're inside c4
I have managed ro compile emc & axis on a RH8. As this was complex, I think it is worth putting instructions in the wiki. How can I do that?
why are you using rh8?
here is how to edit the wiki http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?BasicSteps
No special reason, except it is a trusted okd box that works OK for 7 years now.
maybe you could tack it to the bottom of http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?RedhatInstall
mgouget: make a new page Redhat8Install, and put some instructions like these there: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?RtaiInstall
[09:41:35] <alex_joni> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Redhat8Install
Thanks fenn. I compiled everything by hand, including GTK. So I have a list of versions for libraries that fit together.
Alex: I only compiled the simulator.
that's the easy part
mgouget: the simulator should be fairly easy
but it would be great if you could set up some rpm's
I hate rpms :)
that seems odd
you stick with rh8 and you hate rpm's
what kernel is on the rh8?
rpm's arent too bad if you use yum
I am from the old school, configure, make...
The kernel is based on the 2.4.18 with selected bits from the 2.4.19 and the -ac patchset.
mgouget: I agree with that, but if there are already packages.. why bother?
you could switch to gentoo, and compile everything
or to LFS
i guess sourcemage is the 'new gentoo'
alex: absolutely agree, but I have so many things on that box that upgrading it tu ubuntu would be a mess.
mgouget: your choice :)
just remember backups
Source Mage's tagline is "Linux so advanced, it may as well be magic", and its commands have a "sorcerous theme". Each package is called a "spell", and its package management program is called "sorcery". To install a package the user must "cast" that spell.
my physical mill runs on 6.10 lts.
Alex: I have created a name (mgouget) and password in the preferences of the wiki, but still can't edit the sandbox page (This page is read-only). Is there something else to do?
OK. As usual, RTFM :)
and if that doesn't work.. stfw :D
Yes, it is my friend...
mgouget: where are you from??
Alex: Paris, france.
cool, I was there 2 weeks ago :)
yeah, 2 weeks in france
[10:16:17] <alex_joni> http://juve.ro/
The town is a mess now, with the mayor trying to remove car circulation, but the net resuld is traffic jams and more pollution
I parked at versailles, and took an s-train
That was the right thing to do
didn't spend much in paris though (only one day), maybe next time I'll have a closer look
Ok, send me a message when you expect to come!
is it true that you can only work 35 hours per week in france?
Regulations here are completely idiotic, with everything upside down. I runned a (software) company for 15 years and (successfully) sold it. I am now an independant consultant, and try to forget all the administrative mess. You left communism some years ago. We are still in it :(
fenn: we have 40 hours / week
mgouget: climbing the eiffel tower was really cool
(well, besides the enourmous mass of people, and the long waiting lines)
take the stairs :)
they don't go up to the top :P
I wanted to.. but it's only up to the second platform
No, but there is a restaurant at first floor
quite cheap too
BTW, what is the name of the software powering the wiki?
if you are considering setting up a wiki somewhere, i recommend dokuwiki
but there are many good wiki engines (usemod is not one of them)
No, I am learning its syntax.
SWPadnos: maybe this helps to understand the 'driving' instructions' http://imagebin.org/10477.
The tool was told to stay right of the path, and the circles just become 'poles' that the tool swings around.
The lines just become highway centerlines that we drive left or right of.
what line says 'stay right of the path'?
all cutter comp and path tolerancing is already in the path.
good thing they used those 5 character words or we'd be screwed
the post can put out G2,G3 and G43 etc but i wanted straight lines.
tom do you think it would be worthwhile to try and make a point and click interface for APT?
along the lines of qcad
but it would generate apt code in a window alongside as you clicked
notice the contstruction element on tool bar, all python, all very apt-like already
yes i've been playing with that
its much better than pythoncad
still pretty buggy though, and interface needs work
the clicky mousey stuff is just the work around for 'past', 'tanto' etc
i'm imagining something where it draws the path in a different color based on where the mouse is, trying to guess what (simple) command you might want
then when you click, it solidifies
like the way qcad does offsets
hmm, predictive.. dunno, i was thinking an interim click on 'past' 'tanto', or right click modifiers ( fenn touting qcad!!! come on who is this ? )
hmm, it seems you have to tell qcad 'line' or 'circle'
qcad's interface is not bad actually
but apt can work in 3 dimensions
as we fall into the huge tablet overlays of early ACad, trying to make descriptive geometry simpler by being more complex ( or more terse, like APT :)
i'm not sure what you mean - multiple button sequences?
yes likely mux btns, each modifiers has to be specified, and the number of modifiers is quite laid out in the math describing the element ( the list of a,b,c's in any geo equation has to be spec'd )
or more like multiple menu selections
could you give me an example? (i havent really studied apt)
describe a line: 1) offer severl solutions, ( 2 points, point&angle, y=mx+b...) 2) list solution unfulfilled 3) wait for each spec to be fullfilled (4) goto3 till you puke
oh i just meant for the 'driving instructions'
a lot of the lines in your example are tangent to a circle, that seeme easy enough to do with a gui
hm, a gui way to do driving instructions ( in US or Australia :)? well what you ask for is not done yet, so I'm a long way from describing it ;) but i imagine it'd be like automobile driving instructions ( witha bit-o airplane )
you dive onto a plane, follow visibile landmarks, staying inside or outside of walls, you change directions at checkpoints. APT has 3 planes for each move, the one you're cutting on, the one limiting the motion, the one signifying the end of the motion. ususally these are not foremost in the users mind, but always exist.
s/the one limiting the motion/the one guiding the motion
so click on plane 1, then click on plane 2, then click on plane 3
of course you'd have to clip them somewhat so you could see what you're doing
is there a way to _not_ end the motion? so i can see where it goes without specifying an endpoint?
i'll try to find some visual of the 3 planes.
i get the general idea
no, the cad is infinit, the driving is finit
gotta drive me to work... gofwd drvway... :)
[12:01:24] <alex_joni> http://blogcritics.org/archives/2006/01/13/213613.php
WTF is a "registry" anyway?
Ok, the wiki page is here: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Redhat8Install
Just this once .. here's the log: http://www.linuxcnc.org/irc/irc.freenode.net:6667/emc/2007-09-18.txt
* fenn pats his trusty apt-get
thank debian i dont have to do that crap anymore
alex_joni: if you ever have any more ideas on the adaptive feed let me know
* skunkworks_ wonders if the FO bar moves while adaptive feedrate is active..
that would be cool
uh, no it would not
couldnt we use remote desktop when we test so you could watch the hal meter?
why not fenn?
because it's making an input act like an output
that makes sense
and it confuses the meaning of 'feed override' which doesnt really mean the same thing as 'adaptive feed'
feed override is a manual intervention, whereas adaptive feed is part of the program
have a display for adaptive feed,maybe a pyvcp readout
also, adaptive feed " is multiplicative with the NML-level feed override value and motion.feed-hold."
meaning you can do both at the same time
yes it would be very easy to make a pyvcp display for adaptive feed
my usc and gecko servo interface is supposed to be here today
what are you doing with those?
for the retrofit im doing on an old hurco
it should be a good setup
some assembly required,lol
could be worse
always,this is my 5th build,first for emc
how do you get into that business anyway?
i did my mill,then somebody came to see it,did theirs,phone rang couple months later for another,and another,then this 1
just started doing them,never advertised
have turned down several
didnt think they would pay,no need to do it for free
I'm curious why you picked usc+gecko instead of ppmc+pwm servo amps
geckos were already ordered,was gonna be yet another mach setup,then i got emc going and felt it would be a much safer setup for a trade school machine
open vs closed loop
too bad you couldn't do a full analog servo setup on it
i just feel emc is superior to mach
woulda been nice,but i think this will be a good setup
maybe the next one
may be doing a full analog very soon,have a guy that wants me to do a big boring mill with a 4th axis
should be a good 1
was thinking bout the 5120 and 7133 for that job
03fenn 07TRUNK * 10emc2/docs/src/index.tmpl: add html anchors
i guess i should merge that back into the various branches to make the website work...
fenn: I'm not sure what benefit adding those anchors has .. can you tell me what I'm missing?
at this point I don't think there's much benefit to changing the 2.1 branch documentation, and that's the only branch worth mentioning
by the way I manually pushed an update of the docs/devel/ on to the linuxcnc website, not sure if that had happened yet or not
i'm trying to add links to both pdf and html on the joomla "documentation" page
so i can say, for example - hal documentation (pdf) (html)
and then you click on html and it would go to the HAL section of docs/html/index.html
maybe i got carried away with the anchors but a few extra cant hurt
it makes sense now
looks like the hal manual is duplicated in the integrator's manual
since hal is (in theory at any rate) useful as a basis for other realtime software, there's a separate hal-only manual built
it's not useful for most users of emc
Guest248 is now known as skunkworks__
This documentation refers to emc2 pre-2.1.8 <- where does this version number come from?
that's the 'version' of the branch after the 2.1.7 release
(if you compile it, that's what it says it is until the next release)
if i check out RELEASE_2_1_7 and commit something, will it modify the linuxcnc.org/docs/html pages?
I think you cannot check out a version tag and then commit
you have to commit on a branch tag
the branch tag you want is v2_1_branch
we could debate whether the website "2.1" docs should be built from the tip of v2_1_branch or the last release tag .. usually doc improvements will apply to the last released version as well
so I chose to use the tip of v2_1_branch
while looking for something else... http://www.irbcam.com/IRBCAMTraining.pdf
a 6dof robot on a linear tack used as a mill, cutting wkpc between 2 centers ( another rotary axis )
sounds like a bad idea
i bet it cuts some styrofoam
argh this is NOT the pdf, it is about the pdf 'A VRML-Java-based approach to teaching APT programming' http://journals.mup.man.ac.uk/cgi-bin/pdfdisp//MUPpdf/IJMEE/V29I4/290345.pdf
triple yuck - you need a subscription to view the pdf
i'll look at the uni in hk
fenn: got the description of the control surfaces.. check page 37 of this zip'd pdf http://www.cncfocus.com/download/paguide.zip
"control surface" makes me think of liquid haptics or something
tomp: only planes may be used as the part surface? does that apply to apt360?
fenn: yes, but a plane can be a curved surface or the xy plane or a plane 30 to X yet contains the y axis .... a plane is not only a cartesian coord-pair
the drive plane and check plane are limited to the side profile of the cutter, and wether its done 2d 2.5d 3d or 'multi axis' ( good enuf for nutating heads )
i >>think<< the drive & check are limited to... apt is like emc, continually learning & shedding old perceptions
[17:45:44] <alex_joni> http://youtube.com/watch?v=OoBVdcadDxk
Skinny puppy not hungry any more
that's a friend of mine singing :P
alex_joni: what is the history?
of your friend. Is she a pop singer over there? or was a one time thing?
actually she's in germany
she started singing about 10 years ago iirc
I suppose I could look her up :)
we're good friends with her parents
they come pretty often to .ro, where they have a vacation house
03cradek 07TRUNK * 10emc2/configs/halui_halvcp/ (halui.vcp halvcp.hal): fix up the halui mdi stuff, and provide an example that can exercise it
03cradek 07TRUNK * 10emc2/src/emc/usr_intf/halui.cc: fix up the halui mdi stuff, and provide an example that can exercise it
skunkworks__ is now known as skunkworks_
what causes a module to fail to load with an error about unknown symbols?
wrong headers used for compiling
all the same things that can cause unknown symbols at the link time or runtime of userspace programs: the module requires a symbol which is not provided by the kernel or by another already-loaded module
or a dependency missing
source code bug (e.g., pritnf instead of printf)
in the module? :P
when I compile emc it gives a bunch of warnings about several symbols being exported twice and then later gives warnings about missing/unknown symbols(cant remember which) and then the hal_parport.ko module wont load...l
skyfox00: it would be helpfull if you knew ..
I mean, if you could copy/paste the error somewhere
ok, I'll go put some dmesg/errors/etc on my thumb drive... brb
some kernel/rtai combinations give compile time warnings about undefined or multiply-defined symbols that are simply wrong. It's the dmesg at insert-time that matters.
for instance, every kinematics module defines functions with the same name. The linux "kbuild" system thinks this probably indicates an error, but really it's exactly what we intended
also on these systems it reports that all functions provided by rtai are undefined (since they're not defined in the emc source tree nor the kernel source tree) but in the context of emc we know they are defined by modules that come from a third source tree (rtai)
03alex_joni 07TRUNK * 10emc2/src/emc/task/iotaskintf.cc:
fix lube problem (not always getting switched off in estop or estop reset) by
changing the method of sending tool_abort. As spindle is in motion nowadays,
it's not as critical to get the tool_abort to the iocontroller (it can wait for
previous commands to finish: sendCommand instead of forceCommand).
(the "duplicated symbol" check seems to be in kernels 2.6.17 and above: http://lwn.net/Articles/176439/;
the unknown symbol check is in kernels at least as old as 2.6.12)
jepler: maybe we can use '--warn-dup-exports'
or something like that :)
alex_joni: beats me, but PGA
Peak Ground Acceleration
Pure Grain Alcohol
patches gratefully accepted
Polyglycolic Acid sounds better :P
or "please go ahead" :P
hmmm, pastebin.com is down...
[19:53:32] <skyfox00> http://pastebin.ca/702316
hal_parport: Unknown symbol __fixunsdfdi
looks like someone sneezed on the keyboard
skyfox00: did you modify hal_parport.c from the distributed version?
it seems gcc, glibc, libgcc related
no, it is 'as is' from cvs.
skyfox00: can you tell us what gcc version?
gcc version 3.4.6
google implies that __fixunsdfdi may be the function that is used internally by gcc to convert from 'double' to 'unsigned long long'
kernel 2.6.17 patched with rtai-3.5
that seems unlikely since there is no use of floating-point math in hal_parport
oh actually there is
ns2tsc_factor = (unsigned long long)(1e6 * (1ll<<32) / cpu_khz);
is that kosher?!!!
Runtime Function: unsigned long __fixunsdfdi (double a)
These functions convert a to an unsigned long, rounding toward zero. Negative values all become zero.
anyone know the command I could you for my mesa 7i37 to send an analogue 10v to change vfd speed? I will use pin 47 (dac-02-enable output)
skyfox00: can you paste the snip around the compile of hal_parport?
um, what is the command to make just the hal_parport module compile?
takes to long on a 350Mhz...
it appears that gcc 4.0.2 on ubuntu inlines the convesion from double to unsigned long long rather than calling an external function to do it
I have the same version on the fast computer right next to me, so, compilling now...(the 350Mhz is in a different boulding with no network...)
jepler: is this only in TRUNK?
because breezy uses 3.4 too
and I never heard about this before
what brand/model lubers are being used? they must be electromechanical to be hal controlled, and should be significantly cheaper than the ones that have thier own timers.
alex_joni: yes it's because of the "reset" feature of hal_parport
still.. TRUNK gets compiled on breezy (on the farm) without issues
alex_joni: this doesn't show up until insmod time
oh, maybe jmk didn't run it in a while ;)
I have a 5.10 machine here, let me see what actually happens
[20:07:38] <skyfox00> http://pastebin.ca/702316
on line 66: its the only error concerning hal_porport I can find...
you may wish to consider reverting to hal_parport.c rev 1.29 which doesn't have the line which I think is the problem
"cvs -H up" to see how to do this
heh: #ifdef notdef
alex_joni: it looks like ubuntu "breezy" inlines the conversion as well, no call to __fixunsdfdi in 'nm hal_parport.o'
[20:10:42] <alex_joni> http://mail-index.netbsd.org/netbsd-bugs/1998/10/18/0002.html
here's the function if someone wants to link it with hal_parport :)
it doesn't work with negative numbers
hmmm, does this mean I found a bug, or does it mean I have a bad version of gcc/libc etc?
probably a combination of both :)
you found a bug in gcc :D
so is the solution to make an emc2 work-around or just not compile on this version of gcc?
did someone mean to write 1000000 instead of 1e6?
my recollection -- let me see if I can find the IRC log -- is that on ubuntu 6.06 a division of "long long / long long" resulted in an undefined reference at insmod time, but "double / long long" didn't
and that's the formulation that I checked in
<jepler> [25290.862926] hal_parport: Unknown symbol __divdi3
[20:19:41] <jepler> http://linuxcnc.org/irc/irc.freenode.net:6667/emcdevel/2007-08-26.txt
* alex_joni is asking in #gcc
they'll say something about linking libgcc
23:11 < daney> Right, floating point is not allowed in the kernel. Perhaps it
is best to change it back and address the original problme.
I didnt know you could link libgcc to a kernel module(I may be mistaken/dont know what I'm talking about...)
[20:22:18] <jepler> http://ussg.iu.edu/hypermail/linux/kernel/9902.2/0589.html
do we all need to go over to #gcc and rumble?
skunkworks_: yeah we can take 'em in a fight
so there needs to be a soft-float set of functions writen?
23:13 < MichaelMeissner> Well, you typically would have to provide __divdi3 if
you are going to do long long arithmetic. I think you
may need to step back and figure out if there are any
other modules that do something similar, and copy what
they are doing.
doing it in assembly would make it fast ;)
skyfox00: the answer is that you should be doing whatever you find expedient. Reverting to rev1.29 is one good bet if you don't need the feature in rev1.30 (doubled step rate)
oh, I was just trying to use the parport/stepper config to test the parport... I'm just hacking at this point trying to decide if I can make it work...
then revert to hal_parport.c rev 1.29
or wait for it to get fixed ;)
they suggest wrapping divdi3 into div64_32
I currently dont even have a stepper machine...
jepler: there seems to be a do_div() function
[20:26:41] <alex_joni> http://lkml.org/lkml/2007/2/27/241
alex_joni: yes but if I understand that very terse language correctly, it does a division of a 64-bit quantity by a 32-bit quantity .. not sure whether it gives 32- or 64-bit result
in this case I think both the numerator and denominator can be bigger than 32 bits
rtai seems to solve this by offering a family of arithmetic functions like rtai_ulldiv
can those be used from within the emc modules?
jepler: there is talk about a div64_64
skyfox00: are you talking about what would be expedient for you, or what would be accepted into emc?
what would be the best for emc...
but that means we would need to check yet another thing in the kernel sources, etc
skyfox00: calling rtai_ulldiv from hal_parport.c is not acceptable because emc can use several different realtime systems at least in principle
(there are 3 implementations present: rtai, rtlinux, and sim)
alex_joni: that music video is very well made
(and two of them are in wide use)
fenn: it's a nice tune :)
on the other hand, extending rtapi to offer functions like rtai_ulldiv and then using them would be acceptable
fenn: and you get a glimpse at the romanian languange in the beginning
this might help for rtlinux where it's missing :)
what about writing a custom set of math functions in assembly?(with c wrapers/headers)
Is my input being helpfull at this point or am I just annoying people?
Professional Golfers Association
wow is there really no floating point in the kernel
I'd prefer to see the functions written in "C" since emc's in use on at least three instruction set families: x86, x86-64, and ppc
skyfox00: that would work too.
I got a JS lib for big math if you get lazy =)
i hear brainfuck is highly portable
jepler: liek this? http://fxr.watson.org/fxr/source/libkern/divdi3.c?v=RELENG53
fenn: prove it
does the decimal have to float, or can in be fixed?(64bits-decimal-64bits)
it can be fixed in the example above I think
most big math uses strings not int or floats
it was long long / long long
skyfox00: you really ought to at least put a network card in the emc machine
14:56:38 <jepler> ns2tsc_factor = (unsigned long long)(1e6 * (1ll<<32) / cpu_khz);
is that 1LL ?
the other option is to rewrite this in a way that uses neither long long division nor casts from double to long
alex_joni: yes, 1 long long
the 350Mhz has a net work card, but there is no network cable and no easy way to run one...
buy some wireless cable
since it's quite possibly the only "offender"
the wifi ap is in a metal boulding and the only other wireless bridge is in a dead state right now...
(ns * ns2tsc_factor) >> 32 is the number of tsc counts in ns
anthropomorphic white blood cell..
tsc counts == cpu_khz?
(it's effectively a 32.32 fixed-point expression of 1/cpu_hz)
so it doesnt need to be 128 bit total?
JymmmEMC: are you back on your machine yet?
fenn: I can also compile emc2 on the 1.8Ghz that does is connected to the net...(but I cant run it... no realtime kernel)
64 bits suffices. since cpu_khz >= 1, the largest value for ns2tsc_factor is 1000000 * 2^32 which is less than 2^64
however, 32 bits doesn't, because for cpu_khz < 1000000, ns2tsc_factor is bigger than 2^32
my grammer or spelling can broke some places
but in either case the intermediate value 100000 * 2^32 has to be stored in something wider than 32 bits
jepler: wouldn't it be possible to do it "manually" ?
this is tmi but I do it manually all the time
store 32 bits, then the upper bits, and shifting them together at the end
now what was the question again?
[20:51:26] <cradek> http://icanhascheezburger.files.wordpress.com/2007/09/i-can-fix-thiz-sorta.jpg
if doubles can be done in a pic-chip then they can be done in C using ints ;)
err.. right.. what was the issue again? I mean, what do you want to calc?
cradek: that's how they discovered bufferoverflows :P
and we don't actually know whether on skyfox00's machine the next problem will be the 32x64 multiplication ((x) * ns2tsc_factor) will call an undefined function
* fenn suggests using 'comp'
alex_joni: backing waaaay up .. in hal_parport there is a loop which waits until the requested number of ns has elapsed since the outb() in -write so that the outb() in -reset can be executed
can't you convert to clocks?
and having a value for number of clocks to wait ..
(or wouldn't that help?)
alex_joni: rtapi_get_time() is reportedly very bad to run in the fast thread so you can't loop on rtapi_get_time() < deadline
I have 3 computers at my disposal all with the exact same OS, 2 of which are connected to the net and are fast, and 1 of which I actualy own and is sitting on my lap...
so you have to find the number of clocks to wait based on the number of ns that the user specifies
you have to do it without floating-point math
(fast thread function)
jepler: err.. right, that's what I was trying to say
so I elected to do it with 32.32 fixed point arithmetic.
static unsigned long long ns2tsc_factor;
#define ns2tsc(x) (((x) * ns2tsc_factor) >> 32)
^^^ that's what this code does
then you loop on rtapi_get_clocks() < deadline
deadline = write_time + ns2tsc(reset_time)
how does the ns get set?
reset_time is a HAL parameter
but on skyfox00's machine the calculation of ns2tsc_factor calls a function to convert an intermediate result from double to long long
I was thinking user-interface wise
Could anybody help me out with my VFD and mesa cards please. =)
Adam_: what's your question?
I am trying to generate a PWM to output to it. here is what I have in my hal
#VFD Spindle Speed Control Dac-03-enable output P3 Pin45
loadrt pwmgen output_type=0
addf pwmgen.update servo-thread
addf pwmgen.make-pulses base-thread
net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value
net spindle-on motion.spindle-on => pwmgen.0.enable
net spindle-pwm pwmgen.0.pwm => m5i20.0.dac-03-value
setp pwmgen.0.scale 4250 # change to your spindles top speed in rpm
if you're using a 5i20 dac, then you do not want pwmgen
Adam_, are you trying to use an output from a 7i33 card, or a software-generated PWM?
pwmgen is for software generation of pwm and pdm waveforms
ok - listen to jepler then :)
instead, you want to hook spindle-speed-cmd to dac-NN-value
5i20 should have scale and offset parameters too
and if it has an enable pin you'd probably hook spindle-on to it
I am using fwd reverese and stop
you can use an or2 block and or spindle-fwd and spindle-rev together
and run that output to ...dac-03-enable
spindle-fwd and spindle-rev together yeah that is the other hard circuit that does that
I suspect that motion.spindle-on is internally an OR of motion.spindle-forward and motion.spindle-reverse
its stopped if both are off or both are on
I think spindle-on may turn on any time the spindle is supposed to be running, so you can just use that as well, these are all internal HAL signals
and the sign of motion.spindle-speed-out specifies the direction
yep. that's probably an easier way to run the VFD
just use the _/- 10V option, and run the single enable wire to it
ok my VFD has rev, fwd, common and 10v inputs
(enable, +/-10 analog speed, and whatever grounds are needed)
Automationdirect GS1 series
you can probably set it so the analog reference is +/- 10
its jsut +10
relies on the FWD, REV terminals for direction
then maybe you need to use an 'abs' block to find the absolute value of spindle-speed-cmd
no wonder why they're so inexpensive :)
good thing you can still use it with emc2 without issues :D
so what are the step I need to take to deal with this? I havent played with "blocks" I am just editing hal files
when I said "block", I meant "component"
loadrt abs count=1
so you need two components, or2 (2-input logical OR) and abs
what does the count=1 mean?
you don't need the pwmgen
I got rid of that pwmgen
that's the number of absolute value blocks you need
loadrt or2 ?
so you run wpindle-fwd and spindle-rev into the or inputs, the output of the or goes to dac-03-enable
yep, loadrt or2 count=1 (the count may be optional - it probably defaults to 1)
you can use spindle-on I think
instead of the or2 stuff
#VFD Spindle Speed Control Dac-03-enable output P3 Pin45
loadrt abs count=1
loadrt or2 count=1
thats what I have now in a hal
I suck at this right now
ok, you can kill off the or2 - even if the VFD needs fwd/rev, you can still use the spindle-on signal internally
have you run through the HAL tutorial?
net spindle-speed motion.spindle-speed-out abs.0.in
net spindle-speed-abs abs.0.out m5i20.0.dac-03-value
net spindle-on motion.spindle-on m5i20.0.dac-03-enable
and you need to make sure the abs gets interpreted properly
addf abs.0 servo-thread
you know I think you are just magic
where do you get that stuff
heh - no, we read (or wrote) the HAL tutorial ;)
ok so how does Hal know that at 10v my spindle max is 4250 rpm?
you set the gain
the spindle-speed-out will be in rpm
the output from the dac should be in 0..10V
therefor you need a gain of 10/4250
setp m5i20.0.dac-03-gain 0.00235
and if you want to limit it, there should be max and min parameters for the DAC as well (I think)
Ok so how does this look
#VFD Spindle Speed Control Dac-03-enable output P3 Pin45
loadrt abs count=1
loadrt or2 count=1
net spindle-speed motion.spindle-speed-out abs.0.in
net spindle-speed-abs abs.0.out m5i20.0.dac-03-value
net spindle-on motion.spindle-on m5i20.0.dac-03-enable
addf abs.0 servo-thread
setp m5i20.0.dac-03-gain 0.00235
Adam_: most of it is written from memory (without looking up the actual names)
so it might not work the first time
Am I right in saying that it doesnt matter what hal file that is located currently it is in m5i20_io.hal
this was more like a hint what you need to do, how you need to do it, etc
all that matters is that it's after the loadrt m5i20
big entry glass :)
though not as big as the 1:0.7 f50mm
heh, or the zeiss f1700mm :P
or the Nikon 1200/F2.8
didn't see that one
they custom made a couple for Sprots Illustrated around the 1996 Olympics
Sports. that is
03jepler 07TRUNK * 10emc2/src/hal/drivers/hal_parport.c: fix ns2tsc_factor: it was competely wrong, and the use of a cast from double to long long caused a problem on one user's system (gcc 3.4)