*robin_sz prods picnet bah *robin_sz has already started thinking about his next product CNC plasma cutters produce 3 things ... parts scrap dust parts and scrap are easy to deal with dust is the biggy though ... so, its filter time :) ... I'm not so sure how to approach this though ... cyclone first or metal mesh pre-filter then conventional pleated filters and finally an electrostic filter ... plasma dust will be real fine, Im not sure a cylone will drop enough out Woo! pretty quiet this morning Yea, I keep thinking it died. Then it did at least once. cradek: are you here? *paul_c prods the assembled masses... not very ""assembled"" I guess *paul_c is reading some of the logs from the 10th. yesterday? was pretty quiet, I thought a bit of crap about what GPL does for a project... oh.. the 10th was friday... didn't see that, can you send me a copy? most of it was idle chat from the usual faces. jmkasunich: http://81.100.211.99 Dec-10.log thanks *jmkasunich skims for the good stuff BTW... We have someone working on a ""dual screw/servo"" at the realtime code level. you mean martin? Nope. who? ISW 'oosat? reading the log... I must say in part I agree with robin... certainl critical bits should be LGPL, IMO jmkasunich: yes jmkasunich: but not for long in a mail on Fri or Sat you wrote: EMC2 does not update motion.traj.position when jogging and this causes AXIS to behave differently during jogs right I was trying to hunt that down can't seem to find it - I don't know the user space side too well so it's a bug? dunno yet someone (I forget who) told me it was on purpose but GPL does not mean having to hand your competetors the code. maybe it was, maybe it wasn't... I can't even find the darned structure right now is it emcStatus->motion.traj.position? ummmm jogs _do_ update with tkemc, so emc2 is updating whatever tkemc uses to drive the display AXIS must be using something else yes, that is probably actual_position to be honest, tracing stuff thru the maze of C++ once it enters user space is beyond me the motion controller updates fields in the emcmotStatus struct how they get to the emcStatus struct is somewhat of a mystery emcmotStatus is the RT/user comms struct, in shared memory err, actualPosition it an EMC_STAT object call it status source file? emc.hh line 2893 it contains EMC_MOTION_STAT motion and EMC_IO_STAT io I am talking about status.motion.traj.position and status.motion.traj.actualPosition still looking for it my understanding is this: traj.position is the requested ideal position, and traj.actualPosition is where the machine actually is (this is the one that shows jitter) (I was looking in emc2/.../emc.hh, now trying emc1 oops yeah my tree is emc1 can you ask tkemc to display the commanded instead of actual position? class EMC_STAT is what you are talking about? yes *jmkasunich starts up emc 2 see inside it there is a EMC_MOTION_STAT hmmm... commanded doesn't change during jogs aha!! what I'm trying to do is trace that backwards, back into kernel space (where I actually understand what is going on) and where most of the changes are located I'm glad you can reproduce it without axis the code at emc.hh:2893 is complete gibberish to me - I don't speak C++ I have a suspicion about what is going on think of them as structs emc2 does _not_ use the ""trajectory planner"" for jogs (or any other ""free mode"" motion) the EMC_STAT struct contains an EMC_MOTION_STAT struct where are these structs defined? right there where it says class EMC_STAT pretend ""class"" says ""struct"" ok, so EMC_STAT contains a TASK_STAT, MOTION_STAT, IO_STAT, and some logging ints... right *jmkasunich looks for the definition of MOTION_STAT extern.... where? line 1856 class EMC_MOTION_STAT got it... that contains a TRAJ_STAT and several AXIS_STAT, plus int debug and class EMC_TRAJ_STAT is line 1732 right it contains EmcPose position that actually contains something real (as opposed to nested defs) ""current commanded position"" haha here is where I did something that IMO simplified the motion controller, but is causing you greif TRAJ is the _coordinated_ mode planner in ""free"" mode (""manual"" for the GUI), the coord mode planner is completely unused so of course the traj structures don't get updated - because the traj planner isn't planning anything but motion.traj.actualPosition *does* get updated otherwise the numbers wouldn't change in the gui we need to map these struct members to members of emcmotStatus (as defined in emc2/src/motion/motion.h) emcmotStatus is the feedback from realtime code I don't know what code copies from emcmotStatus to emcStatus (I think in emc2 it is either usermotintf.c, or taskintf.c) so maybe just another copy is needed? dunno yet arg, I have to run dammit I _hate_ C++ me too, and I think even C++ programmers hate it (I am NOT one) I grepped for ""actualPosition"" but can't find where it is copied from the shared memory structure (emcmotStatus) line 2770 of emc.cc? actually 2788 is the line that _might_ be doing the copy, 2770 is the function it is in * Automatically generated by NML CodeGen Java Applet. whee, java generating c++ right WTF is CMS anyway NEFS Communication Management System so is the function at emc.cc:2770 the one that copies actualPosition from emcmotStatus to emcStatus? damned if I can figure it out I *think* so but where is it copying _from_? (I think &actualPosition is where it is copying _to_) jmkasunich: Which version you looking at ? emc1 EMC_TRAJ_STAT::update(*cms) ? yes line 2788 seems to be the line that updates actualPosition, 2787 updates position That function (and all the others in emc.cc) are purely for NML messaging. well isn't NML messaging how information gets to a GUI? i.e. any data listed is copied to NML buffers that EMC can not access directly. *jmkasunich must be thickheaded code in the GUI displays position code in emcmot sets position how does it get from A to B what field in emcmotStatus (shmem) eventually appears on the display I'll be damned if I can trace it At it's most basic level... NML just copies structFoo from A to B exact same structure layout in both places? It cares not what the data is, or how it is arranged. but I know for a fact that the struct used by the GUI isn't the same as the shmem struct the shmem one is defined at lines 340-394 of emc1/src/emcmot/emcmot.h it has fields oops it has fields ""EmcPose pos;"" and ""EmcPos actualPos"" which I _think_ eventually become emcStatus->motion.traj.position, and emcStatus->motion.traj.actualPosition but it's not a one-to-one structure copy hmmm... I think the emc2 counterparts are: EmcPose pos; --> EmcPos carte_pos_cmd; /* commanded Cartesean position */ EmcPose actualPos; --> EmcPos carte_pos_fb; /* actual Cartesean position */ in emc2/src/emc/tas/taskintf.cc:1299 they are both copied and the emc1 copies as are done at src/emctask/minimilltaskintf.cc:1471-3 yay, we found them ok, so now I know what fields in emcmot we're interested in open emc2/src/emc/motion/control.c emcTrajUpdate is copying data to an EMC_TRAJ_STAT object which happens to be the same object that the GUI accesses. ok.... that is a later point in the path taskintf copies from the shmem struct to a user space status struct... then the NML stuff moves it to another copy of the same struct for use bye the GUI (I think) the data structure is all in the EMC_TRAJ_STAT::update(*cms) class the key was discovering that carte_pos_cmd and carte_pos_fb are the fields displayed by the GUI as commanded and actual respectively cradek: emc2/src/emc/motion/control.c:1484 explains how carte_pos_cmd is generated (or should be... maybe I'm not updating it in free mode) *paul_c disappears for a bit. maybe cradek did too... I'm back now take a look at the comment block at emc2/src/emc/motion/control.c:1484 In free mode, it is either copied from actualPos, or generated by applying forward kins to (2) or (3). in AXIS it's important to have the jitter-free commanded position for updating the live plot so you can't just copy from actualPos (I think) I need to inspect the code more carefully the preferred approach would be to apply forward kins to 2 or 3 but for some machine geometries, there are no forward kins (or no closed form ones - they require iteration to converge on the right answer) for those machines, the ""copy from actual (7)"" would be used for the standard x,y,z machine, the kins should be used anyway, the code that needs checked is in get_pos_cmds... the old code is below the comment block, if 0'ed out well, I'm glad you understand this why does one count of jitter screw up your plot? when stationary, the live plot will add a segment every time it jitters I see (because it's reversing direction) I need to put in some calls to print_pose() to see if carte_pos_cmd is indeed not getting updated during jogs (sure looks that way) and if so, fix it cool would you mind submitting a bug tracker saying that? thanks for digging into this one sure, I'll do it now in tkemc is it called ""commanded position""? (the one that doesn't update) just ""commanded"" (there are 6 buttons in a row: relative machine actual commanded joint world at startup, relative, actual, and world are active if you change from world to joint, then the others are forced to machine and actual but in world, you can freely select between actual/comanded and relative/machine ok, done I have some errands to run soon, but I'll try to look into it later today great I might be around (but I doubt I'll be able to help you) s'ok... by getting it down to carte_pos_cmd, we've moved it into an area that I understand 'ello happy coders anybody home? sadly not quiet today the channel is deserted. I need another project for christmas ive been wiring my project today with Big Volts? yea , 180 vdc servo amps kewl how man amps are these beasts? low amps , peak is 10 amp each motor 1.8 kw well the motor are only rated to 120v so .. 2.2hp max 1.8hp peak then big enough though 1/3 hp each motor *robin_sz tries that again ... 120V * 10A 1200w ... 1200/746 = ? i have it running through a 1500 kva toroidal trnasformer to the servo power supply 1.6hp ive got more than enough power :-) yeah :) probably more than 1/3hp though ... you can get more than that out of a nema 34 stepper ive got it all going into a 30X36 enclosure ,if you have ever seen the inside of a Haas controller it is pretty much laid out the same way the only Haas stuff ive seen is the PSU on my laser and thats very neat the computer , the amps , transformer ,I/O boards , vfd and the computer all fit insdide but it is tight this is for your mill right? *robin_sz forgets whose building what these days i will be running a lathe and a mill from this controller (not at the same time) :-) coo running emc for the lathe? the lathe is a grizzlt 12X36 and I replaced the single phase motor with a 3 phase so i can have constant feed rates vfds are handy no i am not runing EMC at the moment , I am using a Galil motion card and Camsoft CNC right mach2 has some good stuff for lathe work the threading stuff is quite qorkable now from what I understand workable I would have liked to use MAch2 but I cant get over the fact that it still isnt a truley closed loop system shrug yea I know 90% of emc installs arent either I'd say most people end up using stppers, only about 10% use servos, from my random guess anyway I worked with a open loop stepepr mill at work , a old Bridgeport Series 2 , and we lost a bunch of parts it happens over the year due to loosing steps mainly in the Z axis, right? nah this machine has problems its all over the old bridgeports had a weakness in Z ... if the lube ran a bit low, it just stuck probably wouldnt have been a big deal with part loss but we are machining castings right bar stock no big deal just cut another servos are much better in almost all respects but, homebuilders usually do them stepper thing. back in 10, teatime well I got great deals on everything I have ,mainly all Ebay , probalby saved 50% cya damn ... I think I have the urge to buy a CNC lathe ... dont you just hate it when that happens? if you did, maybe you would put threading in emc nah I;d buy a working cnc lathe with a controller *robin_sz looks at a nice tasty Mazak ... *paul_c is away: making chips *paul_c is back hey paul Yo Mike Yo Ray. Hi Paul got the mount points in BDI-4 fixed... Good. Matt said that he had a problem installing on his older computers. How old ? What directory structure are you using for supermount? These were the boxes that they are shipping now. Not enabled supermount just yet... and what problems is Matt having ? Remember that box with the lcd on the side. That's the one. ye gads... Vintage hardware ! Thought you like that. *paul_c runs through an install with BDI-4.03 (on a 433MHz board) heys guys you're back... busy coding been neglecting irc which is nothing new =) asked a few non biased linux dev's about 2.6 got some interesting feedback There's a large amount of discussion on this right now. It's my take currently that the 2.4 kernel series is antiquated and a patch disaster. In order to get normal features that you would expect in a 2004 OS, and an advanced compile system, you must either patch the shit out of 2.4 (and probably make it unstable) or you can go with 2.6. Right now, no kernel devs want to maintain a stable kernel because ""it's boring."" So they are saying that the distributions should be responsible for a stable kernel. I think this is the worst idea ever. I believe that they will realize this in another month and force a kernel dev to maintain the stable branch. What's happening right now is that 2.6 is being maintained more like an unstable kernel branch, but that doesn't mean that it's not stable. Since 2.6.7, the VM has been worked on extensibly. I personally, have had a couple stability issues with 2.6.7. They are extremely rare: I'm running it on 12 machines, 2 crash once a month, the rest run perfectly. I believe the 2.6.10 kernel to be in excellent condition. The only reason I'm not using it is because the grsecurity patch is not available for that version. But you don't need that, right? Basically, I highly recommend the 2.6 kernel, and encourage you to use it. Are the realtime patches available for it? im going to get booted for that haha http://obstinate.org/t/linux.txt for those who don't like the sizing also the 2.6 FS is really really cool its about time that a x86 mainstream unix has REAL journaling Hi Mike. Thanks for that update on kernels. I ran SuSE a bit here with 2.6.7 and it crashed twice. my fedora core 2 server only crashed because the breakers went live bleh @ those bloated OS's though the only linux's that i would run ""off the iso"" would be like debian or slackware i would just assume do a linux from scratch gentoo is pretty cool too (basilcly an automated LFS) what boggles my mind is gentoo has no automated installer to keep the ""un-skilled"" people out tbl: you have to admit that it works ;D now, i am not exactly unskilled when it comes to linux / unix os's but i don't think i should have to read 50 pages of docs to get an os installed i will never install gentoo i have shells on boxes with it, and it seems neat I installed it once and it was tedious. I think it's for linux wankers with neon computers. I don't see any problem with binary packages and they are faster when I have to get on to doing actual work.