#emc-devel | Logs for 2009-10-21

[01:18:16] <cradek> I wish someone would fix spindle sync so it works for everyone and not just me
[01:18:35] <cradek> we have a dozen people saying what they think must be wrong with it, who probably haven't even looked at the code
[01:18:50] <cradek> and of course we hear that mach can [magically, I guess] do rigid tapping with 1ppr
[01:18:55] <cradek> so frustrating
[01:39:49] <Dave911> >> and of course we hear that mach can [magically, I guess] do rigid tapping with 1ppr
[01:39:51] <Dave911> That would have to be magic as they never claimed to be able to do rigid tapping. Heck even Mach3 threading is not right..
[01:39:52] <Dave911> From that scope screen it looks like the correction has a bug in it. But it is working for you? What is your encoder count again - pretty high?
[01:43:12] <Dave911> I just put a 200 ppr encoder on my lathe and I may try to run threading with it later this week. I had a 1024 encoder on it - too fine for PPort sampling.
[01:43:21] <cradek> yes the problem is with granularity in the spindle feedback
[01:43:30] <cradek> mine works really great
[01:43:56] <cradek> for threading (non reversing) you can count an encoder twice as fast by using counter mode
[01:44:14] <Dave911> How often is the correction routine run - every servo loop - 1 ms?
[01:44:16] <cradek> the change I made recently should make it much better
[01:44:20] <cradek> yes every servo loop
[01:44:40] <cradek> the problem with low count encoders is that for many servo cycles in a row it will see NO change in the spindle position
[01:44:57] <cradek> then all of a sudden, there's a huge jump when an encoder line finally goes by
[01:45:03] <Dave911> I need to make sure to put that in counter mode then as there is no way I'm going to do tapping with this big spindle motor
[01:45:15] <Dave911> So it is winding up
[01:45:37] <cradek> well it thinks the spindle has stopped - it tries to stop Z (at Z's max acceleration)
[01:45:43] <Dave911> Integrating an error that really doesn't exist
[01:45:55] <cradek> then many cycles later, the spindle position jumps way ahead...
[01:46:12] <cradek> you can see why it doesn't settle
[01:46:22] <Dave911> I get it...
[01:46:36] <cradek> if your encoder gives many counts per servo cycle, so the spindle appears to be moving smoothly, it works great
[01:46:48] <cradek> that's why using the interpolated position mode helps
[01:47:10] <Dave911> So can the update be delayed until the next encoder pulse is seen?
[01:47:31] <Dave911> IE, don't correct until the leading edge of the next pulse
[01:47:42] <cradek> adding delays seems to always make stuff worse
[01:47:50] <cradek> good feedback is the real answer IMO
[01:51:12] <Dave911> So the results are the same with the hostmot driver as with the PPort driver also?? no difference
[01:52:04] <Dave911> Is all of the threading sync code in that one file that you patched?
[01:52:23] <cradek> yes pretty much all the motion planning is there
[01:52:53] <cradek> driver/interface doesn't matter except some allow you to have higher resolution encoders
[01:53:32] <cradek> when people have trouble with this, they turn the spindle down slower - that makes it worse, not better, when you think about the problem I described (spindle "stops" for even longer)
[01:54:19] <cradek> the slower your machine is (crappy underpowered steppers) the slower the acceleration, the slower you have to run the spindle to thread, the worse it gets
[01:54:59] <cradek> it's a big swirl of badness
[01:55:20] <cradek> my lathe is fast and accelerates fast and has good quality feedback - no wonder it works for me
[01:55:51] <jmkasunich> the oscillation in the latest screenshot is not due to low encoder resolution
[01:56:10] <cradek> what was that url?
[01:56:13] <jmkasunich> (this screenshot) http://mah.priv.at/gallery2/main.php?g2_view=core.DownloadItem&g2_itemId=70522
[01:56:31] <Dave911> I need to figure out GIT anyway I guess. I'll try and pull that file down - I think from that patch I can find that chunk of code. Perhaps I can figure something out there.
[01:56:33] <Dave911> So it looks like the Z speed is being altered between the encoder pulses - correct? Since the encoder pulses are further apart with a coarse encoder it slows the Z thinking that the spindle has stopped.
[01:56:34] <Dave911> Shouldn't the spindle speed be assumed to be constant unless it is updated via a new encoder pulse being sense??
[01:56:45] <cradek> I'm guessing that's the incorrect initial velocity problem - which I fixed (ish)
[01:56:54] <jmkasunich> Dave911: EMC doesn't know anything about speed, it deals with spindle position
[01:57:04] <cradek> Dave911: fwiw, that's what the interpolated encoder output does
[01:57:15] <cradek> I have no idea why he has f-error there
[01:57:21] <cradek> he's got more than one problem maybe
[01:57:49] <Dave911> Is the F error following error?? I didn't quite understand what he was showing.
[01:57:53] <jmkasunich> his following error is proportional to his velocity command
[01:57:55] <cradek> yes
[01:58:49] <jmkasunich> that ferror behavior is what you'd expect if you have only P in your PID loop - but that has nothing to do with the threading issue
[01:59:08] <cradek> I agree it is unrelated
[01:59:15] <cradek> (no clue about the cause)
[01:59:38] <cradek> do we know what code he's running when he got this?
[01:59:44] <Dave911> OK, so I guess I mean shouldn't the change in position per servo cycle ( velocity) be considered constant between encoder position updates on the spindle?
[02:00:17] <Dave911> Or is that what interpolated encoder position is??
[02:00:28] <jmkasunich> Dave911: that is what interpolated position is
[02:01:00] <jmkasunich> the normal position output of the encoder counter advances in discrete steps whenever 1 (or more) encoder pulses has arrived
[02:01:14] <Dave911> So wouldn't interpolated encoder position improve this situation?
[02:01:19] <cradek> yes, and it does
[02:01:42] <jmkasunich> the interpolated output advances on every servo period, even when a pulse hasn't arrived, based on the spacing of the last two pulses (and some other fiddling)
[02:02:10] <Dave911> OK, I missed that. I thought in the message thread a while back that using interpolated was not recommended - perhaps Steve Blackmore told me that off the list - I'm not sure..
[02:02:42] <jmkasunich> Interpolated is NOT suitable for axis feedback - you don't close a position loop on X, Y, or Z using interpolated
[02:03:39] <jmkasunich> but when you are slaving one or more axes to a master, interpolated IS recommended for the master
[02:04:07] <cradek> note that the hardware encoder counters do not have this option - but with them you can use a suitable encoder so it's not needed
[02:04:50] <jmkasunich> depending on the hardware, it is quite possible to provide interpolated position even for hardware based counters
[02:04:57] <cradek> pick an encoder so you get at least a couple dozen edges per servo cycle at tapping/threading speed and you will be fine
[02:05:10] <jmkasunich> specifically, those which capture a timestamp with each encoder edge
[02:05:11] <cradek> jmkasunich: right, timestamps
[02:05:54] <SWPadnos> you also don't use position-interpolated for rigid tapping, since it has to reverse
[02:06:14] <cradek> yeah I doubt it does reversal perfectly enough
[02:06:16] <SWPadnos> I asked for the HAL files he used to generate that screenshot, but I think he's in Germany, so it may be tomorrow before we see them
[02:06:27] <Dave911> The guy on the email list did not indicate if he was using interpolated encoder position or not.
[02:06:36] <jmkasunich> SWPadnos: you can still use position-interpolated for tapping
[02:06:52] <SWPadnos> I thought you pointed out that there's an expected 2-count jump at reversal
[02:07:14] <SWPadnos> since interpolated "keeps going", but then the real feedback says "whoah there, we've gon the other way"
[02:07:27] <jmkasunich> it isn't perfect during a reversal, but it is never off by more than one encoder count (maybe 2).... if your counts are so coarse that 2 counts will cause a problem, then you REALLY need a finer encoder
[02:07:37] <SWPadnos> heh
[02:08:02] <jmkasunich> tapping DOES need a finer encoder, there is simply no way around that
[02:08:24] <SWPadnos> yeah, the expectation that speed will be somewhat constant goes out the window for tapping, I think
[02:08:31] <SWPadnos> so you need better feedback
[02:08:40] <cradek> argh, half hour and my post hasn't showed up yet
[02:08:41] <Dave911> So can you use interpolated encoder position and use the counter mode at the same time ??
[02:08:57] <SWPadnos> I think so
[02:09:08] <SWPadnos> it was written so you could do 1-PPR threading
[02:09:23] <SWPadnos> so you'd use counter mode, connect the one pulse to both PHASE-A and intdex, and tap
[02:09:25] <SWPadnos> err, thread
[02:09:32] <cradek> yeah, not tap
[02:09:37] <SWPadnos> right
[02:09:40] <Dave911> I'm not going to do rigid tapping, the spindle is way too big to reverse for a tap..
[02:09:40] <cradek> not that someone won't try it
[02:09:40] <jmkasunich> yes, interp-pos has nothing to do with count mode
[02:10:13] <cradek> Dave911: I tap on a 2hp and 7.5hp spindle - is yours much bigger?
[02:10:28] <Dave911> 30 KW
[02:10:30] <cradek> even taking a few turns to reverse is fine
[02:10:41] <jmkasunich> tapping MUST be in quadrature mode so it can sense reversal, and it MUST have reasonable resolution.... the discussion on the list isn't about tapping and that just muddies the water
[02:11:15] <cradek> true
[02:12:01] <Dave911> I guess there is really no reason why I couldn't tap with it, there is just a lot of mass to brake stop and reverse..
[02:12:41] <cradek> just need a BIG braking resistor...
[02:12:57] <SWPadnos> or tell the spindle to stop about 1" before the end of the cut ;)
[02:12:59] <SWPadnos> maybe more
[02:13:12] <cradek> yeah, or just go slow
[02:14:21] <Dave911> I don't think the spindle drive has an external braking resistor come to think of it.. But you are right telling it to stop an inch before I run out of tap would do the trick ;-)
[02:14:23] <Dave911> Actually it goes slow really well, it is a very smooth at low speeds.
[02:14:52] <Dave911> What is a "reasonable" resolution? The 200 PPR I put on resolves to 800 positions per rev. in quad mode. That seems pretty high to me.
[02:15:19] <cradek> like I said earlier, shoot for dozens of edges per servo cycle at threading speed
[02:15:27] <cradek> (or more)
[02:15:43] <cradek> that knocks your granularity way down into don't-care territory
[02:16:32] <Dave911> So like you were saying before this really sounds like a granularity problem. If you have 1 or 2 encoder edges per servo cycle - that is a huge difference..
[02:16:48] <cradek> yes
[02:17:02] <SWPadnos> the percentage difference between 25 and 26 counts is very small compared to the difference between 0 and 1
[02:17:11] <cradek> very true
[02:17:41] <cradek> so unless I know your servo cycle speed and your desired threading rpm, I can't give you an encoder spec
[02:17:47] <Dave911> I see what you mean... But does such drastic action have to take place that often - ie is the loop gain not way too high then??
[02:17:49] <cradek> and if I did, I wouldn't anyway, because you can do the math :-)
[02:18:23] <cradek> Dave911: it's responsive because the same algorithm is used for tapping. you can't have any delay for tapping because you can't lag behind in position.
[02:18:40] <cradek> I bet it could be smoothed a lot for people who don't tap.
[02:18:59] <cradek> a constant .005 behind where you want to be while threading - who cares
[02:19:10] <Dave911> Yep, I can see why it would have to be very tight for tapping.
[02:19:13] <cradek> while tapping - that's .010 difference between "going in" and "going out" which is pretty bad
[02:24:38] <Dave911> Yep, if I could never tap with my lathe I'd be ok with that. Realistically I'd probably put a tapping head in the turret and forget about it. No spindle reversals etc. I'm trying to set it up with a bar feeder to make lots of parts.. at least that is the immediate plans. My plan was to go with the PPort interface and then later go with a 5i20 board but perhaps my plan was flawed! ...
[02:24:40] <Dave911> ...20-20 hindsight
[02:25:44] <cradek> with a 20000 base thread and 1000000 servo cycle, you can easily get dozens of edges per servo cycle (but at a limited range of speeds)
[02:26:35] <cradek> on a machine with low accel, I bet you could do 500Hz servo cycle and improve it even more
[02:28:09] <Dave911> I can see that. I have several things to try out.
[02:30:48] <Dave911> cradek: Is that patch that was discussed on the email list part of the GIT"trunk" now? (I think I said that right?)
[02:31:13] <cradek> the one on trunk is similar
[02:31:41] <cradek> kept the part where the initial velocity match is done, did not keep the smoothing which I think might hurt tapping
[02:31:54] <Dave911> So you tweaked it a little further than the patch he had?
[02:31:58] <cradek> yes
[02:34:25] <Dave911> Well thanks! I'm going to print off this conversation and put it with my threading notes, pull down the source code and study that file where you patched it. Get to my lathe and try it out.
[02:34:26] <Dave911> Unfortunately the lathe is about an hour away so it may be a few days before I get to it. Sounds like more will happen before then with Haberler's testing.
[02:35:05] <Dave911> Haberler ... the guy in Germany who brought this up again.
[02:36:05] <cradek> ok, good luck and report back
[02:36:41] <cradek> maybe configurable smoothing is what we want, so people can thread ok with terrible feedback and tap well with excellent feedback
[02:37:01] <cradek> (that kind of makes me want to hurl though)
[02:54:49] <Dave911> >>>(that kind of makes me want to hurl though)
[02:54:51] <Dave911> You'll get over that feeling when people stop complaining that the threading routine doesn't work when _______ ;-)
[02:54:52] <Dave911> >>so people can thread ok with terrible feedback
[02:54:54] <Dave911> I'm used to the Mach3 world where the standard is 1 ppr for threading. So 200 ppr is rocket science compared with Mach's 1ppr standard.
[02:54:55] <Dave911> Of course threading doesn't work with Mach3 but that's another story.. :-(
[02:54:57] <Dave911> Making one more thing configurable does add complexity.
[02:54:59] <Dave911> I'll report back. Thanks!
[02:56:27] <cradek> I saw threads cut by mach3 on a small crappy lathe at cnc workshop 2 years ago - as you would expect, they were crappy and wavy ("drunken"?)
[02:56:49] <cradek> EMC does ok on my sherline with good feedback (1024 line)
[03:01:59] <cradek> but even my little sherline is pretty fast and can accelerate nicely - it's a little servo hackup
[03:02:11] <SWPadnos> low mass helps
[03:02:16] <cradek> I don't have any crappy underpowered machines to test :-/
[03:02:20] <SWPadnos> heh
[03:02:31] <SWPadnos> you could reduce the current limit on your HNC
[03:02:36] <SWPadnos> servos
[03:02:51] <cradek> I ain't soldering no more resistors on that damn thing
[03:02:56] <SWPadnos> heh
[03:03:04] <SWPadnos> here I am thinking they use pots for that
[03:03:17] <cradek> it was hard enough to make it work right - making it work wrong would probably be worse
[03:03:21] <SWPadnos> wait wait - replace those drives with Geckos!
[03:03:27] <cradek> haha
[03:03:31] <Dave911> >>crappy underpowered machines .....
[03:03:33] <Dave911> You aren't looking for them hard enough. They are easy to find.. ;-)
[03:04:01] <cradek> good idea - I bet the geckos would love the 204800 counts/inch feedback
[03:04:33] <cradek> and software stepgen would be good enough, right?
[03:04:35] <SWPadnos> sure, as long as you don't go faster than 1 IPS or so
[03:04:42] <SWPadnos> (for the geckos)
[03:05:16] <cradek> lovely
[05:01:20] <CIA-82> EMC: 03cmorley 07master * raa9e11d00a37 10/src/emc/usr_intf/pncconf/ (pncconf.glade pncconf.py): Jog button mpg work
[05:01:30] <CIA-82> EMC: 03cmorley 07master * redb603981bf0 10/src/emc/usr_intf/pncconf/pncconf.py: Clean up hal file output, Change to stepper settings
[05:58:19] <CIA-82> EMC: 03seb 07master * ref35c86acf71 10/configs/hm2-servo/ (9 files): Fix homing in the hm2-servo config.
[06:33:21] <micges_work> good morning
[13:58:28] <BJT-Work> BJT-Work is now known as JT-Work
[14:20:21] <Dave911_> Dave911_ is now known as Dave911
[16:24:00] <CIA-82> EMC: 03cradek 07random_toolchange * r8a20888daf91 10/ (46 files in 20 dirs): Merge branch 'master' into random_toolchange
[18:51:26] <cradek> does anyone know how to put a license statement in a glade file?
[18:51:37] <cradek> bonus points if glade doesn't puke on it
[18:52:16] <jepler> good question
[18:52:30] <jepler> you could add an xml comment, but glade is almost certain to discard it when it writes out the file
[18:52:41] <jepler> you could put it in the text of a widget in a non-shown window
[18:52:44] <cradek> yeah that's not optimal...
[18:57:06] <jepler> a survey of glade files on my system doesn't turn up any that embed license information
[18:58:31] <cradek> I found a place to cram it in
[18:58:46] <cradek> MainWindow / Accessibility / Name / Comments for translators
[18:58:54] <cradek> (whatever that is)
[19:05:43] <CIA-82> EMC: 03seb 07master * r82040654265c 10/configs/hm2-servo/ (10 files): better description of this config, and better comments inside
[19:33:16] <CIA-82> EMC: 03cradek 07master * rbe07d9c303d9 10/src/emc/usr_intf/touchy/ (emc_interface.py touchy.glade touchy.py): add override limits
[19:33:16] <CIA-82> EMC: 03cradek 07master * r76026acb28c2 10/ (9 files in 3 dirs): initial import of touchy, the touchscreen gui
[19:33:17] <CIA-82> EMC: 03cradek 07master * rad67a2fd7204 10/src/emc/usr_intf/touchy/ (touchy.glade touchy.py): give up on using images, for now
[19:33:18] <CIA-82> EMC: 03cradek 07master * r1ad59cc2e007 10/src/emc/usr_intf/touchy/design.notes: design notes
[19:33:18] <CIA-82> EMC: 03cradek 07master * r29558c1312d5 10/src/emc/usr_intf/touchy/emc_interface.py: show tlo in relative dro
[19:33:22] <CIA-82> EMC: 03cradek 07master * re489870230e0 10/src/emc/usr_intf/touchy/ (design.notes emc_interface.py touchy.glade touchy.py): some status stuff
[19:33:25] <CIA-82> EMC: 03cradek 07master * rfc0ecb2c2e79 10/src/emc/usr_intf/touchy/ (emc_interface.py touchy.glade touchy.py): prepped tool display
[19:33:28] <CIA-82> EMC: 03cradek 07master * rfd7a7d87d1e5 10/ (configs/sim/touchy.ini src/emc/usr_intf/touchy/touchy.glade): start auto mode
[19:33:31] <CIA-82> EMC: 03cradek 07master * r4f7f19b8c294 10/src/emc/usr_intf/touchy/ (touchy.glade touchy.py): file chooser widgets, sort of
[19:33:36] <CIA-82> EMC: 03cradek 07master * r503143b3ce80 10/src/emc/usr_intf/touchy/ (Submakefile touchy.glade touchy.py): filechooser events
[19:33:39] <CIA-82> EMC: 03cradek 07master * r5551892bcd51 10/src/emc/usr_intf/touchy/filechooser.py: file chooser working
[19:33:42] <CIA-82> EMC: 03cradek 07master * r36ff017a881d 10/src/emc/usr_intf/touchy/touchy.py: oops, fix it to run again
[19:33:47] <CIA-82> EMC: 03cradek 07master * r22e839909839 10/ (2 files in 2 dirs): fix highlighting of loaded file
[19:33:49] <CIA-82> EMC: 03cradek 07master * r258cd683254d 10/src/emc/usr_intf/touchy/touchy.glade: screen whitespace fix
[19:33:52] <CIA-82> EMC: 03cradek 07master * rf00c886247de 10/src/emc/usr_intf/touchy/ (design.notes emc_interface.py touchy.glade touchy.py): manual controls
[19:33:55] <CIA-82> EMC: 03cradek 07master * r1bfd0eee10dc 10/src/emc/usr_intf/touchy/design.notes: update design doc with things that are done
[19:34:00] <CIA-82> EMC: 03cradek 07master * r3e02fe79f4fa 10/src/emc/usr_intf/touchy/filechooser.py: read in the file, probably badly
[19:34:03] <CIA-82> EMC: 03cradek 07master * rd36bc0289855 10/src/emc/usr_intf/touchy/touchy.py: visual tweaks, and load touchy.hal to hook up the controls
[19:34:06] <CIA-82> EMC: 03cradek 07master * rf0dc61b0563e 10/src/emc/usr_intf/touchy/ (filechooser.py touchy.glade touchy.py): filechooser reload
[19:34:13] <CIA-82> EMC: 03cradek 07master * r1cde4ce33972 10/configs/sim/touchy.hal: need this for it to run now
[19:34:15] <CIA-82> EMC: 03cradek 07master * r95df2d637beb 10/src/emc/usr_intf/touchy/ (hal_interface.py touchy.py): better handling of the Jogging button's status
[19:34:18] <CIA-82> EMC: 03cradek 07master * rfff3fc498157 10/src/emc/usr_intf/touchy/ (emc_interface.py mdi.py touchy.glade touchy.py): dro commanded/actual, mdi T, gui part of dro inch/mm
[19:34:23] <CIA-82> EMC: 03cradek 07master * raee8b52ac8ca 10/src/emc/usr_intf/touchy/ (emc_interface.py hal_interface.py touchy.py): some support for continuous jog
[19:34:26] <CIA-82> EMC: 03cradek 07master * r6875126eec85 10/src/emc/usr_intf/touchy/ (emc_interface.py hal_interface.py): quill up
[19:34:29] <CIA-82> EMC: 03cradek 07master * r92c54d75e60e 10/src/emc/usr_intf/touchy/ (emc_interface.py hal_interface.py touchy.py): wheel changes fo/so/mv and messages are sent
[19:34:36] <CIA-82> EMC: 03cradek 07master * rf3fcff4eb2d5 10/src/emc/usr_intf/touchy/emc_interface.py: make the initial jog velocity agree with the screen
[19:34:39] <CIA-82> EMC: 03cradek 07master * re5f1eef16744 10/src/emc/usr_intf/touchy/touchy.py: This somehow doesn't unset the font. (?)
[19:34:42] <CIA-82> EMC: 03cradek 07master * r87308a131442 10/src/emc/usr_intf/touchy/ (emc_interface.py mdi.py touchy.glade touchy.py): Touch off, using new G10 modes
[19:34:47] <CIA-82> EMC: 03cradek 07master * r9ba064eafd75 10/src/emc/usr_intf/touchy/ (emc_interface.py hal_interface.py): run/stop/step/resume
[19:34:50] <CIA-82> EMC: 03cradek 07master * r916b39c81865 10/src/emc/usr_intf/ (4 files in 2 dirs): visual tweaks and make quill-up work better
[19:34:53] <CIA-82> EMC: 03cradek 07master * r95d2030002c8 10/src/emc/usr_intf/touchy/ (emc_interface.py touchy.glade touchy.py): allow single-block from stopped state, I think
[19:35:00] <CIA-82> EMC: 03cradek 07master * re8191d2c01dc 10/src/emc/usr_intf/touchy/emc_interface.py: do quill-up in terms of manual mode, not mdi
[19:35:03] <CIA-82> EMC: 03cradek 07master * rf9db489a25d2 10/src/emc/usr_intf/touchy/ (Submakefile filechooser.py listing.py touchy.glade touchy.py): program listing, doesn't do much yet
[19:35:06] <CIA-82> EMC: 03cradek 07master * r1069b29464d5 10/src/emc/usr_intf/touchy/ (touchy.glade touchy.py): more lines of listing, and a configurable font
[19:35:11] <CIA-82> EMC: 03cradek 07master * r733a972f7660 10/src/emc/usr_intf/touchy/ (emc_interface.py hal_interface.py touchy.glade touchy.py): use cycle start button for mdi as well
[19:35:14] <CIA-82> EMC: 03cradek 07master * rcad7cb32dea5 10/src/emc/usr_intf/touchy/touchy.glade: use table instead of vbox when there are many items
[19:35:19] <CIA-82> EMC: 03cradek 07master * r9f9e3e3914b6 10/src/emc/usr_intf/touchy/touchy.py: simplification?
[19:35:21] <CIA-82> EMC: 03cradek 07master * r36559103cfc1 10/src/emc/usr_intf/touchy/touchy.py: looks better if the headings are in the control font
[19:35:26] <CIA-82> EMC: 03cradek 07master * r7523b84cacbf 10/src/emc/usr_intf/touchy/ (Submakefile preferences.py touchy.py): save font preferences, yay
[19:35:29] <CIA-82> EMC: 03cradek 07master * rc45055cdd5ba 10/src/emc/usr_intf/touchy/ (emc_interface.py listing.py touchy.py): show the running gcode program
[19:35:34] <CIA-82> EMC: 03cradek 07master * rd77391bac665 10/src/emc/usr_intf/touchy/ (emc_interface.py touchy.py): save dro prefs and honor inch/mm now
[19:35:37] <CIA-82> EMC: 03cradek 07master * ree8eacd241cf 10/src/emc/usr_intf/touchy/ (emc_interface.py listing.py): better handling of cycle start
[19:35:42] <CIA-82> EMC: 03cradek 07master * recadf97d24a2 10/src/emc/usr_intf/touchy/touchy.glade: new buttons for restart points
[19:35:45] <CIA-82> EMC: 03cradek 07master * r90936dc698d4 10/src/emc/usr_intf/touchy/ (emc_interface.py listing.py touchy.glade touchy.py): rfl support and coordinate system rotation
[19:35:50] <CIA-82> EMC: 03cradek 07master * r1f4ed2e0f4c8 10/src/emc/usr_intf/touchy/listing.py: handle listing of very short programs
[19:35:53] <CIA-82> EMC: 03cradek 07master * r1f786f204300 10/src/emc/usr_intf/touchy/listing.py: N search for start points
[19:35:58] <CIA-82> EMC: 03cradek 07master * r91609e761aec 10/src/emc/usr_intf/touchy/ (emc_interface.py touchy.glade touchy.py): add reload tool table button
[19:36:01] <CIA-82> EMC: 03cradek 07master * r7ec78c274c5b 10/src/emc/usr_intf/touchy/design.notes: update notes
[19:36:03] <CIA-82> EMC: 03cradek 07master * r09c7119dc2be 10/src/emc/usr_intf/touchy/ (emc_interface.py mdi.py touchy.py): touch off should change the active system
[19:36:06] <CIA-82> EMC: 03cradek 07master * r69bf7f7eb780 10/src/emc/usr_intf/touchy/ (hal_interface.py touchy.py): disable the jogging button at more right times
[19:36:09] <CIA-82> EMC: 03cradek 07master * r7552c2f7fc1b 10/src/emc/usr_intf/touchy/ (design.notes emc_interface.py touchy.glade touchy.py): add tlo display to status screen
[19:36:14] <CIA-82> EMC: 03cradek 07master * r97e7dd56fe77 10/src/emc/usr_intf/touchy/ (design.notes emc_interface.py touchy.glade touchy.py): blockdel, opstop
[19:36:19] <CIA-82> EMC: 03cradek 07master * re33392b7c435 10/src/emc/usr_intf/touchy/ (emc_interface.py touchy.py): abort button clears the error
[19:36:22] <CIA-82> EMC: 03cradek 07master * r687042724a1c 10/configs/sim/touchy.ini: ini cleanup
[19:36:24] <CIA-82> EMC: 03cradek 07master * rc5797ba3754e 10/src/emc/usr_intf/touchy/design.notes: Explanation, design goals, and very basic docs
[19:36:29] <CIA-82> EMC: 03cradek 07master * rbba7b6017d86 10/src/emc/usr_intf/touchy/touchy.hal.example: Example hal file that connects touchy's HAL stuff
[19:36:56] <skunkworks_> Nice work chris!
[19:37:20] <jepler> he's been very busy for the last five minutes
[19:40:47] <skunkworks_> :)
[20:27:48] <JT-Work> WOW!
[20:38:54] <skunkworks_> cradek: do you have a external cycle start? (how to you run mdi commands?)
[20:39:15] <cradek> yes when you're happy with what's shown in the mdi window, you poke cycle start
[20:39:38] <skunkworks_> ok - (stupid question - there isn
[20:39:40] <skunkworks_> isn
[20:39:46] <skunkworks_> sorry
[20:40:01] <skunkworks_> isn't one on the screen? (cycle start)
[20:40:08] <cradek> a little info here: http://git.linuxcnc.org/gitweb?p=emc2.git;a=blob;f=src/emc/usr_intf/touchy/design.notes;h=bc54c3965e220247d350799dec381ce58caa3cc9;hb=bba7b6017d86ca89a74f556fa22f46dbd6b5e6ab
[20:40:16] <cradek> nope, you need an actual button
[20:40:33] <cradek> obviously docs are needed - I didn't write them yet
[20:40:35] <skunkworks_> ok - Just making sure I wasn't doing somehting stupid
[20:40:57] <skunkworks_> It only took a second to figure out how to enter commands - pretty cool :)
[20:41:24] <cradek> yay I'm glad to hear that. handling mdi was the hardest/funnest part of it
[20:42:28] <cradek> it really works great on a touch screen
[20:43:06] <cradek> skunkworks_: halcmd setp touchy.cycle-start 1; sleep .2; halcmd setp touchy.cycle-start 0
[20:43:29] <skunkworks_> the computer I use to test is a tablet pc - I should get the touch screen working :)
[20:44:06] <cradek> heh
[20:44:16] <skunkworks_> heh - that was easy enough ;)
[20:46:44] <skunkworks_> heh - that is pretty cool
[20:47:17] <skunkworks_> also gives a nice error display at the bottom (cannot do g1 move without feedrate)
[20:48:27] <skunkworks_> When I first looked at it I was wondering - how the heck do you enter the I,J,P....
[20:50:03] <cradek> for a good time see if you can figure out how to enter G0 G53 Z0 - that's a very unusual case - you NEED two G words on the same line - there is no other case where it matters
[20:51:35] <skunkworks_> bbiab
[21:09:22] <hugomatic> I'm looking for a (small) python program that can read the current position and set a target position (using EMC). Should I start with axis.py or is there an easier way?
[21:10:04] <jepler> maybe try mdi.py in the source, installed as /usr/bin/mdi ?
[21:10:20] <jepler> I'm not sure what you mean by "set a target position"; do you mean jog, or issue an mdi?
[21:11:01] <hugomatic> I have a little PID loop... I could send an mdi or a jog
[21:11:42] <hugomatic> I guess a jog is fine, I can let EMC deal with the speed issues
[21:12:27] <jepler> probably have to read the axis source to send a jog
[21:12:42] <jepler> to me a (g53) g0 mdi might be more sensible and easy to do
[21:14:53] <hugomatic> That's sounds good. My program would a) import emc stuff, b) read the current position, c) get a a new posiiton from the outside world and d) send a g0 command... then goto b).
[21:15:47] <hugomatic> So I should hack axis.py if I want to get it done ASAP?
[21:16:25] <jepler> did you look at mdi.py yet?
[21:16:46] <hugomatic> no, but its sounds like what I want. thanks...
[21:22:38] <skunkworks> cradek: heh - nice. G53 gives you an extra G :)
[21:23:27] <hugomatic> jepler: thanks, mdi is what I was looking for.
[21:56:49] <CIA-82> EMC: 03cradek 07master * rcf373a09b34a 10/src/emc/usr_intf/touchy/design.notes: add obvious note for sake of completeness
[22:08:44] <CIA-82> EMC: 03cradek 07random_toolchange * r286910510f26 10/ (26 files in 5 dirs): Merge branch 'master' into random_toolchange
[22:08:45] <CIA-82> EMC: 03cradek 07random_toolchange * r3654c98e1eb3 10/src/emc/usr_intf/touchy/emc_interface.py: show prepped tool, not prepped pocket
[22:09:22] <cradek> git seriously kicks ass
[22:10:01] <cradek> that is all
[22:10:32] <skunkworks> heh
[22:10:49] <alex_joni> cradek: cool stuff
[22:10:58] <cradek> thanks
[22:11:24] <alex_joni> gotta try it out tomorrow ;)
[22:12:12] <cradek> sure is hungry in here
[22:12:17] <cradek> bbl
[22:13:54] <skunkworks> heh 'Like "git", "touchy" is named after its author.'
[22:16:06] <alex_joni> s/./'s state/
[23:25:09] <mhaberler> to avoid discussion #239 of threading and encoders - I've written up a bit for the wiki to explain what's going on if the issue comes up again, see http://mah.priv.at/tmp/sm.txt
[23:25:10] <mhaberler> it's my current perception - I'd appreciate some cursory bullshit detection by more clueful folks than me before I put it on the wiki
[23:25:12] <mhaberler> dont blame me, I'm just an MBA ;-)
[23:43:30] <Skunkemc> cradek: impressive. :)
[23:57:50] <Skunkemc> cradek: while a program is running in auto - you can click on other files and they will load... but you go back to the running program - it still follows it. Is it meant to be able to preview a file while cutting?
[23:59:15] <Skunkemc> heh - never mind, - it loads the program at and keeps it and doesn't allow you to navigate thru it.