Just this once .. here's the log: http://www.linuxcnc.org/irc/irc.freenode.net:6667/emc/2007-08-30.txt
Blast!...I was going to play with emc2-trunk, and I inadvertently did a 'sudo make install'...now I have to clean up everything everywhere
I'd really, REALLY like to try out the double-step patch
My Taig beseeches you!
^Fritz, try the apt-get incantation to reinstall emc2
it's something like `apt-get --reinstall emc2`
or `apt-get --reinstall install emc2`
(or, use synaptic and mark emc2 for reinstallation)
Anyone know if FreeCad is worth installing? Spent the evening learning GCAD. Pretty cool, but I need something else for generating datapoints. I've been using a trial version of Mastercam X, but it won't save your work and won't output gcode....
the one based on opencascade?
i never got it to compile, something in the 500+ MB of libraries wasnt working right
GCAM not GCAD, my bad
[03:29:48] <skinnypuppy1334> http://juergen-riegel.net/FreeCAD/Docu/index.php?title=Main_Page
it seems to be actively developed, maybe i should try again
That screenshot looks a lot like X
What other alternatives are there? Qcad?
qcad is just 2d drafting
Not familiar with brlcad
its more like a 3d modeler than a cad program, but its old enough that it supports fancy math stuff
unlike the new stuff where they just throw more polygons at everything
there's a lot of 3d modelers out there (ayam aoi blender k3d etc) but nothing that supports standard cad style interaction
i liked ayam's interface but it kept crashing and never displayed CSG right
brlcad site looks interesting
you should be warned, brlcad is very Unix
That freecad debian package installed in fiesty no problem. Guess I'll be checking it out a little while tonight.
Help function doesn't seem to work on that FreeCAD free-cad-sourceforge.net is no longer hosting the webdownload help files
sed__ is now known as sed
cradek: what's a good basic lube for plastic (delrin? nylon?) against drill rod? - Wax or parafin based oil
toast is now known as toastydeath
freecad certainly looks promising
fenn you playing with freecad? I haven't figured out how to do anything more than make a cube...
skinnypuppy1334: i think that's all it does right now
dunno why he hasnt implemented other shapes, seems like that's the most fun part
it's not shape based
from the (very) little I read, it's feature-based, like SolidWorks
so you draw a 2D sketch, then do some process to make it into a 3D feature
i can't find freecad screenshots
well, it's not so much the same thing
(or it could be :) )
Scratchin my head
woah the animated julia set is cool
I haven't used solidworks just mastercam and catia
I didn't think mastercam was a CAD program
it has basic cad features
catia should have the features of solidworks, but I'm not sure if it works the same way
"features" meaning that the program is at least as capable
catia is like
the SR-71 blackbird of parametric modeling programs
catia is the thing that solidworks tries to emulate :)
but I don't know if it uses the same user interactions - feature tree, drag-drop rearrangement of features, sketch-then-whatever ...
Catia class for elective was cool , not like I'll ever afford it
solidworks is like the top end of the affordable CAD programs
toastydeath: didnt they use catia to design the sr-71? :)
i'm not sure, they probably did
I don't think catia is that old
i know it was made for airplanes
catia is very old
the SR-71 is older than me :)
(but not by much, if I have the dates right)
solidworks has trouble doing tremendously complicated curved surfaces
i ran up against it when I was doing cast parts
then there's the problem of the company SolidWorks being so far up Microsoft's ass, it isn't even funny
eh, i don't think the people who use unix/linux on the desktop really go for the whole solidworks-level CAD programs
they're actually worse than National Instruments and Microsoft regarding file versions and which version of software you need to read them
toastydeath: what do you mean?
i've never used solidwords so i dont know what "solidworks-level" means
CAD started on Unix. it's only recently that the "low end" has caught up in features
CATIA and Pro/E definately, and I believe NX
all do Unix and Windows
SolidWorks is an excellent CAD package, adn is very easy to use (and has a lot of good eye candy)
solidworks doesnt run on unix because of microsoft's .NET EULA
it's cheap for good CAD, at $5500 or so
fenn: i'm saying the people i've seen using Linux
s/unix/anything but windows/
usually have very, very expensive software
solidworks doesn't run on Unix because they made the decision very early on (well before .NET) to only support Windows
to run on it
like, they don't blink at buying 50 CATIA seats
heh - at $30-100k a pop, depending on features :)
well it's easy to spend other peoples' money
though there must be discounts for that wuantity
Anyone familiar with GCAM? I couldn't get the drilling function to work, I made some profile and pockets holes...
heh he better be
one would hope
I haven't caught him chatting yet, and didn't want to bug him with noob questions
Jymmm, because he wrote it
skinnypuppy1334, unfortunately, he's probably the only person here who can answer any questions about it
SWPadnos: So? doens't mean he knows how it works. At least if you consider most developers.
I don't think anyone here has used it beyond checking it out
:P :P :P :P
good night :)
got a morning meeting - ugh
I got a hot date with a pillow at 3:30
I've been playing with it making pockets and slots and checking out the gcode output in tkemc backplotter... pretty cool
And from what my gf just told me, that might be literal.... 85F still
ok i cut the cube in freecad.. now if i could just figure out how to rotate it to see what the heck i did
try the middle mouse button fenn
it just drags the view around
and middle mouse?
ctrl + middle?
shift/ctrl dont seem to affect anything
you know what cad program sucks?
it's the front, top, back. right left box icons
how did the company that makes Autocad screw up parametric modeling so bad
well, maybe i'll ask if shift/ctrl+middle mouse button can do zoom and rotate
its pretty slick how you can dock/undock windows and move them around
i guess qt gives you that for free
Fenn, did you really take a hunk outta that cube?
that's how you do parametric modeling
skinnypuppy1334: made two cubes, select both of them in the part tree, then click on cut which should no longer be grayed out
er.. click on "box fix 1" and then "box fix 2" to create the cubes
otherwise you would have to move them, which seems to not be there yet
moving/rotating stuff is probably the first thing i'd do in a cad program, i wonder what kind of weirdo this guy is ?)
why would you move a parametrc solid
you should define it in the right spot to begin with?
(not that i'm using freecad)
uh, because you want to put it in the right place?
that does't quite make sense to me
like, how i'm used to parametric programs working
is you make your base solid
then you constrain additional solids, at the time of creation, to the other solid
so creating a solid and then constraining it afterwards seems backwards
i dont know how to do that either
you might think that "h" and "l" or maybe "x y z" would change the dimensions or location of the box, but you would be wrong
i just downloaded one of the things
i want to see tis
Jeez, I wish there were a way to save files atleast in this darn mastercamX demo...
[05:06:40] <fenn> http://fenn.dyndns.org/pub/irc/freecad.png
as you can see it mostly works with my colorscheme
freecad is linux only
I'll give it this much , the debian package installed painlessly
freecad is not linux only
i don't see a windows download
they even package all the random libraries and such for windows download
its on the *drumroll* download page
i passed right over the windows link
on the page
toasty needs to rub his eyes
its really neat how you can have multiple documents open on the same workspace
where the heck are the planes
or even split out windows to the window manager
this is ridiculous
yeah its obviously not one
but i like what i see
this is harder to use than pro/e
i just posted one
What 2d CAD software would one recomend for use with EMC2
fenn: you are now a sticky :)
what's brown and sticky?
it is suprising that halfstepping was quieter than 1/8 stepping.
to me anyways. :)
yeah the "common wisdom" I've always heard is that the smaller the steps the better
are you running the rated current to the steppers?
suppsedly they're 2.0A
I ran them some at 1.5A and some at 2.0A, it didn't seem to make much difference
it not just sounded better, the motion was also better
I say - if it works :)
I'm surprised that you get better performance out of your smaller motors at 29v than I get from my larger motors at 60? v
(much higher top speed)
yeah I ought to be driving into work instead of sitting comfortably on my couch at home :-P
must be nice ;)
I have a vanilla cappuccino - it isn't all bad.
your running the motors at 1500rpm.. that is pretty good to me :) The router seems to be limited to around 1800rpm.
1440rpm I should say
yay now I am at the office
geez over 10 minutes? killer commute.
heh - mine is around 20-25. not too bad
I take it cradek has a little longer drive ;)
he gets to drive at highway speeds for part of it though
how is the backlash?
google says 2.9mi, 9 minutes for me; 7.4mi, 19 min for him
not too bad.
skunkworks_: haven't measured it yet. The spiral didn't have obvious quadrants or flats. However, on the splash gcode none of the letters are quite "closed" -- look at the top left of the "M" in http://axis.unpy.net/files/01188441458/img_7040-medium.jpg
dunno if that is backlash or blending with the "Z" moves in and out
it the roughness the cutter chipping the material out?
I don't know
I see it happens more in one direction than the other
what was the bit?
whatever came in the dremel tool box
could it have been pulling the cd up?
how was it held down?
some cellophane tape on 3 or 4 edges
the tool must be a "191 high speed cutter" http://www.dremel.com/en-us/attachments-and-accessories/attachment-accessory-detail.htm?H=188537&G=66237&I=66273
it it odd that it ony seems to be doing it on the left side of the cut
hi guys, I'm getting a bad character message from line 10, here is 9 & 10
#36 = [[#35] / 2.0] - 0.125 (should now be the correct radii to cut a 1.130" diameter hole)
#37 = -0.140 (starting z - in case of restart)
#36 = [[[#35] / 2.0] - 0.125]
you need more brackets. Try the line above:
the - is a subtraction operation, not part of a negative number, so it needs to be in 
whats wrong? i've been playing the 10k monkeys thing for about an hour now
the entire equation has to be inside brackets
you have some stuff in brackets, but the last subtraction is hanging in "free space"
ahh, I think I tried that, but brb. Ok, that moved it down to linbe 16, probably the same error, thanks Jeff
It usually takes me 3 tries to get the brackets in the right place. :)
03jepler 07TRUNK * 10emc2/src/hal/utils/comp.g: --install-doc to install manual pages to the standard location
03jepler 07TRUNK * 10emc2/src/hal/utils/comp.g: --install for .py files: strips extension, adds or fixes #!-line, makes executable
jepler: plan on mounting home/limitswitches on it?
skunkworks_: yeah chris planned that all out for me too
skunkworks_: for now, X and Y are really easy to home by eye, and Z isn't bad
but eventually I'd like home switches plus tool length switch
with phase drive you could have a kind of index pulse generated internally (some particular configuration of what coils are powered). with step/dir that's harder - you'd have to have feedback from the driver.
there's actually a "home output" on most stepper drivers (including l298 and xylotex)
I wonder if you could home repeatably with this additional information
er, well, on allegro 3977
I don't think it's exposed anywhere on the xylotex board
is it what I said (a particular configuration of coil activation)?
it's not as good as 1ppr of course
"home state = 45 degree step angle"
+70.71% current on both windings
that's also the power-up state
I think the parker drives have an input like that also.
oh hey, the power up state is fixed? that would give you the same thing if by just keeping count
on a 20TPI screw, one full step is .00025 in, so there's really not much distance between two adjacent "home" locations
oh hmm, forget it then
even direct driving a 5TPI screw (say, on a Bridgeport), it's 0.001
seems to me someone mentioned bridgeport using this in homing
I think that was Stuart talking about "home to next index"
that would be easy - it was a phase drive
I think that's how the AC servo drives give you such high resolution. there are some that have 2.5 million counts per motor rev
sure could a "home" output pin to stepgen for phase drive types, in case somebody wants to use it
or for step+dir and quadrature type when a steps-per-mumble parameter is set to nonzero
but you'd have to take care to power on the drivers at the same time you start emc
i think PID is best explained with code. i wonder why they always mess it up
diagrams like this really dont help at all http://en.wikipedia.org/wiki/Image:Pid-feedback-nct-int-correct.png
if someone knows how to read a diagram like that, they already know how PID works, guaranteed
heh - exactly
Made using Microsoft Word"
what I think is even less likely is that someone who uses microsoft word to draw technical diagrams actually understands them </snark>
meh. it looks pretty
Set Zero Phase Input
This input allows you to reset the motor phase currents to the power up position.
which moves an unknown number of microsteps ...
I would think if you hit a homing switch then set this input - it should be exact. :)
no -- imagine you're halfway between adjacent "power up positions"
you'd be at a known step motor phase, but that doesn't necessarily relate to the home switch position
which one do you think it will "snap to"?
it would be about 50/50
unless you where unlucky enough to hit the switch exactly half way between... jeez you guys type fast
skunkworks Somehow you think they're Hu-Mon
you are not morg, you are not I-morg
we are not grinning scarecrows sent to torture and manipulate you
mental note - Kashi frozen meals are pretty damn good.
Star Trek:TOS, Episode "Spock's Brain", I believe
ah, damn trekkies =)
no - it's this brain of mine - I remember lits of useless stuff (which often seems to push out more important things)
sign of old age
I can't read signs
* archivist shuts at his age
archivist: No, he rememered the phone # of a restraunt
address, not phone number :)
and that's one of the important things to hold on to :)
boy - that is as bad as my wife knowing the order of the songs on all of her cd's
SWPadnos: You pulled up the phone # faster than I could look it up.
I had it in my phone ;)
skunkworks_, doesn't everyone know that?
lol, that's right. I forgot.
and I'm referring to http://tmbw.net/wiki/Lyrics:Critic_Intro
I've got Guido's in LA in there as well
Never been there.
most excellent Italian
11980 Santa Monica Boulevard, IIRC
i've seen jepler type, and it truly is amazing
SWPadnos: Let me guess, on a Sunday afternoon?
* jepler blushes at fenn
I think I'm about as fast as jpeler at hitting keys, but I have a much higher percentage of backspace usage
SWPadnos: You missed the backspace key
* fenn points at the tab key for future reference
oh there are lots of edits when I type
not as many as me :P :P
err - wait
When I try to keep up with you guys, somehow between my brain and my fingers gets lost in translation.
I can see that
(s/somehow/something/ :) )
Shit, and I even tried to slow way down to say that correctly.
brain needs oiling
now, why does godaddy send me a renewal notice just after I've renewed all my domains withthem?
archivist: I think I need to repave the roadway more than the brain
SWPadnos: You're too good... renewing before the due date.
well, the due dats is only ~2 weeks away, and I did it ~2 weeks ago so ...
SWPadnos: But, I'm glad they send out so many renewal notices.
yeah - gotta have fuel for the fireplace
Internic might have sent out one iirc
SWPadnos: Fuel? You got a paper notice?
they do have a neat service as well - you can push out a registration in one month increments for $0.75/month
it lets you synchronize renewals
yes, snail mail
SWPadnos: See, I wouldn't want that in case I was sick/out of town. Then all my domains might go bye-bye
I get email as well
I've never gotten snail mail from godaddy
and this is the second or third notice I've gotten
it's just that the others all happened to be before I renewed
Guys, I'm going to order three geckos today, are the G210's worth the extra money over G201's?
i always have a picture of a nice little snail delivering mail with his US MAIL pouch and glasses (which would be useless on a snail)
skinnypuppy1334_, only if you need the step multiplier
what is really worthwhile is the g203v instead of either the 201 or 210
you basically can't kill those. the worst you can do (without really trying) is to fry a $0.22 fuse
obviously hammers and drills can cause permanent damage
I've got a good enclosure, so if it were you it would be 203v's ?
if you haven't read it: http://www.geckodrive.com/photos/Differences_between_G201_G202_and_G203V.pdf
if I were making my first stepper control system, then yes, it would be G203V
if I had made 100 before and really knew the design and the motors were good, then I might go for something else
I'll be reading it now, I hadn't run across it yet. Yeah steppers, I can't afford that servocontrol card
if you need the step multiplier, then the G212 might be the way to go. there's supposed to be a G213 (with the multiplier) and a G903 (the step multiplier board for the G203V), but I don't see either on the gecko site
the only difference between the G203 and the G202 is short circuit protection (if a motor coil or the motor leads short out)
err -and some other stuff at the end of the list :)
and it will suck your blood at night
argh. ignore that last bit
there are a ton of differences - I was looking at that list as a feature list, not two distinct lists of differences
swp so .. you aren't making your first stepper control system?
nope, nor my hundredth
I'm not making one :)
well, obviously, but in the future i mean
I might one day
Crappers the 203v is the ones the pmdx 131 doesn't support
hrm is USC universal stepper controller or universal servo controller?
with the G320/G340, it ends up controlling servos, but it's a step generator
fenn: SWPadnosmight make a step gen, but not a drive
That microstep morphing looks interesting... but I'm not seeing anything on pmdx that says it will run it
G203v that is
Since Ladder Logic diagrams don't have "source files", simply upload a screenshot :(
anonimasu_ is now known as anoniamsu
I'm having issues getting a pci parport card to work. I've tested it before on a previous setup so I know the card works, and since that setup I've got another pci card (two in total) and changed motherboard/cpu/etc. I've tried all combinations in lspci -v and none of them seem to work
the integrated motherboard parport seems to work though
it changes from driving the motor with microsteps to driving it in full steps when the speed gets high enough that microsteps don't help any more
ler-hydra: last time you had this problem, you forgot to add parport.1.read and write to the thread
it still takes microsteps in though
ler-hydra: maybe it's that again?
there's a pdf with some scope shots that show the morphing
cradek: hmm, I'm reuing the same config
[18:23:51] <skinnypuppy1334> http://www.geckodrive.com/photos/How_the_G203V_gets_the_most_from_your_motor.pdf
also, is there any way to see which of the three adresses are correct depending on the length (size=4,8,32)
when looking at the lspci output
SWPandos what are you controlling 203v's with?
8 and 4 are more likely than 32
skinnypuppy1334I don't use them at all - no steppers here
hmm, I have got two cards (and the integrated parport), which is a total of three but I'm only loading the first two...
is there an address conflict?
if they both want the same address
no, all adresses are different
* JymmmEMC read that as: jepler: 8 and 4 are more than likely 32
SWP, what will drive them then? I've been looking on PMDX but didn't see anything mentioning 203v's other than the 131 won't drive them ...
JymmmEMC: 8*4 == 32??
the 203v can probably be driven directly from a parport - it has a much lower current requirement and the disable input is isolated (step and dri are isolated on all their drives)
fenn: No, no, that's NOT what jepler said.
Been trying to keep up with the GF today, we're sanding wood trim throughout the house.... dusty fun
fenn: I just rad it backwards
p(8*4==32) = 0.7 depending on the alignment of saturn
g201's cant be driven directly from a parport?
depends who you ask
Straight off the Parallel port instead of needing something like PMDX 131 breakout board?
(or depends on the parport, probably)
i thought running off the parport was sorta the whole point
ofcourse they can be driven off a parport.
anyone who tells you otherwise is lying
* skunkworks_ are driving my parker drives directly from the printer port...
they are optoisolated..
so it shouldnt be a problem
some parports are 5v, some are 3.3, and they have different current outputs
the optos in the non-g203 drives all need 16 mA of current to drive the LED. many parports can't source/sink that much
cradek obviously you need a parport that gives 5v which is withing the spec..
I think the current requirement is not met by some actual parports, even though ideal / "in spec" parports should have ample current
the 23V only needs 2 mA, which basically any port can supply
wtf.. I never cared about it and it's worked for several setups..
it's not the voltage, it's the voltage under load
it "should" work, but doesn't always
16 mA is a lot
it helps noise immunity though ...
* skunkworks_ still hasn't taken out a printer port. tried though..
I have.. once
but I had some leds hooked up, for giving me irc status..
* skunkworks_ likes talking in the third person.
cradek, jepler, apparently I needed to load all three parports for it to work
* cradek rolls his eyes
hmmm. that's not funny :)
funny hmm, not funny haha
can you pastebin the output of lspci and the config that works (along with the parport line that doesn't work)?
* skunkworks_ wonders why ler-hydra needs 48 i/o.
for his 36 strut oligopod
it's the borgopod
you will be kinsimilated
[18:37:21] <ler-hydra> http://pastebin.ca/676035
skunkworks_ becuase I'm lazy and another parport is cheaper than a breakoutbox that divides IO for my pendant and limit switches
now that's strange
btw, was the anti-jogwheel-windup feature going to be in 2.1.x?
you're using the 32-byte region for parport 3 and the 8-byte region for parport 2
almost certainly no
feature-freeze was a while back?
2.2 should be out pretty soon...
SWPadnos: I'm not using parport 2 atm
2.1 doesn't get new features, only safe bugfixes
I just used it as a placeholder to allocate IO to the second parport
cradek: oops, I meant 2.2.x
we haven't called for an official freeze, but I think we're all being careful not to badly break anything
I think everyone was waiting for the new board to deal with 2.2 :-)
oh, ok. I see
does it work if you use CC00 and D800 (along with 0378)?
so it's getting there
I know I was
but unfortunately, it still seems to be my problem for some reason
cradek, too bad you didn't dodge that one :)
SWPadnos: yeah, it works with that
ok, that's a good sign
and if you take out 0378, it doesn't work with just CC00 and D800?
* skunkworks_ wonders is cradek was hoping not to be re-elected ;)
no, I was just joking. I could have declined the nomination if I wanted out.
but, I may not be the release manager for the 2.2 series, don't know yet
* skunkworks_ thinks jepler would have hacked into cradek mail server anyways and sent a nomination acceptence
nah, I use bsd. His powers are nullified there
and backspace works
* cradek snickers
SWPadnos: can you see this? http://www.cnczone.com/forums/attachment.php?attachmentid=42886&d=1188494073
SWPadnos: yeah, that works
ler-hydra, oh good. does this mean that it's working as you want - the two PCI parports only?
SWPadnos: oh, no, I want all three
skunkworks_, yes, I can see that
2 pci parports and the integrated
skunkworks_: what thread is that from?
ler-hydra, ok. so it's working either way, and you can do what you want now? :)
I couldn't get the pci ones to work without defining both of them
looks like mariss' current limit circuit with some diodes stuck on it
SWPadnos: it's woring great now
fenn: the last post of this thread http://www.cnczone.com/forums/showthread.php?t=14477&page=1
SWPadnos: what do you think that circit would do between the supply and 1900uf cap my h-bridge.
so - cap connected to the bridge pin, or the supply pin?
how are feedhold button implemented in hardware, one button for feedhold and one for resume?
are program start and resume one and the same?
emc likes separate buttons and indicators
the cap is mounted directly to the circuit board across the supply lines. (low inductive loop)
well, if Mariss says "this curcuit does XXX", then for the most part I believe him :)
I am more worred about the capacitance 'after' the current sense resister.. Not a problem (thinking recharging of the cap tripping the current sense circuit)
if the cap is connected to the wire marked "From Supply" in that drawing, then it's before the sense circuit, so charging the cap won't be detected (unless it's charging from back EMF)
it would be after
then it won't work as you want, since the cap is intended to supply the current spikes from PWM switching
ok - that is what I was hoping would not be a problem ;)
so as you pointed out, you'd be measuring the transformer charging the cap, not the cap/bridge supplying the motor
lewin1 is now known as lewing
man 47 pages on that ac drive thread.. this is why i hate web forums
To whom do I direct questions concerning pluto_servo issues?
skyfox00: the entire channel!
if they had been using a wiki it would all be laid out pro's and con's with datasheets attached etc, but instead you have to dig through 47 pages of banter in order to find anything, and as a consequence nothing gets done
kind of like IRC
wikis can be every bit as chatty if there is not a strong ethic/style to the contrary
if there's no overflow like irc
heck, some of emc's documentation is way too chatty
wikis are also only as correct as the last editor
hey man, everyone loves tinkertoys!
for some reason, the word "tinkertoys" first registered as "monkeys" for me
everyone loves monkeys!
* fenn flings poo at the channel
maybe I should replace these fuzzy CRTs with LCDs
i thought you had 20" star-trek monitors
skyfox00: in case you are not sure, cradek is serious when he says "the entire channel". On IRC, the best way to get help with your question is to simply ask it, not ask whether you may ask it or who you should ask about it.
fenn, they're 24", thank you
but those aren't in use on this computer at the moment, and I'd have to clean my desk (and the stacks of stuff on top of the monitors) to use them
yes, I was serious, sorry if that wasn't clear
what are the advantages of high-side current sense? can someone point me at an authoritative-sounding wiki page on the subject?
LCDs have the (dis?)advantage of not acting like shelves
not if you build shelves into them
SWPadnos: where would dogbert sit?
or mount them on the wall
The other day I got a Pluto-P board; I dont seem to be able to get emc2 to load the firmware though... (in windboze, fpgaconf.exe from knjn.com loads the ledblink.rbf fine)
is your parport in EPP mode in the system bios?
first I tryed it in ECP mode and NOTHING happend, so I changed it to EPP mode and now the 'communications-error' counter counts up at a constant fast rate... (the behaviore is the same if the board is not even connected to the parport)
does the LED stay dim?
the LED runs at a constant brightness all the time, even after loading emc2...
when I try to load the pluto_servo firmware using the windows fpgaconf.exe, the LED goes out after about 3 seconds...
I think you are right to diagnose that it is not properly being programmed in linux.
does the pluto_servo driver use EPP mode to program or does it use the bit-bang method?
next you should check that ioaddr is correct (the default, 0x378, is correct for many but not all machines), and try with ioaddr_hi=-1 and/or with epp_wide=0
pluto_servo uses bit-bang to program and then switches to EPP mode after that
I tryed all those options... seemd to make no difference.
what emc version is this?
emc2 version 2.1.6, rtai version 3.5, linux version 22.214.171.124, distro: slackware 11
does hal_parport work on your port?
one thing I did not try was epp_soft (or whatever it was called, I remember seeing it in the pluto_servo driver)
epp_soft doesn't work..
Hi guys, got nother math prrob I think. Can someone take a look at <http://www.pastebin.ca/676077>
I tried to write it following the linux kernel's soft epp implemention but never got it working/finished
gene: what line?
and tell me why the hole jumps from 1.74" to 2.05" when changing #36 by .0001"
hal_parport is a kernel module.... how do I test it? (i have a file named pluto.hal that blinks the LED, should I put 'loadrt hal_parport' at the top and run it?)
wait pluto.hal does blink the led?
ahh, s/b 1.84 to 2.05 1.84 for #36=0.9223 and 2.05 when #36=0.9224
its suposed to, does not work...
skyfox00: hal_parport is a HAL hardware driver that gives individual control over each input and output pin in the parallel port
skyfox00: many people use it to control step+direction machines, but you could use it with a logic probe or some other method to determine whether the parallel port is working at all in your linux+emc2 build
good evening folks
Chris: I'm trying to mill recesses in a block of alu to hold an axial load ball bearing.
skyfox00: you would "test" it by typing in some commands in halcmd (loadrt hal_parport, loadrt threads, addf, start, setp)
skyfox00: or you could load the stepper_inch sample configuration, run one of the programs, and it would create lots of pulses on the port for you to see with a logic probe
skyfox00: your system is not loading the kernel parport_pc module is it?
can I ask to someone linuxcnc guru a simple question?
Nighthawk: you don't have to ask to ask, just ask
gene, can't tell you what's going wrong, but you may want to add a line after 38 that checks to be sure #37 hasn't gone below #31
*GRIN*.... yeah parport_pc, parport, lp are all loaded...
ah, unload parport_pc and try again
and stop cups if it's running :)
ok cradek, :)
gene: computer arithmetic is not done in decimal, so sometimes math that looks like it should be exact is not. For instance, ".1 + .1 + ... + .1" (total of ten times) is not always equal to 1.0.
using what ge, gt, le, lt ? I've stared at ths for 2 hours now. How many places does emc use?
to be more exact decimal != floating point
gene: just like trying to add 1/3 + 1/3 + 1/3 by writing everything in decimal, you get .33 + .33 + .33 = .99
I'd like to know if it possible to obtain the spindle rpm via a simple step/direction input
no quadrature encoder
Nighthawk, sure. I think there's a counter HAL module, there's a mux, and there's a scale block. the only question is whether there's a way of converting from counter output to a float (if it doesn't output float)
gene: computer arithmetic is not done in decimal, so asking "how many places does emc use" is the wrong question. In some places it uses 24 bits and in other places it uses 53 bits
SWPadnos: counter has a floating-point output of both position and velocity
Nighthawk, actually, it's not as simple as I thought, because you want to sample the direction line at the same time as you count, so nevermind :)
jepler, does it have an up/down input?
[19:29:28] <jepler> http://linuxcnc.org/docs/2.1/html/man/man9/counter.9.html
-- in emc2.1 it is usually desirable to put the .velocity output of counter through a 'lowpass' filter to give a sort of averaged speed over many milliseconds
SWPadnos: no, counter has phase-A and phase-Z; encoder has phase-A, -B and Z
I don't think any of them take up/down or step/dir
counter only counts up
I don't know what kind of spindle has a step/direction output!
gene: if you absalutely need to compare two floating point calculated values you can do so reliably by counting the number of decimals and checking if the values are within the tolerance
"spindle" makes me think it only goes one direction mostly
new one on me
the direction is fixed
Chris, those #37 values are the depth, not the radii of the hole anyway
oh, if the direction is fixed then just use counter
the "encoder" is on a spindle
what kind of sensor is it?
just a disc with slots in it or something?
the trouble comes in when you need to track both directions
yes, exactly, cradek
ok, that's what the counter module is for, it's just like a one-channel encoder
I need to know the RPM
gene: one way to do it is to start with the minimum diameter, then increase it each time by the increment as long as it is strictly less than the final value. Then do one pass at the final desired value
"strictly less" is LT
min dia is zero, increment is calculated
s/b straight division
gene you should use my spiral script :) http://fenn.dyndns.org/pub/irc/lengthspiral.py
can someone pastebin a simple hal configuration
the parallel port pin is 15
well, I unloaded all parport related modules and running the pluto.hal file has the same result as before...
read down to "beginning of thread-related stuff"
Nighthawk: in this case pin 11 is the pin that sees a square wave when the spindle is turning
Nighthawk: pin 12 not used, and pin 13 is the one-pulse-per-revolution signal ("index pulse")
hmm i could add a depth of pass parameter i guess
Fenn, unforch python is swahili to me
er, width of cut i mean
you'll also need to look above for the "loadrt counter" and "addf" lines that are related
gene: that's ok i'm sure you'll do better sticking to your own code
gene: g-code is like egyptian hieroglyphics to me
gene: another way to do it is to have an *integer* count from 0 or 1 up to the total number of passes (comparisons with integers below about 4 billion are always reliable), and then find the diameter or depth with a multiplication by the per pass increment you determined earlier
depth of cut and number of passes dont always divide evenly
by the radius
skyfox00, did you run through the various combinations of ioaddr_hi and epp_wide after removint parport, lp, and parport_pc?
no, not yet, but I just tryied to get the emc2 servo_inch config to work.... so far, unable to detect anything with the oscilloscope...
hmmm. is your parport at some strange address?
(that's stepper_inch, isn't it?)
ok, I ran the stepper_inch and there is a constant +5v on all parport data pins...
while jogging/running a g-code program?
(just making sure :) )
the parport is a at 0x378(yes, while running the example emc2 gcode splash)
hmmm, that parport data pins are high even when emc2 is not running...
right - EMC isn't seeing/working the port
yo uhave only one parport in this PC?
yes, only 1 parport... and it works... I wrote a program a while back that usess libieee1284 for reading/writeing all the pins, etc and it worked fine....
that's ECP isn't it?
I wonder if it would help to load probe_parport early in the .hal file?
ok folks, I'll study the code you gave to me
many thanx to all!
stick "loadrt probe_parport" just above the "loadrt hal_parport ..." line
I also wrote a program that did bi-directional (full protocoll, 8 bit wide) communications with a pic chip
ok, the logic high's on all the data pins is just the internal pullups...
ok, so i need to put probe_parport into the stepper_inch file? or the pluto.hal file that is saposed to blink the LED..
try that in stepper_inch first
I suspect that if stepper_* doesn't work, there's no way pluto will
hmm, right now I have a button that starts the current program (halui.program.run), I'd like to add a button that pauses/feedholds the current program, which is resumed by pressing the existing button, is this possible?
ok, that runs ok, what do I look for in dmesg?
so stepper_inch now outputs to the port?
oh, emc2 loaded without bombing out... let me check for pulses on pins...
jepler: In this way it'll returns on motion.spindle-revs the revolution per second or a incremental count?
still all logic high's on the parport pins...
ok. it may be time to fiddle with BIOS settings. you may want to try setting it to SPP
doesnt Pluto_servo reqire EPP though?
I don't think so
but I'm not sure. jepler wrote it and knows far more
what other names does SPP go by?(output only, etc?)
yes, EPP is required by pluto_servo
Bi directional isn't it?
another thing to try is loadrt probe_parport before loadrt hal_parport or loadrt pluto_servo
ok- nevermine me :)
oh sorry, I didn't read back far enough
ok, I just tryied loading probe_parport right before loading pluto_servo and I cant tell if it put anything into dmesg or not...
[2096062.508088] parport: PnPBIOS parport detected, io_lo=378 io_hi=778
it prints something like this ^^^ on a system where it is useful
what's the difference between feedhold and pause?
well, no reference to parport anywhere...
ler-hydra: pause works by line of gcode, feedhold works at any time
ler-hydra: a big difference is feedhold will hold mdi and jogs
.. or is that step?
oh, I see
pause will stop in the middle of a gcode block
uh, happen to remeber the halui code for feedhold?
halcmd show *feedhold*
err show pin
something like that
32770 float IN 1 motion.adaptive-feed
32770 bit IN FALSE motion.feed-hold
hmm I didn't get any lines
03jepler 07TRUNK * 10emc2/src/hal/halmodule.cc: fix for python2.5 + 64-bit machines from Chris Lesiak
maybe it only shows pins loaded?
% halcmd show pin '*feed*'
32770 bit IN FALSE motion.feed-hold
oh, I see
how would I most easily bind to it in hal?
ie a button for feedhold and a button for resume
I also tried running 'halrun -I' and the typing 'loadrt probe_parport' and it did nothing...
ler-hydra: are you using ladder yet?
I posted *exactly* the ladder you need for that to the list
skyfox00: these messages we are talking about appear in the output of the 'dmesg' command, or in /var/log/kern.log (on ubuntu; slackware may have a different name)
skyfox00: is that where you are looking for the messgae?
oh, I was hoping not to need ladder for this machine
yeah, i was looking in dmesg for anything related to parport.... nothing...
skyfox00: I expect it to either print the "PnPBIOS parport detected" message, or "ERROR: pnp_register_driver() -> <number>" in the case that no PnPBIOS parport was detected.
ler-hydra: maybe you want an RS flipflop module then
hmm that sounds reasonable
nothing in syslog or messages either...
ler-hydra: I bet you could use "updown"
LSD Converter software!
cradek: is there data on it somewhere?
max 1, min 0, no wrap, yes clamp, etc
jepler, I don't understand if linksp spindle-pos => motion.spindle-revs outputs an incremental counter or revolutions per second.
can you help me
surely it's not a standalone binary?
with it's own man page?
ler-hydra: it's a hal module
cradek: output of updown is s32 so it can't be linked to feed-hold (type 'bit')
Nighthawk: spindle-pos is connected to counter.0.position, so it counts up as the spindle turns
Nighthawk: counter.0.velocity is spindle velocity in revolutions per second
Nighthawk: you would want to create a new signal that is connected to counter.0.velocity.
ok, I am going to tinker with the BIOS, be back in a bit, nibble or byte, depending on how long it takes....
perfect jepler. so with counter.0.velocity I'll got the RPS. scale it to 60 and I'll got RPM that I can visualize with PyVCP, is it right?
Nighthawk: yes. You may also want to use a "lowpass" to smooth the value
I'll try it, i don't remeber how use the scale command. Can you remeber me the syntax
Nighthawk: "man counter" in the terminal window for information about the counter component. "man scale" and "man lowpass" for those components
Nighthawk: if you don't get the right manual page, add 9: "man 9 scale" etc
ler-hydra: there's also a toggle component if you want to use one button
many many many thanx jepler
Nighthawk: you'd hook counter.0.velocity to scale.0.in, set scale.0.gain to 60, hook scale.0.out to lowpass.0.in, and hook lowpass.0.out to your pyvcp widget
that was bad
Nighthawk: then change lowpass.0.gain until you find a compromise you like between quickly tracking a changing RPM, and not changing too much while RPM is approximately the same
Nighthawk: and remember to 'addf' all the right things
cradek: no, I've got two buttons
what mode does a regular stepper config operate in?(bi-directional?)
where's the info about hal components?
no words. Thanx a lot. another question. Do you think is better to scale the component via scale command or scale it via the counter.o.position-scale?
skyfox00: the regular stepper configs are "SPP" -- data port always in output mode, so on
Nighthawk: if you are on a lathe and want to do threading and feed-per-revolution, you have to set counter.0.position-scale to the number of pulses per revolution, because .position has to be revolutions and .velocity has to be revolutions per second
Nighthawk: if you're on a mill and don't want to use those gcodes ever, then you can set position-scale so that .velocity comes out in revolutions per minute.
well, the BIOS help says there are 4 options, "bi-directional, EPP, ECP, Output Only" but I cant see where to set it to output only...
skyfox00: I would expect any of the modes to work, because they all are supposed to retain compatability with the original parallel port
skyfox00: so since it doesn't, I'm not sure what to suggest except "try them all"
ok, I just tried stepper_inch with the bois set to ECP and it works, nice pulses on the scope...
if I wrote a function/library that did software epp, who would I talk to about implimenting it?
it would use libieee1284 in ECP mode.
skyfox00: subscribe to emc-developers mailing list and e-mail a patch against the CVS TRUNK version of emc to the list.
skyfox00, can you use libieee1284 in a kernel module?
I have no idea...
I'm thinking probably not as well
well, all the same pins can be accessed with inb and outb, right?
yes, that's what hal_parport does
well, I was (mis)using libieee1284 kinda like inb/outb anyway...
it may be interesting to look at their initialization/detection code. that could be very useful for EMC
looks like libieee1284 builds on an existing OS driver, so it does things like "look through /dev for likely entries"; this doesn't help with emc, where things have to be written from the inb()/outb() level
what part of libieee1284 would prevent it from being used in a module?(dynamic linking?)
it's a user library - that doesn't lend itself well to kernel use
emc "real time components" are special kernel modules which can only use a few specific functions (the rtapi_* functions, inb, outb) in the parts that have to be run with reliable timing
you can't open device nodes in the kernel, for example (not by /dev/whatever anyway)
even if you *could* open a /dev/whatever, you could not do any actions to it from realtime code
what about implimenting some of the libieee1284 functions entirely inside of a module?(I am going to look at the source for ideas)
it looks like one of the interface methods of libieee1284 may be direct port i/o with inb and outb; it might be possible to cut out just this part and use it
thats what I was thinking...
but that's from a 2-second glance at their CVS source, the trenches view may be different
since that's what EMC does already, I'm not sure it would be useful. if they have better detection and setup code, that would be very useful
in ubuntu how do i get to be root user to change files in etc/apt/sources.list
In pluto_servo.comp (or pluto_common.h in TRUNK), the EPP cycles are in the functions ADDR(), READ() and WRITE()
roltek, use sudo
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
do you want to edit them by hand or use synaptic?
^^ I get this message in every terminal I open
roltek: I found this page https://help.ubuntu.com/community/RootSudo
as the first hit when I googled for: ubuntu root user
skyfox00: ieee1284 is EPP, not ECP. it wont work in ECP mode
er.. /me double checks that
my parport is in ecp mode right now and libieee1284 programs run fine
I think 1284 covers ECP, and maybe EPP as well
skyfox00: besides ADDR, READ and WRITE the other EPP-related operations are in the setup function where an attempt is made to switch the port to SPP-mode to program the firmare, and into EPP-mode for the remainder of the time (function pluto_setup on TRUNK); in pluto_clear_error_register (on TRUNK); and in FUNCTION(read) to check the EPP error register
it might do EPP soft to, not sure...
skyfox00: so basically those things are what you would need to implement for a "soft EPP mode"
skyfox00: the linux kernel driver also has soft EPP mode, you may find that studying it is useful
i am a little slow understanding emc2/kernel modules, etc...
(in other words, I dont want modify any modules or emc2 yet...)
you could make a userspace module, but i'm not sure that would be of much use
a userspace hal module
maybe i should shut up
no, thast ok...
i should find a howto that tells how to make a kernel module that juts puts a message into dmesg...
typeing with 1 hand doesnt work very well...
i was wrong about epp/ecp. ecp allows you to do epp mode, and can also go both directions
skyfox00: you dont want to write a normal kernel module, you want a realtime module which is quite different
ECP basically adds DMA support to EPP
i just wanted to see what would happen when i tried to use libieee1284 in a kernel module...
skyfox you should look at emc2/src/hal/drivers/hal_skeleton.c if you havent yet
at best, it won't compile
next best is it won't load
then you start getting into the really bad things - like hard lockups :)
skyfox00: then when you're done with that, look at the stuff in src/hal/components to see how much easier it is
its all greek to me i'm afraid...
its surprisingly easy to lock up realtime code
linux spoils you
If it weren't for mastercam I would have NO use for windows
well, I was hopeing that I could just write an EPP-soft set of functions and get someone else to impliment it ;)
the only time I use windbloze is when I need somthing to mock...
And just to think once upon a time I studied for an MCSE ... bangs head on concrete
uh. does pluto_common.h have an epp write function?
and a read function
I actualy did a realtime program... It was a scanning cammera that connected to the parport and got its critical timing from a pic processor...
so, why dont you just use that stuff?
i'm feeling kinda stupid today. what's the problem again?
well, my origanal problem is, I cant get pluto_servo working...
the pluto doesn't work with Linux/EMC, but it does in Windows on the same computer
(is that a fair summary?)
(the parport dies when I put the BIOS into EPP mode...)
ok, what does this have to do with writing a custom hal module?
um, the computer that pluto works with is a 166 mhz laptop with win98
it's not the same computer?
the other(linux+emc2) computer is a 1.8ghz desktop...
ok. I thought they were the same computer
it was just to confirm that the pluto was not ZAPT
that tells me that you need to find the BIOS settings that work on the faster computer
also, make sure you're using the correct port address
int ioaddr = 0x378;
if you have a printer, try printing something
you may need to change that line in pluto_common.h
no - that's just the default
you override it on the loadrt line: loadrt pluto_servo ioaddr=0xaaaa
the windows FPGAconf.exe program was using printer mode, what ever that is(not EPP, the 166mhz laptop does not suport it)
i havent really looked at pluto at all yet
the printer port works in ECP mode fine, I have a program that I can tell it to write 8 bits and I test them with the scope...
what's the address of the port?
is the port in use by another kernel module? what's lsmod | grep parport say
oh, useing the stepper_inch config works well with the port in ECP mode
um,(nagging question in back of head) let me try somthing...
I thought you said the port pins didn't change when you use stepper_inch?
um, I unloaded all other parport modules (sheepish grin)
i wish i knew how to search the scrollback buffer in irssi
err - ok. so after using stepper_inch (and having it work), does pluto_servo work?
well, nothings working now...
ok, Fresh reboot, remove all parport modules, run emc(stepper_inch): nice pulses on the scope.(BIOS set to ECP on 0x378, irq 7)
exit from EMC and try running pluto_servo
with the pluto attached, of course: :)
run 'halrun -I' and type 'loadrt pluto_servo'?
err - I dunno. you could try running emc and load the pluto_servo config
* fenn wonders what the expected output is
or halrun. I'm not sure what that leaves you with though
How can I get a fact changed on the wiki?
[21:50:44] <fenn> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?BasicSteps
you can't change the facts, only the description of them ;)
swp manifest your positive thinking!
I was just trying to clarify I have pdf's available for boards, but don't give away eagle files like the Wiki says.
ok. that sounds quit ereasonable
it's a wiki, so people are supposed to participate by correcting errors :)
That was my origiginal question
yep - just joking around a little. if you follow(ed) fenn's link, you'll see how to do it
ok, the lathe-pluto config loads without any errors and the hal meter shows pluto-servo.communication-error to be zero...
is the led off?
the led is on about half way, never changed when emc loaded...
which pins does the pluto get programed with?
that's a jepler or knjn question
Ok, I give where is the edit tab/link on the EMC2 supported harware page ?
is it just me or is there no way to specify a single line-break in groff?
pminmo: it's at the bottom
or, it should be there if you did everything correctly. i can fix it for you if that's easier
says this page is read only. I think I'm logged in
did you put 'emc' in the administrator password?
got it, thanks
hi pminmo. Is it a change in policy that you don't give eagle brd files? I could have sworn that when cradek milled his l297/8 boards he used the eagle files as his starting point.
I did some time back. It just got to be a hassle, some guys were jerks.
I can connect the scope to the different pins of the pluto and when the driver programs it the wave forms show up, but after that, nothing shows up...
pminmo: that's a real pity. eagle files make a good basis for conversion to gcode for milling the boards, and also a basis for modification and improvement.
I know, but by the same token. I'm pretty willing to accomdate changes and give somebody the result.
is it because you can't send a .pdf to a professional board house?
well, thanks for all your help, but I think I'm going to thow the towel in on this one...
you can generate g-code in gcam too
do whatever you care to with the fruits of your labor, but distributing pdfs and keeping .brd/.sch is about as far from "open source" as I can imagine. Perhaps you should choose a different phrase.
* Twingy has $600 standard version of eagle for linux, nice piece of software
I'm using your boards to run my mill, we talked a while ago
Hi cradek, are you timeguy?
I drew up a 4 channel, 80V, 25A board that would plug into the Pluto... never had it made though...
Now vradek your a guy I was glad to have the info for
yeah I remember we talked about a little improvement - I forget what it was
skyfox00: I wish I had some more troubleshooting ideas for you.
Anyone interested in a new, slightly used pluto-p board?
unfortunately with just pdfs I wouldn't have been able to use the design, since I mill the boards with gcode generated in eagle
sorry you had troubles.
it sucks to give stuff away and get only static from people
yes, but if somebody asks and gives me the mill info I will generate g-code
hrm, if I wrote an image->gcam importer you could export g-code
twingy you'd still need drill codes
so it's not all surface mount? :)
anoniamsu is now known as anonimasu_
how 90's :}
does any one have any idea when the next version of emc will come out?
why does it matter?
skyfox00: you can try the development version by CVS or tarball .. there's not been a feature freeze yet, and there's no firm date set.
twingy it's the coolness - look at my cnc mill drilling circuit boards
ok, thanks, I'll try that I guess..
sure you could do it by hand but then why did you get a cnc mill in the first place
oh rats, emc just hard locked up the other computer....
fenn, huh? I make boards on my cnc in the garage/at work all the time
fenn: agreed, having a cnc isnt nice when you have to do stuff manually anyway
I do qfp64's and qfp80's mainly
argh, like I suspected, the NMTB 30 holder for my drill chuck doesn't fit
So guys, convert me to emc2 and linux
twingy how do you get the machine to drill holes in circuit boards?
pminmo: try it, it works :p
pminmo: it's a good system, but we're not linux missionaries
fenn, I use a 1/50 or 1/32 ball nose for the holes and my 30 degree conical for the traces
pminmo: that's probably the best point for running emc :)
I can 10mil no problem
8mil is a little tricky
I have a copy of the unbuntu live cd, but it was not real friendly to my PC
what's the "parallel port on idc-26" pinout? IDC pins 1, 3, 5 -> parport pins 1, 2, 3 and 2, 4, 6 -> parport pins 13, 14, 15?
pminmo: what do you have to run and what are you running it with?
I googled a bit bit did not find it..
you really don't need 8 mil traces unless you are doing BGA stuff
pminmo: got enough ram?
Twingy: didnt you say you use image-to-gcode for circuit boards? then how do you recognize a "hole feature" on the image?
Motherboard/video and wireless is the problem
fenn, no... I use EAGLE or import an RS274X (Gerber) into GCAM to generate G-Code, I also support excellon drill file importing in GCAM and if I'm using EAGLE I just pull it into EMC
I was talking about writing one...
right, so, you wouldnt be able to mill boards from just a .pdf with GCAM
unless you had 2 pdf files
what is the cvs command to get the entire emc tree?(I think thats what I need)
I wouldn't mind posting g-code or gerber files.
then you could just compute the center of each hole and I could import that as drill points
gerber file is what you want to post
as well as excellon drill file
pminmo: why would you post gerber files but not eagle files? i dont understand
skyfox00: export CVS_RSH=ssh
cvs -z5 -d:ext:email@example.com:/cvs co -demc2-trunk emc2
is -demc2-trunk really necessary?
fenn: no, but checking it out in ~/emc2 will stomp on existing customized configs from another version
oh, i thought -d was branch or something, i see
-d is local directory to put files in
-r is revision or branch, TRUNK if not specified on co
my problem has been people wanting to make their own design, but botching it, then spending lots of time with them to square away. One person I had probably helped 40 hours, he was clueless what he was doing.
yeah that can suck. but when I run into that, I just decline to help
was his name bo^dick? :)
err did I type that?
hey - I should go get some donuts
It's been more than one, and I finally said no more.
it sounds like you're trying to do too much by yourself
I don't see why that means you shouldn't give the "source" to people
I think you should just decline to help clueless people
you just need to enlarge the font for the notice "privided without any warrantee or support"
you have NO obligation to back up your "source" with support
when is sombody going to create a stander emc hardware board?
skyfox00: that would be a terrible thing
skyfox00, there are a dozen boards that work with EMC
why would it be terrible?
because no one board would be good for everyone
it would be fine if every machine was a 3-axis stepper machine with one limit switch input and one spindle enable output...
fenn my objective hasn't been to do things by myself
but it kind of has turned out that way
um, I am talking about a USB board that would have TONES of inputs/outputs and could do at least 4 steppers or 8 servo motors...
USB is mostly incompatible with realtime control
yeah i know.. i'm the only person who ever wrote anything on this machine tool "wiki" i set up
when you want feedback
even though it was supposed to be a group project of sorts
if you want something very flexible and with a lot of I/O, the mesa cards are probably your best bet
USB can do 480Mbps and can stream quite nicly... and works with laptops that have no parport/pci slot...
bandwidth and latency are not the same thing
* fenn yawns.. maybe i should make another cnczone post about USB.. or i could let SWPadnos do it
I refuse to sign up for CNCZone, you can do it :)
who cares if your sending step left/right and the board does crital sync?
how bout you write me a nice summary, and i can post it and get all the fame and fortune
I may change my mind if I release a line of CNC-related products, but until then ...
since I'm not a EMC2 user yet, primarily because I'm not a linux user yet. But will be one of these days I do have a interface question regarding usb
USB is fine... just need someone to get EMC working well on ARM
then it isn't a good match for emc. (moving motion outside of emc)
i think usb would work _if_ you had PID in the external hardware
I've had the ARM idea to ;)
ds2, can you use multiple microframes in a sungle major frame to send data back and forth between a single device and the PC?
OH yeah, put an xilinx spartan-3 on the board...
[PC w/Axis and USB host] ---- USB ---- [ARM w/EMC motion + USB gadget]
[22:29:32] <SWPadnos> http://www.geckodrive.com
G-Rex has all you want, except for EMC compatibility
there's even Linux software to run it
SWPadnos: doubt it
pminmo: "why doesn't emc just use usb" is a little bit like "why don't I just plug my steppers into mains power" kinda question .. even though it might be possible to use mains power for steppers, it's so different from the ruling paradigm that it would take lots of effort and expertise to pull it off .. and there's no guarantee of success
pminmo: I'm sure you've heard the latter question
why not just shorthand a command stream via usb
because that doesn't match the way emc2 was designed
its sorta like trying to drive your car by throwing bricks at the pedals
ds2, the microframe question? that's what I thought, which forces command/feedback delays of 1-2 ms
I thought emc2 was meant to close the loop
usb isnt responsive enough to close the loop
USB is great, until you start talking about *FEEDBACK!*
jmkasunich_ is now known as jmkasunich
USB isn't able to react quick enough... it is like a pipe where you are allowed to send a RC car in every second but you really need to be able to react in less then a second
for step generation, it's fine
SWPadnos: right which is why I am proposing running the motion half of EMC on the gadget end of the USB link
sure, that's fine
and the most common gadgets are ARM based so porting it to ARM and let the PC do the axis and other UI stuff
I'm finally using my PCB development package (in fact, I shouldn't be chatting :) ), I may get to that ARM replacement for hte rabbit soon
My USB idea was just to have a USB version of the Pluto-P(with more I/O)
even step generation needs feedback, which is hard with a USB step generator that doesn't also have the "controller" on it
there's tons of arm boards out there already, it's just that you have to write all the software to make it useful
does linux have a lot of overhead with usb?
the controller needs to know how many steps have been issued, which it can't calculate exactly due to clock skew, among other things
fenn: just porting RTAI ;)
pminmo, no, I don't think so
personally i think realtime ethernet is more interesting than USB
it isn't the OS but when Intel has done ;)
I suspect the main limitation (for EMC) will be the difficulty of accessing device files from within the kernel
fenn, I agree with that
why would you need that?
but you still have to use something like time slicing to make it work
well, if you don't want to write your own driver for every USB chip ...
let the gadget handle time
pminmo, the gadget still needs to tell the PC how many steps it's output
if it's going to be inside the position loop, you have to write a "real-time driver" for whatever hardware you want to talk to. writing a real-time usb2.0 driver is a lot of work.
not a problem
I'd hack the USB drivers to give me raw access to the EP'ed
you can always be off by 1 or 2 steps, and if you don't get the actual number back from the step generator, the errors can accumulate
I think if they start offering USB steering wheels in cars...
ds2: you wouldnt even need to port RTAI, there are other realtime OS's that are better suited to microcontrollers
fenn: but we are talking about EMC here
my brother is an engineer and makes boards all the time(and gives me pointers) and I have some eagle time under my belt, if anyone realy wants to give a smart USB board a try...
you don't need an OS - just something that can communicate :)
so how does emc handle open loop steppers?
rtai seems to be pretty x86-specific, i'm not sure what the point would be in porting it
if that's the case... a SiLab 8051 w/USB then :P
"why can't I run my stepper directly off mains power"?
pminmo, the step generator keeps track of how many steps it has issued, and feeds this back to the motion controller as the position
"with an l297 chip"
jepler dont be mean
that's my job :P
if you can to that with a stepper then you can do that with usb
ok, just got the cvs version compiled....
say you have 2 axis on 2 USB devices
skyfox00: any change in the behavior you're seeing?
you can't sync them up
pminmo, no - it's very quick to read a memory location within the PC (to get dfeedback) - USB introduces roughly 1ms lag in each direction
sure you can, async hardware is synced all the time
no, there is no means to sync USB AFAIK
I tried run-in-place and it cant find a certian hal file...
I suppose you could do a software PLL if there is a cross connect between the USB devices
your assuming two indepentent usb devices?
yes, 2 seperate devices
it runs on its 1 KHz (or so) clock, and that's that. you may be able to reset or reinitialize the USB controller to change the clock phase, but you I don't think you have control over it on the fly
possibly on different nodes of the USB tree
that wouldn't be the way to do usb and multiple axis
you could run sync wires between two USB devices
just use one usb device and run a realtime protocol to the end nodes
there are always two USB devices - the PC counts as one
at least two
hm. well, sync wires doesnt help if there's no port to connect them to
also, USB is point to point (even though you can have a tree of connections), and there's one master
on-the-go lets you have devices that choose who's the master depending on the cable you use, but it's still master/slave
USB is kind of like token ring
cvs emc2 just locked up agian....
sort of, minus the ring
so how are people stream 450Mb on usb?
skyfox00, try booting from the EMC2 liveCD, and even try the pluto with that
throughput is not the same thing as latency
streaming is different; they are sending a series of bits with instructions to space them out
I can mail you a 500GB hard disk. that has reasonable throughput but terrible latency
the liveCD does not work with the nvidia video card...
they don't care when the bits get there, just they are spaced out
skyfox00, does it not boot, or do you not get acceleration?
side note -- DDS on USB? ;)
does not boot...
I use nvidia on multiple computers with the liveCD
That was why I asked if linux has a lot of overhead with usb
skyfox00: try to boot with the "vesa video" or "safe video" option
not sure what it's called
pminmo, it's not overhead
USB uses a fixed 1KHz packet rate
this is also true with USB2, but each frame is divided into 8 microframes
I don't know exactly how flexible each microframe is (regarding endpoint, direction, etc)
I didn't know the packet rate was that slow
what this means is that in a perfect world, USB1 or USB2 will only give one command and one feedback packet per millisecond
and the command will be based on old data
heh - there are reasons why I'm down on USB for RT control :)
Still steppers run open loop
yes, but if you de-synchronize the step generator from the controller, you have to be able to read back the number of steps that have been output
"Feed hold" could get interesting on USB ;)
you could send a series of time values to a usb device, and then have it generate step/dir commands from that
you need the synthetic position feedback
no you dont
stepgen could be modified to talk to usb instead of generating pulses
or consider a lathe
there will always be round-off error in timing of steps, timing of packets, base clock frequencies, etc.
how do you thread w/o feedback?
why not do somthing like the pluto except instead of over the parport, use USB?
skyfox00: yep that's what i'm saying
skyfox00, please re-read your scrollback buffer. it's all about feedback
but only for steppers
no no no no
even for steppers, rigid tapping/threading needs feedback
consider this: EMC wants a step rate of 3457 Hz
the nearest rate the pluto (or hypothetical USB device) can generate is 3459 Hz
ok, liveCD booted with save video option...
you issue the command to the device, and then some time later you issue another rate command
it doesn't matter if you send them in bulk or one at a time
no, you'd be sending an integer number of steps, and a rate value
unless you read back the actual number of steps generated, you will not know where the motor is (supposed to be - we'll ignore stalls)
then how can you when the command finishes?
there would be a queue of such commands in the usb device, and it would feed back the status of the queue
the pluto's LED never changed/went out... still on steady...
feed back? I thought that's what I said
well, it's not that critical is it?
'feed me data'
the queue goes down 20 commands
the controller replies with 100 commands
the device is happy for another 5 ms
Obviously people are running emc2 open loop with steppers, l297's, 3977's, step/dir controllers
so feedback isn't an absolute requirement
open loop on EMC still means that the controller knows where the step generator thinks the motors are
or prehaps consider manual jogging
still it's open loop
and breaking tools ;)
stepgen on EMC feeds back a synthetic position to EMC
yes, it's open loop
still to external hardware it open loop
it is open loop but a lag is an invitation to break tools
swp stepgen would still be in emc
you click the wheel 10times then afew seconds later your tool tip is buried
but it's still error-corrected up unti lthe parallel port
back to thruput vs latency and a stream of data
I should have kept my mouth shut and never brought up USB....
skyfox00, true :)
Ok i give
channel is too quiet otherwise ;)
we have to have this argument every few weeks, it's inevitable
pminmo, emc and mach both keep track of how many step pulses have been issued
and use that fake position to decide on the velocity to get to the next point
i think this would work sorta like a unix pipe, but instead you'd use USB as the pipe
I understand, its still open loop to the external hardware
so it's not closed-loop, but it is error-corrected uptil the step signals leave the PC
ok, running the Ubuntu liveCD every thing is the same.... the pluto LED never goes out....
heck it doesnt even have to be realtime
skyfox00, your parallel port should probably be set to EPP, not ECP
you could pipe stuff into the device driver from userspace, which neatly solves all the driver issues
I will set it to EPP next...
is there a emc/usb discussion subchannel :-)
an external USB device that happens to "close the loop" - whether it's PID or step counting - should work fine :)
skyfox00: can you 'pastebin' this .hal file you've been using? Have you been running it with 'halrun -I' or some other way?
[22:58:38] <jepler> http://pastebin.ca
but if the motion controller on the PC is expected to do that (close the loop), then USB has issues
This is my 1st time hear, I like it :-)
* ds2 stops adding gasoline }:-)
it may be fine for a lot of stuff - a machine , especially a hobby machine, isn't likely to move far in 10 ms
jepler: I had this one http://www.electronicsam.com/images/KandT/servostart/pluto.hal
so you could have a slower command rate
yep, thars the one...
but I think the conical names need to be changed
cone shaped names? ;)
it should work for "deterministic" control systems, but not anything that relies on feedback
Beldar, I summon you!
fenn, it only works if you send position and time values, and the dingus at the other end calculates the actual distance from its count of steps issued
jepler, that link you posted is what i have been running with halrun -I, excep I modified it to show all 4 encoders and the communication errors...
swp what does distance have to do with it?
you send a integer number of steps
you need distance to calculate rate
and a rate
the dingus does it
what if it hasn't issued all the steps from the last command
like its clock is 3.9999 MHz instead of 4.00000
it doesnt request more data if the queue is full
you send a dumbed down G-code line
if the queue overflows it says 'hey stop that'
I'm not talking about the queue - it doesn't matter if you send an entire program at once
is queue the right word?
I send one command, it says "make 1000 pulses in the next 1 ms"
but the clock isn't exaxctly right, so the software says "well, I know how to do that, just issue one step every 4000 clock cycles"
but the clock is slow, so it only issues 999 pulses
and then it does the last step and goes on to the next motion command
the next command (buffered, queued, sent just in time) says "go 300 steps in the next 1ms"
now it's behind 1 microsecond
well, in that case you end up with the commands taking too long ...
for this, couldn't you have a current queue depth returned?
ok, so what?
after 1000 cycles it's behind 1ms
and eventually you will converge on a desired level?
it doesn't request additional motion commands that communications period
ok - if you want a "set it and forget it" thing, then USB is fine
the "sent just in time" is stupid when the devices has tons of memory to store commands
if you want something that can be controlled by the PC, then it isn't as good for the time scales we like to use with EMC
I don't want to say that USB is impossible to use, even though it sounds that way :)
it's just not easy, and a lot of things need to be done very differently
i think this is how old style cnc machines worked more or less
why not do a stream capture on the step commands generated by emc (like an audio recording) and then stream that off to the board?
and it is mostly impossible to use for non-open-loop systems
but then if you want to get USB to work, why not get bluetooth or wifi to work instead? less clutter in the shop ;)
ds2, shut up!
heh dump some used motor oil on the fire
all the black smoke will drive everyone away
ok, I have changed the parport mode to EPP and rebooted...
ok, its working, led fades in/out...
uh.. didnt you already try that? what was different this time?
this is the liveCD
I'd say there may be a problem with your RT kernel. it's uncommon for EMC to lock up a computer
and now if the computer was not shared, I would just install from the liveCD...
skyfox00: is there a (good) reason you aren't using the provided rt kernel?
it's a shared PC with slackware, apparently
that's not a good reason
which provided rt kernel?
the .deb's on linuxcnc.org
they are brought in as dependencies when you install the emc package
oh, the computer is not mine, I can install software on it, but it needs to be a slackware box(runs servers, etc)
that may not be an ideal computer to experiment on ;)
I'm off, I'm glad I found this chat as I've been wanting to work with emc2. I always like to learn
right, well, i suggest you get a dedicated computer for running whatever you're going to be running
pminmo: give it a try. come back and ask questions
it doesnt need to be fancy
pminmo, have fun
and let us know if you solve the USB thing ;)
got other projects in the que ahead of it
um, I've all ready spend 40% of my total budget on the pluto board....
oh right - other projects. see ya!
skyfox00: your 166mhz laptop may be enough.. emc was designed to run on less
to many interests, not enough time...:-)
I have this little 16-bit analog I/O board I'm (supposed to be) working on ...
skyfox00: now that you know a BIOS setting that works, reboot slackware in a way that parport_pc is never loaded and give it another try
its so old that I cant get Ubuntu to run on it at ALL... and my other laptop(this one, 1.3ghz) has no parport... and a EPP parport card is to expencive...
(e.g., put "install parport_pc /bin/true" in /etc/modprobe.d/emc2)
yes, ubuntu is a pig, and i'm not sure why
but debian is almost exactly the same and is not a pig, somehow
do as little as possible to the parport before loading pluto_servo, and you improve your chances that it will work..
hmmm, I think I was loading parport_pc in rc.local... will reboot and check...
where can you get a > 2.6.17 kernel source that has native realtime?(not a hacked patch)
JymmmEMC: you alive?
skyfox00: sometimes they have other patch versions in their cvs, but I do not understand their system for naming or which patches are good to use .. http://cvs.gna.org/cvsweb/magma/base/arch/i386/patches/?cvsroot=rtai
-- some patches up to 2.6.20 here
er, up to 2.6.22 I guess
I was hoping to avoid having to patch one my selfe...(in other words, get one that is known to work)
I have managed to reboot and no parport driver of any kind loaded...
ok, it works, led fades corectly...
now, lets hook up the encoders and see how they work...
yeah, it must have been the parport/lp driver interfiering...
LawrenceG: yes sir
well, were getting communication errors again...
I was able to get it working for a few seconds and it was tracking the encoder, but then it bombed out and started getting communication errors agian...
so apparently we have scraping equipment at work
and i'm free to borrow and use it
cradek may like to borrow it - from you..
so - I install a new screen and hardrive in a laptop - (dropped) the only odd thing is the intensity controls for the screen work in reverse now. Up is down and down is up. odd. (maybe it worked that way before - could be)
skyfox00: apparently different EPP ports require different actions to recover from a communication error. The method in 2.1 (error register is cleared after read) worked on my first test systems, but on other systems the value is latched and in 2.1 is not reset with anything short of a reboot. In emc2 CVS, three methods (read, write with 1, and write with 0; the methods the linux kernel epp driver uses) are used. If you try the CVS version you'll get
ok, thanks, I am trying Ubuntu liveCD right now to see how it tracks the encoders...
but if the communication isn't reliable, you still face restarting emc after a communication error -- if there is a communication error you may have lost position because the encoders overflowed between reads
use a shorter cable, use a higher quality cable, or hang the pluto directly off the parport connector
JymmmEMC: hey.... I got a oem750 to play with
on slackware you are using release 2.1.7 right? very old 2.1.0 and 2.1.1 had a bug in the firmware that could lead to communication errors.
(2.1.6, which I think is on the current live cd, should be fine in this respect too)
yeah, i think its 2.1.6...
but I am running the Ubuntu liveCD and just had is start giving communication errors.... worked fine the boom!