[#emc] "This is the #emc channel - talk related to the Enhanced Machine Controller and general machining. Website: http://www.linuxcnc.org/,
wiki at http://wiki.linuxcnc.org/"
SWPadnos: mo - thank you :)
dad keeps me up on these things. ;)
PeterW_: a hardware pin configured as "capture all encoder counts into latches and set a flag" would be handy
* jmkasunich thinks of things like CMMs
it's still useful for probing
it just doesn't allow you to go at breakneck (breakprobe) speeds - only fast enough that you can slow down arther than one count per servo period
faster, not arther (??!?)
oh, rather - aha, I now know waht I said! :)
you simply have to go slow enough that you can stop within the probe's compilance
yeah, that's what I meant :)
but if your probe has 1/2" compliance, you can probe much faster than one count per servo cycle
hmmm. does probing always use absolute coordinates? (ie, ignoring G90/G91)
no clue, I've never done probing
me either (never really done much G-code actually)
anyway, taking advantage of the proposed hardware change would be the hard part
EMC uses the position values it is seeing when the probe input goes active - to get captured values into the motion controller would take a whole 'nother set of pins
on the motion module
which I don't really want to do
it would also be useful for homing
HM2 already has latch on index (in addition to clear on index) I would share the count latch
since it seems unlikely you would home and probe at the same tine
yes, one would expect homing then probing
the problem isn't the hardware implementation - you can do whatever you want as long as the driver writer figures it out
the hard part is the interface that the driver presents to the rest of the system
Sure, but its cheap to add, and it does not interfere with the existing driver( which doesn't use the count latch at all)
We has a customer request for this in another design so I thought Ii would add the (minimal) hardware
nothing wrong with that
I wasn't at all discouraging the hw addition
OK. It might even be of some use without driver support (using HM2s raw mode)
it might behoove us (emc folks) to examine our "canonical encoder interface" and see if it might want some optional extensions
the driver could lie to motion for the one servo cycle when it reports the probe has hit
oh, use the capture register instead of the current count?
probing is slow - the lie would be small
the small lie wouldn't disturb pid too much
just a thought...
so, the change to the canon model would simply be to add a "capture-enable" input?
yes something like that - I haven't thought it through
if the driver has a capture enable input, it should also have a "captured-value" or similar output
I like a separate output and latch pin(s)
ok, maybe it's not very hard to do it right
SWPadnos: seems like a r/w pin like index would be most consistent
not at all hard to do it "right" in the driver, where right is what a canon encoder "should" do
the hard part is motion
you either add another set of pins and make the user connect them, or you do a hack
I'll have a probe on a mesa machine one of these days...
the hack would be needed in several places
probing and homing at least
well, homing currently works without a hack
with incremental encoders
PeterW_: By the way, I like your cards. I had zero problems in my lathe retrofit. I'll be buying more for the mill one of these days - and the reason I chose them is the GPL firmware and your constant helpful cooperation here.
there are two models for index - 1) when index arrives, reset count, and 2) when index arrives, capture count
if we want to add absolute, we move the hack into the encoder driver, since we can't expect a reset
Thanks cradek! always good to hear...
PeterW_: I bet you usually only hear when there are problems... I didn't have any.
I touched probing last - I'll try to help if you guys want to do this.
Cradek: yes, but in general the 5I20 has been pretty trouble free
we haven't sufficiently defined "this" yet
having index and latch inputs (and two position outputs) allows for both index models
that's nice for mesa
it works for stepgen too, and for software encoder
but for EMC life just gets more compex
yes, a bit more complex on the HAL signals side
the driver of capture-on-index hardware can easily pretend to be reset-on-index
The HM2 counter can clear on index, latch on index (or both at once)
It also has a quadrature sequence error flag but I guess theres no
way to pass this up the pipe
One advantage of latch on index is that it does not muck up the N/T velocity estimation
(which Sebastian has not implemented yet)
is there a downside to latching the count just before resetting?
essentially you'd have two latch inputs, latch and latch with reset
hmmm good velocity output would make me switch to hm2
the reason EMC2 (really me) chose to use reset-on-index is that the driver can emulate that if the hw is capture on index
doesn't work the other way around
(well, need index mask too)
actually, if I was the HW designer, I'd never reset the count
use capture always
and let the driver emulate reset-on-index
that way velocity outout is never disrupted
and the hardware is actually simpler
(not a lot, but...)
more communication required though?
you need to read two sets of registers
driver/HW comms you mean?
latched count and current count
real hardware uses PCI, comms are fast
don't count on that
* jmkasunich is a snob, no parport for me
it's faster than parport due to the width, but that embedded box I have has terrible (!) PCI performance
unless someone makes a DMA framework, PCI can be a dog
dog = what? 500nS per transfer?
something like that
for sequential reads
Sebastian is looking at DMA (The TRAM stuff isn't just for EPP))
transfer RAM array
similar to what we did with the PPMC
upside = speed, downside is no conditional accesses
at least that's my understanding
(read foo only when required, etc)
also potential problems with waiting for completion
Translation RAM so block DMA (or burst mode on 5I20) can use sequential incrementing 32 bit addresses
But completion of 20or so DMA tranfers takes only a little longer than a single non-DMA transaction
the question is how we get notification of DMA completion from within an RT context
Either poll DMA controller (slow but still faster than doing all the I/O by hand) or DMA a flag into memory
I'm not sure if we can twiddle he DMA controller directly or if we need the kernel to handle it
if the kernel needs to handle it, I suspect it's done with a completion thread (similar to a bottom-half interrupt handler)
With the 5I22/5I23 and one wait state (HM2 has one ws) you get about 20 transfers per uSec so its not a lot of time...
I see nothing wrong with busywaiting during the transfers
I'll have to check that on my otherwise-good-but-apparently-dog-slow-PCI system :)
except that you need to tweak a system resource to do it (the DMA controller)
PeterW_: isn't the PCI clock 33MHz?
then 1 ws = 33/2 = 16.5 transfers/uS
Yes but the local bus clock on the 5I22 is 50 MHz (and the ws is one 50 MHz ws)
SWPadnos: simpler would be to write zero to the last word of the buffer in ram, then trigger the DMA, and make sure the hardware returns non-zero in that word
busyloop reading that word
oh, the DMA is throttled by the local clock, not the PCI clock?
(Yes JMK and much faster as well)
sure, but AFAIK you have to fiddle with DMA controllers that are managed by the kernel
oh, duh, you're not talking about the "completion test", you're talking about setting up the transfer and initiating it in the first place
I'm not sure if you can set up a master transfer by only fiddling with HM2 registers
(which may not be the same as a DMA request either ...)
I'd have to study up on those a bit
I'll let seb do that ;-)
oh yeah, good idea! :)
SWP; yes you can (using the DMA controller, its quite easy)
I hope to do some 5i20 stuff over the holidays
I have something like 12 days of vacation left
PeterW_, do you mean the chipset/motherboard DMA controller, or something on the 5i20/5i22 ...?
with holidays and weekends, I think I'll be off from about december 11 to Jan 5 ;-)
(oops I meant not HM2 registers but 9054 registers...)
The 9054 has a nice DMA controller with block and demand modes and even descriptor blocks in memory or FPGA space
ok, so by messing with something that Linux doesn't deal with, we can tell the HM2 to initiate a multi-word master transfer?
so the only thing we have to deal with there is whether some other PCI card is doing a transfer when we want to do one :)
9054 is 5i22 only, right? can the 5i20 do something similar?
(5I22,5I23 only) 5I20 is PCI9030 based=slave only, but it can be sped up by a factor of 2-3 by using burst transfers
This is why I intend to add the TRAM to the 5I20 as well
see you PeterW_
i ve seen mesa that connect on PCI & LPT port... but using servo, hows is it works?
they sending enc. data to PC right?
Fisia: the mesa boards read the encoders
and send encoder counts to the PC
the PC also sends velocity prescriptions to the mesa board, which sets a certain voltage at the output stage (usually through a PWM + filter)
:) thats whats i want to know...
so basicly mesa read the enc. count and sending the position to PC right?
and on realtime PC send direction+velocity to mesa
is it HAL doing this to mesa? what files containing this description on EMC2 source? please..
i need to know how much time they doing the calc on each processing...
Fisia: there are currently more than one driver in emc2 for mesa cards
in realtime of PC
but the things you want to look at are in src/hal/drivers/hostmot2 I think
how about mesa that doing these on PCI and LPT port? 2 cards of them
5ixx and 7ixx
(im a bit forgot... but its on a low cost)
im still imagine it how such a data (alot of data including encoder) could be fit on LPT also
fit on meaning of speed of time
ah, i read u... thxs
i have suggestion on replacing mesa for stepper controlling, by using 8255 on PCI, we could address alot more stepper motor !
wonderfull day isnt it..
5 stepper. 8, 10, 15 stepper ... u name it
8255 is what card?
8255 is an IC
well, I guess it depends if you prioritize the build or the final machine
old IC from Old-PC on your junk yard, u still could fine it on your local IC store
good day :)
all u need is an paralel 8255 and address encoder for each of them
_all you need_
each 8255 has 8bitx3 port
I've heard that before from people spending 2 years on building their own stepper drivers..
eh... except programming parts
because the comercial ones are exepensive.
they do not understand What is Stepper and how to connect em... the fun part of Stepper was, how to TEST them
Fisia: you can put stepgens inside the mesa cards
the latest 5i23 I think has something like 20 stepper controller inside
i think with 8255 u could do it 50 stepper
I mean, probably you can
:) nop? please explain..
but it's a pain, you need a PCI chip, as the 8255 needs special HW to connect to PCI
you can probably put 3 x 8255 on one PCI board
that means you get maybe 36 stepper conneciton on one card
so you need more than one card to control 50 steppers
NO... PCI already has address+data, u just have to connect em to address-cicuit thats connect to 8255's lot of
but the problem with 8255 is that you need to set the bits for each step/dir
Fisia: that doesn't work.. you can connect an 8255 directly to an ISA bus with address decoding
but not to PCI
PCI is a lot more complicated, you need to account for DMA, timeouts, handshakes, whatnot
(no expert in this really, but I've seen PCI boards with 8255 on them, and they _all_ used some special chip for PCI access/connection)
anyways, that is doable, but the rate to update the 8255 chips will be way lower than a solution like 5i22 + hostmot2 + stepgens inside
you can probably go to 50kHz or so step pulses with 8255 & PCI card
.. i see, i think i miss calculate it, on different ISA and PCI...
(i guess PC on today really cut mechanic creativity on thats ...)
ISA is easy to do, just a bunch of address decoding, and you're done
but the way to do it imo, is the way hostmot2 does it
you have the stepgen (step generator) inside the board
emc2 sets velocity/position prescriptions
and the hardware generates the pulses
I think you can go up to hundreds of kHz for step rates
on 20 steppers at once
(yes, im gonna read on what u suggest point as a starts.. since im still curious on it, all of it)
(puzzle, but good reading)
(for linux beginner)
[08:18:30] <alex_joni> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?HostMot2
so I guess it's 5i22, and 24 stepgens + 8 servo channels
I don't think there is anyone out there who might need more, but if they do, they can always plug in a second board
thats more than enough i guess
mesa rule ones again
Fisia: mesa is just one example of the HW that works with emc2
there are certainly others
like the Motenc : http://www.vitalsystem.com/web/motion/motionLite.php
the best in low cost Cards,opto,servo ampl. or EMC2 hardware cards, is it still on mesa?
MOTENC-Lite PCI 4-Axis Motion Board (8DAC,8ADC,4ENC,48 Digi IO) ...$595.00 ...fiuh.
is it servo ampl. already?
what do you mean?
you still need to buy/have servo amps and motors+encoders
btw, you probably don't need the one with 8ADC's
so it connect on 4enc + 48 digi IO yes
:) need to go, have a nicest days to all of u, ok.
how do I make it so when I type a command in the termainal window linux knows where the script is?
I think I have to put it in a certian directory ...
I have a program fop that does not show up in the package manager and only has a download the file and run the script thing
or set the user $path which is set in one of the . files in the user dir
* archivist remembering the old unix way
* BigJohnT looking
hmmm don't see anything except maybe .bashrc but it don't look like it
fragalot: you had me looking frantly for it :0
.bashrc that is it, your personal environment settings
ages since I played with it though
I see that some of the files in /usr/bin are links to shell scripts, how do I do that?
BigJohnT: ln -s <FROM> <TO>
i always get that backwards
do I need to be in the directory of the file then do the ln -s /usr/bin fop ?
yes, or you can do ln -s /usr/bin/fop /home/bigjohn/fop
(note, /usr/bin/fop and not /usr/bin)
[12:10:41] <fragalot> http://www.dealextreme.com/details.dx/sku.8113
I FOUND A PARALLEL CABLE! YAY!
uh, they are plenty everywhere )
parallel is becoming rare
anonimasu: Can't find them anymoer arround here
last time i asked one in a store they raised an eyebrow and said "son.. Theres something called USB now"
them who have stock dont realise whats happening out in the real world
I'd be rude if they told me that
I went into office depot the other day and asked the computer guru for a floppy drive... he got a big smile and why yes we have them... it was a usb floppy :(
went to flea bay and had one in a couple of days
my store here stocks paralell cables :)
actually ordered two for $10 each
EMC world needs to get used to USB
and parport cards
heh my parport card supports vista 64 :p
it dosent seem like paralell is dead yet
i can't fit a PCI card in any of my computers, lol
my local stores dont have parallel any more
they're all packed, so i'm looking arround for a 2nd hand pc, or an intel atom based one
full of other things
one has tv tuners, extra usb ports, bigass gpu blocking another port, firewire,......
the other only has one pci port, but it's blocked because of the 7950GX2, the other 5 are laptops, the other one doesn't even have PCI, and the other box is a server..
I finally got it it was "sudo ln -s /home/jet/emcdocs/fop/fop /usr/bin
WEEE it works!
should have been sudo ln -s /home/jet/emcdocs/fop/fop /usr/bin/fop but if it worked,.. ok
you could also add /home/jet/emcdocs/fop/ to your $PATH
yay.. my serialport works in vista 64..
somewhere on line it said the second one just needed to be the directory
with the plc programming software without signed drivers
and no, I dont have a option, I need to run somekindof windows on my workstation
BigJohnT: i think if it spots it's a dir, it creates a file in that dir with the same name as the source file
that's how mv and cp work
must be as it worked :)
BigJohnT: what does "fop" do ? :;p
fragalot: Formatting Objects Processor
turns xsl-fo to pdf and xml + xsl to pdf
I just found a box in my house that has a parallel port!
>.< my router,...... but it's not of much use to me for EMC, lol
now I have to learn how to make stylesheets :/
SWPadnos: EtherLite32 http://www.digi.com/products/serialservers/etherlite.jsp
RS232! that went out with the ark
archivist: Yeah, bite me =)
But... I do wonder if it could control serial motor drivers
as each port shows up as a dev under nix
I wouldn't place any bets on timing with one of those
I have a bunch of modem concentrators here :)
ethernet is waaaaay fast enough so you shouldn't have to worry about it, but you never know what their software is like
archivist: This one is a bit different, wehn you install the drivers, each port shows up as a /dev/ under nix
this is one of the ones I like: http://www.digi.com/products/embeddedsolutions/digiconnectme.jsp
SWPadnos: Well, SOMEBODY has to start on getting CNC control over ethernet somehow!
it exists, but it's not free
I think mine does something similar (years since I read the manual)
* archivist not considering RS232 at all
SWPadnos: What you mean it exists? Does emc support it?
SWPadnos: Then it's not good for very much now is it =)
but when you get to the level of $10k and up controllers/software, you can buy ethernet-connectd devices without a problem
not to me anyway
us poor folk need usb or cheap ethernet
well, get coding!
SWPadnos: Hmmm, not to be a smartass, but why are we still dealing with paraport? Most machines these days don't come with one, usb sucks, but ethernet remains constant
although the PCIe for next year looks interesting
because the parallel port is a very simple device, and is still available for almost every computer made (excepting those without expansion ports, of course)
SWPadnos: like craptops? ;)
SWPadnos: Ok, 10mbps ehternet chips are pretty cheap, is it really that difficult to come up woth something?
actually, mu laptop has an expansion port, I just don't care to buy a parallel port for it
somewhat difficult, though a lot of the work is done
SWPadnos: (I know, just pulling your chain as usual)
first off, you can't use the normal ethernet drivers for RTNet, you need an RT driver for each chip you want to support
second, the netowrk can't be connected to anything that doesn't support RTNet
SWPadnos: And they exist already?
the drivers I mean
so you can't just connect a couple of doodads to your existing network
Switches are cheap
you can't use switches
unless you know what you're doing
I havne't seen a hub in decades
do they still exist?
other than blackbox $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
unless you know the exact packet delay for your switch, or you can tell it to make a virtual hub on a couple of ports, you're in trouble
vlan or vhub?
I'm sure switches are usable, but I don't know how difficult it is to do so
hub, vlan would be terrible
RTNet uses TDMA basically - each device gets a time slice in which it can transmit
ok, anyhow something exists already
so ther eare no collisions
sure, some stuf exists, and the software could be made to work with EMC
too bad there are no motor drivers that use RTNet (that I know of)
so there's a hardware problem as well
[15:57:47] <jymm> http://www.amazon.com/Netgear-EN104TP-4-Port-Ethernet-Uplink/dp/B00000J4M9
the existing USB/FireWire/Ethernet devices generally use proprietary protocols
not high reliability
or protocols for which we'd have to pay $$$$ to get access to the spec, and we wouldn't be able to make GPL software even if we had the spec due to NDA problems
SWPadnos: well, what about jsut iface step/dir or cw/ccw to any existing driver
that made no sense
to me anyway
SWPadnos: Ok some module that has ethernet on one side, then step/dir or cw/ccw as the output
uh.. and you get realtime from where?
like the G-Rex?
SWPadnos: I thought grex was usb thing
yep, you end up with data turnaround problems
USB or ethernet
SWPadnos: what about that digi module you mentioned you like?
it's an ethernet-connected computer with a serial port on it
they used to run Linux, not sure nowadays
Hmmm, maybe I could get an eval unit
connectme is cute but realtime?
it's got an ARM chip in it, you could probably do something with it
isnt the only way to get realtime like that to feed the next n changes of speed
and then have a sync that keeps modules/drivs advancing where they should be..
or use something like IEEE1588
that's certainly one way of doing it
though there's a pile of nasty things when doing it like that :)
Well if the big boys are doing it, I'm sure that something could be done
the big boys uses custom hardware
so what's custom abut it?
and charge $5000 for the controller, $1500 for each drive, and a bunch more for the PC software to run it all
we need cheap custom :)
archivist: Again, what is custom about it? they they created it inhouse?
the realtime part!
who knows, they're not telling and I'm not about to buy some so I can try to find out
archivist: which is what ?
compared to somethign else
[16:12:03] <anonimasu> http://embedded-system.net/ethercat-ethernet-for-xilinx-fpgas.html
* archivist could see the word IP meaning a price?
Well many of you guys muck around with FPGA's as it is.
call them up and ask for a price
they sell ethercat piggyback boards :)
but they are probably too expensive anway.
that's a slave controller, it has nothing to do with the master
except that it's a slave of course :)
the ip licence is probably $$$$$$$$$$$$$$$$$$$$
they sell a couple of ASICs as well
SWPadnos: Got electron microscope? =)
SWPadnos: Well, wth not?!
SWPadnos: Oh, is that all... just go borrow one from a Univ
they wont mind
jymm: the reason there isnt free fast realtime is probably $$$$$$$ and that the people that are smart enough to realize something like that already works in the industry
I don't think that's it
there is free good realtime, but there aren't any low-cost hardware products based on it
that I know f
I wonder why then
I wish I had time and some money to develop some cheap stuff
My issue is that I don't know the timing specs like SWPadnos does, so I can't glance at specs and say "this could work"
well, developing hardware isn't as easy as software
there is a lot more of an investment (scopes, etc)
you need kit!
logic analysers etc
and there aren't anywhere near as many potential contributors and testers
well, it boils down to cost then
pretty much :/
you get slow development in niche markets anyway, and when there's hardware involved it gets even worse
I have a couple logic analysers
more or less
"All we need is love..... all we need is love.... all we need is love, love, love, love is all we need, love is all we need..."
so anyone who wants to do this is likely to say "well, I have to have all this equipmnet, I might as well charge for my stuff", at which point a lot of potential contributors will bow out, since they're not getting paid
(and someone else is)
* anonimasu drools at the ethercat plc cycletimes
SWPadnos: I dun know, maybe get a chip mfg to sponsor the project.
100 nanoseconds of responsetime is good
jymm, let me know when you find one. I'll contrubute for sure :)
SWPadnos: You know Atmel is only 3 miles from me =)
SWPadnos: Maxim is 2
they can start by sending me a permanent license for their Linux and Windows-based tools
* archivist thinks there is mileage in the USB fifo Jon Elson mentioned
Digi USED to be 1/2 mile away but it looks like they might have moved out of state
SWPadnos: which Atmel?
oh, I was thinking Altera. nevermind
same for Atmel though, they make programmable logic too
has anyone ever tried using OpenFOAM
had to google to find out what it is
open source cfd
toastatwork: FOAF = Friend of a friend, a social network thingy
oh, you said foam, nm
it looks like a pretty robust solver, but it also looks like it's as complicated as a robust solver needs to be
it says fluid dynamics, but it does all sorts of things like stress, etc
toastatwork: hey how's things?
hai genki desu
i have no idea what you just said
yes good :)
* anonimasu has to wikipedia "et tu" :p
lol, "and you"
procrastinating doing math homework and waiting for dinner
need some energy first
i am waiting for the rush to subside for lunch
who is chester88 on the zone?
where can I find a clear explanation about those co-ordinate systems in emc2?
is there something unclear in the documentation?
or you can't find it in the documentation?
it's not clear to me
then ask a question
I see in the user manual there is a "Coordinate Systems" section - it is very short - maybe we can clarify something that is unclear
yeah, i'm re-reading it first
at the moment i don't even know how write my question :-)
hm, maybe you should write what you know
or try to describe my problem...
just try - it's ok if the question is not perfect
sometimes, that helps
I have generated a g-code from eagle (pcb cad software). If I load it in emc2 and make a test run, interrupt it and reload it, it moves the design
very nice if you just milled the contours and want to load the file to drill the holes and your design is half an inch of
does the gcode use G92?
no, i use it to set the zero co-ordinates
does the G-code use G91?
what GUI are you using? If it's AXIS (the default) you should use touch off, not G92
i'm using axis
first program G92.1 to clear any G92 offset
then jog an axis where you want zero, poke touch-off, enter the new value you want (0), you will see the program move
ok, and what is the difference between G90 and G91 then?
the program sets G90
click Applications/CNC/Gcode quick reference
see G90,G91 there
for more details, you can click on them to see the more verbose documentation
I have been using EMC for years and I still use the quick ref all the time
i'm using it about 8-9 months now, first time I use someone else his code and I run into many problems :-)
I touch off and never use the g9x offsets yet
I'll check it out. If you don't hear from me the next 5 months, then it's working :-D
the reason that your origin shifted is that our gcode standard says that M2 decativates G92 offsets like G92.2. If emc read ahead in your gcode program to the end, then the offset is reset.
that's why cradek suggests using g54 offsets via "touch off": they do not have this behavior, but stay the same from run to run
not had a kernel panic for a while
kernel panic != BSOD
I like the disk full kernel panic, sending mail to root filling the disk...
try getting into a system in that state to clear a bit of space
nah was on Unix svr3 on an Altos 386
fragalot, hint leave a terminal open on any unix like system thats near full
archivist: hehe, always
archivist: I had a nice one once
my headless bot box has terminals waiting :)
someone set up a serial console, which caused some timeouts/errors
and it filled up /var/log with files
couple million of them, one for each attempt.. filled up for 1-2 years I think
until it couldn't write anything to disk.. ti ran out of inodes
i need to make a line following robot for µC class
any1 got a suggestion for a chassis?
fragalot: old shoe
I'm sure you'll win a prize for out-of-the box thinking :D
plimsole then it can follow the plimsole line
oh, you can find old ones with a hole in the sole
a roller skate may be closer to ideal
I know.. do a rollerblade
alex_joni: some of the guys in my class bought a Wall-E toy (big) and are modding it
that'll get you fame :D
that.. sounds doable
it's hard to balance it :D
make a big one, on a skateboard
with a car battery for power
(go big, dude)
heh follow the yellow brick road
rofl @ archivist
alex_joni: oldschool rollerblades
oops, wrong window
archivist: I just _hope_ you reference the wizard of ozz
fragalot: those are rollerscates
archivist: and not this: http://www.youtube.com/watch?v=OrUatLDxNZ0
alex_joni: both got wheels under 'm
fragalot: yeah, but it's a bit different if you have 4 in a row, or 2 x 2
they did try to make a motorcycle work for the grand challenge
and it worked .. for some small values of worked
[19:49:19] <fragalot> http://www.youtube.com/watch?v=oUH3m6ZyW-g&eurl=http://www.botjunkie.com/
hahaha thats awesome
Hi. I want to learn more about generating paths and accelerations.
I'm not exactly an emc user, but I assume you guys know.
My final purpose is to make portable CNC controller, which will take GCode files on a SD Card and interpret them on the fly
we know emc2 does it right :)
izua: do you plan to make it open source?
izua: if your product/software will be GPL, you can use parts of the EMC2 code
[19:58:34] <jepler> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Simple_Tp_Notes
well, it's a personal project.
but it might catch some interest among former clients, so yes, it might also end up as an open-source product
then that's ok too, if you don't distribute it
I'm sure that i won't get filthy rich out of it
so making it o/s will probably be better
basically, i've done something like this before
but it sucks donkeyballs - it converts everything from DXF to lines (arcs, circles, etc)
it's important to decide first, so you know whether you can use existing GPL code
and there is no acceleration/decceleration profile
most are used for foam cutting, so it's not really a problem, but still, it hurts my ego as a programmer :P
lines and circles are exactly the same, except for their shape
well, at first it will be a personal experiment
I'm not sure if it ever has to be released
(they're the same in this respect: the obvious parameterization is equal length per 't')
starting with emc source code would require you to release it under a gpl license if you ever wanted to release it to others.
I don't mind releasing source code, really.
that simple_tp_notes page gives pretty good overview of one way to plan with a trapezoidal motion profile.
together with a constant-length parameterization of each primitive (line, arc) you want to do, you're well on your way to an exact stop motion planner that respects velocity and acceleration limits
I'm actually looking to understand the math behind it
simply using existing code is fine, although i'd really preffer to understand what happens
emc's "blending" works by overlapping the acceleration phase of the next move with the deceleration phase of the prior move, either "as soon as possible", or when the distance from the programmed endpoint reaches a user-settable tolerance parameter
so, basically, if you have a few lines
you blend last dec with next acc..?
isn't this bad for small lines, say, a circle?
if I'm making a circle at a very high resolution, for instance
yes, it sucks in that case. that's why you should plan arcs directly, rather than cutting them up into lines.
(other parts of emc are concerned with taking "lots of short lines" and converting them into something that stays within user-specified tolerance while making it better for the trajectory planner)
so what does emc does in this case?
i know arcs should be interpreted as arcs
but what happens if the file actually contains a lot of lines that define an arc?
If your gcode says "go to A, then to B, then to C", and you turn on tolerance mode, and B is within tolerance of the line between A and C, emc is free to turn the original motion A-B-C into A-C
if you have output from naive cam software that has lots of short lines, enabling this mode is often enough to get good contouring speed
but you are right that just using the simple blending algorthm, you'll get utterly terrible performance with short segments
what happens with acc/dec
how is it calculated exactly?
consider we have two connected lines
in once case, they form 90 deg, in another case, just 30
I'm sure the acc/dec isn't the same
are they calculated individually for each line?
and then blended?
ore somehow "on the fly" ?
yes each line gets half the allowed acceleration
can you recommend me something to read on the subject?
the link jepler already gave you, and the source code
[20:29:01] <cradek> http://www.google.com/search?q=trapezoidal+velocity+profile
i was looking for a paper, or something similar. but ok, i'll check the source code too.
hey, an emc link is first
most papers will be for much more complex designs
trapezoidal is extremely simple compared to what a lot of people are studying
i assumed there are other motion profiles, too
what advantages do others provide, though?
S-shaped is the next one
trapezoidal has limited accel
this is one I've studied http://www.mech.ubc.ca/~caris/pubs/theses/sonja.pdf
the d(accel) called jerk is not limited though
S-shaped (like in sonja's paper) is jerk limited
you mean, an S 90 degrees left ?
izua: no, the trapezoidal and s-shaped usually refer to velocity profile
didn't work :D
anyways.. trapezoidal means:
the velocity rises constantly up to cruise speed
yes, I know a little about that
then it proceeds at cruise speed, and decelarates constantly
I've been using Mach3 for a while (a rough equivalent of emc for windows)
ok, that's trapezoidal, where you have a certain value of accel
when it goes from 0 velocity to velocity increasing there is a discontinuity
accel goes from 0 to a certain value
that causes jerk to be unlimited
on most machines you don't care about jerk much
but if you have a big gantry pulling a couple of g's, then you care
you mean, acceleration should slowly decrease instead of dropping it cruise speed?
when it reaches*
so that's the S profile
accel should slowly increase in the accel phase
and decel should slowly decrease at the end
[20:37:17] <alex_joni> http://eestud.kku.ac.th/~u4316562/images/scurve.jpg
this is trapezoidal: http://zone.ni.com/cms/images/devzone/tut/a/ce36be30697.gif
and this: http://people.mech.kuleuven.be/~bruyninc/blender/pictures/trapvel.png
same control exerted over speed by acc, should be done to acc itself
but as I said.. for most machines you don't need to do it
and emc2 doesn't do it
the concept is not that complicated, but coding it gets messy fast
izua: you might want to read something like this http://zone.ni.com/devzone/cda/tut/p/id/3367
i was actually aiming for an option where users can set their own motion profiles
but eh, don't think that will ever be necessary
that's exactly the kind of paper I'm looking for!
[Global Notice] Hi all, In about five (5) minutes two of our client servers will be going down for maintenance, the downtime window is set to one hour, but in reality it should be significantly less. Affected users ~1200. Thank you for using freenode and have a great day!
i was just thinking.
if acc/decs are actually blended together
doesn't that make an arc where two lines should join at 90 deg?
not an arc
but some rounded shape
you must either have a rounded corner or you must stop at the endpoint, that's physis
or you do a highspeed curve..
a highspeed curve?
err tangential curve or whatever they call it..
high speed curve = rounded corner
i assume the arc is somehow tolerated, as setting a maximum radius it should have
low speed curve = smaller rounding
you do a loop..
yes, outside the work
I was just typing that in, but stopped :)
well, it makes sense in a way
you have to slow drive when driving, to take a right turn (or left)
I believe emc's blending gives a parabolic shape, because during the blend the acceleration is constant in magnitude and direction.
any cusp (corner) requires acceleration, so to get the corner as programmed, you either have to stop or you need infinite acceleration
but machine tools dont have wheels to redirect the momentum, so doing a loop simply means you dont have to slow down while in contact with the work
i assume lines which form very sharp angles are even more stinky
complete decceleration, change of direction
and you get sharp corners
i get this somehow
can't evision the code for it, yet..
nothing you would hand code :)
someone's gotta code it
i *think* that in a perfect world (open loop control)
commercial machines do it by reading X number of lines ahead and calculating the individual accelerations at each junction
the software toys with acceleration and checks position
izua: no. in a world where physics dosent rule.
why is that?
i dropped the perfect world thing to drop the errors/need for closed loop control
anonimasu: well, the point is that i want to code it. and not for a PC, for an MCU.
in emc2 you can specify the tradeoff between rounding and slowing down (using a path tolerance setting)
by "hand code" i think he meant g-code
* fenn throws anonimasu a cookie
i meant the source-code to control such a thing
you dont, there's nothing differnet from it then normal arc blending
(offtopic: is it me, or kornbluth went down too?)
irc server went down for maintenance
ah. haven't seen the notice :)
well.. right, and all this can be computed on the fly
the % where the two lines will start blending i think will determine the actual corner
if you do a normal sharp corner that'll happen yes
but that has to be translated back in steps (which will be input as a unit)
[Global Notice] Hi all, the upgrades went fine, both servers are now back in rotation -- it went a lot quicker than expected, you'd never guess we run gentoo! Apologies for the inconvenience caused and have a nice day!
i think i got the line thing
what happens with arcs?
let's say we got a single arc (or better yet, a circle) for our drawing
(i assume line-arc and arc-arc crossings are bad, you'll probably have to take a segment over which to calculate acc/dec)
good night all
all direction changes are bad I guess if you look at it like that
izua: well, on the pc there's plenty of CPU power to use as many sin and cos calls as you want to find points on a circle. probably very different on a microcontroller!
you are missing the point
anonimasu: that happens all the time
you dont handle thoose cases differently then a normal arc blend(when you have highspeed toolpaths that does a outside curve at corners)
yes, but, how is it handled?
i mean, you do a lot of intermediate points, draw lines between them
and apply the same blend algo as above? i assumed we decided this is a bad idea
I dont know, blending and trajectory planning is hard enough as it is even if you have enough cpu power
izua: circles and lines are almost the same in terms of the velocity profile and blending (trapezoidal velocity profile and blending by overlapping decel and accel phases)
the difference is that a line is x(t) = x0 + dx * t y(t) = y0 + dy * t
so, you will actually split a circle into a lot of lines
and a circle is x(t) = (something in terms of the center, radius, start and end theta where each "t" is one arc distance)
I'm sorry. What's t?
t is "time" or "distance"
(for many curves, such as splines, there is not a direct relationship between 't' and the length; there is for arcs and lines)
yes, of course.
time is proportional with the curve defined between the two points in the case of a curve, not a direct line
right, it's the arc length
so you don't have 4 blending cases (line-arc, line-line, arc-arc, arc-line), you just have one case and two pieces of code to give you a position after moving 't' along the given line-or-arc
for thoose interested in more http://www.emuge-franken.de/english/medien/videos.html
that sounds sweet. the drill, i mean
although, the video is a very good tutorial on how to waste material pointlessly :D
there is no end product, or I see none
Hello All... This may be biting off to much than I can chew but here goes... A while back we where discussing rotary tables employing direct drive. How difficult would it be to roll ones own brushless DC motor using rare earth magnets and winding the strator (on a lathe)?
These guys are doing it on a smaller scale ... http://www.gobrushless.com/shop/index.php?app=ccp0&ns=catshow&ref=stators
Paragon: damn hard
I suspect it would be a lot of work to get a good homemade motor. not something to be undertaken to save money.
I agree but I thinking along the lines of a project and self satisfaction...
I think the satisfaction will be pretty low
Paragon: check out pancake motors
when comparing against comercial motors
motor design is non trivial
oops that's not brushless, nevermind
is it? now i'm all confuzzled
I think the ones I saw were AC brushless
or DC brushless, I don't know
but they weren't brushed, I do know that
[21:57:58] <jepler> http://www.endless-sphere.com/forums/viewtopic.php?f=2&t=6762&start=0&st=0&sk=t&sd=a
(and they had 2M count encoders O_O )
hm, I cant say that servodiscs are really easy either -_-
i'm thinking of http://fennetic.net/pub/irc/kolmorgen_servodisc.pdf
this is apparently a homebrew brushless (2 phase) pancake motor ("does not self start, not a problem in this setup")
[21:58:32] <jepler> http://www.endless-sphere.com/forums/viewtopic.php?f=2&t=6762&start=0&st=0&sk=t&sd=a
oh hey, some of those are DC (according to the lesser god eBay)
DC and AC are essentially the same except on 2 phases are driven at any one time in a BLDC motor as opposed to all three phases being driven in an AC brushless... Well that how I've read it ;-)
extremely low inductance, so no kickback = no brush wear = regular slip rings instead of carbon brushes
What the hell did I just write ? ;-)
Paragon: i think the difference is BLDC is trapezoidal waveform and AC is sinusoidal
Thats what I just wrote ;-)
I think it's alot of work for something that wont work as well as you thought for a start
I beleive the wye winding would be more benificial for the intended application also.
(just my 5c)
just like stepper drivers
anonimasu: I think your probably right there.
time spent somehow has to be reflected in the result(atleast for me)
One of the main issues I think is with regards to the laminated iron component.
well, time to sleep
Paragon: many motor designs dont have any iron laminations
look at cd-rom for example
I think i'm starting to understand the blend thing
I'll make a simulator or something to play around with it
fenn: one of the ideas I had was wind the coils on to bolts using the cnc lathe. Mill and tap a steel ring of which the bolts (coils) would screw into. the coils would be pointing towards the center. The actuator would be milled and drilled to accept the rare earth magnets and sit in bearings. The profile would be aprox 1-2 inch high and say aprox 100mm x 100mm sq.
so a trapezoidal profile is fine for most small-to-medium machines?
i'm talking stuff from foam cutting to drilling pcbs and maybe milling aluminium
izua: our experience is that emc works fine for all those tasks you mentioned (though I don't know much about foam cutting)
it's very light, and 2D only
you basically have a nickeline wire, heated, run through foam. and it melts.
the foam, not the wire
if the wire melts you did it wrong, I suppose
that's simple. it's the machines where you have the two ends independently controlled where it gets interesting
ah yes, to make conical sections
so you can cut angles instead of just shapes
it's great for airmodels
but using a fixed length wire
is a bitch, cause it breaks
EMC can control those too, because most of the special stuff is in the G-code
but the problem is making the wire not break :)
cause it will have a maximal tension
i tried designing a mechanism to feed/retract wire
depending on the external points
waaay to complex then i initially thought of
and in the end, i don't evne do foam cutting :P
well, a tensioner is one way, but if you can jog one endpoint closer/further from the work, then EMC2 can also compensate
(you can use the HAL to find the the distance between the XY and UV endpoints, and move in or out to keep a fixed length)
hi, any one know a way i can extend the mark pulse on an incoder? dont mind external chip
not really. it's especially complex if you want to extend it for travel in both directions
I am sure there are many circuits based around a chip like the 555 that can lengthen a pulse
you can sure extend the pulse to some minimum width, but you lose the guarantee that the index output is only high at one spot
also, the index position will vary depending on which direction the encoder is rotating
(it always varies by one count anyway, since the rising edge will be on one side or the other of the index mark depending on direction)
hmm very true
it's hard to imagine where this would matter. for instance, the index is unimportant during the reversal in a rigid tapping cycle, and in a threading cycle you always use the index going the same direction
old encoder on lathe had exstended mark pulse , when we got a replacement we asked them for extended version but never got it so screw cutting is limited to few hundred rpm
does anyone know the preferred modeling program to build cars for CFD?
solidworks is horrible for the purpose
is CFD like FEA?
it's fea for fluids
ok, Complex Fluid Dynamics?
computational fluid dynamics.
thinking about liquid cars?
no, thinking about modeling the airflow around cars
it seems that something like SW would just be used as a UI so you could export to IGES or something like that
CATIA seems pretty capable of it
solidworks just generates the model
which you put through another meshing program, and then run a solver on the mesh to get some pretty graphics and numbers out of it
the problem is solidworks is not very good
not very good at what?
modeling things for CFD
I suppose the sketch-based approach may not be best suited to big curvy shells like cars
well, it's the whole program
the lofting/etc doesn't have the same capability of the more high end programs like pro/e and catia
i just don't know a "better" direction to go without guessing haphazardly
then I suggest a program like Pro/e or Catia
"without guessing haphazardly" =)
SW is capable of making models of things like cars, so it boils down to whichever user interface you or your CAD folks prefer
even the producers of solidworks admit solidworks isn't good enough to do cars.
it's similar to word processors - any of the big CAD programs are likely to be able to model your part, it's a question of what the steps are to convince them to do so
you can make something that looks like a car, but you can't modify the geometry in a meaningful way.
I imagine the assemblies would be about 37GB, but ... ;)
like i said, solidworks lacks the ability to define the surfaces
SW is a bit like Word with regards to file size
hmm. I thought I had seen models of a car or motorcycle on the SW site
what do you mean sw lacks the ability to define the surfaces?
maybe I'm thinking of something else
yeah, but that's a pure "design" thing, and it takes years to do
bigjohnt: modify the surfaces in a aerodynamically meaningful way
as in automagically?
as in, you can make something that looks like a wing
but you cannot make it preform like a wing
because you don't have the ability to control the definition of the solid in a way that allows you to have precice control over it
you can just do bulk deforms/freehand stuff
as in aerodynamic testing?
it is not designed for that I suppose
i think ur getting down to CAD packages deisgn to do a task and a task at hand, i would say SW is more mechanical package, than a all design and analize it
right, i've established that
the original question is what package IS the best at doing that
mechanical and assemblies are the strong suite of sw
not "can solidworks do it"
catia keeps coming up
and some other 3d animation packages can apparently handle that kind of geometry
you might have to nose around in the aero community...
blender can probably generate the models, but I don't know how much longer it would take than modeling it manually
just so you know I use sw every day
(out of marble, with a chisel)
blender was actually mentioned
I think blender is pretty non-numerical
apparently it's easier in blender/maya/etc because they're used to handling really complicated geometry
how about CATIA that was made to design aircraft, french cad system started as
ie, "deform this a little more, like I'd do with clay"
[23:58:27] <robh> http://en.wikipedia.org/wiki/CATIA
robh: yes, that's one of the ones that is frequently mentioned
and probably is the thing to use
blender and the like won't allow you to go back and edit later though, like a parametric modeler will
(you can edit, but not e.g. change a base dimension and have the later features change based on the new value)
kinda defeats the purpose