Back
[01:27:57] <CIA-6> 03alex_joni * 10emc2/src/ (configure.in configure): changed the default file checked to emc/motion/motion.c now that hal_intf is gone
[01:28:30] <CIA-6> 03alex_joni * 10emc2/scripts/emc.run: added classicladder to the list of processes to be taken down on emc exit
[01:29:41] <CIA-6> 03alex_joni * 10emc2/configs/step_cl.hal: added the classicladder GUI to be started automatically
[02:22:45] <Jymmm> * Jymmm pokes les_w
[02:48:11] <CIA-6> 03rumley * 10emc/src/rs274ngc_new/rs274ngc_pre.cc: (log message trimmed)
[02:48:12] <CIA-6> Several clean-up changes from this past summer
[02:48:12] <CIA-6> 1. Revert G10 code back to a distilled version of the original.
[02:48:12] <CIA-6> The change reverts G10 back to take absolute (same as used for G53 command) coordinate system values. G10 values are placed directly into a given coordinate system offset.
[02:48:12] <CIA-6> 2. Split out G92 P<x> to its own function. Use G92 P<x> X Y Z to set coordinate systems G54-G59.3 directly to the entered value. This may be the functional equivalent G52 on some newer CNC machines.
[02:48:14] <CIA-6> i.e. G92 P1 X1 Y2 Z3 sets the G54 coordinate system offsets so that current position is X1 Y2 Z3.
[02:48:15] <CIA-6> 3. Pulled out G54-G59.3 P2 modifier, as this can be set via the ini file option 'KEEP_G92_OFFSETS_AFTER_WCS_CHANGE'.
[02:48:30] <fenn> that's quite a log message
[02:52:29] <icee> yah, this is the crap that scares me with emc2
[02:54:08] <fenn> well... if you "keep the newbies/hobbyists off the development branches" then unfortunately there's nobody left at all
[02:57:19] <fenn> of course i have no idea why he did what he just did
[02:58:10] <fenn> and commits should be separated into individual changes
[02:58:33] <LawrenceG> emc2 is working great here.... better stepper action than emc1 ever was
[02:59:11] <LawrenceG> last job drilling and routing pcb was over an hour of runtime without a hitch
[02:59:33] <fenn> icee is talking about random people submitting changes to a supposedly stable branch and the user unsuspectingly running the new code without it being tested
[03:00:08] <cradek> this is why there's a cradek_stable branch of emc1
[03:00:23] <fenn> * fenn applauds cradek's efforts
[03:00:29] <icee> ;)
[03:00:39] <cradek> in my opinion, interpreter changes do not belong on the head of emc1
[03:01:13] <cradek> in emc2, fine, although I think people are starting to use it for production
[03:02:22] <fenn> i dont see any G54-G59.3 P2 modifier in the handbook.. what's he talking about?
[03:02:40] <cradek> I don't know
[03:04:18] <fenn> how do you read cvs logs without using the web interface?
[03:04:27] <cradek> cvs log
[03:04:32] <fenn> ah :)
[03:07:51] <fenn> anyone here know anything about APT?
[03:08:02] <fenn> not the package installer
[03:14:51] <jepler_> this thing?
http://claymore.engineer.gvsu.edu/~jackh/eod/mechtron/mechtron-580.html#pgfId-57950
[03:14:56] <jepler_> I don't know anything about it
[03:16:32] <jepler_> it looks like an interesting idea, but one that I ultimately feel is misguided.
[03:16:40] <jepler_> jepler_ is now known as jepler
[03:17:22] <jepler> It's better to actually use an existing HLL (one of the interpreted ones, like python, ruby, php, or perl) to output this kind of low-level code.
[03:18:29] <jepler> By inventing these not-quite-programming languages, you will create more development time for yourself, and ultimately have a less sophisticated language than the ones I mentioned
[03:19:00] <jepler> If I wanted to sell a product I might be attracted to something like APT because I could claim it wasn't programming; this might get me sales from people who "know" they can't program
[03:19:53] <Gene> Howdy folks, I finally got this figured out, haven't used IRC in a decade :(
[03:20:21] <jepler> hello
[03:20:44] <Gene> Glad to see someones around.
[03:21:37] <Gene> Have you been following the mailing list?
[03:21:43] <jepler> not really
[03:22:08] <Gene> Oh, then you wouldn't be fam with my current project.
[03:22:19] <jepler> nope. what is it?
[03:22:57] <Gene> Replacing the crappy Z axis screw in a micromill with a piece of Nooks 10 tpi half inch acme
[03:23:49] <Gene> ATM I'm carving the end of a new nut I just got today to mate with the nut holder I've already made.
[03:23:57] <jepler> I'd nearly talked myself into buying one of those sub-$500 mills and doing a CNC conversion, but I realized I didn't have the motivation (or skill, probably) to finish such a project.
[03:24:06] <jepler> I'm much more a software guy
[03:25:00] <Gene> But discovered that I'm not only going to have to get some ball nose mills, but figure out howto make the 1/4 circle I'm now cutting in the yz plane into about a 120 degree arc segment.
[03:25:44] <Gene> Chuckle, this micromill is the $300 model.
[03:26:47] <Gene> And the conversion is fun, but you'll also need a small lathe, mine is a 7x12 with bigger chucks.
[03:26:57] <fenn> jepler: the neat thing about APT is that it's already implemented, and the source code is public domain (but it's in fortran i think)
[03:27:11] <jepler> fenn: *choking noises*
[03:27:17] <fenn> and lots of old cnc people are familiar with it
[03:27:38] <Gene> Believe it or not, fortran is a foreign language to me, my roots are in assembly and C.
[03:28:23] <Gene> assembly on the 6x09, and C on it too, as used in the trs-80 Color Computers way back then.
[03:28:36] <jepler> I've never done fortran either
[03:28:55] <jepler> basic and 6502 assembler are my earliest experience
[03:29:01] <fenn> if i had to re-implement apt i would probably do it in python
[03:29:05] <Ephexis> http://www.core.org.cn/OCW_CN/Mechanical-Engineering/2-737Spring1999/Projects/detail/project97.htm
[03:29:06] <Gene> I'm a certified old fart at 71, an almost retired broadcast chief engineer.
[03:29:18] <Ephexis> EMC can controll this type of machine?
[03:29:57] <Gene> Yup, its doing it right now, to accuracy limited by the screws in this el-cheapo.
[03:30:06] <fenn> ephexis you might have to modify the puma kinematics, but yeah there's no reason why not
[03:30:25] <Gene> Using xylotek amps & motors, I made the mounts and couplings.
[03:30:50] <jepler> Gene: I think Ephexis means the machine in his URL, not your machine.
[03:30:57] <Gene> All (spit) steppers
[03:31:03] <Ephexis> the problem is the software to draw a line, for example
[03:31:15] <Gene> Yeah, two conversations here I think.
[03:31:15] <Ephexis> yes, in url
[03:31:30] <Jymmm> Gene: Well, you finally got off the mailing list, and into irc... I'll be damn =)
[03:31:43] <fenn> ephexis one problem i see is that there is a 'singularity' when the plotter crosses the origin
[03:32:19] <fenn> but they cleverly prevented that by putting a bolt there :)
[03:32:53] <Ephexis> where?
[03:33:04] <fenn> at the center of rotation of the platform with the piece of paper on it
[03:33:16] <Gene> Well, IRC and me parted ways way back when I was using an amiga, till now
[03:33:43] <Jymmm> Gene: LOL, go back to fixing relic transmitters instead =)
[03:33:51] <Gene> I'm looking at that url, a smith chart plotter? Neat!
[03:34:45] <Ephexis> hehehe
[03:35:16] <Gene> Hey, thats what I did last night, put a pair of 4cx250B's in the mod stage, didn't help that much, so put a pair of 4-100A's in the next stage, that woke her right up, making good power & sync waveforms now.
[03:35:40] <Gene> eeck, s/b 4-1000-A
[03:36:40] <Gene> I'm probably the only tv station in the country stil running an old, water cooled GE transmitter
[03:37:25] <Gene> Hard to beat it though, the final being in the socket is good for the first 25kw, its a 75kw rated tube!
[03:38:18] <Gene> So in terms of 'relic' guilty...
[03:39:19] <Gene> are either of you gcode experts?
[03:39:57] <cradek> Gene: where is this tv station you run?
[03:40:09] <Gene> Or should I define expert as someone more than 50 miles from home and carrying a briefcase?
[03:40:27] <Gene> North Central West (by God) Virginia
[03:40:35] <cradek> Gene: nobody claims to be an expert, but one or more of us might be able to answer a question
[03:41:13] <Gene> I'm physically in Weston, mile 99 on I-79, and the transmitter is about 3 miles north of me.
[03:41:26] <Gene> Hi Chris
[03:41:31] <cradek> hello
[03:42:03] <Gene> Lemme see if I can copy paste about 15 lines of code I need help with.
[03:43:03] <Gene> #1 = 0 (home positions)
[03:43:03] <Gene> #2 = 0.5100 (universal here)
[03:43:03] <Gene> #3 = 0 (will be X increment)
[03:43:03] <Gene> #4 = -0.5100 (inverse of #2)
[03:43:03] <Gene> #5 = 15 (FeedSpeed)
[03:43:03] <Gene> n0010 G40
[03:43:05] <Gene> (go to home in case not there)
[03:43:07] <Gene> n0020 G1 F#5 X#1 Z#1 Y#1
[03:43:09] <Gene> (place cutter at locus of 1/4 circle)
[03:43:11] <Gene> n0040 G1 Y#2
[03:43:13] <Gene> (cutter should be at Z0.0, Y+0.450 X wherever)
[03:43:15] <Gene> (now cut lower left quadrant)
[03:43:17] <Gene> n0050 G2 G19 F#5 Y#1 Z#4 J#4 (do cut)
[03:43:19] <Gene> n0070 #3 = [#3 + 0.050] (calculate new X now +0.050)
[03:43:21] <Gene> n0080 G1 F#5 X#3 Y#2 Z#1 (move X, Y to new cut)
[03:43:58] <Gene> What I need is for the Y to come a bit past the bottom of the 90 degrees, say to about 120 for the full path.
[03:44:04] <cradek> eee
[03:44:49] <fenn> gene i think you are making things too complicated on yourself
[03:45:07] <cradek> the vars make it harder for us humans to read, that's for sure
[03:45:16] <Gene> Is it that bad Chris?
[03:45:38] <Gene> But they make writing 100 loops of the above a piece of cake.'
[03:45:39] <cradek> so you want the g2 to cut further on the same circle?
[03:45:46] <Gene> Yes.
[03:46:24] <cradek> you just change the Y and Z on the G2 line then
[03:46:34] <cradek> maybe I don't understand the question
[03:47:11] <fenn> x=tan(30)*r
[03:47:26] <fenn> y= (thinks for a second)
[03:47:26] <Gene> It places the bit at the back of the piece, then descends to exactly the bottom while comeing toward me in the Y plane.
[03:47:48] <fenn> er sorry y=tan(30)*r
[03:47:59] <fenn> times -1
[03:48:24] <cradek> gene: are you asking for help with the gcode, or the trig, or something else?
[03:49:02] <Gene> The gcode, I need to extend the cut by another 30 degrees past the endpoint now.
[03:49:15] <fenn> heh i suck at doing trig in my head
[03:49:22] <cradek> you just specify the endpoint you want
[03:49:28] <cradek> it will be a point further along the circle
[03:49:44] <cradek> since the center and first point are the same, the i/j/k don't change
[03:50:08] <Gene> Then I can basicly set another of those #number vars and use it for the endpoint Y?
[03:50:31] <cradek> sure, you could
[03:50:59] <Gene> Right, the J gets adjusted for the final size when the ball mills get here.
[03:51:01] <cradek> the Z will be higher too
[03:51:33] <Gene> I did some carving with the end mill today, but stopped short of fial size by about 1/4"
[03:52:05] <fenn> ok pencil and paper to the rescue - z=-1*cos(30)*r, y= -1*sin(30)*r
[03:52:12] <fenn> that's for the endpoints
[03:52:52] <fenn> since you want to go another 30 degrees into the negative y/z quadrant going clockwise right?
[03:53:26] <Gene> I did this on graph paper yesterday to get a general idea, but didn't realise till the nut forging got here today that it was more than the #2 or #4 numbers thick, thicker by about another .120"
[03:53:47] <Gene> Yes Fenn
[03:54:53] <Gene> Its currently cutting from the 3 oclock postiion to the 6 oclock position as viewed from the right end of the table, and I want it to go aon around to about 7:30 or 8ish.
[03:55:37] <Gene> aon=typu :)
[03:55:40] <fenn> Gene: take pictures when you're done so we know wtf you were doing
[03:56:00] <Gene> Does the mailing list accept attachments?
[03:56:03] <fenn> no
[03:56:27] <Gene> eck, and I've never bothered to setup a web page at vz
[03:56:55] <fenn> personally i would just bolt and glue on a block of delrin with threads cut into it
[03:57:25] <Gene> They also have memory usage limits, so a bunch of pix from my camera would eat that quickly.
[03:58:15] <Gene> Having some experience with delrin stuff in transmitters, I'd druther build it to outlast me
[04:00:02] <Gene> Besides, those pricey Nook acme bolts and nut are just plain pretty. I've probably got a kilo in this thing right now.
[04:01:15] <fenn> yeesh
[04:01:46] <Jymmm> Gene: Free photo sharing --->
http://www.flickr.com/
[04:01:58] <fenn> i got 3 foot long brand new acme leadscrews w/nuts for $5 each at the retrofest
[04:02:06] <Gene> Its only money, and I have a very frugal missus
[04:03:04] <Gene> And I should thank Gid she is too. Had her for 16 years now, I think I'll keep her till??
[04:03:24] <Gene> Gid/God
[04:04:01] <Gene> Besides, where is this retrofest?
[04:04:45] <fenn> Ephexis: look in puma50kins.c, there's a line that looks like "double PUMA560_A2 = 300.0;" that's the length of the arm.. i bet if you fool around with those you can make it into something like that plotter
[04:05:26] <fenn> the retrofest was at a machine shop in the middle of nowhere near galesburg, IL
[04:05:44] <fenn> http://cnc-workshop.com/
[04:06:26] <Gene> Ummm, 600 miles from me (approx), driving WV cadillac, aka 99 GMC 3 door king cab 4wd.
[04:06:37] <fenn> http://fenn.freeshell.org/retrofest/dcp_0384.jpg
[04:07:15] <fenn> i got 15 of em :)
[04:07:27] <fenn> my car was bottoming out on the way back home
[04:08:31] <Gene> Kewl!
[04:09:16] <Gene> But that wouldn't bother my jimmy :)
[04:10:40] <fenn> heh this is my car only half full
http://neme-s.org/CNC_Workshop/CNC_Workshop_25.htm
[04:11:00] <Ephexis> fenn, so EMC finds the points of a straight line, and angles for the steppers?
[04:11:59] <fenn> right
[04:12:14] <fenn> you can also manually move the motors around
[04:12:15] <Gene> Going back and looking at that code, if I make a #7=..300, and use that in line n0050 for the Y?
[04:12:38] <Gene> will that get the extra motion I need?
[04:13:16] <fenn> um, #7?
[04:13:25] <Gene> Now I see why the car was sagging :)
[04:13:47] <fenn> my advice: ditch all the variable except #3
[04:13:48] <Gene> Yes, and set it equal to about 0.300
[04:15:20] <Gene> Well, I agree its hard to read, but when doing th cut & paste repeats since there is no subroutine ability, the # vars make global adjustments a piece if cake.
[04:15:48] <cradek> when I want to do something nontrivial, I generate the g-code with a higher level language
[04:16:03] <fenn> aye
[04:16:12] <cradek> writing g-code by hand sucks (and subroutines wouldn't make it not suck)
[04:16:21] <Gene> Is there a freeware translator?
[04:16:36] <fenn> he means write a script that writes the gcode for you
[04:16:38] <cradek> there are lots of free high level languages
[04:17:05] <cradek> the general idea is to write a program that outputs g-code on stdout for redirection into a file
[04:17:20] <cradek> any language you like can print formatted strings on stdout.
[04:17:22] <Gene> I agree, but if I'm to learn the language, I should "learn the language", not always trivial as the years on the grey matter pile up...
[04:17:51] <cradek> do you know any programming language?
[04:18:33] <Gene> C, assembly on the 6809/z80/1802, bash
[04:18:36] <cradek> even line numbered basic is better than g code.
[04:19:00] <cradek> C is the only one of those that will comfortably do trig...
[04:19:23] <cradek> Did you do much on the 1802? That's a peculiar beast.
[04:19:37] <cradek> did you build an Elf?
[04:20:02] <Gene> That sucks dead toads thru soda straws, I've used good basic, like basic09. It has line numbers, but almost as an afterthough to make it look like other basics
[04:21:02] <Gene> Build an elf, yes, and made it into a tape generation saver at KRCR in Redding CA when I was the ACE ther from 78-90
[04:21:25] <cradek> http://incolor.inetnebr.com/bill_r/computer_simulators.htm
[04:21:49] <Gene> I loved the 1802, Weird maybe, but once you got a handle on it it was a great processor.
[04:21:51] <cradek> it runs on windows, unfortunately, but this is a cosmac elf simulator bill_r and I wrote
[04:22:36] <cradek> I never wrote anything nontrivial on it, but I did enough to notice how peculiar it is with all those program counters
[04:23:08] <Gene> The other oddball in the cpu architecture arena was the TI-9900, all registers were memory locations, and toi switch contexts, you simple reloaded the register pointer.
[04:23:10] <cradek> I've written lots for the Fairchild F8, which is possibly stranger still
[04:24:11] <Gene> Yes, I was never able to get a good handle on that one though, the only thing that used it was made my microtime & they had more lawyers than engineers....
[04:24:25] <cradek> http://timeguy.com/cradek/clocks
[04:24:35] <cradek> near the bottom of this page is my favorite F8 project
[04:24:49] <cradek> WWVB receiver/clock
[04:25:03] <Gene> The Z-80 was the bastard IMO, with its very limited range conditional jumps.
[04:25:24] <cradek> yeah, F8 has that too, branches have only one byte offset
[04:25:35] <cradek> you have to branch to a full jump if you want to go farther
[04:27:33] <Gene> Chuckle, neat clock, but whats so fancy about leap year? Its a well known formula, even published in the K&R C reference manuals.
[04:28:07] <cradek> let's see you get from "day 312" to month/date using only 8-bit math
[04:28:15] <cradek> in asm
[04:28:21] <cradek> on the F8
[04:28:37] <cradek> :-P
[04:29:16] <Gene> I've done it, but the code is on a machine in the basement with no way to get it up here, no network & differing floppy formats
[04:29:49] <cradek> well, it's not magic, but if your code takes four years to test, it's a nice surprise to find that it's right on the first try
[04:29:56] <cradek> hence the story
[04:30:10] <Gene> I should say get it up here quickly.
[04:30:13] <Ephexis> fenn, hey.. where is puma50kins.c?
[04:31:01] <Ephexis> ./emc/src/emcmot/puma560kins.c
[04:31:02] <Gene> Well the leap year stuff does tend to fubar those who don't take the long view, even the K&R does go past the 400 year cycle.
[04:31:13] <fenn> yup
[04:32:04] <fenn> Ephexis: i havent used any weird kinematics yet, so i dunno how to specify which kinematics to use in the .ini file
[04:32:15] <Gene> Theres an article in this months discover rag on the Long Now clock, and it does even the pole wobbles in 10,000 years
[04:32:54] <Gene> Gah, typu above does -> doesn't
[04:33:53] <Gene> In the line re the K&R does=doesn't
[04:34:46] <cradek> I wonder how the upcoming leap second shows up in the WWVB signal
[04:35:34] <Gene> Its getting sleepy out around here, and I've had my regulation 2 beers for the night (I'm diabetic) so I think I'm gonna hit the hay.
[04:35:49] <cradek> I should too
[04:36:05] <cradek> I always stay up too late on the weekends and then monday is worse than usual
[04:36:26] <Gene> I believe they skip the pulse, but don't make me lay a hand on the good book about that.
[04:36:45] <Ephexis> http://www.mae.ufl.edu/~dixon/images/research/puma_560.jpg cool.. robot arm
[04:36:48] <Gene> I was listening once and though I heard a skip.
[04:37:02] <cradek> we haven't had one for years
[04:37:30] <Ephexis> fenn, first i want to understand how to find the points
[04:37:56] <fenn> scara is similar to puma, but the joints are rotated 90 degrees
[04:38:06] <Gene> Thats a cool arm, intended for factory floor stuff?
[04:38:07] <fenn> so scara might be more similar to what you are doing
[04:39:02] <Gene> Goodnight guys, thanks
[04:42:11] <fenn> hmm i wonder why more hobby cnc machines don't follow the scara/puma model
[04:42:24] <fenn> seems much easier to build than a crazy gantry hoohah
[04:42:38] <Ephexis> that plotter is very simple
[04:42:42] <fenn> yeah
[04:42:49] <Ephexis> but is very hard to draw on it
[04:42:50] <Ephexis> heheh
[04:42:56] <fenn> why do you say that?
[04:43:15] <Ephexis> its all angular
[04:43:21] <Ephexis> not linear
[04:43:32] <fenn> * fenn blinks
[04:44:05] <Ephexis> ?
[04:44:30] <fenn> did you build that machine?
[04:44:47] <Ephexis> not yet
[04:45:48] <fenn> well, luckily there are now free circuit schematics for controlling steppers from a pc parallel port
[04:46:51] <fenn> and converting from rotary to cartesian doesn't seem too difficult to code
[04:47:00] <Ephexis> the circuit is very simple, just a transistor/fet/mosfet do switch
[04:47:03] <fenn> but the code's already there, so you just have to build it
[04:47:52] <fenn> if you have to put out 4 signals for each motor you run out of pins pretty fast
[04:48:00] <fenn> it's doable though
[04:49:09] <Ephexis> yeah, but this use 2 motors
[04:49:31] <Ephexis> 4 motors need STEP/DIR
[04:49:37] <fenn> * fenn wants to make a scara robot now
[04:49:52] <Ephexis> hey, EMC only works with step/dir?
[04:50:01] <fenn> um.. i dont remember
[04:50:14] <cradek> nah
[04:50:20] <cradek> step/dir, phase, quadrature
[04:50:36] <Ephexis> hmm right
[04:51:15] <fenn> cradek do you need much rigidity for milling circuit boards?
[04:51:26] <Ephexis> i will build 2 phasedrivers with BC337 and 4n35
[04:51:38] <Ephexis> or TIPs.. the motor is only 0,6A
[04:51:43] <cradek> fenn: you need exact repeatability and no backlash
[04:51:54] <fenn> cool then a scara is perfect
[04:52:00] <cradek> fenn: threre is virtually no cutting force if that's what you're asking
[04:52:16] <cradek> the tool is .010 dia!
[04:53:19] <LawrenceG> hey Chris... routed my first pcb... it actually works... not the the most beautiful thing to look at
[04:53:32] <cradek> cool!
[04:53:39] <cradek> thru-hole?
[04:54:04] <LawrenceG> built a programmer for the dspic chips... yea about 177 holes if I remember right
[04:54:12] <LawrenceG> 3x3"
[04:54:31] <cradek> sure is nice to not have to drill by hand, isn't it
[04:54:45] <cradek> that's a mind-numbing task if ever there was one
[04:54:56] <LawrenceG> also a test board for the chips.... I have one programmed with a flashing led program...
[04:55:22] <LawrenceG> yea drilling is cool to watch on the machine... not one drill broken
[04:56:36] <LawrenceG> I want sure which would work best... drill then route or route then drill.... I drilled first... lost a couple of pads, but it didnt matter
[04:57:02] <cradek> I've tried it both ways - doesn't seem to matter
[04:57:25] <cradek> usually drilling is first but that's because it's necessary for thru-hole plating
[04:57:33] <cradek> currently I route then drill
[04:57:41] <LawrenceG> the cutter I used was UGLY... a broken PCB drill hand sharpened with a diamond burr that was much too coarse
[04:57:51] <cradek> ah
[04:58:19] <LawrenceG> lots of runout!... path was a littlewider than expected
[04:58:30] <cradek> yep, that'll do it
[04:59:06] <Ephexis> i need go to sleep.. 3AM now
[04:59:14] <cradek> goodnight all
[04:59:19] <Ephexis> thanks fenn !
[04:59:30] <fenn> nighty nite
[04:59:31] <LawrenceG> I have a nice diamond disk for sharpening, but I need to get it mounted on a spindle
[04:59:43] <LawrenceG> good night all
[04:59:56] <LawrenceG> 9pm here
[05:00:04] <cradek> 23:00 = bedtime
[05:31:13] <CIA-6> 03paul_c * 10emc2-auto/wiki/ (20 files in 16 dirs): "Auto update wiki from a cron job. Sun Nov 6 05:30:01 GMT 2005 "
[08:29:32] <fenn> * fenn turns a bored eye to the exploding transformer..
[08:29:57] <fenn> must be past my bedtime
[16:10:30] <alex_joni> logger_aj: you are truly a stupid logger
[16:10:30] <alex_joni> I'm logging. I don't understand 'you are truly a stupid logger', alex_joni. Try /msg logger_aj help
[16:11:09] <rayh> As I see it, and I'm no coder at this level.
[16:11:22] <lerman_> Well, I took a brief look at the existing emc2 interpreter. It is essentially the same as the old one except broken into parts. I would diff the old emc against the one with my changes and merge that into the new. It should not be a big deal -- a few days work to do it.
[16:12:04] <alex_joni> lerman_: if you do, please use a branch
[16:12:05] <rayh> And that would make your changes compatable with what is there?
[16:13:14] <rayh> Right.
[16:13:28] <rayh> And then we could do the same with Keith?
[16:13:53] <lerman_> I consider the changes I made to be one feature, although it could be broken into a few features. For instance, there is the addition of logical EQ, NE, GT, LT, LE, GE operations. Then, the control features. And last, subroutines. But Isuspect that subroutines and control flow should be the same hunk because they both add new "keywords".
[16:16:02] <lerman_> To do the work, I'd need to put emc2 on a box (I might want a new computer), or at least the capability to run emc2 in simulator mode without the RT and motion stuff so I could run it as a user on an existing box.
[16:16:02] <rayh> lerman_: Do your features cause fundamental changes to the way the "old" interpreter works?
[16:16:49] <alex_joni> lerman_: emc2 doesn't run as sim yet
[16:17:59] <lerman_> There are NO fundamental changes. Although one version of the interpreter had support for 'O' words which I think was an alias for 'N' words. I've taken over the meaning of 'O' words to be used to define 'labels'. Other than that, there are no changes that would affect how existing gcode works. If you don't use the new features, you don't see them.
[16:18:03] <rayh> Will we have any issues if Ken develops for emc2 on an extended rc46?
[16:18:14] <les_w> ken, can I use the new interpreter with emc1?
[16:19:32] <alex_joni> les_w: probably need to recompile
[16:19:42] <alex_joni> rayh: added branches for emc2 to the wiki page
[16:20:06] <lerman_> What do you mean by "new interpreter"? The one with the subroutine changes in it is part of emc1. I don't know if the emc2 interpreter we are talking about changing will compile in the emc1 environment.
[16:20:19] <rayh> Thanks, alex
[16:20:54] <les_w> just replace the rs274.cc source and compile?
[16:20:56] <alex_joni> les_w: to translate ken's reply. yes you can. it is in CVS under emc, you need to grab the latest and recompile
[16:21:18] <rayh> What are you running there les_w ?
[16:21:41] <les_w> ok. I am running emc1.
[16:22:04] <rayh> A BDI rc46, and BDI 2.20?
[16:22:39] <les_w> 2.20 I think. Paul put it on this spring.
[16:23:33] <SWPadnos> Wasn't that a BDI 4.xx this spring?
[16:24:10] <alex_joni> SWPadnos: no, paul was at les's place this spring, and installed a 2.20 probably (if les says that)
[16:24:15] <rayh> We need the answer to the command "cat /proc/version"
[16:24:33] <alex_joni> but he's running with a STG, so I wouldn't think BDI
[16:24:34] <les_w> I still have a rather old redhat system. We did not use bdi...just transferred source.
[16:24:38] <alex_joni> but he's running with a STG, so I wouldn't think BDI4.xx
[16:25:12] <SWPadnos> Paul went to Les's place directly after Fest, and I know that BDI4 was around then. I thought they did a clean install when testing the TP
[16:25:43] <SWPadnos> (see -you leave for a couple of months, and can't remember anything :) )
[16:26:00] <les_w> we could not mess much with the production box, but did pull the stg and run it in Pauls portable box for some stuff.
[16:26:10] <alex_joni> SWPadnos: I had to take care of code I haven't touched in a year last night...
[16:26:34] <SWPadnos> I'm sorry.
[16:27:26] <lerman_> Suppose I have a release on my machine -- can I tell what release it is by looking at it somewhere. cat /proc/version on my system gives: 2.4.25-adeos. That doesn't tell what BDI I have.
[16:28:33] <alex_joni> SWPadnos: don't be, what I was saying is that memory still has it all there, just need to dig harder
[16:28:45] <SWPadnos> heh
[16:28:49] <alex_joni> lerman_: you probably should know what you install
[16:28:59] <Jymmm> alex_joni: That's bs
[16:29:25] <alex_joni> Jymmm: you don't know what you install? if it involves a 700MB download?
[16:29:48] <Jymmm> alex_joni: I have like 3 or 4 different cd's sitting here. Upgraded from a to b then did I get to c or d ????
[16:29:53] <rayh> I don't see a stg driver in any of the 4xx stuff here.
[16:29:57] <lerman_> What I should know and do know are two different things. Yeah, I could dig it out, but that requires work.
[16:30:23] <alex_joni> rayh: that's why I said that I doubt that les is running 4.xx
[16:30:30] <rayh> Back in the old days, you could run a tickle script from tkemc
[16:30:41] <rayh> and it would tell you a whole bunch of stuff.
[16:30:52] <alex_joni> Jymmm: bet you know what OS you have installed..
[16:30:58] <rayh> versions for emc and kernel and who had done 'em
[16:31:00] <Jymmm> alex_joni: Ha!
[16:31:07] <les_w> mine is old. Paul did run the machine with the latest at that time from his box.
[16:31:16] <Jymmm> alex_joni: Could be RH or deb - nfc
[16:31:21] <alex_joni> Jymmm: if you don't, then I might have overappreciated you...
[16:31:54] <rayh> Wait just a minute here. We even have subversioning now.
[16:32:13] <rayh> There have been at least three kernel and 2 emc releases for BDI-4.30
[16:32:14] <SWPadnos> OK - that may be what I was remembering - the tests on the newer BDI
[16:32:16] <alex_joni> rayh: it's not really a problem to tell what every one is running
[16:32:16] <Jymmm> alex_joni: Versioning was talked about a couple months ago. But nothing implemented to tell the user what is actually installed
[16:32:46] <alex_joni> Jymmm: if you're talking about installed then only BDI4.xx
[16:32:54] <alex_joni> the rest don't install, they run-in place
[16:33:00] <les_w> Funny thing...one old box was a 200 Mhz k6. His was a 500 Mhz intel I think. The old K6 had faster servo update rates!
[16:33:14] <alex_joni> (talking about emc software now..)
[16:33:14] <SWPadnos> It's very hard, considering that a BDI4.2 install, which is then upgraded (via apt), will be mostly like a BDI 4.3 install (but not necessarily identical)
[16:33:45] <SWPadnos> Old chipsets (and CPUs) work better WRT latency. New chips are better for throughput.
[16:33:50] <rayh> yea, yea. What SWP said!
[16:33:52] <SWPadnos> (in general)
[16:34:18] <SWPadnos> If only I could run an AVR at 1 GHz
[16:34:34] <alex_joni> SWPadnos: you could.. but need lots of liquid nitrogen
[16:34:35] <lerman_> I just noticed that the source files don't even have 'ident' strings in them. So, you can't even look at a source file and see what version of the source you have.
[16:34:38] <SWPadnos> heh
[16:35:12] <SWPadnos> That's true of emc1, but changed in the BDI branch (and presumably in HEAD) of emc2
[16:35:22] <rayh> I seem to remember some sort of issue with ident strings and diff.
[16:35:38] <alex_joni> almost all emc2 files have a header
[16:35:44] <alex_joni> containing the revision
[16:35:50] <alex_joni> author and date
[16:35:58] <SWPadnos> using diff external to CVS will give you false positives on any of the CVS fields
[16:36:02] <alex_joni> no more is needed, rest is taken care by CVS
[16:36:19] <SWPadnos> using CVS diff should ignore those fields
[16:37:35] <alex_joni> rayh: what you remembered was me removing those nasty $log$ fields from the files
[16:37:44] <rayh> les_w: My suggestion is that you check out emc(1), put it in a directory by itself.
[16:37:51] <rayh> and try a compile.
[16:37:53] <lerman_> But ident strings are transferred into the object and executable. So you can look at a binary and see what it has.
[16:38:03] <alex_joni> rayh: remember he needs rcslib
[16:38:04] <rayh> alex_joni: Ah that was it.
[16:38:13] <rayh> Yes. he does.
[16:38:30] <alex_joni> rayh: I shudder when I look back at compiling emc
[16:38:44] <rayh> how does he use your ./configure there.
[16:38:47] <alex_joni> * alex_joni spent endless nights to do that
[16:38:49] <rayh> I've done it.
[16:38:57] <alex_joni> it's in rcslib/etc/ iirc
[16:39:08] <rayh> Okay.
[16:39:14] <alex_joni> then compile with PLAR=realtime and PLAT=nonrealtime
[16:39:32] <alex_joni> but this is from the back of my head (about a year ago, or more), so it might be bogus
[16:39:50] <rayh> emc can run from anyplace in the file structure.
[16:40:04] <rayh> So les does not need to clobber his running system to test the new.
[16:40:17] <alex_joni> rayh: I've compiled emc/rcslib too, quite a few times.. but it was hard for uninitiated
[16:40:21] <SWPadnos> the module install could be problematic though
[16:40:32] <SWPadnos> rayh, or were you talking about emc2?
[16:40:47] <alex_joni> module install? in emc1? don't remember that...
[16:40:51] <Jymmm> * Jymmm hands les a 2nd hdd and a copy of GHOST.
[16:40:53] <rayh> Not if it's emc or emc2 but not bdi-4xx
[16:41:14] <rayh> Hi paul.
[16:41:14] <SWPadnos> uh-oh - we're in trouble now
[16:41:16] <alex_joni> paul_c: glad you made it..
[16:41:25] <SWPadnos> Hi Paul
[16:42:41] <paul_c> wth is up with the mailing lists at the mo ?
[16:43:02] <rayh> BDI-4xx is the only system that installs modules to /lib/modules.
[16:43:13] <rayh> All of the other systems out there can be run in place.
[16:43:45] <SWPadnos> OK
[16:43:51] <rayh> So if les_w's system is based around an old redhat there is not need
[16:44:04] <rayh> to replace the good system to test another.
[16:44:49] <les_w> I have 4 or 5 running emcs installed
[16:45:10] <les_w> we did a lot of segmentqueue testing etc.
[16:45:20] <SWPadnos> out of curiosity, has anyone tried to use a VMWare or UML install for testing (obviously, it wouldn't actually be realtime)
[16:45:33] <rayh> Okay. Maybe you've already got one with ken's additional interpreter stuff?
[16:46:00] <rayh> How would he test that, Ken?
[16:46:15] <lerman_> So, I copied down emc2-20051103.tar.gz, and untarred it. Then I typed ./configure (silly me). And got an error: RT not found.
[16:47:06] <les_w> No, I don't have one with Ken's stuff. Would like to though. copy over only rs274.cc and compile in a different directory is what I would do.
[16:47:07] <lerman_> Try running some code with the new stuff. O111 if [1 eq 1]
[16:47:13] <SWPadnos> That's where my VMWare / UML question cones in - you can't even compile without RT, which is a real barrier for people adding to the code
[16:47:23] <lerman_> g1 x1y1z1
[16:47:35] <lerman_> O111 endif
[16:48:00] <lerman_> if the machine goes to 1,1,1 you have the new stuff. If the interpreter barfs, you don't.
[16:48:25] <rayh> That sounds like a good test. Barfing is a good test!
[16:48:51] <les_w> I'll look at that. I sure would like to use your subroutines. repeating code 81 times is nasty.
[16:49:02] <lerman_> Actually, its a rotten test because if you have the new stuff, the machine take off and you might not want to do that.
[16:49:25] <rayh> If we start a emc2 branch named ken-interp...
[16:49:44] <les_w> My machine is not a very good testbed for some stuff....it can get violent!
[16:49:45] <rayh> can other guys help you, Ken?
[16:49:46] <lerman_> les_w: I saw some of the code you posted with the variable assignments. That's just the way you should use this stuff.
[16:50:15] <les_w> ok
[16:51:02] <les_w> well the old code was a 9x4 array, because of the 9 fixture offsets. Now I have to fill up the table...using variables or g10
[16:52:32] <les_w> cam systems in general don't do arrays very well
[16:53:08] <lerman_> Well, as I "said" earlier, I hate to commit stuff because I don't like to break things. [Also, I'm not real familiar with CVS -- I come from an RCS world where someone 'owns' a module.] So, if someone could create a tarfile for me that I could untar, build, and run, I would then make the changes, build and run, and send back a tarfile with only the changed files (and appropriate descriptions of them). Then he could test the stuff an
[16:53:08] <lerman_> d commit it.
[16:53:57] <paul_c> lerman: With rumley messing up the interp, I don't think that is an issue any more.
[16:54:08] <lerman_> That doesn't solve my problem of how I would test it -- since there is apparently no working simulator.
[16:54:31] <paul_c> under emc2 ?
[16:55:48] <rayh> I believe that Keith Rumley offered to work toward a common interpreter in the email that I put on the wiki page.
[16:55:59] <les_w> I like the subroutines. Some of the other stuff I was not too crazy about.
[16:56:05] <lerman_> I suspect the answer is that I need to get a new machine to run emc2 on and connect it to my existing hardware. [That really sucks -- the fact that you need a milling machine to test this on.] Do Jon Elson's drivers work on EMC2?
[16:56:19] <SWPadnos> I think the bigger question is how does one develop / test EMC on a machine that doesn't have RT?
[16:56:35] <lerman_> les_w: what other stuff?
[16:56:44] <alex_joni> lerman_: you don't need a machine connected to run emc2
[16:56:45] <SWPadnos> lerman_, yes - there are working Pico drivers for emc2 (AFAIK)
[16:56:51] <rayh> Well now you do need rt but the parport is available
[16:56:53] <les_w> some of the g92 behavior
[16:57:00] <paul_c> zwelch claimed to have a sim built for emc2, but never saw anything committed.
[16:57:02] <alex_joni> lerman_: you need a RT patched kernel though
[16:57:08] <rayh> and you do not need any machine connected to a parport in order to test.
[16:57:27] <alex_joni> paul_c: lots of stuff being claimed lately.. but commits.. no, sir
[16:57:34] <lerman_> Can you use the same RT patched kernel that runs emc1? -- the same patches?
[16:57:43] <alex_joni> lerman_: of course
[16:57:49] <alex_joni> any BDI running emc1, can run emc2
[16:58:59] <alex_joni> without the need of disturbing the emc1 which runs there
[16:59:29] <lerman_> Man, if I were the manager of a company doing this stuff, there is no way in hell that emc2 would NOT have a simulator.
[16:59:58] <alex_joni> lerman_: code it up, and I'll presonally commit it
[17:00:01] <lerman_> But -- what the heck -- we'd all be getting paid big bucks :-)
[17:00:09] <dmess> especially since emc1 does..
[17:00:21] <lerman_> Yeah, that's what I meant.
[17:00:26] <alex_joni> I don't really see the benefit of a SIM...
[17:00:53] <dmess> sim with good i/o display is priceless
[17:01:00] <rayh> One problem with building a sim for emc2 is that all of HAL runs as kernel modules
[17:01:07] <lerman_> Well, I can look at a backplot and see if I'm cutting approximately what I think I'm cutting.
[17:01:13] <rayh> and they require the rtai stuff for them to work.
[17:01:15] <paul_c> a usr space sim has some advantages when debugging
[17:01:35] <alex_joni> lerman_: you can do that with RT even better, without switching the machine on..
[17:01:47] <lerman_> Sim could just be another hardware driver. As far as the rest of the system is concerned there is hardware there.
[17:01:51] <les_w> 1000 pounds of rapidly moving iron with 5 kW peak servos sure makes a poor testbed...
[17:02:00] <alex_joni> paul_c: I credit that, but not very usefull to 99% of the userbase
[17:02:09] <lerman_> alex_joni: how can I do that with RT without switching the machine on.
[17:02:18] <SWPadnos> but it would be useful to 87.5% of the developer base
[17:02:23] <SWPadnos> (possibly more)
[17:02:26] <Jymmm> les_w: But a GREAT log splitter
[17:02:28] <alex_joni> lerman_: doesn't your machine have a poweroff switch? (I mean the mill)
[17:02:30] <paul_c> lerman: That would have been true except for a couple of minor issues..
[17:02:34] <rayh> lerman_: You use a different run file or ini file.
[17:02:43] <alex_joni> SWPadnos: 87.5% of 5?
[17:02:45] <rayh> So that your signals go to an unused port
[17:02:57] <SWPadnos> (4 + one half-time :) )
[17:03:07] <SWPadnos> or is that 1/3 time?
[17:03:28] <alex_joni> ok..so you suggest spending 5 developers time to do work that would be usefull to 4 ;-)
[17:03:35] <rayh> The issue with running with power off is if you have estop configured to an external switch.
[17:03:36] <alex_joni> * alex_joni deliberately exagerates
[17:03:45] <lerman_> Ah... you configure your ini file so that it thinks it is running a stepper machine or other machine without feedback.
[17:04:00] <rayh> Exactly.
[17:04:04] <alex_joni> rayh: you surely know there are ways around it.. there is even a sim.ini in emc2
[17:04:07] <rayh> I do it all the time here.
[17:04:12] <lerman_> Turning power off would give an instant following error on a servo machine.
[17:04:30] <lerman_> rayh might have known that. lerman sure didn't.
[17:04:38] <SWPadnos> lerman_, are you thinking that you'd like to do development on a computer that isn't set up to run EMC (ie, no RT kernel)?
[17:04:51] <alex_joni> lerman_ probably didn't look at emc2 at all
[17:04:55] <rayh> Yep. Even emc.run in 2 will produce a working machine interface
[17:05:14] <lerman_> I was thinking that becasue I have lots of non RT machines around.
[17:05:35] <alex_joni> any running debian?
[17:05:46] <lerman_> lerman did look at emc2 -- that's how he (I) know that the interpreter is broken into lots of parts.
[17:05:59] <lerman_> I run fedora on most of my systems.
[17:06:05] <alex_joni> ok, then maybe not at the run part / ini files
[17:06:10] <SWPadnos> OK - that's what I'm thinking, too. I have 5 linux machines, and only one of them is meant to run EMC
[17:06:22] <rayh> One thing you have to do, if you try emc.run is make certain that you have NO printer connected to the default parport.
[17:06:44] <alex_joni> rayh: lol, gotta try that
[17:06:48] <Jymmm> rayh: well, you're no fun.... printing smoking!!!
[17:06:56] <rayh> You get some goofy results.
[17:07:05] <lerman_> alex_joni is correct -- If I can't build it, there is no need to look at the run part. Remember that I'm concentrating my efforts on the interpreter.
[17:07:26] <dmess> might work.... with the older stepper centronics connections
[17:07:39] <alex_joni> lerman_: if you really want, you probably can run the interpreter in a non-RT environment
[17:07:42] <lerman_> I did recently acquire an old laptap. Will it run on 256meg of memory or should I add a little.
[17:08:00] <alex_joni> test canon's and such
[17:08:03] <lerman_> alex_joni: how would I do that? How would I build it?
[17:08:19] <alex_joni> a developer with your background, surely knows how to write a Makefile
[17:08:34] <Jymmm> lerman: I have 256MB in my laptop
[17:08:49] <alex_joni> * alex_joni runs emc2 on 64MB
[17:09:00] <alex_joni> on a PII-233 (the only one I found with ISA)
[17:09:11] <lerman_> yeah -- I can make makefiles (but they all look the same). My concern was that there might be things in include files that require the RT stuff.
[17:09:27] <alex_joni> in the interp? no way
[17:09:43] <alex_joni> you could use the canon_stand_alone to test, probably
[17:10:42] <lerman_> Is that a probably or a possibly?
[17:11:02] <alex_joni> I know Matt did some tests a while back, and successfully ran an stand-alone interpreter based on emc2's code
[17:11:24] <alex_joni> lerman_: oh, I'd say it shouldn't be very complicated even
[17:11:30] <lerman_> So, that's a probably.
[17:11:42] <alex_joni> possibly
[17:12:02] <lerman_> Matt's probably a lot smarter than I am... :-)
[17:12:17] <dmess> whats the differance between potentially and realisticaaly
[17:13:14] <etla> anyone know if upload to the wiki works now ?
[17:13:26] <lerman_> I have the potential to make a million dollars, save the world, end poverty. But realistically, I'm a bag of mostly water and a few dollars worth of minerals.
[17:13:28] <alex_joni> lerman_: I would (but then again, this is just me) take canon_stand_alone.cc and driver.cc from emc1/src/rs274ngc/, and compile those together with the emc2 interpreter
[17:13:34] <rayh> didn't the last time I tried.
[17:13:41] <etla> rayh: ok...
[17:14:00] <rayh> If you ship me the images, I can put them in the dropbox or images directory at linuxcnc.
[17:14:07] <rayh> you can reference them from there.
[17:14:33] <etla> ok, I spen't two sessions now on some matlab code to generate double-jerk limited trajectories
[17:14:41] <lerman_> OK. I have my first assignment -- get a machine that will run emc2.
[17:14:52] <etla> when it's anything to show, I'll let you know
[17:15:22] <Jymmm> etla: flickr.com
[17:15:22] <SWPadnos> easy assignment - download BDI4.3x, and install to a partition on some computer.
[17:15:36] <SWPadnos> then follow the wiki for compiling emc on BDI
[17:15:46] <paul_c> If you have a BDI-Live install running..
[17:15:48] <etla> ok, gotta go, see you later all
[17:15:49] <lerman_> etla: how can we get copies of the paper (without buying them). Is it possible to put up some parts of it that might be relevant.
[17:15:57] <paul_c> You have a suitable system.
[17:16:37] <etla> lerman_: I guess I can distribute the pdf for educational purposes. start a thread on the email-list, inlcude your email, and ask nicely
[17:16:45] <lerman_> Yes. The notebook.
[17:16:56] <dmess> so bdi live... then compile emc2 in a stand alone directory??
[17:17:15] <alex_joni> dmess: any BDI, compile emc2 in a stand alone directory
[17:17:34] <dmess> cool i new there was a reason i did that...
[17:18:28] <alex_joni> did what?
[17:18:48] <dmess> was there a bdi 2.8x or similar with emc2 in it instead of emc1...
[17:19:11] <alex_joni> no BDI including emc2 so far
[17:19:22] <rayh> puppy has 2 only.
[17:20:01] <dmess> ok but it isnt listed as a bdi is it
[17:20:32] <rayh> Not at all.
[17:20:38] <lerman_> What is the status of puppy and emc? My understanding is that generating a BDI is a pain, but that generating a new puppy is easy. What is the downside of puppy and should we switch over to doing puppy releases?
[17:22:09] <rayh> The guy who is doing this is talking about a developer release.
[17:22:16] <alex_joni> lerman_: puppy is a nice toy, it's running emc2, but.. not very tested
[17:22:21] <rayh> This requires quite a few more packages.
[17:22:31] <alex_joni> last version released was/is borked for some PC's
[17:22:41] <SWPadnos> generic .debs (or the like) would be ideal, but that would likely be a nightmare (since the RT kernel and associated stuff would also have to be maintained)
[17:23:07] <rayh> puppy uses rpms or tarballs.
[17:23:25] <alex_joni> SWPadnos: .deb's are done for kernel & rtai (paul did them)
[17:23:30] <alex_joni> only emc2 is still missing
[17:23:43] <alex_joni> and I'm working on that, make install is almost finished
[17:24:02] <SWPadnos> Is there documentation on how to generate new ones?
[17:24:21] <alex_joni> not really
[17:24:35] <paul_c> create new debs ?
[17:25:08] <alex_joni> probably kernel&rtai debs I think.. ?
[17:25:56] <paul_c> dpkg-buildpackage
[17:26:40] <SWPadnos> What are the requirements for using dpkg-buildpackage? (.spec files or equivalent)
[17:27:07] <paul_c> a set of rules
[17:27:56] <SWPadnos> are the rules for EMC, RTkernel, and RTAI publically available? (are they on the BDI?)
[17:28:52] <paul_c> apt-get source <package name>
[17:29:30] <paul_c> check the <package-name>/debian directory - There you will find the rules.
[17:29:43] <SWPadnos> cool. thanks for the info.
[17:30:08] <alex_joni> likewise
[17:30:09] <paul_c> Just don't ask me for much help working up an emc2 package
[17:30:23] <rayh> What I'm hearing regarding the interpreter.
[17:30:34] <SWPadnos> funny - I was just about to mention something about that :)
[17:30:51] <rayh> is that we will create a branch in emc2
[17:30:55] <SWPadnos> I assume that there are numerous documents web-wide on how to create .debs in the first place
[17:30:59] <paul_c> There is little point in messing around with it while it suffers from fundimental flaws
[17:31:31] <rayh> in which ken and others can work to bring the new features into existing emc2 files?
[17:31:40] <SWPadnos> .deb, emc2, or the interpreter?
[17:31:47] <paul_c> emc2
[17:32:19] <rayh> interpreter
[17:32:39] <lerman_> paul_c: we (I) would like to have a list of the perceived fundamental emc2 flaws.
[17:34:31] <lerman_> And I think we need to transfer such a list to the Wiki for a couple of reasons. (1) we can debate them (2) we can keep track of them (3) the wiki can maintain a history so that the same thing doesn't get hashed over interminably.
[17:34:45] <paul_c> breaking the kernel code up in to masses of "shitty little modules" "just because we can" is wrong - It is wastefull of system resources for starters.
[17:35:27] <paul_c> Memory allocation for kernel modules is granular and is allocated in PAGE_SIZE blocks
[17:35:51] <paul_c> so a 1K module will occupy 4K on a i386 platform
[17:36:16] <paul_c> as for modules weighing in at 176K - Don't even go there.
[17:37:07] <alex_joni> paul_c: what source URI should I use for apt?
[17:37:35] <paul_c> for ?
[17:37:43] <alex_joni> apt-get source emc
[17:37:59] <paul_c> you have a line for emc debs ?
[17:38:08] <alex_joni> I have my mirror set up
[17:38:17] <alex_joni> but that's only sarge updates extras
[17:38:34] <paul_c> same uri - just use deb-src rather than deb
[17:39:14] <alex_joni> ok.. works like a charm, ty
[17:39:51] <paul_c> The most critical flaw of emc2 - The assumption that data is written atomically.
[17:40:11] <SWPadnos> how is that assumption wrong?
[17:41:10] <paul_c> A float requires several writes to memory - At any point, it can be pre-empted by a higher priority task
[17:41:43] <SWPadnos> Isn't a float a 32-bit quantity (as opposed to a double, which is 64 or 80 bits)?
[17:41:57] <paul_c> no
[17:42:38] <SWPadnos> Ah - that could be a problem
[17:42:47] <lerman_> Is that true? Isn't writing a float or even a double a single operation? If so, then single ops are NOT interruptable (with the exception of those that do block moves, etc.)
[17:42:49] <cradek> yes, a float is four bytes
[17:43:51] <alex_joni> paul_c: looking at emc-1.0/debian/control , not very much there (is that all to it?)
[17:44:12] <paul_c> gotta go.
[17:44:13] <SWPadnos> That's fixable anyway, using double-buffering of data larger than the machine word size
[17:44:21] <lerman_> I wouldn't be surprised though if there were places in the code that wrote multiple values to shared memory without using some type of lock but with the expectation that all were written at once.
[17:44:43] <cradek> well, that's one way to handle being wrong
[17:45:41] <lerman_> cradek: it isn't always necessary to say what you think. :-)
[17:46:05] <cradek> * cradek shrugs
[17:46:18] <rayh> Can someone who knows how to make a branch,
[17:46:37] <lerman_> Only god can make a tree.
[17:46:38] <rayh> do that and put a copy of the current emc2 interpreter files in there?
[17:46:40] <SWPadnos> JohnK and I discussed double-buffering at Fest, since there would eventually be a need for structs larget than 32 bits
[17:46:46] <rayh> Or is that the way we want to do this.
[17:47:00] <SWPadnos> larger
[17:47:27] <alex_joni> rayh: when you start a branch it contains all the code in the main tree
[17:47:30] <SWPadnos> It depends on who will be checking out the CVS tree
[17:47:44] <alex_joni> only if you start modifying code it will be different
[17:48:32] <rayh> So when Ken and company have finished and testing is complete.
[17:48:45] <lerman_> I'm going to take a current EMC2 tar file, make some changes to the interpreter, test them, and send the changed file to alex_joni (who seems to know what he is doing). At that time, he can make a branch and check the stuff in (I mean commit a change). See, I told you that I'm an RCS type of guy.
[17:48:46] <rayh> we would just merge back in the changed interpreter files?
[17:49:13] <alex_joni> not merge, first commit..
[17:49:21] <alex_joni> merge back to HEAD after it's proven to work
[17:49:30] <rayh> Okay. Then let me snip that and put it on the wiki page.
[17:49:40] <lerman_> See: I told you that alex_joni seems to know what he is doing.
[17:49:48] <rayh> noting that Alex wants small changes at a time.
[17:50:06] <rayh> I guess I was hoping that we could employ several folk to work on this all at the same time.
[17:50:12] <cradek> lerman_: don't you have cvs access?
[17:50:12] <lerman_> How many lines is a small change?
[17:50:14] <rayh> that is the advantage of CVS.
[17:51:20] <alex_joni> lerman_: certainly not more than 200
[17:51:34] <alex_joni> but the basic idea is to keep added functionality in a commit
[17:51:39] <lerman_> I don't have CVS write access (because I'm afraid of it). And I've forgotten most of what I learned about CVS from reading a one page tutorial, but I could relearn it. Yeah, I'll do that.
[17:51:42] <alex_joni> not add more than one feature at a time...
[17:51:58] <alex_joni> lerman_: don't be afraid to ask for commands
[17:52:02] <cradek> lerman_: any screwup can be fixed.
[17:52:06] <alex_joni> * alex_joni also looks up most of them
[17:52:22] <lerman_> Is there a requirement that each commit be tested before and work before it is committed?
[17:52:23] <cradek> lerman_: if you are a programmer, especially one who has used another revision control system, you can use cvs successfully with the man page "in hand"
[17:52:38] <lerman_> cradek: yes, I know.
[17:53:24] <cradek> I certainly have to use the man page for anything other than update/commit
[17:53:37] <lerman_> I would be surprised if the entire subroutine functionality took more than 200 lines.
[17:53:46] <alex_joni> yup, same here, especially for working with branches
[17:54:07] <SWPadnos> It's getting the sandbox created that's the hardest. After that, all you need is cvs up or cvs ci
[17:54:26] <alex_joni> lerman_: rumley's latest commit is 25kB
[17:54:57] <rayh> IMO if we call this a Ken branch, you can do any sort of commit you like and that works for your co-conspirators.
[17:55:01] <lerman_> So, if a line is 50 characters, it is 500 lines.
[17:55:01] <alex_joni> and the log message alone is almost a page
[17:55:03] <SWPadnos> There are graphical CVS clients as well, which can make updating groups of files and adding comments easier (cervisia comes to mind, and I think there's a Gnome one as well)
[17:55:41] <cradek> * cradek shivers
[17:55:44] <alex_joni> lerman_: from reading the commit log I see 4 parts done there (so I'd want 4 different commits for that)
[17:56:14] <rayh> * rayh remembers so early cervisia attempts with redhat 5
[17:56:29] <SWPadnos> they sucked.
[17:56:43] <cradek> that's right, a commit should not be a certain number of lines; it should be the changes related to one simple concept.
[17:56:44] <SWPadnos> I still had some problems with it around Fest time
[17:57:44] <alex_joni> what's cervisia good for?
[17:58:17] <SWPadnos> It's a gui front end for CVS. You can do things like multi-select files to update and that sort of thing.
[18:00:09] <alex_joni> oh.. ok, nm ;)
[18:00:36] <lerman_> Would the head poobah in charge of the CVS repository for emc2 kindly make me a developer? [Damn, I didn't want to do that. I had planned on avoiding responsibility for anything.}
[18:01:42] <lerman_> If I make the interpreter changes for emc2, does that mean I have to use it (emc2)
[18:01:55] <alex_joni> lerman_: if you tell us who that is
[18:01:55] <SWPadnos> * SWPadnos thinks that rayh has poobah status :)
[18:01:57] <alex_joni> * alex_joni has no clue
[18:02:13] <alex_joni> SWPadnos: not simple poobah, head poobah he said
[18:02:21] <SWPadnos> Ah - my bad
[18:02:28] <alex_joni> also in charge of the CVS repository for emc2
[18:02:52] <alex_joni> * alex_joni is also a simple poobah
[18:03:10] <alex_joni> a mortal one
[18:03:18] <SWPadnos> I'm just a poo
[18:03:28] <alex_joni> may I quote you on that?
[18:03:28] <SWPadnos> bah!
[18:03:32] <dmess> bah haha
[18:03:37] <SWPadnos> feel free - I don't take myself too seriously
[18:03:47] <alex_joni> "<SWPadnos> I'm just a poo"
[18:03:55] <alex_joni> ok.. assigned to F7
[18:04:04] <SWPadnos> thatk you - I've now been duly quoted.
[18:04:16] <alex_joni> now dare to say something.. competent ;)
[18:04:32] <SWPadnos> "I'm just a poo whose intentions are good. Oh lord, please don't let me be misunderstood"
[18:05:27] <Jymmm> SWPadnos: STEP AWAY FROM THE COUNTY MUSIC STATION!
[18:05:32] <Jymmm> country
[18:05:50] <SWPadnos> eeeewww - country. I may throw up now
[18:06:13] <SWPadnos> (the closest I get to country is parodies of country - Weird Al and Chris Wall come to mind)
[18:06:21] <dmess> we took the o outta country here... means something different now
[18:06:42] <SWPadnos> lose the R and you're really in trouble
[18:08:06] <rayh> there are a number of poobahs
[18:08:42] <SWPadnos> Eight of them, I'd say :)
[18:09:15] <rayh> lerman_: What's your sf handle?
[18:09:22] <SWPadnos> By the way, did anything ever come of the "developer intent" emails a while ago?
[18:10:03] <lerman_> rayh: sf == sourceforge? I think lerman.
[18:10:57] <rayh> I'll try and set you up now.
[18:11:00] <rayh> brb
[18:11:49] <lerman_> What were the developer intent emails?
[18:12:22] <SWPadnos> Matt sent out a sort of survey to the registered developers, asking what their plans WRT emc were
[18:12:39] <SWPadnos> so that they could cull the 54 developers down if people weren't interested any more
[18:13:09] <lerman_> Ah... I didn't get it because I wasn't a registered developer. I think I was smarter then than I am now.
[18:13:13] <rayh> Nada came of it.
[18:13:28] <SWPadnos> OK - just wondering.
[18:14:36] <rayh> If memory serves there were only a couple of bounces.
[18:14:57] <SWPadnos> I thought that several people responded that they just didn't have the time any more
[18:16:26] <rayh> We'll have to ask matt_bksoon when he is.
[18:16:55] <alex_joni> rayh: all replies are on the list
[18:17:10] <jblunzen> hmmm
[18:17:18] <alex_joni> jblunzen: what ?
[18:17:57] <jblunzen> alex_joni: who did you tell me wanted to talk to me ?
[18:18:24] <alex_joni> mshaver did I think, and fenn
[18:18:37] <alex_joni> but fenn seems away
[18:18:42] <SWPadnos> I think those responses are on the board list - I don't see them on emc-users or emc-developers.
[18:18:53] <alex_joni> SWPadnos: correct
[18:18:56] <jblunzen> alex_joni: ok, ic, i leave now
[18:18:58] <jblunzen> bye
[18:19:04] <alex_joni> later
[18:20:37] <alex_joni> hrmm.. SF is truly fscked.. cvs doesn't seem to work here
[18:20:54] <rayh> * rayh notes that lerman's add to cvs is dribbling up the phone wire toward the road.
[18:20:59] <alex_joni> does it work for anyone else?
[18:21:21] <SWPadnos> yes - I just checked out emc1, emc2, and BDI4 (around 1/2 hour ago)
[18:21:31] <alex_joni> 1/2 hour ago probably
[18:21:52] <alex_joni> just now it gives an ssh_exchange_identification: connection closed by remote host
[18:22:32] <rayh> lerman_: Permissions Updated we have liftoff.
[18:22:46] <SWPadnos> You're right - it's not working now
[18:22:48] <lerman_> Hey. I just found a machine to use. As part of my junk collection I discovered a 600 Mhz machine with 512 meg of ram and a 40 gig hard drive. We indeed have liftoff.
[18:23:03] <SWPadnos> d00d - that's some nice junk
[18:23:07] <rayh> BTW my first sf commit trashed the whole emc repository.
[18:23:07] <alex_joni> lerman_: sounds like a lot ;)
[18:23:14] <lerman_> * lerman_ is happy.
[18:23:21] <rayh> my second removed me from the sf system
[18:23:23] <alex_joni> rayh: don't give him bad ideas :)
[18:23:25] <SWPadnos> too bad CVS is borked right now :(
[18:23:47] <SWPadnos> cvs update -delete me --delete-all-others-too
[18:24:15] <rayh> I'm certain that I'm still in the top 10 screwups at SF.
[18:24:16] <dmess> http://www.telextreme.com/229233/
[18:24:59] <alex_joni> On 2005-10-08 at 05:00 Pacific, the project CVS services will be down for a period not to exceed 4 hours. This is in preparation to reduce the sync delay between developer an anonymous CVS services.
[18:25:09] <alex_joni> hrmm.. still 2 days away
[18:25:29] <alex_joni> As of 2005-11-01 at 10:00 Pacific, project's whose name begins with e, h, i or j will not have access to anonymous CVS, tarballs and ViewCVS. We are currently looking into this issue and hope to have it resolved soon.
[18:25:40] <alex_joni> oh... great ;) let's rename the project :))
[18:25:50] <SWPadnos> well - if only it had been called LinuxEMC
[18:25:54] <alex_joni> yet ViewCVS seems to be working ;)
[18:28:32] <lerman_> Well, I've been at this for about three hours. It's time for my lunch (otherwise I get cranky). I'll probably be back in an hour or two.
[18:28:51] <SWPadnos> see ya
[18:29:00] <rayh> Thanks Ken.
[18:29:18] <mshaver_bksoon> mshaver_bksoon is now known as mshaver
[18:29:19] <alex_joni> later
[18:29:23] <alex_joni> mshaver: wb
[18:29:39] <SWPadnos> So - getting back to the interpreter, I was just looking at the differences between emc1 and emc2
[18:29:54] <mshaver> wb? oh "where been"... church + breakfast
[18:30:10] <SWPadnos> Warner Brothers
[18:30:10] <Jymmm> Welcome Back
[18:30:12] <tomp> (welcome back i thin ) is this logged?
[18:30:26] <Jymmm> WomBat
[18:30:36] <SWPadnos> logger_aj is logging
[18:30:56] <SWPadnos> (but wasn't all morning, just for the last 3 hours or so)
[18:31:00] <tomp> SWP and what diffs do you see
[18:31:12] <alex_joni> wb=welcome back
[18:31:20] <SWPadnos> there are a lot of them, but many seem to be cleanup
[18:31:27] <mshaver> ah! ok!
[18:31:35] <alex_joni> tomp: anything you say can and will be used against you in any possible circumstances
[18:31:42] <tomp> :-)
[18:31:57] <alex_joni> but other than that .. it's safe to say about anything
[18:31:59] <alex_joni> :-)
[18:32:19] <mshaver> back in another minute...
[18:32:20] <SWPadnos> It also looks like a huge filewas split into several smaller files
[18:32:24] <mshaver> mshaver is now known as mshaver_away
[18:32:43] <alex_joni> yay, cvs works again.. I think ;)
[18:32:53] <SWPadnos> I can't see the actual file now, because I was in the process of re-checking out all versions of emc when CVS borked.
[18:32:56] <SWPadnos> I'll try again now
[18:33:32] <tomp> SWP about these extensions like loops and named vars, is taht why your getting CVS chkout?
[18:33:54] <SWPadnos> ah - rs274ngc_pre.cc was 540K in emc1. a good candidate for a split-up
[18:34:14] <SWPadnos> not at the moment
[18:34:36] <alex_joni> * alex_joni starts to touch all files in emc2 CVS
[18:34:42] <dmess> that sounds like some interesting source code
[18:34:50] <SWPadnos> there was a discussion about the two (or three, if you count Paul's threading) sets of interpreter changes, and how best to aplly them to EMC2
[18:34:51] <alex_joni> adding/modifying an unified header for the files
[18:34:52] <SWPadnos> apply
[18:35:21] <alex_joni> dmess: why interestig? because it's big?
[18:35:33] <alex_joni> rayh: you still around?
[18:35:54] <anonimasu> hi
[18:35:58] <tomp> rs274ngc_pre.cc? i got 33K in emc2
[18:36:08] <dmess> no the rs274 ngc part
[18:36:10] <SWPadnos> that's after the split-up
[18:36:21] <alex_joni> hey anders
[18:36:33] <SWPadnos> all of the files in that dir that start with interp_ weren't in emc1
[18:36:36] <rayh> phone for a few minutes
[18:36:54] <SWPadnos> I think they are the result of splitting out different components of the interpreter
[18:37:02] <SWPadnos> and making them classes.
[18:37:26] <alex_joni> SWPadnos: you are most correct in your assumptions
[18:37:30] <anonimasu> im on my way home now
[18:37:38] <alex_joni> anonimasu: cool.. did you win?
[18:37:42] <SWPadnos> I remember now that we were talking about the ability of having multiple interpreters
[18:38:05] <alex_joni> "<SWPadnos> I'm just a poo"
[18:38:06] <anonimasu> the mill arrives at monday
[18:38:13] <alex_joni> sorry.. couldn't resist ;-)
[18:38:17] <SWPadnos> by subclassing the right components (to get the interface to motion, etc)
[18:38:22] <SWPadnos> I'm a Bah now
[18:38:30] <SWPadnos> F7, right?
[18:38:34] <alex_joni> ok.. bah accepted :P
[18:38:39] <anonimasu> alex: no
[18:38:41] <alex_joni> F7, bofh-like
[18:38:48] <alex_joni> anonimasu: bummer :(
[18:38:49] <SWPadnos> heh
[18:39:06] <alex_joni> don't want me to push F5 or lower :D
[18:39:29] <lerman> But the various parts are NOT classes.
[18:39:38] <SWPadnos> try assigning that to CTRL-ALT-DEL
[18:39:50] <anonimasu> we had trouble with the huydralics and a wheel bearing broke
[18:40:13] <SWPadnos> so they aren't.
[18:40:20] <anonimasu> :/
[18:40:28] <SWPadnos> I know we had discussed this before - let me check the BDI interpreter...
[18:45:31] <SWPadnos> sorry - have to update my BDI sandbox first
[18:47:36] <SWPadnos> OK - there's a fairly thin class wrapper around the interpreter.
[18:50:33] <tomp> the Interp class? with the if oldstyle else newstyle? ( parm passing diffs )
[18:51:15] <SWPadnos> ah - yes, "#ifndef NOT_OLD_EMC_INTERP_COMPATIBLE"
[18:51:57] <SWPadnos> those ifdefs are removed in BDI
[18:52:48] <SWPadnos> The other major change that jumped out at me was the removal of those SET_TO macros.
[18:53:54] <SWPadnos> (I can't imagine what posessed someone to define SET_TO, EQUAL and NOT_EQUAL, and not use =, ==, and !=)
[18:54:51] <chinamill> * chinamill is away: eat
[18:55:06] <tomp> the international obfuscation contest
[18:56:05] <tomp> but, whats the point, do you want it to work or work in BDI?
[18:56:52] <SWPadnos> As far as I can tell, there have been 3 major sets of revisions to the interpreter lately.
[18:57:15] <SWPadnos> One is Ken Lerman's code, which is in emc1
[18:57:15] <rayh> http://news.bbc.co.uk/2/hi/programmes/click_online/4407742.stm
[18:57:49] <SWPadnos> Another is Keith Rumley's code, which is also in emc1
[18:58:33] <SWPadnos> And then there's Paul's re-structuring the interpreter (getting rid of those "old_style" ifdefs, and making it an actual class)
[18:58:57] <SWPadnos> Also, there are modifications that Paul has done WRT lathe threading, but I don't think those are released anywhere yet.
[18:59:14] <alex_joni> SWPadnos: he said they are merged in emc2 HEAD
[18:59:21] <SWPadnos> Ah - OK.
[18:59:23] <alex_joni> they were in an emc2 branch, but should be in HEAD now
[18:59:29] <alex_joni> G33 is what he said
[18:59:49] <tomp> are the authors ( or proxies ) here to suggest ways to reconcile?
[18:59:59] <SWPadnos> I'm seeing differences in the two interpreters bewtween BDI4 and EMC2 - are they actually different, or did I screw up the CVS checkouts today? ;)
[19:00:12] <alex_joni> they might be different
[19:00:20] <alex_joni> what tag did you use to checkout bdi4 ?
[19:00:28] <SWPadnos> BDI4
[19:00:51] <SWPadnos> (or BDI-4 - I'm not sure)
[19:01:01] <lerman> Another way of describing the changes: lerman's adds functionality, Rumley's changes functionality (some might say, fixes it), and Paul's (restructuring it) does not affect functinality. (assuming, of course, that they do what they are intended to do)
[19:02:32] <SWPadnos> That's probably accurate enough for the sake of discussing how to get all of the changes merged into one codebase, in EMC2 HEAD.
[19:03:09] <SWPadnos> OK - it was bdi-4
[19:05:56] <mshaver_away> mshaver_away is now known as mshaver
[19:06:06] <mshaver> * mshaver is reading back + ray's link...
[19:07:21] <mshaver> I think it's going to be a case of a tedious manual merge
[19:08:34] <lerman> Well, merging this would be simple if it we didn't have the restructuring. And personally, I don't think the restructuring really makes things better. Sure the SET_TO, EQUAL, ... stuff is crap, but it didn't make the code harder to understand. And three small files really aren't easier to deal with than one large file (at least in the editiors that I use).
[19:08:36] <lerman> On the otherhand, someone went to a lot of effort to restructure the code and I hate to be responsible for throwing away some else's work.
[19:08:37] <lerman> I really don't have a problem with merging in my changes. I think, though, that it would be easier if we do the merges consecutively rather than concurrently.
[19:08:49] <mshaver> IMHO we should keep what's in EMC2 now, and review the stuff from EMC1 + the misc branches to figure out if/how it should be brought forward + I personally would like to see a stand alone version working again in EMC2
[19:09:47] <Jymmm> Anyone have any tricks when maching clear acrylic to get a nice finish?
[19:09:52] <SWPadnos> I think we should also consider that G-code isn't the only thing that we may want dictating machine movement
[19:09:54] <mshaver> yea, what lerman said...
[19:10:27] <SWPadnos> some of the restructuring may make it easier to make interpreters for other code (STL->part, anyone?)
[19:10:58] <mshaver> that brings up another importamt point, calls like "get_active_g_codes()" don't mean much if the input language doesn't have "g-codes"
[19:11:48] <tomp> is this about languages like logo pilot or dialog based? ( not gcode)
[19:11:49] <mshaver> I spoke with fred proctor about hooking in his soo-to-be STEP interp, and we need to "generalize the interp api
[19:11:49] <SWPadnos> true enough
[19:12:00] <SWPadnos> what mshaver said
[19:12:17] <SWPadnos> STEP is one thing, direct parasolid or STL import would also be grand
[19:12:33] <SWPadnos> I think there was discussion of another language at Fest
[19:12:52] <mshaver> actually, several of those calls are just to give the gui something to display, could be get_current_status()
[19:13:39] <SWPadnos> where are you looking right now?
[19:14:27] <lerman> The interpreter is not just an interpreter. It's a gcode interpreter. Sure, we could make have a general interpreter interface. But there is no point in doing it now. Could we reasonably create a general canonical interface to handle nurbs for a five axis machine? When we have a second language to use, then we could consider generalizing the code to handle the second language and gcode.
[19:14:29] <anonimasu> well the trouble whth that is that emc is a control prog not a cam prog
[19:14:43] <SWPadnos> there is a general canonical interface
[19:14:54] <SWPadnos> in fact, Fred made another interpreter - canterp - at Fest
[19:15:23] <rayh> modest update to
http://emc.sourceforge.net/cgi-bin/emcinfo.pl?AdditionalGCodeFunctionality
[19:15:36] <mshaver> SWPadnos: The functions I'm talking about are from memory, I'll see if I can point you to a file...
[19:15:36] <rayh> check it out and see if it fits with the current discussion.
[19:15:40] <anonimasu> but handling nurbs would be sweet
[19:15:54] <SWPadnos> brb - mother just arrived
[19:16:08] <tomp> canterp just looks like debug prints.. what was the idea?
[19:16:21] <alex_joni> hrmm.. I just built an emc2 deb ;)
[19:16:22] <SWPadnos> mshaver, OK - I can grep for them
[19:17:13] <alex_joni> not that hard as I thought...
[19:17:28] <mshaver> lerman does have a point - if you keep going, soon you are re-writing the whole program from scratch ;)
[19:18:47] <alex_joni> mshaver: talking to me?
[19:18:47] <mshaver> "generalizing" the interp api is a different task from merging the changes, so that can certainly be put aside for now
[19:19:24] <mshaver> alex_joni: most of the time I think I'm talking to myself...
[19:19:53] <alex_joni> mshaver: right, gives a whole new perspective to what you said lately ;-)
[19:20:11] <lerman> Well, the subject of "generalizing" came up in the context of justification for breaking the interp into multiple files. So, putting it aside *might* mean regressing the file split.
[19:20:22] <rayh> I'm in agreement with the notion of getting ken and keith's remodels into a interpreter for emc2
[19:20:36] <mshaver> anyway, SOMEONE propose a way to merge this stuff & let's "do this thing"
[19:20:41] <rayh> and make the generalization task seperate
[19:20:51] <mshaver> what ray said
[19:20:59] <lerman> I don't know if the regression is necessary. My initial impression is that I can put my changes in whether we have the split or not.
[19:21:00] <rayh> I suggested two ways earlier on.
[19:21:11] <rayh> trash the existing, and drag the stuff from emc over
[19:21:15] <Jymmm> Um... what is the purpose/goal of emc2?
[19:21:29] <rayh> or branch the current 2 and hand merge the stuff from 1
[19:21:44] <lerman> Shit man, don't confuse me with the facts. We need to get this done.
[19:22:35] <alex_joni> ok.. I think we have a conclusion
[19:22:37] <mshaver> since Paul's stuff if supposed to be in EMC2 now, I like option 2 (merge EMC1 stuff into EMC2)
[19:22:43] <alex_joni> lerman: get a branch on emc2 started
[19:22:48] <alex_joni> bring in your changes
[19:22:55] <alex_joni> we'll look at it
[19:23:01] <alex_joni> if it's ok we merge it to HEAD
[19:23:02] <lerman> rayh: either is acceptable to me. Obviously, trashing the existing would be easier for me, but I wouldn't want my work trashed, so I wouldn't want to trash someone elses.
[19:23:18] <alex_joni> lerman: does that sound acceptable?
[19:23:24] <mshaver> how about keith's changes? where's he?
[19:23:55] <alex_joni> mshaver: we need to talk it through with him (on the dev list, as I haven't seen him in here before)
[19:24:10] <lerman> alex_joni: that's fine. I'll go first. After my changes are in, keith can do his.
[19:24:10] <mshaver> alex_joni: ok
[19:24:12] <rayh> I just posted a wiki link that has his communications with me
[19:24:15] <alex_joni> but I definately would like to see some smaller chunks commited
[19:24:32] <alex_joni> ok.. now.. let's talk administrative
[19:24:38] <alex_joni> by tonight ballots should go out,
[19:24:46] <lerman> My guess is that I can do my part in three hunks.
[19:24:47] <alex_joni> and we don't have anyone to hold the voting
[19:24:51] <mshaver> I did have a ? on lerman's proposal though...
[19:24:54] <alex_joni> lerman: that's fine
[19:25:22] <lerman> what's your ?
[19:25:25] <alex_joni> mshaver: go ahead.. you are the president after all :D
[19:25:43] <mshaver> Is it a good idea to put in "GT" for "greater than", rather than ">"? (for how long though...)
[19:25:57] <lerman> Is president higher or lower than head poobah.
[19:26:07] <Jymmm> lower
[19:26:18] <mshaver> since we already use G & T for other things
[19:26:33] <Jymmm> but Grand poobah is higher than head poobah
[19:27:12] <mshaver> I must be the only politician in history to want to "UN-stuff" the ballot box...
[19:27:23] <alex_joni> un-stuff?
[19:27:46] <tomp> a parser can figger out T after G means same as > and we can use both
[19:28:17] <tomp> remove votes for himself
[19:28:19] <mshaver> "stuffing" the ballot box = adding illegitimate votes for yourself
[19:28:26] <lerman> Gee, I don't know. The parser recognizes the GT in that context. If we changed GT to ">", we would then want to change EQ to "==" (or perhaps just "=") and that might confuse people. Yeah <tomp> we could do both -- just makes the code harder to read.
[19:29:11] <lerman> Hell, we could make it a run time option. Allow one or the other or both.
[19:29:21] <mshaver> I was proposing to just use <,>,==, !=,=>,<=, etc....
[19:29:32] <lerman> * lerman sticks finger in mouth to induce vomiting.
[19:29:55] <lerman> Not at mshavers proposal. -- at the thought of making it a runtime option.
[19:29:56] <tomp> you read HEIDENHAIN's GT or FANUC's > , lets not hang on that now
[19:30:10] <mshaver> ok, so maybe not then ;)
[19:30:20] <mshaver> heidenhain uses GT?
[19:30:24] <tomp> yes
[19:30:59] <mshaver> no kidding, well that lends it more legitamacy
[19:31:24] <rayh> okay finally off the phone
[19:31:26] <lerman> * lerman is legitimate -- ask my mother.
[19:31:44] <rayh> There is one concern I have regarding the interpreter.
[19:31:46] <mshaver> I'm not stuck on this one way or the other, just thought I'd bring it up since I think it would make parsing easier
[19:31:55] <rayh> it's name is "machine logic."
[19:31:56] <mshaver> lerman:ha!
[19:32:26] <rayh> IMO some of the hard coded behaviors in or caused by the interpreter
[19:32:31] <lerman> mshaver -- the parser is done. It's all implemented. It's too late to make parsing easier. But it was pretty easy.
[19:32:51] <rayh> ought not to be caused by it unless the integrator/user chooses to employ them.
[19:32:51] <tomp> yeh ray?
[19:33:11] <tomp> example?
[19:33:12] <mshaver> lerman: well, "already done" is a prettty powerful selling point! :)
[19:33:18] <rayh> * rayh sends tomp another ten spot!
[19:34:01] <rayh> The nature of what gets "reset"
[19:34:11] <rayh> What happens at m2 m30 m60
[19:34:35] <tomp> i assumed (!) that was configurable, like in mostsystems
[19:34:51] <rayh> that is a big nfw.
[19:35:04] <rayh> The lists of activities are in the code.
[19:35:06] <tomp> ASSumed again
[19:35:22] <rayh> Now I'm not saying that TomK was incorrect in what he did.
[19:35:24] <alex_joni> ok.. don't want to spoil your fun.. but we need to do something on the election thingie?
[19:35:47] <rayh> He was pointing his interpreter in the most common direction.
[19:36:02] <rayh> absolutely alex_joni
[19:36:10] <lerman> My thoughts on that stuff (and on canned cycles) are that once one has subroutines, one could have user definable subroutines that would be executed on each of those commands. As long as the interpreter has a canon command to use, it can do it.
[19:36:14] <rayh> I will hold my thoughts.
[19:36:17] <alex_joni> ok.. so far we got nothing...
[19:36:35] <alex_joni> fenn sent an email about a friend who could do the ballotting, but that's it
[19:36:49] <rayh> rayh hates with a passion those kinds of subroutines.
[19:37:03] <lerman> Alex_joni: You keep mentioning the election. I think you have a desire to do it.
[19:37:05] <rayh> they mangle "machine logic" beyond recognition
[19:37:14] <alex_joni> lerman: do what?
[19:37:29] <lerman> alex_joni: run the election.
[19:37:35] <rayh> re election I was hoping that our man from last year coulld resurrect his code.
[19:37:38] <alex_joni> nope, I'm biased
[19:37:44] <rayh> but that does not appear to be the case.
[19:37:53] <tomp> ok, is a ballot ready to be filled out?
[19:38:02] <alex_joni> lerman: but I hate missing deadlines
[19:38:28] <lerman> As long as you don't tell us how you are biased, its ok with me. Besides honest and biased are not mutually exclusive (unless you are a politician).
[19:38:35] <tomp> once fenn's friend allows the ballot-ing
[19:38:45] <rayh> The easiest approach, assuming we can find someone to handle it, is to send a ballot email to each list
[19:39:29] <rayh> ask them to respond to someone's private mail account and that person sorts for single person single response.
[19:39:36] <rayh> and tallies the votes.
[19:39:53] <alex_joni> sounds easy enough for me...
[19:40:10] <rayh> Is fenn's friend willing?
[19:40:23] <alex_joni> btw, rayh your background is missing from
http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl/emcinfo.pl?BoardElection
[19:40:28] <alex_joni> SWPadnos: likewise yours
[19:40:54] <alex_joni> didn't see zwisk to accept.. did he?
[19:41:05] <lerman> I'm going to only vote for people without backgrounds.
[19:41:07] <rayh> Okay. I'll write it.
[19:41:31] <tomp> the url Alex just posted can be hacked into the ballot form
[19:42:43] <rayh> may I suggest a small change for the page.
[19:43:02] <rayh> a table of contents that lists each candidates name at the top of the page.
[19:43:25] <rayh> so that the casual viewer doesn't need to wade through all my bs to get to those after me.
[19:43:37] <alex_joni> rayh: as you please ;)
[19:43:38] <lerman> Good idea. With a link to position you back down the page.
[19:43:47] <mshaver> calling chris danial - last year's guy on the phone
[19:43:50] <alex_joni> not sure you can do that in the wiki ;)
[19:44:11] <alex_joni> mshaver: nice inventions those phones
[19:44:40] <rayh> okay I'll make that change and add my stuff.
[19:44:51] <mshaver> i got him on the phone - bad conn
[19:44:51] <alex_joni> coo
[19:45:06] <alex_joni> mshaver: bad inventions those phones
[19:46:14] <mshaver> we're talking...
[19:46:20] <alex_joni> mshaver: nice inventions those phones
[19:46:30] <alex_joni> * alex_joni stops now.. :)
[19:48:49] <rayh> All right the list of names and links is in there.
[19:49:00] <rayh> I see that Matt's name didn't make it.
[19:49:27] <rayh> I wonder if any other acceptees are missing?
[19:50:17] <lerman> How many people do we have on the two lists together? How many voters do we expect to have? If we put the ballot on the list, we really don't have to give unique numbers to users. Send out the notice, get the results to an email address. Have someone count them by hand. What do you think -- 200 votes? (Gee maybe we should have a pool.)
[19:50:49] <lerman> * lerman thinks that we really don't have to worry about ballot stuffing.
[19:51:08] <mshaver> ok
[19:51:24] <mshaver> Chris says he'll do it again
[19:51:30] <alex_joni> oh.. sweet
[19:51:45] <alex_joni> * alex_joni donates a beer on the first ocasion
[19:51:53] <alex_joni> whenever that will be... :(
[19:52:25] <mshaver> it may take him longer as he is now both employed & has family obligations, but I am to call him tomorrow evening & work out the details
[19:52:40] <mshaver> we'll need a list of subscribers I guess
[19:53:13] <alex_joni> * alex_joni can do that
[19:53:17] <alex_joni> emails only is ok?
[19:53:33] <mshaver> yep, e-mail addresses is what we need
[19:53:44] <alex_joni> ok, and sorted and doubles removed
[19:53:46] <alex_joni> hang on a bit ;)
[19:54:43] <mshaver> so, uh, about that machine logic & interp stuff?
[19:56:33] <lerman> yes...
[19:57:43] <Jacky^> uhm
[19:57:47] <mshaver> did you guys decide what we're doing?
[19:57:48] <Jacky^> :)
[19:57:51] <tomp> ray: hacked web page for voting forms , send it to you?
[19:58:15] <mshaver> & what is a "CTCP PING" & how do you do one...
[19:59:15] <lerman> Well, I typed "/ping #emc". It responds with the round trip time to each of the users on the channel.
[19:59:53] <mshaver> ahh, interesting
[19:59:54] <Jacky^> pong
[20:01:07] <mshaver> anyway, ray was talking about machine logic & M codes, and I figure that maybe each M code would have a HAL pin that classicladder could see, or something like that?
[20:01:24] <alex_joni> proxy:~ # less emcmail.mails | wc -l
[20:01:24] <alex_joni> 549
[20:01:42] <alex_joni> mshaver: shall I mail you the list?
[20:02:03] <SWPadnos> back
[20:02:14] <mshaver> I can send it, or you can send it directly to Chris
[20:02:19] <SWPadnos> That's a lot of people on the lists - I'm surprised
[20:02:39] <rayh> Anyone working on the election page on the wiki right now.
[20:02:53] <SWPadnos> not me
[20:03:00] <mshaver> "Our unpopularity is greatly exagerated", to paraphrase Mark Twain
[20:03:01] <SWPadnos> (though I should)
[20:03:22] <SWPadnos> Maybe that's because Jymmm signed up under 347 names
[20:03:34] <mshaver> lol
[20:03:51] <tomp> oops, just sent to ray... a form added to wiki page (doh!)
[20:03:54] <alex_joni> SWPadnos: add your info to the Election page
[20:04:23] <SWPadnos> Maybe Chris could be persuaded to send someone his ballot counting code, so it would be easier to do this next year (if he's not available)
[20:04:44] <SWPadnos> alex_joni, I will - I just want to wait for Ray to finish (I gathered that he's doing his now)
[20:04:48] <tomp> there's only 8 victims on the form, right?
[20:05:02] <alex_joni> tomp: sounds like that
[20:05:12] <tomp> ok, rays got the from
[20:05:16] <rayh> okay added mshaver to the election wik page
[20:05:17] <SWPadnos> gotta fix the spelling of my name :)
[20:05:39] <alex_joni> well.. you should
[20:05:40] <mshaver> Re: the "ballot counting code" - the scripts didn't work, so it was lovingly hand counted
[20:05:50] <tomp> i always think Stevie Ray Padnos. dunno why
[20:05:55] <SWPadnos> OK - I thikn just about anyone could do that :)
[20:06:24] <SWPadnos> heh - I haven't been called Stevie since - well - almost never
[20:06:32] <SWPadnos> (sometimes, Stevie, I wonder)
[20:06:42] <lerman> I believe the description of the procedure was that you could vote for up to five people. Why not let people vote for as many as they want to? The five with the highest number of votes would be elected.
[20:07:13] <SWPadnos> There are 5 positions, so voting for more than 5 may not make sense.
[20:07:42] <SWPadnos> Though, that would essentially be an instant-runoff election if more than 5 are allowed
[20:07:47] <lerman> Sure it would. You vote for all of those you consider acceptable.
[20:08:15] <tomp> ok, the forms cooked then! ferget it ray, lets get a menu 1st
[20:08:38] <rayh> tomp: One problem. They need to vote for no more than five.
[20:08:57] <SWPadnos> Ken was just commenting on that :)
[20:08:58] <rayh> Can we make those check buttons rather than radio.
[20:09:01] <tomp> so 5 radio btn groups, done
[20:09:21] <tomp> each group a title
[20:09:25] <SWPadnos> but not the same person more than once :)
[20:09:55] <tomp> hmm, sorting in javascript... somebody define it & I'll do it
[20:10:33] <mshaver> Actually, having experienced first hand the horrors of democracy, I like this system:
[20:10:37] <mshaver> http://en.wikipedia.org/wiki/Preferential_voting
[20:10:52] <mshaver> instant-runoff like Australia
[20:11:11] <icee> who's in favor of building some kind of real release engineering process for EMC? my vote is for them ;P
[20:11:22] <dmess> im back... hee haa... small twister come up the back gully.... no more leaves on the trees ...
[20:12:02] <icee> dm: wow, that sounds exciting ;)
[20:12:41] <dmess> rain was... fallin down HARD...then it was going NORTH HARDER.....
[20:12:41] <lerman> You make them radio buttons -- two buttons for each person -- yes or no. One group per person.
[20:12:43] <SWPadnos> I think we've experienced the horrors of democracy twice in the last 5 years (maybe more)
[20:13:35] <tomp> many ways to do it, but I have the candidates, what are the offices?
[20:13:43] <dmess> another weather watchin friend called me 2 minutes prior... said get ready we got one on the line...
[20:14:24] <dmess> the only good democracy is a fair dictatorship...
[20:14:41] <dmess> opps i meant monarchy...
[20:16:50] <rayh> okay I put my background stuff on the wiki page.
[20:18:04] <dmess> spec/cert. ,development , platforms , support eng , production team , beta testers
[20:18:40] <alex_joni> rayh: that's pretty scarse, surely you can do better
[20:19:04] <SWPadnos> The offices are "Director, Director, Director, Director, and President"
[20:19:14] <SWPadnos> wait a sec Ray - I'm editing right now.
[20:19:55] <dmess> it should be dictator, dictator,dictator,dictator,and prez dictator
[20:19:55] <rayh> k
[20:20:16] <lerman> No, I don't think so. They are all directors. The directors then elect the president from their midst. (As in, I am willing to serve as a director; I don't think I want to be president.)
[20:21:23] <alex_joni> you don't need to want.. you get elected and you do ;)
[20:21:48] <rayh> Right on alex_joni We ganged up on Matt for years.
[20:21:56] <dmess> dictators directing directors... too many d's for me
[20:23:40] <rayh> Anyone know if a wiki can stand simultaneous edits to different parts of a single page?
[20:24:15] <alex_joni> it can.. but you need to take care of the merge manually
[20:24:45] <SWPadnos> My guess is that we're about to find out :)
[20:24:55] <rayh> Okay. I presume that the way it does that is comprehensible at the time it happens.
[20:25:16] <SWPadnos> I'll make a copy of my changes, just in case. You should do the same.
[20:25:27] <rayh> k
[20:28:32] <dmess> currently windy with bright blue skies
[20:29:10] <dmess> leaves moving NORTH again....
[20:29:40] <CIA-6> 03alex_joni * 10emc2/directory.map: testing the new header and CVS replacing the custom cvs-codes
[20:29:59] <dmess> winds 65-70 mph
[20:30:35] <rayh> dmess don't send those leaves here, got enough already.
[20:31:02] <dmess> headed NORTH right now... lotsssa emm
[20:31:10] <SWPadnos> rayh, I'm about to save my update - have you done your new changes yet?
[20:31:54] <rayh> a bit ago.
[20:31:55] <dmess> maple out front is always last to go and was stripped in under 1 minute
[20:32:31] <rayh> reading back I see that matt posted at comment about machine logic.
[20:32:49] <rayh> <mshaver> anyway, ray was talking about machine logic & M codes, and I figure that maybe each M code would have a HAL pin that classicladder could see, or something like that?
[20:32:57] <dmess> 1 bird nest left in it.. says something for their engineering...
[20:33:16] <rayh> are we at the point where we can talk a bit about machine logic
[20:33:55] <alex_joni> SWPadnos: don't see your update
[20:33:58] <dmess> how about if HAL could assighn 2 or 3 or whatever the nxt accessory needs??
[20:34:23] <SWPadnos> Try again
[20:34:59] <rayh> I got the update to swp.
[20:35:22] <SWPadnos> I reloaded after your last update, so your edits shouldn't have been trashed
[20:35:27] <dmess> we will need acces to the " ladder " - HAL for many things
[20:36:07] <rayh> your addition looks good.
[20:36:16] <SWPadnos> Right now, M codes above 100 are just scripts. Is there any good reason why they shouldn'tall be that way?
[20:36:19] <SWPadnos> rayh, thanks
[20:36:23] <tomp> been writin... back now, ray look for mail of new form
[20:36:42] <rayh> I'll add some more "flowery s%$t on alex_joni's recomendation.
[20:36:49] <rayh> k
[20:36:56] <alex_joni> rayh: you do that
[20:37:25] <alex_joni> SWPadnos: it's hard to access HW from a script
[20:37:35] <alex_joni> if it were a HAL pin it would be lots easier
[20:37:36] <lerman> Why pick on just the M codes. Why not the canned cycles, also? I've written my own peck cycles using the subroutine capability.
[20:37:44] <alex_joni> maybe a combination would be best
[20:37:46] <SWPadnos> alex_joni, that depends on how it's done
[20:38:08] <SWPadnos> the interpreter shouldn't ever touch hardware directly
[20:38:35] <rayh> that stopped me completely on first glance but it works.
[20:38:52] <rayh> The only thing a counter would need to look for is more than vote for the same person.
[20:39:18] <alex_joni> rayh: yes..
[20:39:36] <rayh> oh and i see jone twice on each office
[20:40:15] <tomp> oops, expect it right away!
[20:40:41] <rayh> workin hard to get the party candidate elected, eh?
[20:42:16] <rayh> 549 eligible voters
[20:42:36] <markwayne> 1% turnout
[20:42:48] <SWPadnos> who's the 0.49?
[20:42:57] <alex_joni> markwayne: we had more last time..
[20:43:16] <alex_joni> 60-70 ballots returned
[20:43:31] <tomp> ray, JE twice fixed now
[20:43:36] <markwayne> some halfwit was the .49
[20:43:43] <tomp> sorry John!
[20:43:49] <SWPadnos> a near-halfwit, I guess
[20:44:53] <rayh> tomp: Good work.
[20:44:58] <tomp> SWP the interpreter shouldn't ever touch hardware directly? uh, it's handy to do PLC like stuff for custom-ers (spcl mcode)
[20:45:21] <SWPadnos> yes, but that would access hardware through HAL (or drivers)
[20:45:47] <tomp> right, go thru hal, so thats not >direct<, got it
[20:45:51] <SWPadnos> the interpreter may try to set output bit #7, but it shouldn't write 0x80 to port 0x378 to accomplish that
[20:46:04] <SWPadnos> right
[20:46:35] <SWPadnos> thinking about M codes and I/O - since some M code may need to access hardware (ie, tool change), there needs to be a way of running scripts with I/O access
[20:46:44] <rayh> tomp: I know that Matt Shaver wasn't on the list when you got it but I added him a while ago.
[20:46:52] <rayh> other than that, it looks good to me.
[20:46:52] <SWPadnos> also, with access to motion, if they're supposed to be used for homing, tool changes, etc.
[20:46:56] <tomp> could someone please gimme an example of that? the scripts cant, and I dont see the hooks for c code.
[20:47:03] <etla> lerman: did you want the traj paper ?
[20:47:24] <lerman> Yes.
[email protected].
[20:47:31] <SWPadnos> etla, can you post a link to it?
[20:47:58] <etla> it's from ieeexplore, I don't think you have access unless you are on a university campus
[20:48:17] <mshaver> etla: me too!
[email protected]
[20:48:18] <lerman> etla did, but it's an IEEE paper and you need access to it by subscription or payment.
[20:48:31] <SWPadnos> Ah - OK. then can you send a copy to
[email protected]
[20:48:31] <les_w> My IEEE mmembership has long expired
[20:48:45] <les_w> could you shoot me a copy as well?
[20:49:04] <lerman> Well I've been an IEEE member forever. I get my health insurance thru the IEEE.
[20:49:14] <mshaver> * mshaver ain't never been a engineer
[20:49:24] <etla> yeah, keep the emails coming :) need to sftp it from work...
[20:49:31] <tomp> never >were<
[20:49:32] <les_w> [email protected]
[20:49:32] <rayh> I know of a few codes in the mazak lexicon that work rather directly with IO.
[20:49:46] <SWPadnos> rayh, well, they're wrong :)
[20:49:55] <rayh> M45 is commonly used to causes an indexer to advance.
[20:50:15] <rayh> I would rather see these things added at the task level
[20:50:29] <mshaver> sorry, "I ain't never were a engineer." Thanks Tom!
[20:50:29] <alex_joni> * alex_joni goes away for a while...
[20:50:31] <SWPadnos> It's not that you shouldn't be acle to change I/O from the interpreter, it's that the interpreter should leave the actual hardware access to a driver (HAL in the case of emc2)
[20:50:42] <alex_joni> alex_joni is now known as alex_joni_away
[20:50:49] <rayh> There would be a strong temptation to violate a good machine
[20:50:54] <lerman> I agree with SWPadnos.
[20:51:05] <rayh> if a g0 could trigger an io pin.
[20:51:24] <dmess> sorry away... canned cycles are jus g-code scripst arent they??
[20:51:55] <tomp> dmess: only if they exec slow-er.. faster if native
[20:52:07] <lerman> No. They aren't. But (I think) they could be. And (I think) they should be.
[20:52:19] <SWPadnos> as usual, just as things get interesting, I have to leave :(
[20:52:31] <lerman> If the interpreter isn't fast enough to do a peck cycle, there is something wrong.
[20:52:39] <rayh> Thanks for all the help today swp.
[20:52:46] <dmess> siemens is all scripts and rolls prety good
[20:52:52] <SWPadnos> I'll review in a few hours, and if anyone's still around (or we can do something tomorrow), I'll be back then
[20:52:59] <tomp> thanks SWP
[20:53:01] <lerman> Bye to SWP.
[20:53:07] <SWPadnos> rayh, my pleasure - I'd forgotten how fun this stuff is :)
[20:53:22] <rayh> I think we made a lot of progress.
[20:53:58] <mshaver> I'm assuming that some interp codes should be visible in classicladder where the logic would be implimented. Conversely, classicladder probably needs to be able to stop or initiate motion to do things like a tool change...
[20:54:04] <mshaver> I gotta go too...
[20:54:09] <tomp> yeh, speed isnt the issue, it's the ability to get stuff done, at whatever level. it should be done right, but done.
[20:54:10] <mshaver> back in a while
[20:54:19] <mshaver> mshaver is now known as mshaver_away
[20:54:26] <tomp> arrgh! how do I turn on a bit in M101?
[20:54:30] <dmess> there needs to be a POSITIVE hand off of tast and acknowledgement of same at the end...
[20:54:52] <tomp> or M102?
[20:55:03] <rayh> That is what I favor for most of these kinds of things.
[20:55:03] <dmess> to complete the M - code
[20:55:16] <lerman> Well, the interpreter also does a little of that. Think of probe cycles. It waits for the probe to indicate a hit.
[20:55:17] <rayh> m1xx scares the crap outa me.
[20:55:50] <rayh> a bash script with one line sudo cd / ; rm -rf
[20:56:01] <dmess> so we have the capability... it just isnt inclusive..
[20:56:27] <etla> will the sourceforge list take attachments ?
[20:56:30] <dmess> try an existing probe macro...
[20:56:39] <tomp> but the probe internals arent available to the gcode/mcode level
[20:56:41] <cradek> that's why running emc sudoed is a bad idea
[20:57:03] <tomp> and ray, yeah, that sort of stuff... any bash cmd is right out
[20:57:11] <cradek> there's no reason for all of emc to be su; all it has to do is insert and remove modules.
[20:57:29] <rayh> the ultimate emc virus. "Hey guys try this great macro on your mill."
[20:57:41] <dmess> what about insertable m- codes.. in the .ini file??
[20:58:00] <markwayne> with newer machines a M06 orients the spindle so unless you are positioning a boring bar or some such you wont need to orient the spindle
[20:58:10] <rayh> Oh. Writing to ini, var, tbl, and saving g-code files modified in the gui needs it sometimes also.
[20:58:26] <cradek> only if permissions are set wrong.
[20:58:31] <markwayne> when its doing atool change I mean
[20:58:41] <cradek> simple matter of system configuration
[20:58:56] <dmess> yes.. have a m code or not...
[20:59:37] <rayh> spindle orient on the Mazak was a separate task but then we didn't get to final integration of these sorts of things.
[20:59:57] <rayh> I presume that we will add a task precondition for m6 that will handle that.
[21:00:07] <dmess> probably wil need plc i/o
[21:00:33] <rayh> or when the tool change message arrives in CL we will orient and check oriented before we continue with the change.
[21:00:37] <dmess> but plan for rigid tapping too... plz
[21:01:06] <rayh> jmk has a notion about rigid tapping but it will take me a few lines to explain it.
[21:01:09] <dmess> they work off the same hardware..
[21:01:21] <markwayne> spindles orient a bunch of different ways
[21:01:55] <rayh> the mazak orient works off a 360 ppr encoder on the spindle.
[21:01:58] <markwayne> so that has to be set up at intergration time
[21:02:15] <markwayne> yea a servo type
[21:02:20] <rayh> each rotation yields a 0 to 1440 ramp.
[21:02:34] <rayh> reset by the index pulse.
[21:02:47] <rayh> We read the orient angle from the ini file
[21:02:48] <markwayne> those should be not to bad
[21:03:06] <rayh> and when orient is commanded we simply set that angle as the
[21:03:10] <dmess> spindle orienation and axis syncronization.... peck tap 1"-8 unc
[21:03:13] <markwayne> its a 3phase ac drive ?
[21:03:16] <rayh> desired position of the servo
[21:03:43] <rayh> 3 phase in DC out.
[21:04:05] <markwayne> so the spindle is a brush dc motor
[21:04:12] <rayh> Yes
[21:04:20] <markwayne> not so hot for holding
[21:04:48] <markwayne> it has a brake to hold in the oriented pos then
[21:05:03] <rayh> torque mode on this works pretty well.
[21:05:32] <rayh> as did velocity mode.
[21:05:55] <rayh> All of the mazak machines I've serviced do about the same thing.
[21:06:12] <rayh> I know there are some that use a stop dog to hold position but have no encoder.
[21:06:24] <markwayne> yes
[21:06:51] <rayh> I'd hate to see someone put a wrench on the tool dog and get it very far away from commanded position.
[21:06:54] <dmess> but they dont snchro ta
[21:07:05] <markwayne> energize the dog and creep foward till it drops in place
[21:07:46] <dmess> have a wrench snap into someones melon..
[21:08:05] <markwayne> natural selection
[21:08:27] <dmess> darwin award candidate..
[21:08:52] <tomp> orientation is blackboxed thru hal, many modules allow many cfgs, ray where did we start on this mcode volatility?
[21:09:19] <dmess> good name
[21:09:59] <rayh> phone brb
[21:10:06] <dmess> im old school some things nc gont need to concern itsef with
[21:10:46] <dmess> dont
[21:11:40] <dmess> plc will usually be ready BEFORE you
[21:11:46] <rayh> tomp: I've got this thing about what I call "machine logic."
[21:12:23] <markwayne> is machine logic steam powered?
[21:12:30] <dmess> macine logic.... === plc logic... right??
[21:12:32] <rayh> Most commercial machine tools use ladder to handle the most of their machine specific stuff.
[21:12:57] <rayh> They also commonly use variables or parameters that determine how specific actions are handled.
[21:13:19] <rayh> An example would be how the part loading door interlock behaves.
[21:13:29] <dmess> and pass them pack and forth to the ladder
[21:13:35] <rayh> Or what get's kicked on after estop.
[21:13:42] <rayh> comes off
[21:13:50] <tomp> ok ok ok slow down... pick 1 and run
[21:14:18] <rayh> In my opinion, the EMC was written for three specific machines.
[21:14:44] <dmess> Toshiba had a memory of keystrokes... I KNEW Everything.... alarms times... to millisecs
[21:15:06] <rayh> A K&T800, a bridgeport, and a xxx little minimill that resided on the second floor of Fred's building at nist.
[21:15:25] <dmess> crashed at these coords.. at this time
[21:15:57] <tomp> how did emc vary between the 3?
[21:16:01] <rayh> While NIST worked up the K*T much of the machine logic was handled by the second half ot a split vme bus computer.
[21:16:40] <rayh> That has been lost but scattered throughout the code we have are hard coded bits that made emc behave the way the K&T expected.
[21:16:48] <dmess> ill shut upand listen
[21:17:02] <rayh> Na I'm just ramblin.
[21:17:21] <rayh> Most of the task controller was designed around that machine.\
[21:17:46] <rayh> several of the g-codes are handled in ways that the machine expected.
[21:18:03] <rayh> These are hard coded right up into the interpreter.
[21:18:04] <dmess> so kinematics are particulr to it??
[21:18:17] <rayh> It was a trivkins machine but yes.
[21:18:32] <rayh> No stacked rotaries or such.
[21:19:11] <dmess> so basic system will handle a 1967 type machine
[21:19:12] <les_w> oh goody. etla mailed the paper.
[21:19:15] <rayh> IMO we need to pull out all of those machine specific things.
[21:19:29] <tomp> so this 2nd computer handled the plc? how were gcodes specific to the K&T? example?
[21:19:33] <etla> les_w: nice to see it arrived!
[21:19:41] <rayh> I think it was mid 70's metal.
[21:20:12] <dmess> hmm better... not
[21:20:41] <rayh> We should develop a lookup system around each of these machine logic points
[21:20:55] <rayh> from the interpreter right down to the HAL
[21:21:24] <dmess> could you??
[21:21:32] <rayh> That way the integrator can set these variables the way he wants.
[21:21:58] <rayh> No I can barely read c can't read c++.
[21:22:00] <dmess> it should be a std mappping from GO
[21:22:35] <rayh> What I could do is set up a gui or front end that would provide the set of values that a
[21:22:46] <dmess> how does HAL inteface to the M/C
[21:23:01] <rayh> person might want at each place in the emc.
[21:23:13] <tomp> gimmee an example of 1
[21:23:51] <rayh> Let's use a g30 program end with pallet change.
[21:24:03] <dmess> high pressure coolant ON
[21:24:04] <alex_joni_away> alex_joni_away is now known as alex_joni
[21:24:42] <rayh> There are things that need to happen before the pallet change message
[21:24:57] <rayh> and things that need to happen after the pallet change message is sent.
[21:25:03] <dmess> yup.. you go rayh
[21:25:21] <tomp> uh, point me to a file, i remember G30 as rewind...
[21:25:28] <rayh> Almost every "logic" pinch point has similar pre and post conditions.
[21:25:44] <rayh> That is one possible post condition.
[21:26:12] <rayh> Right now m2, m30, m60 all rewind and you've got no choice.
[21:26:29] <dmess> yes we used to build macros from hell to get thuu and pass conditions
[21:26:29] <tomp> sorry .. g30 unknown, so go on
[21:26:34] <rayh> I'd really like it if I could add a post condition to m30 -- restart.
[21:26:57] <rayh> That would give me a looping program like i need for bar stock jobs.
[21:27:31] <rayh> I'll shut up a minute and let you guys react.
[21:27:31] <tomp> ok, so this pre & post affects the gcode execution, and is in some config
[21:27:41] <rayh> right.
[21:27:56] <tomp> and this is not availabel?
[21:28:12] <rayh> Not now. Pre and post conditions are hard coded.
[21:28:22] <rayh> at the interpreter and task levels.
[21:28:43] <tomp> ok, are any thngs like this configurable ( do we have a model )?
[21:29:27] <dmess> yes
[21:29:47] <rayh> I guess the thing in emc2 that comes the closest is the stepping type
[21:30:08] <rayh> But that is a single choice that causes a specific kind of output.
[21:30:39] <tomp> as opposed to the pre/post concept?
[21:30:48] <dmess> search siemens docs on the web on www3.
[21:30:57] <dmess> 840 d
[21:31:04] <rayh> Right. There are several hard coded pre and post in emctask.
[21:31:30] <les_w> I do the equivalent of pallet changes a bunch. I just end the program with % rather than m2 or m30, change, and restart
[21:31:31] <tomp> can we whack oone to make it read from a file the pre& post?
[21:34:32] <rayh> I'm wishing that we could try something like that.
[21:35:06] <rayh> It would be easy enough if we recompiled between but I don't know about reading in and setting up these sorts of things at machine startup.
[21:35:36] <markwayne> M99 at the end of a program should make it loop...reading back
[21:35:46] <tomp> i just looked, do you mean the way lube_off is hardcoded?
[21:35:50] <rayh> I know that it's done all the time in commercial controls. The book will tell you if you need to shutdown the control or kill power and restart.
[21:35:53] <dmess> they are all.. system vars..
[21:35:58] <alex_joni> you need to bear in mind how this should get coded too
[21:36:18] <rayh> lube is an example.
[21:36:20] <alex_joni> for instance: <tomp> can we whack oone to make it read from a file the pre& post?
[21:36:35] <alex_joni> tomp: who reads it? where from? what format is it in?
[21:37:29] <alex_joni> don't need to answer now, just something to have in the back of your heads..
[21:37:39] <markwayne> more generic and configurable without hacking C and recompiling
[21:37:42] <tomp> alex: yeah, looking for example then will look at the good way to do it (after "it" is defined better)
[21:37:52] <rayh> oh wait. There is an example of two of these.
[21:38:06] <rayh> They are tool_change_position
[21:38:07] <dmess> all generic macro code...
[21:38:15] <rayh> and tool_holder_clear position
[21:38:40] <rayh> If they exist in the ini file, the emc will initiate that motion at a tool change command.
[21:38:45] <tomp> in what file ray?
[21:38:50] <tomp> oops
[21:39:00] <rayh> This was some recent stuff from fredp.
[21:39:35] <rayh> emccanon.cc about 874
[21:40:16] <rayh> The tool_change_position is a precondition to sending the tool change IO message.
[21:40:48] <dmess> hard coded rayh??
[21:40:55] <alex_joni> dmess: yes
[21:41:11] <rayh> The tool_holder_clear message is post tool change IO but also pre a loop on tool change IO,
[21:41:31] <dmess> we've seen errors in the hard coding before
[21:41:37] <rayh> The job to be done is hard coded into that file but there is an if around it.
[21:41:48] <tomp> HAVE_TOOL_CHANGE_POSITION ? is the pre condition? a flag?
[21:42:03] <rayh> Exactly.
[21:42:27] <markwayne> there may be (and likely should) a hardware interlock to check the spindle pos before atsrting the tool change sequence
[21:42:34] <dmess> has a HAL pin???
[21:42:49] <rayh> When SWP and I were discussing task some months ago we disagreed about how such things might be handled.
[21:43:08] <rayh> He suggested that we produce little coded and compiled modules
[21:43:20] <rayh> that could be plugged in when the flag said to.
[21:43:24] <dmess> KISS
[21:43:58] <rayh> That way as the interpreter approached one of these machine logic points,
[21:44:23] <rayh> it could drop the command through whatever set of modules existed for that type of machine.
[21:45:07] <tomp> this is outside the cnc it is inside the plc
[21:45:27] <dmess> think... flexible... but dont anticipate...
[21:45:34] <rayh> The logic of it is somewhat like the HAL where the connection of signals creates a path.
[21:46:00] <rayh> These could exist all the way through.
[21:46:18] <rayh> The interpreter would have a few dealing with program end, reset and such.
[21:46:49] <rayh> Task would have lots of them for tool change, brakes, coolants,
[21:46:51] <dmess> more really ray... but later
[21:47:26] <rayh> We have the ability now to deal well with IO through HAL and Classic Ladder.
[21:47:46] <rayh> * rayh shuts up for a while.
[21:47:47] <dmess> every HAL out in needs it own IN
[21:48:23] <dmess> to say comand complete
[21:48:58] <markwayne> but every controlled device wont have a way to give ant feed back
[21:49:05] <rayh> true and it gets sticky there as well. alex and I've been working on estop
[21:49:27] <markwayne> ESTOP = fun
[21:49:48] <rayh> With ladder it is possible to set up many different logical systems.
[21:50:17] <dmess> in Canada E-Stop removes power to everything..
[21:50:19] <rayh> an example is hydraulic pressure as a precondition for moving hydraulic actuators.
[21:50:20] <markwayne> woa....you cant have Estop depending on CL ?
[21:50:47] <rayh> No but you can have many internal states depending upon it.
[21:50:59] <tomp> i dont see how ladder is connected to gcode flow. it seems very separate ( Canada, Ontario Hydro, arrgh!)
[21:51:08] <rayh> And it the US we have that orderly shutdown provision.
[21:51:26] <rayh> Many times a machine can be stopped faster by not powering down.
[21:51:50] <markwayne> well you can read a pressure switch and have that switch hold in a estop relay
[21:51:51] <rayh> Some g-codes require IO actions.
[21:51:57] <dmess> tomp... be nice...
[21:52:06] <rayh> coolant for example
[21:52:16] <dmess> tell em Ray
[21:52:29] <tomp> sorry
[21:52:30] <rayh> rayh is just about typed out.
[21:53:19] <dmess> anyting witha relay or time limit will HAVE to go thru the PLC... the nonrealtime o/s
[21:53:28] <les_w> For me estop means the rapid halting of motions. Servos are disconnected and dynamically braked at the maximum safe rate. So is the spindle. But power is on...the computer is on, and the amps are on but inhibited.
[21:54:04] <markwayne> the amps would be on but in brake mode
[21:54:10] <rayh> that is very close to the way I think about it.
[21:54:18] <les_w> This has to be hard wired.
[21:54:26] <tomp> yes, hardware can have 'markers' that can be seen by the cnc. safe estops are quickly safe
[21:54:33] <dmess> i'll but it ray... ;)
[21:54:46] <tomp> fast is usually hardwired, just reported to the control
[21:55:12] <dmess> but needs i/o
[21:55:14] <les_w> Right, it is reported to the control
[21:55:29] <markwayne> estop in<
[21:55:51] <rayh> And at the front of the estop chain is the PC. I want estop if the PC faults or the gui estop gets pressed.
[21:56:19] <rayh> Or that little charge pump drains out.
[21:56:27] <markwayne> humm how about a watch dog for the PC
[21:56:40] <markwayne> what if it locks
[21:56:48] <rayh> Yup.
[21:57:10] <markwayne> make hal tickle a pin
[21:57:13] <les_w> yes...I have limited protection against computer failure
[21:57:17] <rayh> JonE is fond of reminding of the time his display went away and the machine went ahead and finished the part.
[21:57:39] <markwayne> well that OK
[21:57:56] <markwayne> sorta I guess but scary
[21:58:14] <rayh> That was his reaction! Scary
[21:58:16] <tomp> i demonstrate a new control by yanking the power to the pc out in middle of a cut... the pc is just a terminal, the cnc is another box(not emc)
[21:58:39] <markwayne> and have that pin reset a 555 or some such on the interface board
[21:59:07] <les_w> I think STG has a watchdog...not used though
[21:59:21] <rayh> Right
[21:59:21] <markwayne> that bites
[21:59:32] <rayh> as do many of the other fpga based systems as well.
[21:59:41] <markwayne> now that is some thing that should be hard coded
[21:59:56] <markwayne> must use watch dog
[21:59:59] <les_w> yup
[22:00:19] <alex_joni> les_w: it'll be used in emc2 (the watchdog)
[22:00:25] <markwayne> and if you by pass it and get hurt dont cry to me
[22:00:31] <les_w> great
[22:00:40] <alex_joni> on my to-do list ;)
[22:01:01] <les_w> writing one little bit to io each servo cycle would not hurt anything
[22:01:07] <alex_joni> yup
[22:01:18] <alex_joni> motion has one HAL pin just for that
[22:01:59] <tomp> whats this bit ? "im ok" "im ok' 'im ok' ?
[22:03:05] <markwayne> oh oh later got to go seperate dogs
[22:03:06] <rayh> Think of it like a bucket of water with a small hole a the bottom and a floating switch.
[22:03:23] <alex_joni> tomp: something like that
[22:03:26] <rayh> the bit keeps adding water
[22:04:04] <rayh> That is how the charge pump on the PMDX parport works
[22:04:14] <rayh> we used that for the Mazak project.
[22:04:44] <tomp> ok, charge pump, i use same idea on fire sensor, cap charges, fire discharges, lotsa fire blows sireeen
[22:06:08] <rayh> looks like markwayne has problems with his watchdogs.
[22:07:38] <tomp> ok, so chargepump is used in estop chain (in safe to run chain ), and is precondition to 'continue' ok
[22:08:13] <tomp> and preconditions ( and post) are soemthing we'd like more of
[22:08:19] <alex_joni> zwisk: hello
[22:08:36] <zwisk> greetings...
[22:08:51] <alex_joni> you didn't accept your nomination to the board
[22:09:24] <tomp> can we add you to the nominees?
[22:09:34] <alex_joni> he is there already..
[22:09:38] <tomp> sorry, & Hello
[22:09:41] <zwisk> Sure, you can add me. If elected, I would serve.
[22:09:44] <zwisk> Hello tomp...
[22:09:53] <tomp> off to add your name sir,
[22:10:01] <zwisk> Thank you sir! :)
[22:10:25] <alex_joni> tomp: as I said.. his name is already there
[22:10:33] <zwisk> It's great to see so much activity.
[22:10:35] <alex_joni> zwisk: you do need to add your backgroung info
[22:10:40] <alex_joni> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl/emcinfo.pl?BoardElection
[22:10:50] <alex_joni> background even.. can't type..
[22:11:10] <tomp> oops, mr Zwisk, what is your name for the form?
[22:11:36] <zwisk> Jonathan Stark
[22:11:37] <alex_joni> Jonathan Stark
[22:11:52] <alex_joni> heh .)
[22:12:01] <zwisk> :)
[22:12:07] <tomp> oh, ok (,,,,,, )
[22:12:10] <markwayne> dont give up the day job :)
[22:13:01] <markwayne> ray dont give up the day job
[22:13:58] <tomp> ok, so chargepump is used in estop chain (in safe to run chain ), and is precondition to 'continue' , and.....
[22:15:03] <alex_joni> * alex_joni got tired of touching all the .c and .h files :(
[22:16:49] <tomp> alex, how do I get the log?
[22:17:06] <alex_joni> tomp: what log?
[22:17:17] <tomp> the log of todya's irc
[22:17:25] <alex_joni> logger_aj, bookmark
[22:17:25] <alex_joni> See
http://solaris.cs.utt.ro/irc/irc.freenode.net:6667/emc/2005-11-07#T22-17-25
[22:17:25] <tomp> today's
[22:17:48] <alex_joni> tomp: you'll notice logs of every day there...
[22:17:49] <tomp> thanks, bye all, off to library
[22:18:32] <alex_joni> heh.. more than a year of logs.. just noticed :D
[22:21:30] <rayh> gotta run also. Thanks to all.
[22:22:11] <markwayne> where can you get the total distance an axis has moved ?
[22:22:48] <markwayne> or the larger picture is how do you know when to oil the ways
[22:24:53] <Jymmm> markwayne: if you see rust, you waited too long
[22:25:01] <zwisk> Ahh... yeah... I've actuallly got a side project right now I'm working on to pull EMC's cvs into subversion for my own personal use. CVS is horrible at directory moves.
[22:25:47] <markwayne> :)
[22:26:24] <markwayne> iwas thinking of the oiling that is in the bridgeport io
[22:54:05] <zwisk> how does one go about updating their profile on the wiki page?
[22:54:32] <alex_joni> zwisk: first you need to go to your preferences page
[22:54:37] <CIA-6> 03alex_joni * 10emc2/ (30 files in 7 dirs): added a standard header. hope I didn't screw up the licences...
[22:55:47] <alex_joni> zwisk:
http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl/emcinfo.pl?BasicSteps
[22:55:58] <zwisk> excellent... thanks...
[22:57:22] <alex_joni> * alex_joni goes to bed
[22:57:24] <alex_joni> night all
[22:57:38] <zwisk> gnight, alex_joni...
[22:58:26] <Jacky^> night alex
[23:59:39] <Jacky^> night