#emc | Logs for 2005-02-10

[00:00:58] <robin_sz> the guy who ported the interp to the Rabbit chip, doesn't want to change the names to sensible style, because it will make diffing agianst the current EMC interp difficult :(
[00:01:11] <robin_sz> so that code is littered with the madness too :(
[00:01:14] <robin_sz> sigh.
[00:02:06] <robin_sz> perhaps we could co-ordinate a fixing of the interp in here with a fixing of the interp in his project?
[00:02:20] <robin_sz> * robin_sz shkes the channel to see if anyone is awake
[00:07:20] <robin_sz> hmm.
[00:08:05] <robin_sz> Can anyone think of a vlid reason why the usuall == operator is substituted for a macro IS, != for IS_NOT etc in the code? what porpoise does it serve?
[00:12:53] <gezr> robin_sz : is there something special about masking a part for powdercoating?
[00:13:27] <robin_sz> yes
[00:13:42] <robin_sz> usually it only half works :)
[00:14:07] <robin_sz> just use masking tape and see how it goes. not guaranteed results
[00:14:36] <robin_sz> I got a temperature controller for my oven this week,
[00:14:51] <robin_sz> I overbaked some parts last week .. went brown :(
[00:15:33] <gezr> advantages of powdercoat/spray is tremendous hu?
[00:15:39] <robin_sz> 20mins @ 210 degrees is what they cook em at usually, so you can see the masking tape might well burn up
[00:15:46] <robin_sz> oh yeah, its awesome
[00:15:58] <gezr> the place ive talked to uses 400
[00:16:05] <robin_sz> 400C?
[00:16:09] <gezr> F
[00:16:12] <gezr> my bad
[00:16:16] <robin_sz> whats that in C?
[00:16:26] <robin_sz> or K ;)
[00:16:40] <gezr> I dont know
[00:16:43] <robin_sz> me neither
[00:17:03] <robin_sz> how about in Rankin?
[00:17:22] <gezr> hehe
[00:17:29] <robin_sz> 400 F = 204 C
[00:17:36] <robin_sz> so .. 210 for 20 mins then :)
[00:18:17] <robin_sz> gotta do the cylinder head onthe car tomorow
[00:18:26] <gezr> sweet :)
[00:18:27] <robin_sz> got it half off now
[00:18:34] <gezr> oh I got my gasket set in today :)
[00:18:39] <robin_sz> not paint it .. fix it :(
[00:18:41] <gezr> not much for what I sapent
[00:18:54] <robin_sz> ahh. yes. BM gaskets aint cheap
[00:19:04] <robin_sz> noting BM is cheap!
[00:19:24] <robin_sz> hard earend dollars for bits of cardboard huh?
[00:19:25] <gezr> no definately not chaeap
[00:19:33] <robin_sz> man seals, rubbery bits?
[00:19:35] <gezr> yeah, and a lot of special seals
[00:19:38] <robin_sz> right
[00:19:42] <robin_sz> thats not so bad then
[00:19:50] <gezr> thing is, I have to look at it like a car payment
[00:19:59] <robin_sz> sorta
[00:20:09] <gezr> whatever I put in is exactly what I need to get out
[00:20:13] <robin_sz> but on a car payment, you actually get a car that works ...
[00:20:32] <gezr> yeah, if this doenst go so well, Ill video tape the rage
[00:20:36] <robin_sz> heh
[00:20:54] <gezr> maybe a high speed jump into a lake, or things that go boom
[00:20:56] <gezr> not sure
[00:21:00] <robin_sz> im removing the cylinder head to do the valve clearences on the wofes car
[00:21:21] <gezr> you have to pull the heads for that hu?
[00:21:25] <robin_sz> they are mostly about 0.008"
[00:21:33] <robin_sz> except for 2
[00:21:38] <robin_sz> that are about 0.1"
[00:21:45] <gezr> oh lord
[00:21:58] <gezr> isnt clearance between the pusher and the cam ?
[00:22:02] <robin_sz> this may be due to the pistons bouncing offthem
[00:22:12] <robin_sz> when the timing belt snapped
[00:22:27] <gezr> yeah, if a valve exists at the bottom hu?
[00:22:38] <robin_sz> oh, lets hope its just bent
[00:22:52] <gezr> yeah
[00:23:01] <robin_sz> if it had snapped, there would be no clearance
[00:23:12] <gezr> thats true
[00:23:15] <robin_sz> the big clearance suggests its tipped
[00:23:34] <robin_sz> whatever, I have a spare head anyway
[00:23:50] <robin_sz> thats the troule with diseasels
[00:23:58] <robin_sz> no room for mistakes :(
[00:24:50] <robin_sz> the G2002 is looking good!
[00:25:00] <robin_sz> can build code for it just fine
[00:25:04] <gezr> I just hope I get the factory 10.2:1 out of his thing
[00:25:30] <gezr> were you able to try cradek's segmod mod?
[00:25:34] <robin_sz> yeah
[00:25:39] <robin_sz> thtas smooooth
[00:25:40] <gezr> how did that go?
[00:25:46] <robin_sz> like smoooooooooth
[00:25:59] <gezr> with blended Oh'S HU?
[00:26:07] <robin_sz> mmmmmmm
[00:26:11] <robin_sz> blended ...
[00:26:35] <gezr> is the output train from the g2002 superb?
[00:26:36] <robin_sz> i just air-cut some parts with the motors in a test frame
[00:26:41] <robin_sz> oh yeah
[00:26:55] <robin_sz> the G2002 shows the full benefit of hardware based step gen
[00:26:57] <gezr> its strictly hardware hu?
[00:27:03] <robin_sz> well, no
[00:27:13] <robin_sz> theres a micro running the emc interp
[00:27:14] <gezr> well, i mean the pluses
[00:27:22] <gezr> it rus emc?
[00:27:25] <robin_sz> sure
[00:27:33] <robin_sz> the interpreter anyway
[00:27:36] <gezr> sorry im wearing rubber gloves, emc is inside the g2002 box?
[00:27:40] <robin_sz> and thats the best bit :)
[00:27:48] <robin_sz> yep
[00:28:00] <gezr> does gecko know about the new changes?
[00:28:18] <robin_sz> you use a simple windows or linux GUI and send a normal GCODE file to the G2002
[00:28:25] <robin_sz> it suns the code, motors move
[00:28:29] <robin_sz> oh so smooth
[00:28:59] <robin_sz> yeah, its all on the list, files in the geckodrive area on Yahoo!
[00:29:22] <robin_sz> Steve Hardy has done an excellent job!!
[00:29:23] <gezr> very neat
[00:29:40] <robin_sz> GPL'd too
[00:29:58] <gezr> and gecko is the company making them?
[00:30:07] <robin_sz> making the boards yeah
[00:30:22] <gezr> cool
[00:30:23] <robin_sz> steve just wrote the code and published it GPL
[00:30:34] <robin_sz> the circuit of the board is published too
[00:31:02] <robin_sz> its jsut, well, complex. easier to get one bought in
[00:32:23] <robin_sz> mind ewe, cradeks code ...
[00:32:26] <robin_sz> thats close
[00:32:59] <robin_sz> if anyting, the motion is better planned, just let down a bit by the roughness of PC generated pulses
[00:33:34] <robin_sz> I'm putting it on a Bridgeport this week anyway, EMC that is
[00:34:57] <gezr> oh yeah i put a few more pics up about the bicke
[00:35:11] <robin_sz> uri?
[00:35:32] <gezr> www.masternode.net/gallery
[00:36:28] <robin_sz> you blasted the rocker cover? looks neat
[00:36:56] <gezr> which one are you looking at?
[00:37:07] <robin_sz> 7/10
[00:37:30] <robin_sz> bottom end cover looks cleaned up nice
[00:38:00] <gezr> stuff on the plastic table undone so far
[00:38:22] <gezr> the part on the table with the black, is wher4e I have great powder coat concerns
[00:38:28] <gezr> 2 bearing journals on it
[00:39:03] <robin_sz> the rocker cover is uncleaned?
[00:39:12] <gezr> im half a step away from screwing the black, and going all blast
[00:39:14] <gezr> yeah
[00:39:24] <robin_sz> looks clean enough to me :)
[00:39:36] <robin_sz> plenty of crud on the block though
[00:39:38] <gezr> I blasted it earlier let me take a new photo :)
[00:40:40] <robin_sz> how does your masking tape hold up to the blasting? ok? or strips it right off?
[00:42:07] <gezr> it supurb :)
[00:42:33] <gezr> I have a 1hp compressor, so Im limited on blast velocity
[00:42:42] <gezr> check out the new photo, its probably on page 21
[00:42:43] <gezr> 2
[00:43:08] <gezr> yeah :), how does it look now?
[00:44:36] <robin_sz> ah yes .. comes up lovely
[00:44:46] <robin_sz> nice
[00:45:05] <robin_sz> gonna get the frame powder coated
[00:45:07] <robin_sz> ??
[00:45:12] <gezr> yeah :)
[00:45:22] <gezr> they cant really screw that up
[00:45:40] <robin_sz> is it the pearlescent white paintwork on the plastics?
[00:46:13] <gezr> na just standard black plastic, and then white plastic on some other things
[00:46:29] <gezr> bead blasting the old stuff seems to clean it up nicely as well
[00:46:34] <robin_sz> I meant the fairing/tank
[00:47:00] <robin_sz> you know, the big bits :)
[00:47:07] <gezr> its the donalite green
[00:47:19] <robin_sz> yeuw :)
[00:47:29] <gezr> im gonna have to wack at the tank a bit to straighten up a dent
[00:47:36] <gezr> there is no faring
[00:47:43] <gezr> there was a mistake one rainy day
[00:47:45] <robin_sz> the white ones are nice, dunno they do the green one in the UK
[00:47:51] <robin_sz> ahh :)
[00:48:07] <gezr> and then that holy crap bwm stuff is expensive issue
[00:48:08] <robin_sz> the ABS didnt save you?
[00:48:18] <gezr> no abs on this model, it wasnt offered
[00:48:23] <robin_sz> right
[00:48:39] <robin_sz> well, thats what you get for playing with the brake lever :)
[00:48:47] <robin_sz> hi ray
[00:48:48] <gezr> I was going slow, and both back and front locked up, and I had no where to go but lay it down to get it to stop
[00:49:05] <robin_sz> did you consider letting go of the brakes?
[00:49:11] <gezr> I should have kept it up and put a dent in the damn cars bumper
[00:49:20] <rayh> Hi Robin
[00:49:23] <gezr> they wouldnt free up
[00:49:44] <gezr> it was one of those afternoon thunderstorms, enough to lift the oil on the road to the top
[00:50:02] <robin_sz> * robin_sz nods
[00:50:21] <gezr> I can remember the moment even now, that happend 15 years ago
[00:50:26] <robin_sz> heh,
[00:50:54] <gezr> so im sorta rebuilding my mistake and making things righht with my dad :)
[00:51:00] <robin_sz> oh yeah, yours is the 3/4 of a real one now, I rememebr
[00:51:19] <robin_sz> your dads bike?
[00:51:22] <gezr> i may get a rt faring for it as time goes on
[00:51:42] <gezr> it was purchased by him originally, then he sold it to me for $1
[00:51:49] <robin_sz> and you trashed it :)
[00:51:53] <gezr> then it blew up
[00:51:58] <robin_sz> right ...
[00:52:00] <gezr> and spent the last 10 years sitting
[00:52:06] <robin_sz> and *then* you trashed it :)
[00:52:22] <gezr> yeah, im ridding it every day now :)
[00:52:29] <robin_sz> rayh: you were asking about G2002 earlier
[00:52:36] <gezr> accelerated wear :)
[00:52:45] <rayh> Yes I was.
[00:52:54] <robin_sz> ...??
[00:53:30] <gezr> robin_sz : I wish I had taken some pics when I pulled the head, damn wasp like insects made the cylinders home
[00:53:59] <robin_sz> gezr: yeah, I saw your posts :)
[00:54:15] <robin_sz> rayh: wodja wanna know?
[00:54:58] <rayh> First, what's a four axis system cost.
[00:55:14] <robin_sz> well, they only do 6 axis anyway
[00:55:23] <rayh> Okay.
[00:55:26] <robin_sz> I think it was 250 USD
[00:55:36] <rayh> I thought there were plug in modules.
[00:55:42] <robin_sz> thats the old system
[00:55:46] <robin_sz> ]discontinued
[00:55:50] <rayh> Oh.
[00:55:55] <robin_sz> new one is a slab
[00:56:10] <robin_sz> say, 100mm x 160mm (eurocard size)
[00:56:12] <rayh> What are the capabilities. Stepper servo??
[00:56:46] <robin_sz> 6 axes, 16 in, 16 out DIO, USB connection, step pulse gen (feed stepper or serve type Gecko drives)
[00:57:11] <robin_sz> can run the EMC interp on board
[00:57:19] <rayh> Only usb?
[00:57:32] <robin_sz> so just dump GCODE down the USB, it all happens
[00:57:37] <robin_sz> yeah only USB
[00:57:51] <robin_sz> maybe ethernet ... not yet though
[00:58:09] <rayh> Oh. So most all of the EMC equivalent is dumped into the rabbit.
[00:58:23] <robin_sz> can be in one code variant yes
[00:58:34] <rayh> variants?
[00:58:44] <robin_sz> Mariss ships it with a semi-intelligent motions system on it
[00:58:59] <robin_sz> but you can reprogrma it with whatever you like
[00:59:11] <robin_sz> Art Fenerty has code to use it with Mach2 or 3
[00:59:30] <robin_sz> Steve Hardy has published GPL code to run the emc inter on it
[00:59:46] <robin_sz> i think theres one more ...
[00:59:52] <rayh> Does it complete one block before reading another or is there look ahead?
[00:59:54] <robin_sz> forget who though
[01:00:09] <robin_sz> thers not tru look ahead ,, but someting as good
[01:00:25] <robin_sz> it builds a motion queue and then smooths it
[01:00:48] <rayh> Okay.
[01:00:51] <robin_sz> with a 'moving average' alogorithm
[01:00:56] <robin_sz> its very very smooth
[01:01:13] <rayh> But is it accurate on sharp changes?
[01:01:16] <robin_sz> yes
[01:01:29] <robin_sz> best of all worlds really
[01:02:14] <robin_sz> mind ewe, cradeks mending of segmod is pretty impressive too
[01:02:15] <rayh> As my grandfather would say, "I believe you but there's thousands that wouldn't"
[01:02:36] <robin_sz> yeah. whatever, Im having fun playing with it
[01:02:59] <robin_sz> I bought the Rabbit compiler and an happily hacking away and downloading code to the target
[01:03:01] <rayh> In essence is it a single tasking os?
[01:03:05] <robin_sz> yep
[01:03:13] <robin_sz> with hardware based step generators
[01:03:18] <rayh> Okay.
[01:03:34] <robin_sz> did you see mariss 'unstallable stepper motor' post?
[01:03:50] <rayh> Long ago we got model cars to run around a track with dos and peek and poke.
[01:04:03] <rayh> No I'm not a yahoo person at all.
[01:04:07] <robin_sz> 'k
[01:04:15] <robin_sz> quick description
[01:04:20] <robin_sz> take a stepper
[01:04:22] <rayh> Thanks.
[01:04:28] <robin_sz> and a gecko drive
[01:04:56] <robin_sz> hook some signals out of the drive relating to the phase lag of the stepper
[01:05:04] <robin_sz> feed them back to the G2002
[01:05:22] <robin_sz> as the lag increases, slow down the incoming pulse train
[01:05:39] <robin_sz> result, it works like a servo ..!!
[01:06:29] <rayh> Something went way over my head?
[01:06:34] <robin_sz> he *clains* his test bench one basically you could put a wrench on it and it continued when you let go, without missing a step
[01:06:49] <robin_sz> well, I didnt understand it myself to be honest
[01:07:15] <robin_sz> basically he's fed back some load information from the drive to the step pulse generator
[01:07:18] <rayh> I can see the wrench thing though.
[01:07:47] <rayh> In emc terms you simply pile the extra pulses into following error and then reclaim them when the motor comes loose.
[01:08:03] <robin_sz> sorta yes.
[01:08:31] <rayh> Does that lag coordinate to the other motors among those being driven?
[01:08:35] <robin_sz> but its slowing down the putput pulse trian when you work out the motor cant keep up
[01:08:46] <robin_sz> yes, it slwos all the motors down
[01:09:31] <robin_sz> from what I gather, its someting to do with looking at the back emf to work out the phase lag on the rotor
[01:09:39] <robin_sz> not just plain current draw
[01:10:05] <robin_sz> but it was a bit hazy
[01:10:09] <rayh> A long while ago we did some experiments with steppers and encoder feedback.
[01:10:25] <robin_sz> I tink this was encoderless
[01:10:32] <rayh> There is a module still available for the K/M dro card.
[01:10:55] <rayh> Right. I can see how it can read lag from the motor.
[01:11:20] <rayh> The thing we did with EMC was speed up the motor when they began to lag.
[01:11:24] <rayh> Made it worse.
[01:11:26] <robin_sz> heh
[01:11:30] <robin_sz> it would :)
[01:11:36] <robin_sz> once its stalled, its stalled
[01:12:03] <rayh> We thought about flipping it over so steps slowed to match encoder feedback but never did.
[01:12:19] <robin_sz> with a stepper, you are working your way back up the torque curve as you slow down
[01:12:29] <rayh> That's why I was confused about it working like a servo.
[01:12:40] <robin_sz> well, yeah
[01:12:43] <rayh> Servo's turn up power when lag occurrs.
[01:12:46] <robin_sz> bad description
[01:12:57] <rayh> No good job.
[01:13:04] <robin_sz> these are turning the torque up I guess
[01:13:14] <rayh> Right.
[01:13:24] <robin_sz> smart cookie that guy
[01:13:30] <rayh> With the new 2002 then, there is no need for rt.
[01:13:35] <robin_sz> nope
[01:13:38] <robin_sz> non at all
[01:13:54] <robin_sz> I have it running here, doze and linux GUI's
[01:13:57] <rayh> Cause it's done in the rabbit.
[01:14:03] <robin_sz> * robin_sz nods
[01:14:26] <rayh> Sounds like a fairly good hardware solution to the issue.
[01:14:41] <robin_sz> seems so
[01:15:07] <rayh> 850 us for four gecko drives and the 2002 and you supply the program feeder.
[01:15:28] <robin_sz> mm,
[01:15:35] <robin_sz> 120 x 4 + 250
[01:16:05] <rayh> Um I was thinking of the 210's
[01:16:11] <robin_sz> right
[01:16:19] <robin_sz> not needed 210s use 201s
[01:16:23] <rayh> Is there an upper limit to the pulse rate?
[01:16:29] <robin_sz> this thing does pulse trians to 250khz easy
[01:17:12] <robin_sz> so you get very smooth changes between individual frequencies
[01:17:13] <rayh> Well above what a motor can handle at 10x micro.
[01:17:18] <robin_sz> sure ...
[01:17:27] <robin_sz> but thats part of the key
[01:17:37] <robin_sz> if you have 20khz max like we do
[01:17:45] <robin_sz> next step down is?
[01:17:51] <robin_sz> 16.666khz?
[01:18:13] <robin_sz> whatever, its fairly big jumps
[01:18:22] <robin_sz> even though we mix em up
[01:18:27] <rayh> Right. That's why I always set max possible above max vel.
[01:18:42] <robin_sz> the g2002 produces *very* smooth pulse trains
[01:18:52] <robin_sz> you have to try it to believe it ...
[01:19:21] <rayh> I wonder how it compares to Jon E's board/
[01:19:27] <robin_sz> dunno
[01:19:40] <robin_sz> spect his board is smooth too
[01:19:41] <rayh> I'll have to explore that with him.
[01:19:57] <robin_sz> im looking at it for a cheap plasma table
[01:20:11] <robin_sz> just plug a USB in and away you go
[01:20:22] <rayh> I can see that.
[01:20:54] <rayh> After your horror stories about mach2 stopping for a half second...
[01:20:59] <rayh> This would be very good.
[01:21:00] <robin_sz> yeah
[01:21:04] <robin_sz> screwed me that did
[01:21:09] <robin_sz> 0.5 second?
[01:21:14] <robin_sz> 4 seconds sometimes
[01:21:23] <rayh> Don't you hate it when that happens.
[01:21:33] <robin_sz> my customers did yes :)
[01:21:50] <robin_sz> some of them phoned up to explain
[01:22:27] <rayh> Were they making references to your kin?
[01:22:32] <robin_sz> one of them (quite rightly) declined the opportunity to hand over all the money
[01:23:12] <rayh> That kind of thing hurts everyone.
[01:23:15] <robin_sz> in the end, I decided not ot ship the orders I has, as it was just going to be more trouble
[01:23:18] <rayh> There are no winners.
[01:23:21] <robin_sz> right
[01:23:30] <robin_sz> and the task planner was the worst bit
[01:23:39] <robin_sz> even without the stopping
[01:24:03] <robin_sz> a bit like early EMC, it doesntcope well with low steps/mm
[01:24:17] <robin_sz> at say 20 steps/mm it sucks.
[01:24:20] <robin_sz> bigtime.
[01:24:40] <robin_sz> imagine a 20mm hole.
[01:24:58] <robin_sz> cut 5mm chamfers on it at 45 degrees.
[01:25:11] <robin_sz> so its a 10mm wide slot, with curved ends
[01:25:41] <robin_sz> now, all you have to do is convince the metalworker that it is round really
[01:26:10] <rayh> I can just imagine what the customer said about that...
[01:26:15] <robin_sz> I gave up asking for a fix on that one in the end
[01:26:42] <robin_sz> whatever, we fit proper controls now
[01:26:47] <rayh> I had one customer complaining about a 0.0003 step at the quadrature switch.
[01:26:53] <robin_sz> heh
[01:27:08] <robin_sz> threaten him with Mach2 next time :)
[01:27:15] <rayh> He said, "look at this" and he held it up to a light.
[01:27:28] <rayh> Okay. Good plan.
[01:27:48] <robin_sz> to be fair, Mach2 beats EMC in 2 crucial areas
[01:27:56] <rayh> Thanks for taking the time with 2002
[01:28:00] <robin_sz> np
[01:28:17] <rayh> ?
[01:28:31] <rayh> The two areas are?
[01:28:33] <robin_sz> user macros and GUI configuration by click and drool
[01:28:46] <robin_sz> even a windows weenie can do it.
[01:28:53] <rayh> Yes. I think you are correct.
[01:29:12] <robin_sz> still ... were getting there
[01:29:31] <robin_sz> did you see my Mach2 screen layout?
[01:29:36] <rayh> NIST wrote a paper a while back about each variable output from a routine
[01:29:58] <robin_sz> uh huh
[01:30:02] <rayh> having it's own set of characteristics that are available.
[01:30:24] <rayh> I would like to see your gui.
[01:30:43] <robin_sz> http://www.rapidcut.co.uk/images/screenshot.png
[01:30:53] <robin_sz> go on, the NIST thing ...
[01:32:04] <rayh> The idea was that if a variable was a float or an int, it would ship it's range and units and such right with it.
[01:32:14] <robin_sz> right ...
[01:32:24] <robin_sz> in some xml-like stream
[01:32:36] <rayh> Then the HMI could discover possible widgets to use to display that variable when it was needed.
[01:32:43] <robin_sz> right,
[01:33:15] <rayh> I can't remember exactly what format or formats they were proposing.
[01:33:19] <robin_sz> some file in the HMI tells the thing how to lay out the widgets
[01:33:49] <rayh> That's the idea. An HMI writer would work up the rules rather than the specific layout.
[01:33:59] <robin_sz> right
[01:34:24] <robin_sz> let the things pack the screen and shuffle each other up
[01:34:31] <rayh> There is just a bit of that in tkemc and mini. The axis position displays and offsets grow to the number of axes defined.
[01:34:39] <robin_sz> right
[01:34:52] <robin_sz> I did some work on that with my rewrite that never got finished
[01:35:00] <robin_sz> the 'components' based thing
[01:35:09] <robin_sz> (long time ago)
[01:35:12] <rayh> Yes I remember some of it.
[01:35:20] <robin_sz> still out there ... somwhere
[01:35:31] <rayh> I know the feeling.
[01:35:53] <robin_sz> so many projects, so little time
[01:36:02] <rayh> I've been working for a bit on a new variable loop thing.
[01:36:10] <robin_sz> ??
[01:36:20] <rayh> Makes most of the EMC interface into a state machine.
[01:36:26] <robin_sz> ahh :)
[01:36:36] <robin_sz> thats probably heading in the right direction
[01:36:39] <rayh> You know how you can register a variable with the tickle loop.
[01:36:52] <robin_sz> I remember a bit
[01:36:56] <rayh> Most all of the gui would be regulated by variables.
[01:37:00] <robin_sz> right
[01:37:14] <rayh> And only changed variables would get passed to tickle.
[01:37:18] <robin_sz> right
[01:37:22] <robin_sz> that makes sense
[01:37:37] <robin_sz> the key has to be that it sholdnt matter if the widget is there or not
[01:37:38] <rayh> And that's as far as I've gotten.
[01:37:49] <rayh> Absolutely.
[01:38:16] <robin_sz> from then, its just a question of making up soem sort of file to determine how and where you stuff the widgets
[01:38:43] <rayh> Yep. And that becomes a thing the end user can manipulate.
[01:38:47] <robin_sz> right
[01:39:15] <robin_sz> once you have the file, brewing up a click.and.drool tool to configure it is possible
[01:39:23] <rayh> Want a huge display of the position vars, just spec them.
[01:39:30] <robin_sz> zackly
[01:39:40] <robin_sz> thats all mach2 does
[01:39:49] <rayh> Okay.
[01:40:02] <robin_sz> very similar infact
[01:40:31] <robin_sz> each display or led or button is bound to a var in the core code somehow
[01:40:54] <robin_sz> he gets different pages by making certain groups visible or inisible
[01:41:06] <robin_sz> not true tabbed pages or anything
[01:41:15] <robin_sz> they basicall all overlay on one page
[01:41:34] <robin_sz> which is why they are all 'static'
[01:41:41] <robin_sz> they dont push up or resize
[01:41:50] <rayh> Okay.
[01:42:02] <rayh> That could be an advantage in tickle.
[01:42:30] <robin_sz> really, you shoul'd grab a copy and try it, not to use it, hell no, but see the good bits and learn :)
[01:42:50] <robin_sz> he 'borrowed' the interp from emc after all ...
[01:42:54] <robin_sz> fairs fair :)
[01:42:58] <rayh> Don't think I've even got an OS here it could run on.
[01:43:05] <robin_sz> XP, ME?
[01:43:25] <rayh> 95 the 16 bit version.
[01:43:34] <robin_sz> yeawy
[01:43:43] <robin_sz> you like pain I see ;)
[01:43:50] <rayh> Yep.
[01:44:05] <rayh> 10 boxes and only one dual boot with MS.
[01:44:20] <robin_sz> if you are going to inflict windows on yourself, at least get XP so its not too painful :)
[01:44:40] <rayh> Still use easy cad and fast cad and a ladder programmer on it.
[01:44:46] <robin_sz> right
[01:44:56] <rayh> And keep it away from the web!!!
[01:45:15] <robin_sz> have to say, (touches wood) not had any trouble with XP, so far not a single OS crash
[01:45:27] <robin_sz> well, almost not
[01:45:49] <rayh> Helped a guy down the road clean xp of spybots. More than 120 of the little bastards.
[01:45:55] <robin_sz> heh
[01:46:01] <robin_sz> sounds about normal
[01:46:13] <robin_sz> run adaware?
[01:46:33] <rayh> Some freebee.
[01:46:43] <robin_sz> yeah, probably adaware
[01:46:54] <rayh> Might have been.
[01:47:03] <rayh> The box ran a lot faster after.
[01:47:06] <robin_sz> get him to install Firefox and thunderbird instead of Ie and lookout ...
[01:47:30] <rayh> For a while we keep getting popups saying that it wanted to call home and would we let it.
[01:47:43] <robin_sz> hah
[01:48:24] <robin_sz> anyway, its late, wife already snoring on the sofa :)
[01:48:38] <rayh> catch you later. Thanks.
[01:48:43] <robin_sz> let me know if you play with a G2002
[01:48:56] <robin_sz> right, bedtime
[07:36:32] <A-L-P-H-A_laptop> hi
[20:00:43] <A-L-P-H-A> who's used gerber to gcode stuff? Ijust want to use the drill holes, anyone got a tutorial on that?
[21:27:01] <alex_joni> meep?
[21:29:26] <rayh> Hi alex.
[21:29:37] <alex_joni> hey rayh
[21:29:52] <alex_joni> seen some interesting talks last night between you and robin
[21:30:03] <rayh> I learned a lot.
[21:30:10] <alex_joni> * alex_joni is freezing ..
[21:30:21] <rayh> why?
[21:30:28] <alex_joni> -18 outside
[21:30:29] <alex_joni> ;)
[21:30:43] <alex_joni> it's ok inside.. but when I get outside... brrr :-)
[21:30:44] <rayh> Yea. I know that feeling.
[21:31:09] <alex_joni> you may know it, but around here people are not used to this kind of weather
[21:31:18] <alex_joni> I know it too (from the mountains)
[21:31:32] <rayh> When you get a chance could you describe what you did with classicladder.
[21:31:39] <alex_joni> not much
[21:31:54] <alex_joni> basicly classicladder exports some HAL-pins
[21:32:00] <alex_joni> inputs & outputs
[21:32:03] <rayh> You said that you got it so spindle on off would show.
[21:32:11] <alex_joni> you can select that from the config page
[21:32:38] <alex_joni> well I connected spindle-on ( that comes from the iocontroller,
[21:33:02] <alex_joni> iocontroller has an HAL-pin called spindle-on (also a pin spindle-forward, backward, speed, etc.)
[21:33:14] <rayh> okay
[21:33:16] <alex_joni> I took that pin and connected it to an input from classicladder
[21:33:22] <alex_joni> also HAL-pin
[21:33:37] <alex_joni> a simple add signal, and link signal
[21:34:01] <alex_joni> and when I pressed spindle on (on tkemc;) I could see the Input change on the classicladder GUI
[21:34:14] <rayh> Okay.
[21:34:53] <alex_joni> I hope to get more work done this weekend, as the whole thing is a bit shaky
[21:35:22] <alex_joni> classicladder permits you to configure stuff more than once
[21:35:28] <rayh> All the links between emc2 and classic ladder are through HAL pins.
[21:35:32] <alex_joni> and when you do that it re-exports the pins to HAL
[21:35:57] <alex_joni> which generates an error (I have to check for cases like that)
[21:36:02] <alex_joni> so far yes
[21:36:21] <alex_joni> I thought (and I was right) that the hal-connection is pretty basic to set up
[21:36:36] <alex_joni> NML support in CL is a whole different story
[21:37:03] <rayh> Could our HAL export a pin for every IO command from EMC?
[21:37:07] <alex_joni> first of all CL is written in C
[21:37:14] <alex_joni> sure it could
[21:37:29] <alex_joni> what kind of IO commands do you have in mind?
[21:37:31] <rayh> We would just have to write a module to do that.
[21:37:44] <alex_joni> * alex_joni started to write iocontroller
[21:37:48] <alex_joni> not simiocontrol
[21:37:57] <alex_joni> it's in CVS
[21:38:18] <rayh> * rayh updates emc2
[21:39:16] <anonimasu> hello
[21:39:23] <alex_joni> hey an0n
[21:39:48] <rayh> could these HAL pins like spindle on or spindle forward be only hal variables.
[21:40:05] <alex_joni> hal has no variables
[21:40:16] <alex_joni> hal has components
[21:40:21] <rayh> Then when cl sees the spindle forward command from emc it closes that contact, evaluates the rest of the run,
[21:40:26] <alex_joni> which have pins, parameters
[21:40:40] <rayh> things like spindle coolent on, and tool loaded
[21:40:55] <alex_joni> cl sees spindle-forward as an input
[21:40:57] <alex_joni> to the PLC
[21:41:02] <rayh> before it returns a spindle forward command that really changes pin polarity.
[21:41:56] <alex_joni> emc (iocontrol) [spindle-forward] -> [input_12] (classicladder) -> [output_15] (classicladder) -> [pin12] (parport)
[21:42:01] <alex_joni> smthg like this?
[21:43:01] <alex_joni> ray: the way I see it
[21:43:08] <alex_joni> emc components export hal-pins
[21:43:23] <alex_joni> be it iocontrol, emcmot, etc.
[21:43:38] <alex_joni> these pins are all in a bucket (hal)
[21:43:53] <alex_joni> they are either realtime or nonrt
[21:44:16] <alex_joni> classicladder (if started and configured) exports his own pins to the bucket
[21:44:28] <alex_joni> after that you can connect what and how you want
[21:44:47] <alex_joni> say cooland-on goes to input_1 of the CL
[21:45:04] <alex_joni> and output_12 from the CL goes to parport.2.pin-7-inverted
[21:45:10] <alex_joni> (just examples)
[21:49:13] <rayh> Okay. I can see what you are doing.\
[21:50:14] <alex_joni> * alex_joni waits for opinions
[21:50:44] <rayh> I got it. Looks good to me.
[21:51:08] <rayh> Adding in the tool prep and change commands would work the same as the spindle.
[21:51:14] <alex_joni> yes
[21:51:28] <alex_joni> I added those, because those exist from the GUI to the IO
[21:51:34] <alex_joni> through task, etc
[21:51:41] <rayh> In essence what you have here is bridgeport without the logical connections.
[21:51:43] <alex_joni> others should be added
[21:51:46] <alex_joni> yes
[21:51:58] <alex_joni> and the connections you can make in HAL (for simple systems)
[21:52:05] <alex_joni> or in CL (for complicated systems)
[21:52:21] <alex_joni> if you need timings, more outputs at once, etc.
[21:53:20] <rayh> If we ran a limit switch through hal to cl and wrote a rung with output back to hal to halt motion...
[21:53:41] <alex_joni> that would be ok.. but
[21:53:44] <rayh> How much more overhead does that create.
[21:53:50] <alex_joni> not like it's done now
[21:53:51] <alex_joni> ;)
[21:54:05] <rayh> I understand that.
[21:54:10] <alex_joni> right now the stuff I did with CL is just a quick hack (a proof of concept)
[21:54:29] <alex_joni> if cl runs RT (and it can), and it exports the pins RT to HAL
[21:54:35] <alex_joni> then the whole thing will run RT
[21:54:46] <rayh> I like it very much for those cases of a single pc doing all the motion and io work.
[21:54:54] <alex_joni> servo-rate
[21:54:57] <alex_joni> or faster
[21:55:10] <alex_joni> so you can make it safe for limitswitches
[21:55:25] <alex_joni> but.. as you said.. it's not ok for multiple PC's solutions
[21:55:29] <rayh> Okay. I get that.
[21:55:42] <alex_joni> for that NML would be best
[21:55:46] <alex_joni> but that's not RT
[21:55:52] <alex_joni> and pretty hard to expand
[21:55:55] <rayh> Right.
[21:56:19] <rayh> hard to expand?
[21:56:38] <alex_joni> yes.. if you want to add something lateron
[21:56:49] <alex_joni> say a plasma-on signal
[21:56:54] <alex_joni> you need to add that to NML
[21:57:01] <alex_joni> and to all clients involved
[21:57:04] <alex_joni> including CL
[21:57:46] <rayh> Yes. My thinking there was to create a hundred or so NML messages named xx1-xx100
[21:57:56] <alex_joni> I thought about that too
[21:58:05] <alex_joni> how about a single message?
[21:58:10] <alex_joni> with subtypes
[21:58:21] <alex_joni> same thing
[21:58:34] <rayh> UM. Immeidate reaction is okay.
[21:58:55] <rayh> brain is getting ahead of fingers...
[21:58:59] <alex_joni> ok, we could have NML-generic messages
[21:59:13] <alex_joni> that all components know of
[21:59:21] <alex_joni> GUI, task, motion, io,
[21:59:30] <rayh> So the subtype would be the first element in the message and would define the others?
[22:00:19] <rayh> Or would this message be a whole new type.
[22:00:50] <alex_joni> I think it can be derived from a NML_Message class
[22:01:27] <alex_joni> so it can be made to fit...
[22:01:45] <alex_joni> now.. question is.. how will you bind it to a certain action?
[22:01:56] <alex_joni> you could bind it to custom M-codes
[22:02:12] <alex_joni> or custom buttons
[22:02:12] <alex_joni> or custom IO-pins
[22:03:05] <alex_joni> or other.. but preferably all that you should be able to configure without recompiling (and easy)
[22:03:14] <alex_joni> and without adding yet another config file
[22:03:51] <rayh> Okay. Let me try proposing a simple example.
[22:04:40] <rayh> A gui button named "flame start" -->NML-generic xx1
[22:05:52] <alex_joni> * alex_joni agrees so far
[22:06:01] <rayh> It would carry a type IO so it passes through task to IO to your bucket.
[22:06:42] <alex_joni> to iocontroller.0.generic-pin-xx1
[22:06:44] <rayh> where NML-generic IO --> xx1 is commanded to set pin y1
[22:07:08] <alex_joni> which can then be connected anywhere
[22:07:17] <rayh> CL sees pin y1 as an input and processes it
[22:07:27] <alex_joni> yup
[22:07:30] <rayh> Setting an output.
[22:07:37] <alex_joni> maybe starts gas, then a spark
[22:07:44] <rayh> Right.
[22:07:55] <alex_joni> then checks for flame
[22:08:03] <rayh> What if the gui needed confirmation.
[22:08:30] <alex_joni> and after that it tells emc it's ok (through a pin connected to iocontroller, which gets as a message to GUI)
[22:08:43] <alex_joni> NML-generic xy1
[22:08:46] <rayh> NML has all of those conditions wait none, wait received, wait done.
[22:09:06] <alex_joni> thing is how do you tell it that without recompiling?
[22:09:38] <rayh> It's a bit mask that is carried with the message and applied throughout.
[22:09:44] <alex_joni> will be pretty tough to code
[22:10:05] <alex_joni> but.. tough is good ;)
[22:10:49] <alex_joni> sounds feasible
[22:10:56] <alex_joni> now another thing...
[22:11:05] <rayh> k
[22:11:15] <alex_joni> the same way all hal-stuff gets into the bucket
[22:11:20] <alex_joni> it should be on the GUI part too
[22:11:26] <alex_joni> a GUI-bucket ;)
[22:11:36] <alex_joni> and the user selects from there what he needs
[22:11:59] <rayh> This is an extension of the discussion with Robin last night
[22:12:12] <alex_joni> yes
[22:12:20] <alex_joni> I had a thought ;)
[22:12:30] <rayh> * rayh is all eyes
[22:12:38] <alex_joni> I played with a doze software called LCDHype
[22:12:53] <alex_joni> and with it's linux-equivalent lcdproc
[22:13:13] <alex_joni> basicly it's a software to connect some LCD to a parport
[22:13:28] <alex_joni> has a lot of drivers (for different LCD-types)
[22:13:56] <alex_joni> now I was thinking that it would be very easy to write a NML-component (GUI equivalent)
[22:14:03] <alex_joni> who sends data to lcdproc
[22:14:14] <alex_joni> and outputs the GUI on a LCD
[22:15:31] <alex_joni> I was thinking that an LCD could be better on a machine, than a monitor
[22:15:52] <alex_joni> you can put it easy behind a lexan, or whatever to protect it
[22:15:53] <rayh> There are certainly a number of machines that use them.
[22:16:06] <alex_joni> text-mode LCD is fine too
[22:16:21] <alex_joni> well.. that was just a thought...
[22:16:37] <alex_joni> I might do that sometime, but right now the other stuff is more needed ;)
[22:17:06] <rayh> The NML is a kind of bucket, or is it.
[22:17:19] <alex_joni> hmmm.. more like a network of pipes
[22:17:21] <alex_joni> ;)
[22:17:44] <rayh> Right and for your lcd you need a memory.
[22:18:08] <alex_joni> memory?
[22:18:19] <rayh> So that you can easily switch between little parts like location or mode or lines of g-code.
[22:18:45] <alex_joni> ahh.. yes, you need some buttons too ;)
[22:19:03] <rayh> I imagine it to be like a big sheet of paper and you slide the LCD display over it.
[22:20:25] <rayh> The text on the paper is the current state of the EMC at all times.
[22:20:41] <alex_joni> yes
[22:21:02] <alex_joni> all you need is an component linked to emcstatus
[22:21:19] <alex_joni> and it gets the latest stuff from there (position, etc.)
[22:21:54] <rayh> I've never gotten my head around emcstatus.
[22:22:30] <alex_joni> well... I'm not an expert either ;)
[22:22:51] <rayh> but if all of the current state of emc resides there...
[22:23:09] <alex_joni> it's a NML-channel
[22:23:14] <alex_joni> just like any other
[22:23:18] <alex_joni> but it's for status
[22:23:34] <rayh> okay.
[22:24:19] <alex_joni> * alex_joni is looking at a .nml file
[22:24:43] <alex_joni> tkemc is connected as xemc .. right?
[22:24:56] <alex_joni> actually emcsh
[22:26:21] <alex_joni> yes.. that's it
[22:26:39] <alex_joni> emcsh connects to 5 NML channels
[22:26:57] <alex_joni> emcCommand (where it sends command to the taskcontroller)
[22:27:15] <alex_joni> emcStatus (where it gets status from the taskcontroller)
[22:27:34] <alex_joni> emcError (channel for errors, connected to all components)
[22:27:50] <rayh> Yes tkemc and mini use emcsh.
[22:27:54] <alex_joni> toolCmd (to send commands to the tool controller)
[22:28:02] <rayh> tkio uses iosh.
[22:28:15] <alex_joni> toolSts (status back from the tool controller)
[22:28:47] <rayh> That is where spindle, tool, lube, and such are handled for tickle scripts.
[22:29:30] <alex_joni> I suspect iosh connects only to toolCmd and toolSts
[22:30:36] <alex_joni> I just love it when I'm right ;)
[22:31:47] <alex_joni> logger_aj, bookmark
[22:31:47] <alex_joni> See
[22:33:22] <rayh> If you've got a few minutes let me describe my imagination for a comprehensive interface.
[22:33:50] <alex_joni> go right ahead
[22:34:12] <rayh> You are sitting near one corner of a square room looking at the opposite corner.
[22:34:40] <anonimasu> * anonimasu lurks
[22:35:06] <rayh> The entire wall to the left of that opposite corner is filled with status reports from the EMC.
[22:35:43] <alex_joni> there are two walls on the left ;-)
[22:35:50] <rayh> The entire wall to the right of that opposite corner is filled with signals to the EMC.
[22:36:19] <rayh> True but you have to turn your head to see the one partially behind you.
[22:36:30] <alex_joni> :P
[22:36:33] <alex_joni> ok.. go ahead
[22:36:44] <rayh> We may need it but right now it's the two away from you I'm looking at.
[22:37:12] <alex_joni> ok
[22:37:20] <rayh> Signals to the EMC are a bit like buttons except that they also have variables that may be attached.
[22:37:52] <rayh> For example SCALE which can have a value. 50% 90%...
[22:38:12] <rayh> It can also have a min and max value.
[22:38:40] <alex_joni> agreed so far
[22:38:43] <rayh> Now right in front of you is a tipped table top. Like a drafting table
[22:39:11] <rayh> When you reach up and grab SCALE, it's variables come with it to your table.
[22:39:43] <alex_joni> ok
[22:40:03] <rayh> When it gets to your table it gets pressed into the shape of a button, a scale, or whatever you choose to use to display and manipulate it.
[22:40:52] <rayh> Now look for a moment at the state wall while we enter a value into SCALE and send it off.
[22:41:18] <rayh> There you see SCALE's value change
[22:42:06] <rayh> And you also see the color of the SCALE presentation change to red.
[22:42:20] <rayh> When NML is done with it's wait state then that SCALE display changes to green.
[22:43:07] <alex_joni> SCALE is input to EMC?
[22:43:11] <rayh> Now if you grab SCALE from the state wall and stick it on your table it brings with it the nature of the variable.
[22:43:14] <rayh> Yes.
[22:43:19] <robin_sz> evening
[22:43:22] <alex_joni> just the man needed
[22:43:28] <alex_joni> hello robin
[22:43:29] <alex_joni> ;)
[22:43:33] <rayh> It overrides speed/
[22:43:38] <rayh> Hi robin.
[22:43:41] <alex_joni> ah, ok
[22:43:53] <alex_joni> robin: check the last hour log
[22:44:32] <robin_sz> log of?
[22:44:36] <rayh> In my imagination we have created a completely flexible gui environment.
[22:44:38] <alex_joni> irctalks
[22:44:48] <alex_joni> logger_aj, bookmark
[22:44:48] <alex_joni> See
[22:44:54] <robin_sz> how would I do that?
[22:45:29] <rayh> The size and shape of the drafting table determines the gui look and feel
[22:45:45] <rayh> But the wall information remains the same.
[22:46:00] <alex_joni> well .. the wall would be emcsh ?
[22:46:05] <rayh> Every state, Every command, always available to the desktop.
[22:46:14] <rayh> Yea only bigger.
[22:47:16] <alex_joni> ok
[22:47:25] <alex_joni> so far I agree ;)
[22:47:31] <rayh> And more generalized so that your work with the LCD could draw from it as well.
[22:47:32] <robin_sz> alex_joni: the NML message stuff?
[22:47:51] <rayh> * rayh gets another cup of coffee
[22:47:57] <alex_joni> NML, classicladder, HAL
[22:48:04] <alex_joni> a lot of nice stuff ;)
[22:48:13] <robin_sz> yeah saw that
[22:48:51] <alex_joni> are you familiar with lcdproc?
[22:49:04] <robin_sz> nope
[22:49:57] <alex_joni> never mind then ;)
[22:50:38] <robin_sz> i saw the thing .. lcd , parport, gui
[22:53:32] <alex_joni> * alex_joni went to bed
[22:53:35] <rayh> There are five deer on my porch eating seeds the birds dropped.
[22:54:07] <robin_sz> wow,
[22:54:14] <alex_joni> thanks to my wifi ;)
[22:54:17] <robin_sz> what sort of deer?
[22:54:26] <rayh> Whitetails
[22:54:32] <robin_sz> ahh yes.
[22:54:41] <alex_joni> nice.. can you pet them?
[22:54:43] <robin_sz> .243 is ideal
[22:54:59] <anonimasu> ^_^
[22:55:07] <rayh> No They run if you get very close.
[22:55:21] <rayh> I've had one almost eat an apple out of my hand.
[22:55:41] <rayh> The dog got upset and chased it away.
[22:55:45] <alex_joni> lol
[22:56:47] <alex_joni> ok... now where were we?
[22:56:54] <alex_joni> emcsh needs to be expanded
[22:57:17] <alex_joni> custom signals (NML-messages) need to be added
[22:57:19] <robin_sz> * robin_sz was doing 3 axis routing of handgrips today
[22:57:27] <alex_joni> coo
[22:57:35] <alex_joni> wabbit based?
[22:57:40] <robin_sz> nah
[22:57:49] <rayh> Like the one you posted the scan of?
[22:57:54] <anonimasu> nice
[22:57:55] <robin_sz> yep
[22:58:16] <rayh> Great. I did a little target shooting when I was a kid.
[22:58:29] <robin_sz> im still a kid :)
[22:58:56] <alex_joni> http://lcdproc.sourceforge.net/smoketests/
[22:59:13] <alex_joni> kinda like compile_farm
[23:01:29] <alex_joni> robin: got any thoughts on the NML/GUI stuff=
[23:01:30] <alex_joni> ?
[23:03:31] <rayh> alex_joni: emcsh is tickle specific and also a limited set of the status and commands available.\
[23:04:22] <alex_joni> ok.. so you think about a more genric layer above?
[23:04:39] <rayh> Yes.
[23:04:59] <alex_joni> but the GUI still needs to access it through emcsh
[23:05:04] <alex_joni> tkemc at least
[23:05:11] <rayh> One that could be approached by any tool set
[23:05:13] <rayh> Yep.
[23:05:49] <alex_joni> ok, in that case the emcsh interface could get rewritten
[23:05:58] <alex_joni> it won't talk NML anymore
[23:06:12] <alex_joni> it would talk to that component (the wall)
[23:06:26] <rayh> You're quick
[23:06:42] <alex_joni> I'm tired ;)
[23:07:10] <rayh> We can continue another time...
[23:07:27] <alex_joni> nah.. this sounds like something going in the right direction
[23:07:36] <alex_joni> usually stuff interrupted won't go any further
[23:07:38] <alex_joni> ;)
[23:07:54] <rayh> I haven't a clue what the wall really looks like in data terms.
[23:08:16] <rayh> xml could do it but there is a lot of overhead.
[23:08:23] <alex_joni> probably a bunch of bricks
[23:08:40] <alex_joni> each brick containing one or more fields
[23:08:54] <rayh> That would be find.
[23:08:56] <rayh> fine
[23:10:03] <rayh> Could the info in a brick be self defining.
[23:10:20] <alex_joni> should be
[23:11:29] <rayh> So that if you grab a brick and drop it onto the desk it has it's own variable names as well as legends.
[23:11:56] <alex_joni> and basic type (button, slider, etc.)
[23:12:00] <alex_joni> for the GUI
[23:12:51] <rayh> Would the wall be in english or i18n
[23:12:59] <anonimasu> hm, could the sliders/text/buttons be made as objects with a cyclic time set for updates?
[23:13:45] <anonimasu> or as buttons/sliders.. with a push function to push the updated values
[23:13:46] <alex_joni> should be i18n
[23:14:01] <anonimasu> back into the program
[23:14:47] <rayh> Any command should have a way to push the new value.
[23:14:59] <anonimasu> yeah true..
[23:15:14] <anonimasu> and the "wall" is a data abstraction object which takes care of the messaging..
[23:15:30] <rayh> Right now emcsh uses commands to querry value and the same command with a value to set it.
[23:15:41] <anonimasu> and manages which data goes where efficiently..
[23:15:51] <alex_joni> rayh:talking about tcl/emcsh interface?
[23:15:52] <rayh> [emc_mode] returns the current mode
[23:15:59] <anonimasu> * anonimasu is just ranting
[23:16:00] <alex_joni> or emcsh/emc interface?
[23:16:03] <anonimasu> I have no clue on how you do it today
[23:16:09] <alex_joni> an0n: http://www.robijn.net/lcdproc/lcdvc/
[23:16:12] <anonimasu> I was thinking the way I do it at the plc's I work with..
[23:16:19] <rayh> while emc_mode manual sets the value
[23:16:44] <anonimasu> I am thinking the same way as when I code the PLC's I do at work..
[23:17:53] <rayh> ?
[23:18:45] <anonimasu> dont know how to explain what I was thinking really.. need pen and paper..
[23:18:59] <rayh> * rayh knows that feeling
[23:19:32] <alex_joni> me too
[23:19:49] <rayh> We need IRC-whiteboard.
[23:20:00] <alex_joni> lol
[23:20:11] <alex_joni> is there smthg like that?
[23:21:06] <rayh> Not that I know of.
[23:21:14] <alex_joni> anyways...
[23:21:24] <alex_joni> we need inputs and outputs
[23:21:33] <alex_joni> right?
[23:21:34] <rayh> A graphical wiki. Yea yea that's it.
[23:22:33] <rayh> anonimasu: are you thinking of the notion that a plc reads all the inputs, computes the logic, and sets all the outputs?
[23:22:39] <anonimasu> rayh: no
[23:22:46] <anonimasu> rayh: I was thinking about the GUI
[23:23:00] <rayh> The ladder gui?
[23:23:05] <anonimasu> emc gui..
[23:23:14] <anonimasu> err the emc gui..
[23:23:53] <rayh> What should it do or look like.
[23:24:15] <anonimasu> I was thinking about how to pass data for user variables/buttons..
[23:24:39] <rayh> Ah.
[23:24:41] <anonimasu> allowing the user to easily add/remove their variables for display
[23:25:13] <rayh> This next is tickle specific.
[23:25:21] <anonimasu> but keeping it separate, from the rest of emc..
[23:25:33] <rayh> There is a program vtcl that is a kinda drag and drop and size.
[23:25:43] <anonimasu> yeah, somthing like that was what I thought about..
[23:25:59] <rayh> I wrote a dummy emc library for it so that a user can test out stuff.
[23:26:22] <alex_joni> you did?
[23:26:38] <rayh> then when ready, just remove the library and start as an ordinary emc gui.
[23:27:10] <rayh> The dummy only returns single values and does not do any kind of reality thing.
[23:27:51] <rayh> But I'd bet that I could work something like that up with the set of stuff from both walls if we could define them.
[23:28:04] <alex_joni> yup
[23:29:10] <rayh> vtcl has blt, and other graphical libraries can be added.
[23:29:29] <rayh> I'd have to create a library of emc graphical things.
[23:29:40] <anonimasu> yeah, I read a bit more about your wall idea..
[23:30:22] <alex_joni> what's blt?
[23:30:29] <rayh> axis displays --> axis names and values with actual, commanded, dtg, and such
[23:30:53] <rayh> It is an expansion library written in tickle with different widgets than the basic tk.
[23:32:46] <rayh> What we would need is a way to select a state variable or command and have it make it's own widget.
[23:32:59] <rayh> from the brick that is that variable or command.
[23:33:43] <rayh> vtcl can handle multiple toplevels
[23:34:25] <rayh> so one could build a complete control on multiple pages and switch between.
[23:34:49] <anonimasu> that sounds very neat
[23:36:40] <alex_joni> yup
[23:37:03] <rayh> vtcl is a bit klunky right now but it or something like it could be cleaned up.
[23:37:25] <rayh> What we need to do to start is define the bricks in the wall.
[23:37:45] <rayh> who let pink floyd in?
[23:37:49] <alex_joni> maybe using a wiki?
[23:38:06] <alex_joni> I think you just did
[23:38:21] <anonimasu> hm, could you tell me how you define "bricks" I missed that part
[23:38:28] <rayh> We could easily start a page on the wiki.
[23:38:42] <anonimasu> gui-rants
[23:38:43] <anonimasu> ^_^
[23:39:05] <rayh> There are two walls. One is all of the possible emc state varaibles
[23:39:17] <rayh> The other is all of the possible emc commands.
[23:39:33] <rayh> Each brick is a single variable or command.
[23:39:47] <anonimasu> ok, objects..
[23:39:50] <anonimasu> basically
[23:39:58] <rayh> That brick carries with it the units associated with the variable and any name or legend.
[23:40:33] <rayh> max and min values, current value and such
[23:41:10] <rayh> It might also carry a suggestion about the nature of widgets that would best display or operate the variable or command.
[23:41:12] <anonimasu> ok, I get it
[23:41:46] <rayh> Once that wall is built and working, any graphical or text library could approach it.
[23:42:06] <anonimasu> yeah, that's the same path I was thinking about that I forgot to write down :)
[23:42:37] <rayh> W could even make an html lib that would display a remote machine on a browser.
[23:42:56] <alex_joni> lol
[23:43:06] <alex_joni> now that's .. crazy
[23:43:10] <rayh> Hundreds of us could watch while one of us starts up a machine.
[23:43:17] <anonimasu> heavy data abstraction..
[23:43:25] <alex_joni> hehe
[23:43:36] <websys> rayh - with your connection speed?
[23:43:56] <rayh> I'd probably be light years behind.
[23:44:15] <robin_sz> wow.
[23:44:16] <rayh> Don't try putting an estop on my destop.
[23:44:31] <robin_sz> OK, who suddenly lit a fire under you gu[i]ys?
[23:44:32] <rayh> How you doing bob?
[23:44:33] <anonimasu> detaching the gui, from the rest of emc..
[23:44:50] <websys> very well - how was the warm weather?
[23:45:22] <rayh> Nice. A bit of ice but just wonderful. Longest midwinter thaw I've seen in 30 years.
[23:46:14] <rayh> I'm even imagining a set of widgets in Synergy that would run the machine with the code generated and a real-time motion component in the solid modeling display.
[23:46:16] <anonimasu> the idea is a bit extreme to actually implement, but it seems very nice..
[23:46:37] <rayh> I'm not much of a programmer. Dreamer more like.
[23:46:43] <websys> We could do that
[23:46:45] <anonimasu> but it could be done
[23:46:54] <alex_joni> I definately want a lcdproc GUI
[23:46:58] <alex_joni> ;)
[23:47:19] <rayh> That would be darn handy. Even on a control with a screen.
[23:47:20] <anonimasu> alex_joni: you would just grab the data off the wall and output it to the lcd
[23:47:35] <anonimasu> err bricks..
[23:47:36] <anonimasu> ;)
[23:47:48] <alex_joni> yes
[23:47:53] <alex_joni> pretty basic and simple
[23:48:46] <rayh> Via makes a itx sized board with four display drivers in sequence.
[23:49:09] <rayh> I could see Paul C making an EMC interface that stretched across all of them.
[23:49:31] <alex_joni> hehe
[23:49:42] <alex_joni> I have a dual-DVI out board
[23:49:48] <alex_joni> never used them both :(
[23:50:00] <rayh> Now I've got to quit dreaming and see if we can define a single brick...
[23:50:50] <danfalck> hi ray
[23:51:14] <rayh> Hi Dan. Paul there yet?
[23:52:35] <danfalck> yes he's here
[23:52:47] <rayh> Great.
[23:53:01] <danfalck> he's getting the laptop hooked up1
[23:53:04] <danfalck> up!
[23:53:11] <paul_c> Yo I'm in
[23:53:16] <rayh> Hi Paul.
[23:53:45] <alex_joni> hey paul
[23:54:05] <robin_sz> danfalck: thanks for the link .. I put it in
[23:54:14] <danfalck> thank you.
[23:54:25] <paul_c> alex_joni: Can you check your copy of 4.14 - I think you may have a corrupt download.
[23:54:41] <paul_c> Hi Ray.... Did the CDs turn up ?
[23:55:04] <alex_joni> hmmm...
[23:55:06] <rayh> Just did. I'll try installing tonight or tomorrow morning.
[23:55:09] <alex_joni> checking
[23:55:32] <alex_joni> paul: md5 not ok?
[23:55:34] <rayh> paul_c: do you know why sherline's downloads are gone again?
[23:55:36] <paul_c> Rebuilt the kernel, so it should install on the Via C3
[23:55:49] <rayh> That's where it's headed.
[23:55:53] <anonimasu> I hope my vise turns up tomorrow
[23:56:24] <rayh> idot.com says that they are discontinuing some of the 800 boards.
[23:56:52] <rayh> dropped price by $10 or so.
[23:57:13] <alex_joni> paul_c: md5sum is ok
[23:57:16] <robin_sz> that means they must be end-of-line i guess
[23:58:22] <paul_c> rayh: Looks like a permissions problem
[23:58:27] <rayh> Darn. I was nearing the end of a design.
[23:58:34] <rayh> Oh.
[23:59:05] <rayh> Someone take them off line cause we were hitting them to hard?
[23:59:12] <robin_sz> Permissions? go and check with Ms Whiplash, she is in chrage of permissions around here ;)
[23:59:48] <rayh> okay...