#emc | Logs for 2006-03-19

Back
[02:14:08] <giacus> *_*
[02:14:12] <giacus> uff
[02:15:04] <giacus> ^O-O^
[02:53:38] <Ephexis> @_@
[03:13:42] <giacus> night
[07:20:33] <dan_falck> * dan_falck is away: have to go out to my shop
[07:40:17] <sed_> what do you need to hook up Gecko 320 drives to EMC?
[09:14:46] <anonimasu> a paralell port connector
[09:22:58] <anonimasu> hm
[09:23:07] <anonimasu> I wonder if I can get a plating/anodizing kit
[16:54:30] <alex_joni> * alex_joni doesn't know
[16:54:35] <fenn> * fenn pokes logger_aj
[16:54:47] <alex_joni> logger_aj: fight back
[16:54:47] <alex_joni> I'm logging. I don't understand 'fight back', alex_joni. Try /msg logger_aj help
[16:56:46] <EHJ-1> A really off the wall question. Has anyone tried to interface EMC with a game controller for functions like jogging?
[16:57:00] <fenn> yes jmk just submitted code for a joystick controller
[16:57:02] <alex_joni> EHJ-1: there is a hal_joystick driver
[16:57:12] <EHJ-1> I understand the XBox controller uses basically a modified USB connection.
[16:57:15] <alex_joni> so you can use a game controller
[16:57:19] <EHJ-1> k
[16:57:31] <fenn> joystick meaning the db15 game port
[16:57:48] <alex_joni> EHJ-1: the easiest however would be a USB numpad
[16:57:51] <fenn> serial and usb interfaces would be neat
[16:57:56] <EHJ-1> no, I think it is 5 pins.
[16:58:10] <fenn> what is 5 pins?
[16:58:12] <alex_joni> EHJ-1: those are amiga or atari
[16:58:18] <alex_joni> 9-pin iirc
[16:58:34] <EHJ-1> Don't remember exactly, three are Tx, Rx and Gnd.
[16:58:43] <alex_joni> probably serial
[16:58:48] <EHJ-1> USB
[16:59:08] <alex_joni> USB is 4 pins
[16:59:30] <EHJ-1> I am told it is a modified USB interface but I don't know exactly what is meant by modified.
[16:59:37] <alex_joni> oh, ok..
[16:59:55] <EHJ-1> I am pretty sure it was 5 pins.
[17:00:02] <fenn> USB is not exactly easy to hack at the hardware level
[17:00:18] <EHJ-1> No, I figured not.
[17:00:42] <fenn> i dont know what you'd do with all those buttons anyway :)
[17:01:19] <fenn> alex did you submit a support request at SF? or should i do it?
[17:01:19] <EHJ-1> Oh I could put them to a few good uses. :)
[17:01:37] <alex_joni> fenn: please do it.. I keep forgetting ;)
[17:14:42] <fenn> hmm looks like jmk submitted the issue already.. oh well another wont hurt
[17:15:00] <alex_joni> did anyone comment on his submission?
[17:15:11] <fenn> no
[17:15:24] <alex_joni> :/
[17:15:27] <fenn> that was on 3/17
[17:15:45] <alex_joni> hrm.. that was friday.. they work on fridays
[17:16:07] <alex_joni> bon jour monsieur
[17:16:09] <fenn> it was at 16:26, maybe they never got to it
[17:16:26] <dmessier> allo
[17:16:34] <alex_joni> ca va?
[17:17:06] <dmessier> oui.. et vous??
[17:17:32] <alex_joni> tout c'est bien, mersi :)
[17:19:26] <dmessier> i found the faulty cut detection document ...someone was asking about
[17:19:55] <fenn> faulty cut detection?
[17:19:56] <dmessier> now if ai could remember who it was
[17:20:21] <dmessier> spindle load monitoring for tool wear
[17:21:28] <EHJ-1> Regarding XBox controller interface, in doing a search, I found this:
[17:21:28] <EHJ-1> http://www.xbox-linux.org/wiki/Xbox_Linux_USB_HOWTO#USB_hardware_and_Xbox-Linux
[17:22:20] <EHJ-1> In particular this, which indicates that a driver already exists:
[17:22:20] <EHJ-1> "The "Xbox controller pad" (XPAD) can be used inside Xbox-Linux as a normal USB joystick. (use the driver from the Xbox-Linux project)"
[17:22:20] <staggerlytom> good day
[17:22:57] <EHJ-1> The 5th wire is for the break-away, otherwise it appears to be standard USB.
[17:24:04] <staggerlytom> please explain 'breakaway"
[17:25:47] <staggerlytom> I got an xpad just for use with CNC ( as a test ) and found some site with cnvrsn to usb ( just followed the instructions ), it worked
[17:29:19] <jepler> experimental "multithreaded" backplot gives really nice smoothness even at low framerates: http://emergent.unpy.net/index.cgi-files/sandbox/nice-curves.png
[17:29:40] <EHJ-1> The XBox cable has a break away connector to allow the controller to disconnect from the XBox itself.
[17:29:50] <jepler> (this is a setup with low accel, so the curves are fairly big)
[17:30:22] <alex_joni> jepler: nice
[17:30:28] <EHJ-1> Lile when you toss it across the room because you are pissed at the game. :)
[17:30:55] <cradek> jepler: slick, how does that work?
[17:31:21] <EHJ-1> This is apparently what tells the XBox that a controller has disconnected and pauses the game.
[17:31:29] <jepler> cradek: It uses threads, so that being in the middle of an opengl redraw doesn't mean it can't also record new points
[17:31:49] <cradek> cool
[17:32:15] <dmessier> tres cool
[17:32:37] <cradek> that blending looks great - is that without a tolerance specified?
[17:32:45] <jepler> another example, stepper_inch.ini: http://emergent.unpy.net/index.cgi-files/sandbox/nice-curves.png
[17:32:53] <jepler> cradek: yes, G64 P0
[17:32:56] <jepler> both of these are G64 P0
[17:33:02] <jepler> oops .. another example, stepper_inch.ini: http://emergent.unpy.net/index.cgi-files/sandbox/nice-curves2.png
[17:33:39] <staggerlytom> EHJ-1: thanks
[17:34:44] <rayh> rayh is now known as rayh-away
[17:34:53] <cradek> jepler: those look great
[17:36:12] <fenn> what's happening in these backplots?
[17:36:46] <fenn> are you blending the sampled data to make it look smoother?
[17:36:51] <jepler> no, I'm getting more samples
[17:37:04] <jepler> before, the sample rate would degrade to the redraw rate
[17:37:13] <fenn> ok
[17:37:15] <jepler> now, the sample rate is unhooked from the redraw rate
[17:37:26] <fenn> what is it limited to now?
[17:37:34] <jepler> well, it's still not realtime
[17:37:51] <jepler> it's trying to sample at approx 10ms using nanosleep()
[17:38:15] <fenn> i'm working on saving halscope data to a file right now
[17:38:19] <jepler> it clearly wouldn't work to sample any faster than the servo thread rate
[17:38:40] <EHJ-1> staggerlytom: More info about the XBox 360 controller and linux here:
[17:38:40] <EHJ-1> http://gentoo-wiki.com/HOWTO_Xbox_360_controller_on_Linux
[17:39:13] <jepler> fenn: This still uses the emc1-compatible "status buffer", like the other front ends do
[17:39:46] <fenn> erm, except i keep getting this error make[2]: *** No rule to make target `/pub/emc/emc2/src/emc/kinematics/.o', needed by `/pub/emc/emc2/src/rtapi.o'. Stop.
[17:41:36] <alex_joni> fenn: you didn't update Makefile.inc
[17:41:56] <alex_joni> check that you have the latest Makefile.inc.in and run configure or config.status again
[17:42:21] <fenn> ok
[17:42:40] <alex_joni> you'll see a KINEMATICS=trivkins in there
[17:46:16] <fenn> * fenn moans
[17:46:19] <fenn> configure is so slow
[17:46:32] <alex_joni> use config.status
[17:46:48] <alex_joni> that only reapplies the stuff configure already has found before
[17:49:06] <dmessier> heee haa... the wife just wiped out the desk at the top of the stairs..
[17:49:31] <dmessier> its at the bottom of the stairs or along the way now...
[17:51:40] <jepler> "threaded backplot" checked in to AXIS "HEAD"
[17:51:58] <alex_joni> anyone know about DVD and zone settings?
[17:52:18] <fenn> alex_joni: good luck
[17:52:34] <fenn> i know that they are evil
[17:52:48] <alex_joni> fenn: actually zone-free is what I'm looking for
[17:53:06] <fenn> i think 0 is playable anywhere but you should check
[17:53:39] <alex_joni> PC-based DVD I mean
[17:53:48] <jepler> If you have an "RPC I" drive and mplayer/xine/etc, I think it will play all regions
[17:54:24] <jepler> I successfully played a Japanese (region 2?) disc in one of my machines using linux
[17:55:08] <fenn> you probably dont have an RPC I drive
[17:55:32] <jepler> "RPC I" drives are older drives
[17:56:00] <jepler> I guess hollywood didn't like it being too easy to watch movies you bought while on vacation to another continent
[17:57:18] <fenn> Once an RPC2 drive has reached the limit of 5 changes it can't be changed again unless the vendor or manufacturer resets the drive...
[17:57:30] <fenn> i wonder how hard it would be to reset the drive..
[17:59:39] <alex_joni> fenn: using shareware from the net it worked to change it back
[18:00:17] <dmessier> probably just a jumper off power up .. & down... jumper on again
[18:00:22] <fenn> ok i guess this issue is old by now
[18:00:40] <fenn> "most Linux DVD playback software can bypass the DVD drive's built-in region locks"
[18:03:27] <steve_stallings> steve_stallings is now known as steves_logging
[18:15:22] <anonimasu> fenn: there's cracked firmware..
[18:15:38] <anonimasu> so you can change region as much as you'd like
[18:15:39] <anonimasu> :)
[18:15:52] <alex_joni> any idea where?
[18:15:57] <alex_joni> doze crap
[18:16:24] <anonimasu> cant remember
[18:16:33] <anonimasu> I rarely ever play dvd's on my computer
[18:16:44] <anonimasu> got a real region free player
[18:24:26] <anonimasu> alex_joni: my mill will be completed in a few weeks
[18:24:37] <alex_joni> nice
[18:25:36] <fenn> oh boy there's not unloaduser command in halcmd
[18:25:43] <anonimasu> I've got maybe 1 hour for the spindle adapter so I can use my old tooling
[18:26:36] <fenn> all the region code does is gives you the encryption key, so you can brute force it if the region code's wrong
[18:27:40] <anonimasu> making servo mounts and stuff will be quick once I get to that point :)
[18:32:53] <Imperator_> logger_aj: bookmark
[18:32:53] <Imperator_> See http://solaris.cs.utt.ro/irc/irc.freenode.net:6667/emc/2006-03-19#T18-32-53
[18:33:32] <alex_joni> hi Martin
[18:33:59] <Imperator_> Hi alex, how are you
[18:35:21] <Imperator_> do you join the cnc workshop ?
[18:40:21] <alex_joni> pretty good Martin
[18:40:25] <alex_joni> don't think so
[18:41:01] <Imperator_> i have also no time and money
[18:41:30] <Imperator_> i spend everything for a granite stone :-)
[18:41:44] <alex_joni> heh, got a big one?
[18:41:52] <Imperator_> jep
[18:42:03] <Imperator_> 2,5x1,5x0,3m
[18:42:29] <Imperator_> evenness 0,01mm
[18:43:00] <Imperator_> flatness (don't know which is the right word)
[18:43:01] <anonimasu> what are you building out of it?
[18:43:05] <anonimasu> yeah flatness
[18:43:11] <Imperator_> a milling machine
[18:43:12] <anonimasu> or well tolerance.. perhaps
[18:43:22] <anonimasu> what are you going to machine
[18:43:22] <anonimasu> ?
[18:43:39] <Imperator_> butter blades and alu
[18:44:20] <anonimasu> hm ok
[18:44:33] <Imperator_> or how do you call this materials you can easyly machine
[18:44:44] <Imperator_> for prototypes and so on
[18:45:04] <anonimasu> hm ok
[18:47:40] <anonimasu> yeah prototyping
[18:51:48] <fenn> machinable wax?
[18:52:06] <fenn> what's a butter blade? :)
[18:53:34] <Imperator_> no i mean this plates out of plastic you can easiely machine
[18:53:53] <Imperator_> easily
[18:54:14] <fenn> delrin, acetal, UHMW
[18:54:42] <fenn> lots of easily machinable plastics out there
[18:54:52] <Imperator_> usualy they are out of polyurethan resin
[18:55:01] <fenn> oh is it foam?
[18:55:06] <fenn> like ren-form or something
[18:55:48] <Imperator_> there are a lot of different qualities
[18:56:18] <Imperator_> from foam to hard
[18:56:25] <fenn> Ren Shape� 5166 is a durable polyurethane board stock..
[18:56:38] <Imperator_> it depends on the filler material
[18:57:13] <Imperator_> jep
[18:57:56] <Imperator_> how do you call this stuff normaly ?
[18:58:13] <Imperator_> Tooling Boards ?
[18:58:32] <fenn> i guess
[18:58:34] <Imperator_> butter blates
[18:59:10] <fenn> machinable media
[18:59:22] <Imperator_> :-)
[18:59:32] <fenn> that stuff costs too much for me
[19:00:05] <fenn> i use blue and pink styrofoam
[19:00:14] <fenn> extruded polystyrene
[19:00:20] <Imperator_> much cheaper than alu
[19:00:48] <Imperator_> for making what ?
[19:00:50] <fenn> then i put the styrofoam pattern in sand and pour molten aluminum in it, and the foam vaporizes
[19:00:57] <fenn> leaving an aluminum replica
[19:00:58] <Imperator_> we wana make moulds out of it
[19:01:36] <fenn> i have used it both ways
[19:01:48] <fenn> it isn't very durable though, if you are going to be ramming lots of molds
[19:03:00] <Imperator_> there are tooling boards specialy for the casting industry
[19:03:49] <fenn> i hate all this request for quote stuff
[19:03:59] <anonimasu> howcome?
[19:04:00] <fenn> how am i supposed to make an informed decision?
[19:04:51] <fenn> have to mail every single company asking for quotes on every thing i might want to use?
[19:05:02] <anonimasu> post one on the net
[19:05:52] <fenn> i just dont understand why they can't display their prices like any other service
[19:07:34] <anonimasu> yeah 1hr machine time =
[19:07:40] <CIA-8> 03alex_joni * 10emc2/src/emc/usr_intf/halui.cc:
[19:07:40] <CIA-8> added halui component. this component is responsible for exporting UI pins into
[19:07:40] <CIA-8> HAL. UI=User Interface. This means users can build hardware panels to act just
[19:07:40] <CIA-8> like any other GUI. Upon changing of HAL pins the appropiate NML messages will
[19:07:40] <CIA-8> be sent. Right now it only connects to NML buffers, no HAL pins are exported
[19:07:40] <CIA-8> yet. There is however a list of proposed HAL pins, which should be discussed
[19:07:44] <CIA-8> before actual implementation.
[19:09:05] <fenn> no i mean for stuff like raw materials
[19:09:24] <anonimasu> hm ok
[19:09:29] <alex_joni> fenn: it depends on the quantity
[19:09:32] <anonimasu> brb hit bath..
[19:09:33] <anonimasu> hot
[19:09:34] <fenn> you can't buy ren shape without asking for a quote
[19:09:42] <CIA-8> 03alex_joni * 10emc2/src/emc/usr_intf/Submakefile: added halui to the building process
[19:09:50] <fenn> digikey doesn't seem to have a problem being upfront about prices
[19:10:15] <fenn> can you imagine having to request a quote on every single chip you're interested in?
[19:10:24] <fenn> ridiculous
[19:10:38] <CIA-8> 03alex_joni * 10emc2/src/emc/iotask/Submakefile: forgot one more reference to simio
[19:11:50] <Imperator_> alex_joni: cool stuff
[19:12:11] <alex_joni> Imperator_: which one?
[19:14:58] <Imperator_> ui pins
[19:16:16] <alex_joni> that's an older idea
[19:17:03] <Imperator_> i havent read the code, but if you go through NML it is not possible to swich something in realtime
[19:20:45] <alex_joni> no, this is supposed to act just like a GUI
[19:20:55] <alex_joni> realtime stuff doesn't go outside of HAL
[19:22:42] <alex_joni> * alex_joni goes to watch a movie
[19:22:47] <alex_joni> I'll be back later
[19:29:24] <anonimasu> iab
[20:06:15] <K4ts> hello
[20:06:32] <K4ts> hi giacus
[20:07:05] <giacus> "hey
[20:07:16] <K4ts> ?
[20:10:10] <fenn> yeeehaw i got halscope data to disk.. nfc what data format it's in
[20:11:00] <fenn> or rather, how to print it out
[20:15:27] <jmkasunich> fenn: what data did you write to disk?
[20:16:43] <jmkasunich> fenn: you wrote: jmk just submitted code for a joystick controller
[20:16:49] <jmkasunich> joystick meaning the db15 game port
[20:16:56] <jmkasunich> serial and usb interfaces would be neat
[20:17:31] <jmkasunich> the hal_joystick driver works with anything that linux's joystick driver supports - in particular, I developed and tested it using a USB joystick
[20:18:27] <gene_> An analog stick?
[20:19:34] <gene_> Or the usual 8 way switch model?
[20:20:03] <staggerlytom> dunno about analog vs 8 swx , but if the dev works with linux joystix driver, then I guess yes , John?
[20:21:12] <gene_> Its 2 different methods. Game sticks aren't normally analog, but all or nothing in the chosen direction
[20:21:25] <anonimasu> hm good game sticks are analog
[20:21:51] <gene_> How much at the register for one of those?
[20:21:53] <jmkasunich> the original PC joystick was analog, and I believe most of the subsequent ones are too
[20:22:02] <staggerlytom> list of known to work thingys http://atrey.karlin.mff.cuni.cz/~vojtech/joystick/
[20:22:03] <jmkasunich> console game controls are digital tho
[20:22:24] <jmkasunich> I got a nice USB joystick for $20 at microcenter
[20:22:51] <jmkasunich> two axis stick, third axis knob (intended for throttle), and 10 or 11 buttons
[20:23:16] <jmkasunich> the HAL driver automagically exports 3 float HAL pins and 10/11 HAL bit pins
[20:23:48] <gene_> MM, I'll have to think on that one
[20:24:01] <fenn> yo jmk why isn't ctrl_shm->sample_len in usr_ctrl for halscope?
[20:24:26] <jmkasunich> that will take much code pondering to answer
[20:24:38] <fenn> i'm just gonna add it in then ok?
[20:24:38] <staggerlytom> more specific list and yes analog, http://atrey.karlin.mff.cuni.cz/~vojtech/input/hardware.html
[20:24:42] <jmkasunich> no
[20:25:00] <jmkasunich> lemme look at the code first
[20:25:02] <fenn> * fenn whines
[20:25:08] <jmkasunich> there are reasons for everything in there
[20:25:19] <jmkasunich> maybe not good reasons, and maybe it can change, but let me check first
[20:25:39] <fenn> i just wanna copy it with all the rest of the stuff so i dont have to access shm
[20:26:05] <jmkasunich> what exactly are you doing? saving the captured data?
[20:26:08] <fenn> yeah
[20:26:19] <jmkasunich> isn't the data itself in shmem?
[20:26:29] <fenn> i'm just saving the display buffer
[20:27:17] <jmkasunich> its been a year since I wrote that, let me come back up to speed
[20:27:21] <jmkasunich> give me 15 mins or so
[20:27:35] <fenn> ok
[20:27:48] <fenn> i got data out of it :)
[20:27:55] <jmkasunich> thats good
[20:28:08] <jmkasunich> I've been wanting to add that capability
[20:28:11] <fenn> but it looks like this: 1074400330 0 1074400679 0
[20:28:55] <fenn> not sure how to turn that number back into 2.0001 or something sensible
[20:29:36] <jmkasunich> have you looked at draw_waveform() in scope_disp.c?
[20:30:54] <jmkasunich> theres a switch in there that assigns to fy - the union member it assigns _from_ matches the type of the data, and results in the proper cast being done\
[20:31:26] <fenn> i'm pilfering it right now
[20:32:04] <fenn> funny data structure jmk :)
[20:32:11] <fenn> the whole union thing
[20:32:13] <jmkasunich> which one?
[20:32:48] <jmkasunich> I can store any one of 8 possible types in the same space
[20:33:02] <jmkasunich> access using the appropriate union member, and translation is automagic
[20:33:30] <fenn> i need to think about that some more
[20:34:33] <rayh-away> rayh-away is now known as rayh
[20:36:08] <staggerlytom> ray: I think I gotta go single axis to afford transport of machine
[20:37:53] <rayh> Okay. As long as we can generalize the edm code for multiple axes.
[20:38:15] <rayh> Not just z up for clear.
[20:38:57] <staggerlytom> ray: no, it's reverse path ( just devolves to Z up on one axis )
[20:39:04] <rayh> One axis will prove we can handle gap and good path.
[20:39:22] <rayh> No What I'm saying is that we should make the system reverse the codes that take it down.
[20:39:45] <staggerlytom> yes, correct, I agree
[20:39:56] <rayh> I'm good with it then.
[20:40:35] <jmkasunich> fenn: how are you triggering the save to disk? scope really needs a menu bar, and a file->save menu item
[20:41:05] <anonimasu> hm edm support will be sweet
[20:42:22] <fenn> right now it just saves to a file called scope.log after every sample.. i was gonna add some kind of check box or something
[20:42:53] <jmkasunich> after every sample? you mean after every capture (lots of samples)?
[20:43:00] <fenn> er, yeah
[20:43:58] <fenn> at the end of capture_complete() i have write_log_file("scope.log");
[20:44:25] <jmkasunich> ok, that works for now
[20:44:52] <fenn> is a sample always 1 word long?
[20:45:02] <fenn> like dptr++ will point to the next sample
[20:45:09] <jmkasunich> a sample is always one of those unions
[20:45:31] <jmkasunich> there is some non-trivial pointer-fu going on
[20:45:41] <fenn> i dont really understand how data structures are handled at the bit level
[20:46:10] <jmkasunich> I strongly encourage you to look at refresh_display() and draw_waveform() as templates
[20:46:28] <jmkasunich> (although you want to do one sample at a time, not one waveform at a time)
[20:48:03] <jmkasunich> fenn: I may need to retract what I just said
[20:48:24] <jmkasunich> draw_waveform has a lot of crap related to zoom and pan in it
[20:48:39] <jmkasunich> I assume you want to save the entire record, not just the displayed part
[20:48:50] <fenn> it's not bad.. i'm almost done pilfering
[20:53:08] <cradek> jmkasunich: can you help me with my fake hal encoder?
[20:54:27] <cradek> jmkasunich: I'd like for it to reset every so often, as if an index pulse is at work
[20:55:14] <cradek> jmkasunich: also, if the speed would vary a bit, it would be great
[20:56:17] <cradek> jmkasunich: http://timeguy.com/cradek-files/emc/max.tar.gz is what I have so far (freqgen feeding an encoder that counts up forever)
[21:08:27] <jepler> just making stuff up, but you could use siggen and comparator to create an index pulse
[21:09:34] <jepler> there's also a blocks component that does sig1*scale1+sig2*scale2 .. use another siggen waveform as 'sig1' to get a varying speed
[21:12:33] <cradek> those are good ideas
[21:13:01] <cradek> I would use siggen -> freqgen.velocity
[21:13:44] <jmkasunich> sorry, I was away
[21:13:56] <cradek> I don't follow how encoder.index-enable works though
[21:14:20] <cradek> hi jmk
[21:14:37] <jmkasunich> dang, I thought there were more comments in there
[21:15:03] <cradek> in where?
[21:15:09] <jmkasunich> encoder.c
[21:15:31] <cradek> oh so far I haven't looked at any source, just the hal integrator pdf and man halcmd
[21:15:39] <jmkasunich> ok, if index-enable is true, when an index pulse arrives the counter is reset
[21:15:44] <cradek> I think the pdf is slightly out of date
[21:15:48] <jmkasunich> (rising edge on the index pin)
[21:16:26] <cradek> I couldn't figure out how to turn that on - it's two-way and it resets itself or something?
[21:16:50] <jmkasunich> yeah
[21:17:03] <jmkasunich> in hindsight there should probably be two pins
[21:17:22] <jmkasunich> one to enable the detection of an index pulse, and one to report it
[21:17:44] <jmkasunich> but that raises the issue "how do you reset the 'report' pin"
[21:18:11] <cradek> on another note I noticed a "bug" in freqgen: if maxfreq is 0, it doesn't count - but the docs say that means there is no vel limit
[21:18:28] <jmkasunich> hmmmm
[21:18:37] <cradek> freqgen.maxaccel=0 does seem to do the intended thing (no accel limit)
[21:20:33] <jmkasunich> looks like I left out an else
[21:21:26] <jmkasunich> if ( maxfreq <= 0 ) { set to zero } ELSE { if ( maxfreq > limit ) { set to limit } else { set limit to max }
[21:22:05] <jmkasunich> limit is initially set to the absolute max (based on period)
[21:24:13] <jmkasunich> fixing now
[21:27:03] <cradek> hmm siggen does triangle but not sawtooth? I was thinking I could just use that and avoid the encoder complexity until later
[21:27:18] <jmkasunich> siggen does sawtooth
[21:27:30] <jmkasunich> but sawtooth alone isn't enough
[21:28:00] <cradek> hal_introduction doesn't mention sawtooth
[21:28:13] <jmkasunich> hal introduction is out of date
[21:28:25] <jmkasunich> gotta remember to work on it
[21:28:32] <jmkasunich> when I find the time (ha!)
[21:28:39] <CIA-8> 03rayhenry * 10emc2/configs/univstep/univstep_load.hal: fix to motmod addf
[21:29:03] <cradek> we need a tech writer (or someone who will pretend he's a tech writer)
[21:29:11] <fenn> * fenn hides
[21:29:15] <alex_joni> yeah, it's hard to document anything as fast as things are changing :D
[21:30:34] <fenn> there needs to be some way to link commit logs to documentation
[21:30:40] <Jymmm> document as it's being written
[21:30:57] <fenn> or if doxygen werent so crappy..
[21:31:17] <alex_joni> fenn: doxygen is pretty ok, but you need to add tags for it
[21:31:18] <fenn> nothing in particular against the software, but it's just no good for th eend user
[21:31:30] <alex_joni> it's not intended to the end user
[21:31:42] <jmkasunich> alex: is it expected to get a crapload of warnings from halui?
[21:31:43] <fenn> i know.. but the end user ends up getting screwed
[21:31:43] <alex_joni> doxygen is for documenting code, e.g. for developers
[21:31:53] <alex_joni> jmkasunich: yeah.. sorry about that
[21:31:56] <cradek> I don't like having doxygen's turds all over the code
[21:31:57] <jmkasunich> no prob
[21:32:00] <alex_joni> it's onlz 20% done
[21:32:17] <alex_joni> I left a crapload of cuntions in there, as I'll use them in the future
[21:32:23] <alex_joni> functions even
[21:32:26] <jmkasunich> cuntions? ;-)
[21:32:44] <alex_joni> pretty close.. eh ?
[21:33:55] <jmkasunich> cradek: that bug in freqgen.... since the param defaults to zero (I think), seems like it would have never worked
[21:34:02] <jmkasunich> but we know it does/did
[21:34:06] <jmkasunich> strange
[21:34:14] <cradek> with maxfreq specified, it works fine
[21:34:38] <jmkasunich> oh, and everybody who's tried it to date must have specified it
[21:34:47] <cradek> I guess so
[21:35:02] <alex_joni> yup.. stepgen_maxvel
[21:35:15] <cradek> talking about freqgen, not stepgen
[21:35:33] <jmkasunich> stepgen might have the same bug, checking
[21:35:33] <alex_joni> oh, don't think many people used freqgen
[21:36:02] <alex_joni> I think I used it once, long ago following the hal_introduction examples
[21:36:06] <jmkasunich> stepgen is correcct
[21:37:04] <alex_joni> oh man, I am thrilled about ubuntu.. again :)
[21:37:15] <alex_joni> just plugged in an USB rack (with an HDD)
[21:37:38] <alex_joni> and it imediately mounted the 2 partitions I have on it (Fat32 & NTFS) and placed shortcuts on my desktop
[21:38:10] <alex_joni> next I wanted to share them through samba, so right click Sharing led me to a menu that told me samba is not installed, but it was one click later
[21:38:44] <alex_joni> so about 5 minutes from plugging the stuff in, it was already available on the network.. talk about dummy plug&play
[21:39:38] <CIA-8> 03jmkasunich * 10emc2/src/hal/components/freqgen.c: fixed a bug in the implementation of freqgen's maximum frequency parameter
[21:40:31] <jepler> twice today I've gotten joint following errors. I've been using stepper_inch.ini (no hardware) and a circuit board ngc file with g64 p.005 specified.
[21:40:42] <jepler> they don't repeat in the same place every time, unfortunately.
[21:40:45] <CIA-8> 03rayhenry * 10emc2/configs/m5i20/m5i20_motion.hal: fix dual ini references
[21:41:15] <cradek> jepler: in the middle of a program run somewhere?
[21:41:51] <jepler> cradek: yeah. last time it was in part of a G81 drilling cycle
[21:42:07] <jepler> it's elm320.ngc modified only to specify g64 p.005
[21:42:19] <cradek> we didn't test canned cycles much, but they just generate some straight_feeds I think
[21:42:28] <jepler> yeah, that's all they do
[21:42:40] <jepler> no idea if the other one was on a canned cycle or not
[21:42:52] <cradek> so it's a lot of 90 degree corners g0/g1/g0/g1
[21:43:30] <jepler> yeah
[21:43:35] <jepler> and maybe a dwell somewhere in there
[21:43:47] <jepler> g0/g1/m4 p/g0
[21:43:49] <cradek> it would sure be nice if you could capture one...
[21:44:05] <cradek> what headroom do you have?
[21:44:26] <cradek> if none, maybe in some cases my *0.95 isn't quite good enough
[21:44:28] <CIA-8> 03jmkasunich * 10emc2/configs/univpwm/univpwm_load.hal: fix missing threadnames in addf commands
[21:45:11] <jepler> no headroom
[21:45:23] <jepler> I thought this was the vanilla stepper_inch but I have changed stuff around
[21:45:25] <CIA-8> 03jmkasunich * 10emc2/docs/NEWS: update NEWS
[21:45:25] <jepler> removed headroom
[21:45:31] <cradek> can you jog that way? I couldn't
[21:45:47] <jepler> don't think I've jogged.
[21:46:00] <jepler> that explains why the blends were so big, though. my accels are tiny.
[21:46:43] <cradek> I'd like it if you could scope one showing the vel and accel...
[21:47:11] <jepler> you mean in general? I can't reproduce the following error.
[21:47:55] <cradek> yeah, twice in one day is not quite like reproducable, but close
[21:49:13] <jepler> ah heck. something's not right in my new backplot code. it just segfaulted.
[21:49:26] <jmkasunich> cradek: back to fake encoders, or do you want to investigate the error's jepler is reporting?
[21:49:54] <jepler> until I have more info, don't get stuck on my following error.
[21:50:26] <cradek> it might just be a headroom issue, especially if it's very transient
[21:52:56] <cradek> jmkasunich: yes I'd still like the fake encoder to work (index), so I can get started
[21:53:03] <jmkasunich> ok
[21:53:19] <alex_joni> cradek: what are you trying to do?
[21:53:29] <jmkasunich> basically we want to generate an index pulse every N counts
[21:53:35] <cradek> alex_joni: make a simulated spindle encoder with index
[21:53:43] <alex_joni> oh I see :)
[21:54:20] <alex_joni> then use a siggen to "drive" this encoder? (maybe a sine-wave) and to see if the feedrate is proportional?
[21:54:29] <alex_joni> once gearing is working of course
[21:54:37] <cradek> yes
[21:54:42] <jmkasunich> well, what we're really trying to simulate is the entire spindle
[21:54:55] <jmkasunich> velocity command to simulated motor spinning simulated encoder
[21:54:55] <alex_joni> jmkasunich: I understand that
[21:55:06] <alex_joni> nice
[21:55:14] <anonimasu> :)
[21:55:16] <anonimasu> cool stuff
[21:55:19] <cradek> jmkasunich: is it crazy - should I just wait and get my encoder?
[21:55:34] <jmkasunich> no, this could be handy
[21:55:41] <jmkasunich> not the least because I could use it ;-)
[21:56:08] <alex_joni> heh, so basicly 2 step generators (dephased) and a counter for (mod xx) ?
[21:56:37] <jmkasunich> one step generator - freqgen/stepgen step type 2 is quadrature
[21:56:42] <alex_joni> ahh.. right
[21:56:48] <jmkasunich> the mod x part is the fun part
[21:56:51] <alex_joni> then you only need the counter
[21:57:07] <jmkasunich> the encoder block also exports the raw count...
[21:57:15] <alex_joni> use encoder and comparator
[21:57:19] <jmkasunich> so we really only need the mod part
[21:57:24] <alex_joni> yeah, that's what I meant
[21:57:26] <jmkasunich> comparator doesn't do modulo
[21:57:39] <alex_joni> no, but it can compare value, then you can reset
[21:57:53] <alex_joni> maybe feed it into 2 encoder blocks
[21:57:53] <jmkasunich> but we won't _always_ be resetting
[21:58:06] <jmkasunich> that could work
[21:58:06] <alex_joni> 1 for absulute value (no resetting), one that always resets
[21:58:27] <jmkasunich> yeah, index pulse is comparator output, that goes to both
[21:58:32] <alex_joni> hackery :)
[21:58:37] <alex_joni> but it should work
[21:58:39] <jmkasunich> gawd I wish we had a convenient way to draw these things
[21:58:47] <alex_joni> it's clear to me
[21:58:57] <jmkasunich> a hal netlist is a less intuituve than a picture
[21:59:15] <alex_joni> right.. that's true
[21:59:19] <jmkasunich> hmm, it will only work going forwards
[21:59:44] <jmkasunich> I'm very tempted to make a hal component called sim_encoder
[21:59:54] <alex_joni> better make one called counter
[22:00:04] <jmkasunich> output, three bits, A, B, Z
[22:00:08] <alex_joni> feed only one of A & B into it
[22:00:10] <jmkasunich> input, a float speed
[22:00:25] <jmkasunich> params: counts/rev
[22:00:39] <alex_joni> speed can be in counts / sec
[22:00:43] <alex_joni> to keep it simple
[22:00:47] <cradek> sim_encoder sounds great :-)
[22:01:02] <jmkasunich> still need counts/rev so you know when to generate the index
[22:01:10] <alex_joni> right
[22:01:38] <jmkasunich> I"m gonna do that - shouldn't take too long, it is a much simplified version of freqgen
[22:01:45] <jepler> aha! (figured out the axis segfault)
[22:02:08] <alex_joni> jepler: don't tell us that's supposed to happen :-)
[22:02:48] <jepler> no, it's your garden variety "programming in C" type error
[22:02:58] <alex_joni> arrays?
[22:03:05] <jepler> int *x = buf[999]; buf = realloc(buf, 2000); if(*x) { ... }
[22:03:23] <alex_joni> yup.. that's it :)
[22:03:54] <alex_joni> but I heard(read?) that there were some additions to gcc/libc to prevent that in the future
[22:04:19] <alex_joni> gcc embeds some information about how big the table is, and libc prevents access outside
[22:04:28] <alex_joni> or something like that
[22:05:46] <jepler> pipe dreams
[22:05:49] <CIA-8> 03fenn * 10emc2/src/hal/utils/ (scope_files.c scope.c scope_usr.h): added first pass at saving halscope log files to disk.. will add more functionality soon
[22:06:52] <fenn> support for USB mice and goofy stuff like that is on my pipe dream list
[22:07:16] <fenn> but i guess we already have a joystick driver..
[22:08:35] <terrylr> knock, knock, anyone online?
[22:09:01] <alex_joni> terrylr: a few people still are ..
[22:09:13] <terrylr> alex_joni, ah
[22:09:18] <alex_joni> hello
[22:09:39] <terrylr> alex_joni, hello, how goes it?
[22:10:09] <alex_joni> pretty good, emc2 is advancing nicely
[22:10:26] <alex_joni> we've got easier ways to install :)
[22:10:34] <terrylr> alex_joni, i have not had any time to look at emc2.
[22:11:00] <terrylr> alex_joni, easier install is a good thing. ;-)
[22:11:32] <alex_joni> it always is :) how's brl-cad?
[22:12:37] <terrylr> alex_joni, i have had not much time in the last year to even work on brl-cad. spent nearly the entire last 15 months in the 9+yr legal nightmare.
[22:13:04] <alex_joni> 9+yr ?
[22:13:58] <terrylr> alex_joni, yes 9+yr legal nightmare. a work accident 26 nov 1996. trashed the left side of my body.
[22:14:49] <CIA-8> 03cradek * 10emc2/src/emc/kinematics/ (blend.fig tp.c): document blend tolerance mode algorithm
[22:18:09] <alex_joni> terrylr: oh, I think you mentioned that before.. I'm truly sorry
[22:18:22] <jmkasunich> cradek: question about ppr/cpr
[22:18:32] <alex_joni> cpr
[22:18:36] <jmkasunich> the actual counts per rev is always a multiple of 4
[22:18:37] <alex_joni> ;-)
[22:18:57] <jmkasunich> I'm thinking the parameter should be the cycles per rev (which can be any integer)
[22:19:23] <cradek> it seems that's how encoders are usually specified
[22:19:27] <jmkasunich> alex: I prefer ppr
[22:19:30] <cradek> so that sounds reasonable
[22:19:31] <terrylr> alex_joni, so depending on any given day i am in moderate to serious pain 24x7 365 days a year.
[22:19:36] <jmkasunich> ppr = pulses per rev
[22:19:50] <alex_joni> 1 pulse = 4 counts?
[22:19:52] <jmkasunich> cpr can be either cycles per rev, or counts/rev
[22:19:53] <alex_joni> then yes, ppr
[22:20:49] <staggerlytom> terry: hope you get more good days
[22:21:08] <alex_joni> terrylr: that sounds bad :(
[22:21:21] <alex_joni> I wish you all the best
[22:28:31] <staggerlytom> dmessier: didnt know you wer here: bbc had scifi story with 'gravity elevator'
[22:29:17] <alex_joni> staggerlytom: he just left
[22:29:40] <staggerlytom> dollar short & day late... :-(
[22:29:56] <CIA-8> 03jmkasunich * 10emc2/src/hal/components/freqgen.c: fixed a typo
[22:40:19] <staggerlytom> nite all
[22:41:40] <alex_joni> nite all
[22:48:31] <cradek> jmkasunich: are you writing sim_encoder?
[22:49:54] <jmkasunich> yes
[22:50:02] <jmkasunich> any requests?
[22:50:06] <jmkasunich> ;-)
[22:50:23] <Jymmm> jmkasunich: Beer Dispenser lib
[22:50:41] <jmkasunich> * jmkasunich ignores Kymm
[22:50:44] <jmkasunich> Jymm even
[22:51:05] <Jymmm> jmkasunich You're the one that asked...
[22:51:13] <jmkasunich> I asked cradek
[22:51:27] <jmkasunich> :P
[22:51:32] <Jymmm> jmkasunich: nuh uh
[22:51:35] <Jymmm> =)
[22:51:52] <Jymmm> well shit, cradek is the one that REALLY could use it!
[22:51:57] <fenn> the beer dispenser programmer quit yesterday in a huff
[22:52:06] <fenn> i'm not joking either
[22:52:30] <Jymmm> fenn your wifey?
[22:52:45] <jmkasunich> I don't think fenn is married
[22:52:50] <jmkasunich> college student IIRC
[22:52:54] <fenn> bah
[22:53:07] <fenn> i'm a lousy bum
[22:53:45] <fenn> we are talking about registering #robotics as an educational institution so we can all get student discounts and job offers
[22:53:56] <Jymmm> fenn: Not to worry, we wont hold that againest you too much.
[22:54:16] <fenn> college is a scam anyway
[22:54:37] <terrylr> fenn, why do you say that?
[22:54:48] <Jymmm> fenn Just start you're own instituion of higher learning
[22:55:27] <Jymmm> fenn then get accredit by National Enlightenment Institute... which you create yourself
[22:55:52] <fenn> i'm sure as hell not gonna give it some flaky hippy name like that
[22:56:07] <Jymmm> fenn: Well, you can't call it education
[22:56:13] <fenn> why not?
[22:56:38] <Jymmm> fenn then it'll be a school, you jsut wan tthe impression of a school, not the actual thing.
[22:56:42] <fenn> there's no national education institute
[22:57:11] <fenn> if they actually taught useful knowledge in school it wouldnt be a big deal
[22:57:27] <fenn> but it's 99% jumping through hoops
[22:57:37] <Jymmm> 99.9999999999%
[22:57:37] <fenn> that's what they teach you - how to jump through hoops
[22:57:59] <Jymmm> College is a business. If ppl remember that, then they'll know.
[22:58:08] <fenn> if you actually make it through without losing your inspiration it's a miracle
[22:58:33] <fenn> it's not a business, it's a scam
[22:59:02] <Jymmm> It's sad, my neighbor is in college and I asked him if he's learning anything? He said no, just memorizing it to pass.
[22:59:31] <Jymmm> He'll have to wait till he hits Stanford to learn anything.
[23:00:25] <fenn> that's the other thing.. they always promise that you'll get to actually learn stuff in the next round
[23:00:30] <fenn> but you never do
[23:00:47] <Jymmm> He's goin for his MD, so he BETTER learn something =)
[23:01:15] <fenn> doctors memorize things
[23:01:31] <fenn> well, med students at least
[23:01:58] <Jymmm> Whenever you get a funny feeling about something a Doctor says to you, just remember it's a 'Medical PRACTICE'
[23:02:08] <fenn> * fenn goes back to coding
[23:13:50] <jmkasunich> ok, what am I missing?
[23:14:07] <jmkasunich> added what seem to be the appropriate lines to the makefile, but it doesn't compile my code
[23:14:07] <fenn> your umbrella
[23:14:23] <SWPadnos> which lines, in what makefile?
[23:14:36] <jmkasunich> obj-$(CONFIG_SIM_ENCODER) += sim_encoder.o
[23:14:36] <jmkasunich> sim_encoder-objs := hal/components/sim_encoder.o
[23:14:47] <jmkasunich> and
[23:14:54] <jmkasunich> ../rtlib/sim_encoder.o: $(addprefix objects/rt,$(sim_encoder-objs))
[23:15:04] <jmkasunich> to the main (emc2/src) makefile
[23:15:30] <SWPadnos> did you add "CONFIG_SIM_ENCODER=m" anywhere?
[23:15:37] <jmkasunich> duh
[23:15:51] <SWPadnos> I'll take that as a no ;)
[23:15:59] <jmkasunich> where?
[23:16:02] <jmkasunich> not in the Makefile
[23:16:09] <SWPadnos> hmm - wherever all the others are?
[23:16:16] <SWPadnos> I'd have to look for that - one sec
[23:16:23] <jmkasunich> if I knew that I wouldn't be asking ;-)
[23:16:25] <jmkasunich> I can look
[23:16:36] <SWPadnos> heh
[23:16:54] <SWPadnos> it may be USERSRCS that you need to add to
[23:17:05] <SWPadnos> oops - not USER,
[23:17:10] <jmkasunich> Makefile.inc.in
[23:18:18] <SWPadnos> ok
[23:53:47] <jmkasunich> rebooting