#emc | Logs for 2007-04-04

[00:00:10] <Jymmm> VA !+ Watts
[00:00:12] <jmkasunich> one 100W motor could be 10A and 10V, another could be 100A at 1V - and you'd want completely differnent approaches for them
[00:00:14] <Jymmm> !=
[00:00:26] <jmkasunich> Jymmm: for DC, va do = watts
[00:00:32] <Jymmm> oh DC, nm
[00:01:16] <christel> [Global Notice] Hi all! Wanted to do a quick reminder about FOSSCON, the conference we are arranging in Sunny San Diego, September 22nd and 23rd! The Call for papers is out: http://fosscon.org/cfp and we'd love to have your submissions. If your project or organization is interested in a booth, please get in touch at nfp@fosscon.org Have a great day, and thank you for flying freenode!
[00:01:16] <jmkasunich> tomp: L298 = $3.57 at digikey
[00:01:25] <tomp> right each term can have its own range. this unit is 30.3 V max, 19A max
[00:01:27] <jmkasunich> that is a complete H bridge with logic inputs
[00:01:28] <Jymmm> Ok, I'm off... back in a couple of hours
[00:01:37] <tomp> will look into parallel
[00:02:10] <jmkasunich> * jmkasunich reads the 298 datasheet
[00:02:23] <CIA-19> 03cradek 07TRUNK * 10emc2/src/emc/usr_intf/axis/scripts/axis.py: the dim labels are about 1 inch - this will get them onscreen better.
[00:02:52] <jmkasunich> one 298 is a dual H bridge, each one rated 2A
[00:03:07] <jmkasunich> parallel the two sections, you get 4A, parallel two chips, you get 8A
[00:03:13] <jmkasunich> thats probably pushing the parts
[00:03:24] <cradek> does the datasheet say that works?
[00:03:30] <jmkasunich> but for the price of 1/2 of skunks circuit, you could parallel 8 of them...
[00:03:37] <jmkasunich> still reading
[00:04:39] <jmkasunich> they show paralleling of the two bridges in one chip
[00:05:13] <jmkasunich> paralleling of more than one chip would require some electronics skill and care, but should be doable
[00:05:43] <jmkasunich> they derate when they parallel - the two section version is rated 3A dc and 3.5A peak
[00:06:27] <tomp> i see that at http://www.soe.ucsc.edu/classes/cmpe118/Winter06/LectureNotes/Lab3_2006handout.pdf, ah derate when parallel, maybe they want more cooling for the die set
[00:06:39] <jmkasunich> how much torque do you actually need? I think of EDM as a low torque application
[00:07:27] <jmkasunich> its probably a sharing thing - they don't neccessarily share 50:50, so when you are at 3.5A, one might be at 1.5 and the other at 2.0
[00:07:44] <tomp> i need the fastest response i cant get ( very high acceleration suddenly needed while sitting still for long periods. ( it's 'run away' in monty python terms)
[00:08:03] <jmkasunich> define very high with numbers
[00:08:25] <jmkasunich> do you have any numerical idea how much torque or current you actually need?
[00:08:40] <tomp> if i sit still i will arc and ruin the workpiece, right now i have a machine with top velocity of 2 meters per minute, ican accelerate to that value in 38 msecs
[00:09:45] <jmkasunich> 2 meters/min = 0.033 meters/sec, in 0.038 seconds = 0.877 meters/sec^2
[00:09:56] <jmkasunich> divided by 9.8 = 0.0895 Gs
[00:09:55] <tomp> right
[00:10:01] <cradek> = 34 i/s2
[00:10:19] <cradek> that sounds easy if you're not moving much mass
[00:10:24] <jmkasunich> he started metric, I was gonna stay there
[00:10:26] <cradek> heck my little mill can do that (steppers driven by L298)
[00:10:32] <jmkasunich> what is the moving mass?
[00:10:48] <tomp> near 300 lbs vertically hung
[00:10:57] <jmkasunich> oh
[00:10:56] <cradek> ouch
[00:11:21] <jmkasunich> 300 lbs = 136 kg
[00:11:39] <tomp> i use a 3kw motor and 50mm ball screw with 5mm pitch, big ass toothed pulleys, and it snaps away good
[00:11:50] <jmkasunich> 136 kg * 0.877 meters/sec^2 = 115 newtons
[00:12:00] <jmkasunich> wait a minute
[00:12:23] <jmkasunich> are we talking about a real machine, or about your proof of principle thing with the pittman?
[00:13:01] <tomp> http://tag-edm.com/41/150ampPreFin.html you asked for what i needed so i showed practical/actual, i want to use emc to do same
[00:13:24] <jmkasunich> we were (and I still am) talking about driving a pittman motor
[00:13:33] <jmkasunich> not about some 3KW servo
[00:13:46] <tomp> watch the pulley label to see quick response, that motion is < .0002"
[00:14:17] <jmkasunich> if you are moving 0.0002, then you need quick SMALL SIGNAL response
[00:14:22] <tomp> the pittman is a proof of concept, later i will use yaskawas
[00:14:58] <tomp> i dont expect the response on the pittman to be near .1G
[00:15:23] <jmkasunich> please start again, and tell me the moving weight, screw, etc stuff for the proof of concept thing
[00:15:57] <tomp> sorry, you asked what i needed, i went off ... here's the framework for the pittman
[00:16:39] <tomp> http://imagebin.org/7964
[00:17:07] <jmkasunich> care to estimate the moving weight?
[00:17:20] <tomp> 10 lbs
[00:17:30] <jmkasunich> screw? ball or acme? pitch?
[00:17:53] <tomp> ball screw, universal brand single nut, 1mm pitch
[00:18:01] <jmkasunich> ok
[00:18:42] <jmkasunich> and the performance - something like "I need to be able to jump back 0.001 inch in 30mS" ?
[00:19:07] <tomp> more like 1mm in 30ms
[00:19:12] <jmkasunich> ok
[00:19:28] <tomp> what i'd like, not what will prove the concept
[00:19:39] <jmkasunich> d = 1/2 a * t^2, lets solve for a
[00:20:47] <jmkasunich> 2222mm/sec^2, if I did it right
[00:21:04] <tomp> sounds right 2m/s/s
[00:21:07] <jmkasunich> 0.227G
[00:21:19] <jmkasunich> ok, moving mass 5kg
[00:21:46] <jmkasunich> f = ma = 5kg * 2m/s^2 = 10 newtons
[00:22:16] <eric_u> you need at least a trio of witches with that machine
[00:22:22] <tomp> ( this is for real, the big companies are claiming 3G and 5G accs , Makino, Sodick)
[00:22:41] <tomp> ceramic frame linear motors
[00:22:47] <eric_u> bubble bubble, toil and trouble
[00:22:54] <tomp> i just need better than i got
[00:23:25] <tomp> jmkasunich: this will be a Z axis, does that affect your calcs?
[00:23:29] <jmkasunich> 1 rev of the screw means 1mm travel, and a point 1m from the center of the screw would travel 2*pi() meters
[00:23:41] <jmkasunich> so the mechanical advantage is 6280
[00:23:58] <jmkasunich> 1Nm on the screw will give you 6280 N on the slide
[00:24:12] <jmkasunich> you need 10 newtons on the slide
[00:24:35] <jmkasunich> so 0.0016 Nm at the screw
[00:24:49] <jmkasunich> (I'm ignoring gravity for now)
[00:24:53] <tomp> k
[00:25:42] <jmkasunich> heres where it gets messy, converting Nm to oz-in or whatever
[00:25:52] <jmkasunich> I have no gut feel for what 0.0016 Nm is
[00:26:31] <tomp> stay in whatever unit you like 0.25 N-m (35 oz-in)
[00:26:57] <jmkasunich> well, what we really need now is the Kt for the motor
[00:27:13] <jmkasunich> any idea what the no-load speed is at any particular voltage?
[00:27:18] <tomp> get my notes...
[00:29:54] <tomp> 7.44 oz-in/amp at 24 V= or 5.25 x 10-3 N.M/A
[00:29:59] <tomp> Kt
[00:30:05] <jmkasunich> cool
[00:30:21] <jmkasunich> I'm not used to actually having the numbers, usually gotta derive them
[00:30:26] <cradek> You have: .0016 N*m
[00:30:26] <cradek> You want: oz*inch*gravity
[00:30:26] <cradek> * 0.22657909
[00:30:27] <tomp> :)
[00:30:45] <jmkasunich> so, for accel you need 0.0016 Nm, you get 0.00525 per amp
[00:30:57] <jmkasunich> so 1 amp will give you more than enough (for the accel)
[00:31:01] <jmkasunich> now lets look at gravity
[00:31:26] <jmkasunich> to hold 5kg up in 9.8m/sec^2 gravity means 49N of force
[00:31:37] <jmkasunich> about 5X the amount needed for accel
[00:31:53] <jmkasunich> (duh, accel is 0.2 G, so 1G is 5x.... sometimes I don't think)
[00:32:13] <jmkasunich> 0.0015 * 5 = 0.0075 needed
[00:32:20] <jmkasunich> thats about an amp and a half
[00:32:32] <jmkasunich> use one l298 and parallel both sections
[00:32:40] <tomp> thats inside the l298, wicked!
[00:32:49] <jmkasunich> you should be able to do a G without too much trouble
[00:33:27] <tomp> thanks john! (i hated physics so dont know it now)
[00:34:22] <jmkasunich> one thing - even though you don't need lots of current, if your PID tuning is off and you go to 100% duty cycle, you might GET lots of current (and let the magic smoke out of the 298s)
[00:34:41] <jmkasunich> you might want to consider some kind of current limit
[00:35:00] <jmkasunich> there are provisions for a current sense resistor on the 298
[00:35:25] <tomp> there's a lot to read about the l298 for me ( even tho my 1st sample are over 10 yrs old :)
[00:36:15] <tomp> heres the 1st home machine i will use the yaskawa 400's on http://imagebin.org/7965 (after proving the concept)
[00:36:19] <jmkasunich> if you can come up with about a 0.25 ohm resistor, you'll get 0.6V at 2.4A, which can be appiled to the base of a small NPN transistor
[00:36:29] <jmkasunich> let the collector pull down on a pin that disables things
[00:36:39] <cradek> I was thinking about that same thing for my lathe. It seems like pid output saturating (for long) always means there's a problem. I wonder if I should make some provision to estop when that happens
[00:37:47] <eric_u> there is no way to enforce a max duty cycle?
[00:38:00] <tomp> ok, cheap insurance
[00:38:03] <jmkasunich> pwmgen has max duty cycle
[00:38:22] <jmkasunich> but current is not directly proportional to duty cycle
[00:38:51] <jmkasunich> applied voltage is proportional to duty cycle, current is driven by the difference between the applied voltage and the motor counter emf
[00:39:12] <jmkasunich> divided by the motor winding resistance
[00:39:55] <jmkasunich> you can't get fast rapids and limited stall torque with a single value of max duty cycle
[00:39:59] <jmkasunich> if you limit the DC, you get slow moves
[00:40:11] <jmkasunich> if you raise the DC for speed, then you can get lots of current at stall
[00:40:14] <eric_u> I'm assuming some sort of current limiting, then all that V=IR silliness is reduced to civil engineering rules
[00:40:24] <eric_u> you can't push a rope
[00:40:50] <jmkasunich> you assume to much ;-)
[00:41:06] <jmkasunich> the 298 doesn't have current limiting unless you design it into the circuit
[00:41:37] <eric_u> there are no provisions, or there are provisions that you can ignore?
[00:42:22] <jmkasunich> there is a place where you can put a current sense resistor (on the low side emitters)
[00:42:34] <eric_u> sorry, I see you said that upthread a little
[00:42:36] <jmkasunich> what you do with the signal from that resistor is entirely up to you
[00:43:15] <eric_u> they intended that you use the 298 with another chip, right?
[00:43:21] <cradek> yes with current sense
[00:43:23] <jmkasunich> hmm.... I bet you could do some clever stuff with speed feedback to limit the current
[00:43:24] <eric_u> 296 or something like that
[00:43:34] <tomp> 297
[00:43:47] <jmkasunich> 297 turns the plain dual H bridge into a stepper driver
[00:44:01] <jmkasunich> useless for driving a DC motor (I think)
[00:44:05] <tomp> doh! right
[00:44:45] <eric_u> so you don't want to use that
[00:44:51] <tomp> my 1980's samples were for a stepper wire edm idea (AGies were open loop steppers )
[00:45:47] <eric_u> in the limit, the cost of these circuits approaches the price of a gecko
[00:46:00] <eric_u> That's why I wait for summer and buy AMC amps on ebay
[00:46:12] <jmkasunich> depending on the motor resistance, you could probably take the motor velocity (from encoder feedback) and use it to calculate upper and lower duty cycle limits that would change dynamically as the counter EMF changes
[00:46:24] <jmkasunich> no hardware needed
[00:46:35] <jmkasunich> (no current limit hardware)
[01:12:17] <CIA-19> 03cradek 07TRUNK * 10emc2/nc_files/systems.ngc: a nice file for playing with axis's new touch off interface
[01:24:56] <CIA-19> 03cradek 07TRUNK * 10emc2/nc_files/systems.ngc: make start and end conditions right
[01:53:44] <tomp> jmkasunich: thanks again ( i just got done cutting out the conversation and cleaning it up, will go thru the math next, and look at modifying jeplers circuit http://emergent.unpythonic.net/projects/01148303608 or this one http://www.robotobjects.com/scripts/prodView.asp?idproduct=67 )
[01:54:04] <jmkasunich> you're welcome
[02:09:23] <tomp> "For higher currents, outputs can be paralleled. Take care to parallel channel 1 with channel 4 and channel 2 with channel 3."
[02:10:25] <rub321> hello i am a potential user of emc and have a question, is anyone active
[02:10:56] <jmkasunich> its best to just ask
[02:11:00] <jmkasunich> (your question)
[02:11:13] <rub321> my question is, what file transfer support does emc have
[02:11:21] <jmkasunich> what do you mean by that?
[02:11:54] <rub321> my fathers shop uses cam software primaryly to interact with the on machine cnc control systems, ie, they do their programming and setup using on machine controls,
[02:12:02] <rub321> thereafter using a computer to backup and store their files
[02:12:11] <rub321> using dos cam software
[02:12:35] <jmkasunich> is the cam software integrated with the control somehow? or is it making g-code files that are then loaded into the control
[02:13:01] <rub321> making g-code that is simply loaded into the controller
[02:13:38] <jmkasunich> so what do you want to do? run the cam software on the EMC computer? or copy g-code files from the DOS CAM computer to the EMC computer? or what?
[02:14:04] <rub321> i understand there is some specialized linux software for this, but we might like to kill two birds with one stone, and make it easier for computer challenged operators to use
[02:14:10] <jmkasunich> so what do you want to do? run the cam software on the EMC computer? or copy g-code files from the DOS CAM computer to the EMC computer? or what?
[02:15:01] <rub321> run emc cam soft, i can dupe the g-code files for emc manually
[02:15:18] <jmkasunich> emc is not cam software
[02:15:24] <jmkasunich> emc is a machine controller
[02:16:18] <rub321> ah, hmm something im not understanding about emc, ive read the users and integrators manuals almost all the way through
[02:16:30] <tomp> rub321: emc reads gcode file like your other machines. emc CAN read files like your other machine can read files. the file might be a bit different but not much.
[02:16:35] <jmkasunich> emc reads G-code and makes the machine move
[02:16:44] <jmkasunich> CAM software reads drawings and makes G-code
[02:18:42] <rub321> our setup would include three machines, lathes and mills, one in particular has not been able to interface with our current machine controller software, as it can do that. i was hoping hal would allow interfacing with that latter machine, in particular make it possible to capture g-code from the onboard controller on the machine
[02:19:13] <jmkasunich> I'm having lots of trouble understanding what you want
[02:19:24] <jmkasunich> hal and g-code have absolutely nothing to do with each other
[02:19:35] <jmkasunich> hal is used to connect EMC to motors
[02:19:43] <jmkasunich> g-code is used to tell EMC what to do
[02:20:04] <tomp> this problematic machine ... can you give it a gcode file and make it run?
[02:20:08] <rub321> ok im following, let me think
[02:20:53] <rub321> from our dos software no, it is a large miyano,
[02:21:00] <jmkasunich> "one in particular has not been able to interface with our current machine controller software, as it can do that" this sentence seems to contradict itself - it either can or cannot do "that", whatever "that" is
[02:21:30] <tomp> ( can you make the miyano run at all?
[02:22:23] <tomp> i think you may just have problems 'talking to' the miyano?
[02:22:24] <rub321> yea, dangling modifier or something, what i mean to say, is that the dos software can control motors servos, as well as interact with onboard motor and servo controllers and just send g code
[02:22:33] <rub321> the miyano does run
[02:22:51] <rub321> yes, and i was hoping hal would allow us to have soft that will communicate with it
[02:23:08] <jmkasunich> EMC reads g-code from disk, and controls the motors
[02:23:19] <jmkasunich> the g-code can come FROM anywhere
[02:23:28] <jmkasunich> floppy disk, usb stick, email, etc
[02:23:39] <SWPLinux> network ...
[02:24:03] <tomp> what happens when you try to send a file to the miyano? what do you see happen?
[02:24:20] <jmkasunich> emc is not used to communicate _with_ an existing controller, it IS a controller
[02:25:56] <tomp> jmkasunich is right, you will need to understand these pieces to be able to ask the right question. and to find where you do need to ask it. likely not here if all 3 machines can already run.
[02:26:08] <rub321> the connection is via parport, there is a communication error, on the dos software side
[02:26:30] <tomp> ok, you have a communication problem, and emc/hal are not your answer
[02:27:05] <jmkasunich> let me see if I understand you (online, it is very important to speak precisely - we can't tell what you are thinking, and we have no background info about you or your situation).... ok, here goes:
[02:27:13] <rub321> makes sense. ill get more information about the problems
[02:27:16] <jmkasunich> you have a machine with a dedicated control (not a PC)
[02:27:23] <rub321> yes
[02:27:24] <jmkasunich> you have a PC running DOS software that makes g-code
[02:27:45] <jmkasunich> the PC is supposed to send the g-code out the parallel port to the machine controller?
[02:27:56] <jmkasunich> (like a drip feed)
[02:28:09] <rub321> yup yup.
[02:28:34] <jmkasunich> ok, this is probalby not the right place then... unless you want to replace the dedicated control with EMC
[02:29:18] <tomp> the error has to be exactly written down and shown to someone with miyano experience. maybe the file needs to be shown to that person also.
[02:29:18] <jmkasunich> EMC takes the place of the control, you give it g-code and it runs the motors. Since EMC is running on a PC, its easy to get the g-code into EMC
[02:29:33] <jmkasunich> disk, network, anything that can copy a file from one PC to another works
[02:29:48] <jmkasunich> no strange stuff like drip-feeds and g-code over the parallel port
[02:30:17] <rub321> ah ok.i have a much better understanding of EMC thank you tomp and jmkasunich
[02:30:23] <jmkasunich> good luck
[02:30:25] <tomp> np
[02:30:48] <rub321> keep up the development, i like the project, impressive stuff
[02:30:55] <jmkasunich> thanks
[02:41:16] <Jymmm> SWPadnos SWPLinux
[02:41:23] <SWPLinux> ja mon?
[02:41:42] <Jymmm> SWPadnos ds3 was going to goto ESC
[02:41:45] <jmkasunich> how is sunny calif?
[02:41:58] <SWPLinux> it seems pretty sunny, when I'm outside :)
[02:42:23] <SWPLinux> Jymmm: I think he was going to call or SMS me, but hasn't yet
[02:42:46] <Jymmm> SWPadnos Ah, ok. well, he'll turn up sometime I suppose.
[02:43:02] <SWPLinux> we'll see
[02:43:05] <Jymmm> SWPadnos On Thru, Shall I run you over in the hotel driveway?
[02:43:13] <SWPLinux> I'm in classes much of the day
[02:43:23] <Jymmm> SWPadnos around 1700 ?
[02:43:25] <SWPLinux> Jymmm: well, if it mkes you feel better, but please do it after dinner
[02:43:35] <rub321> im in san jose, passed by esc earlier, looked InTeResting
[02:43:58] <SWPLinux> 17:00 sounds OK - maybe a few minutes later since classes actually end then
[02:44:07] <SWPLinux> rub321: there' a lot of neat stuff here
[02:44:26] <Jymmm> SWPadnos ah, ok. Yeah, I have a free pass to ESC, but well.. you're there =)
[02:44:34] <SWPLinux> heh
[02:44:49] <SWPLinux> there's free parking for conference attendees, not sure about exhibits-only though
[02:44:54] <rub321> many diy guys?
[02:45:03] <SWPLinux> not too many, it seems
[02:45:05] <Jymmm> SWPadnos the pass says free parking and wifi
[02:45:07] <SWPLinux> great
[02:45:26] <Jymmm> SWPadnos any neet toys?
[02:45:27] <Jymmm> neat
[02:45:37] <SWPLinux> yep. zillions of small embedded PCs
[02:45:56] <Jymmm> * Jymmm wants a embedded pc giveaway
[02:46:14] <Jymmm> no tshirts or stupid squishy things
[02:46:16] <SWPLinux> I've been mentioning EMC and RT latency to all of them, and may be able to get them to test their products or send samples to me for testing
[02:46:26] <SWPLinux> most of the giveaways are Ipods or Nintendo Wiis
[02:46:48] <jmkasunich> rtai has a livecd that does latency test, that would be handy to carry around
[02:46:49] <Jymmm> no samples?
[02:46:57] <SWPLinux> I did go to the Al Gore speech today - he was very good
[02:47:15] <SWPLinux> I'd sure like to sample some of the booth babes
[02:47:20] <SWPLinux> err - no samples
[02:47:35] <Jymmm> those bastidges
[02:47:39] <SWPLinux> no kidding
[02:47:50] <SWPLinux> free food though
[02:47:54] <Jymmm> no demo boared giveaways either?!
[02:48:00] <SWPLinux> that's how I've been surviving without you and petev
[02:48:01] <Jymmm> yeah, but you know the food sucks
[02:48:36] <SWPLinux> actually it was pretty good - teriyaki chicken skewers, chicken tenders, pasta with marinara, veggies ...
[02:48:44] <SWPLinux> beer!
[02:48:49] <SWPLinux> (not that I had any)
[02:49:02] <Jymmm> ok, they can't screw up free beer at least
[02:49:14] <SWPLinux> nope. it's some Jamaican brand
[02:49:19] <jmkasunich> yeah they can - they can serve pisswater
[02:49:29] <SWPLinux> you mean Budweiser?
[02:49:30] <Jymmm> coors != beer
[02:49:32] <jmkasunich> red-stripe?
[02:49:50] <jmkasunich> (thats the only jamaican beer I can think of)
[02:49:54] <Jymmm> same here
[02:50:08] <Jymmm> well, I can only remember that commercial
[02:50:14] <SWPLinux> it could be red stripe
[02:50:17] <Jymmm> never tasted the beer
[02:50:25] <SWPLinux> I haven't found a beer I like, but if I had to choose one, it would be either Guinness or some German thing
[02:50:41] <jmkasunich> Guiness = good
[02:50:53] <Jymmm> Hooray Beer
[02:50:53] <SWPLinux> hey - I should be in the executive lounge getting Cheesecake. brb
[02:51:00] <Jymmm> lol
[02:52:04] <Jymmm> http://us.redstripebeer.com/media
[03:04:54] <SWPLinux> aaah - that's better
[03:19:31] <Jymmm> SWPadnos and you didn't get any for us?!?!?!
[03:20:00] <SWPLinux> nope - HOPR has dessert ;)
[03:20:11] <SWPLinux> extra prime rib!
[03:20:16] <Jymmm> yeah, right....
[03:20:41] <SWPLinux> I skipped the estra slice last year, didn't I?
[03:20:45] <Jymmm> no
[03:20:46] <SWPLinux> extra
[03:20:50] <SWPLinux> oh - well, I like food
[03:21:14] <Jymmm> nuh uh, but they were pretty skippin with the extra... I couls see thru it
[03:21:36] <SWPLinux> it's a kid's cut (or whatever they call it) - just the right size for dessert
[03:21:41] <Jymmm> lol
[03:22:50] <SWPLinux> that was actually how I found out about the extra slice. a few years ago the waitress came around and asked me if I wanted dessert, and I said "actually, I could go for some more Prime Rib"
[03:23:08] <SWPLinux> then she told me I could have some more, and insured a large tip
[03:23:17] <Jymmm> lol
[03:24:37] <Jymmm> goin for foodage bbiab
[03:37:28] <tomp> paralleled 298 current sense http://www.drawblog.com/images/20070403083538512.jpg
[03:37:28] <SWPLinux> http://maps.google.com/maps?f=d&hl=en&saddr=new+york,+ny&daddr=paris,+france&layer=&sll=42.341671,-71.028757&sspn=22.326413,40.078125&ie=UTF8&z=4&om=1
[03:37:33] <SWPLinux> see step 23 :)
[03:38:25] <SWPLinux> tomp: that will tell you the total current, but not whether one or the other transistor is too high
[03:38:33] <eric_u> I tried to get directions from here to Doha Qatar, but it wouldn't do it
[03:38:39] <tomp> :) but thanks to computers its only about a 300 pixel swim
[03:38:43] <SWPLinux> heh
[03:39:39] <tomp> the 2 halves of the 298 have been paralleled, so i'm looking at total current
[03:40:17] <SWPLinux> ok - on a single IC they should be pretty symmetric, but slight variances in e.g. cooling can cause an imbalance between the two output drivers
[03:40:45] <tomp> gotta join 1 to 4 and 2 to 3 they say, and derate the total
[03:41:07] <SWPLinux> ok - whatever they say is probably appropriate ;)
[03:41:22] <tomp> i found a dirt cheap kit and will try it , all smoke reported here :)
[03:41:26] <ds3> Hmmmm
[03:41:35] <SWPLinux> here's another interesting chip, the Freescale MC34929
[03:41:38] <ds3> hey SWPLinux
[03:41:57] <SWPLinux> that one is for 3-phase /BLDC motors, I haven't looked for a different version for DC / steppers
[03:41:59] <SWPLinux> hi ds3
[03:42:17] <ds3> enjoying ESC so far?
[03:42:25] <SWPLinux> they have chips that go up to ~30A at 30-40V (!)
[03:42:32] <SWPLinux> ds3: yep - it's been good so far
[03:42:48] <SWPLinux> I suppose I should take a look at the course offerings for tomorrow
[03:42:57] <ds3> SWPLinux: what sessions have you been spending your time at?
[03:43:14] <SWPLinux> I did a day-long one called "Extreme Wireless Networking"
[03:43:32] <SWPLinux> and two half-day session yesterday, one on Verilong and one on VHDL
[03:43:38] <SWPLinux> verilog, that is
[03:43:55] <SWPLinux> this morning, I went to one on "Realtime Linux ..."
[03:44:14] <SWPLinux> unfortunately, most of the session was taken up by the description of POSIX.1b
[03:44:26] <SWPLinux> not much time left over for RTAI/Xenomai
[03:44:50] <ds3> the paid ones sound so much more interesting
[03:44:57] <SWPLinux> heh
[03:45:10] <SWPLinux> I missed the Prius teardown sessions today - I was browsing the show floor
[03:45:20] <ds3> sat through OTG and USB
[03:45:37] <ds3> the Prius area didn't seem as packed as I thought it'd be
[03:45:39] <SWPLinux> ah - were those by Jango or Jungo or something?
[03:46:00] <ds3> no, OTG was by Freescale, USB was by Phillips/NXP
[03:46:15] <SWPLinux> ok, interesting
[03:46:22] <SWPLinux> well, sort of interesting ;)
[03:46:29] <ds3> heh
[03:46:48] <ds3> the Phillips one was pretty good as a primer on USB protocols; OTG was much more off a demo of FreeScale stuff
[03:47:05] <SWPLinux> yeah - I hate those
[03:47:20] <SWPLinux> there was a (paid) session on "software defined radio in an FPGA" last year
[03:47:38] <ds3> that sound exactly like one at RTSC
[03:47:42] <ds3> and that one sucked
[03:47:46] <SWPLinux> they didn't do anything of the sort - it was like a 90-minute infomercial on Xilinx virtex FPGAs
[03:48:08] <ds3> yeah, that's what it was... FPGA and the tools on it
[03:48:08] <SWPLinux> they did an MPEG decompressor or something - nothing whatsoever to do with SDR
[03:48:14] <SWPLinux> right
[03:48:38] <ds3> I'll give Xilinx a chance tomorrow at the Microblaz +uC linux
[03:49:47] <SWPLinux> ah - here's the early morning session for me: "Strategies for Implementing Industrial Real-time Ethernet"
[03:50:11] <ds3> isn't that an oxymoron?
[03:50:16] <ds3> (RT and Ethernet)
[03:50:20] <SWPLinux> nope
[03:50:28] <SWPLinux> there's RTNet
[03:50:31] <SWPLinux> and others
[03:50:42] <ds3> but Ethernet by its very nature is nondeterministic
[03:50:54] <toastydeath> there is QoS
[03:51:03] <SWPLinux> only if you allow anyone to transmit at any time ...
[03:51:20] <SWPLinux> RTNet basically does TDMA on the ethernet channel
[03:51:22] <toastydeath> you can implement the same kind of traffic shaping and whatnot as an ATM circut
[03:51:34] <toastydeath> well, almost the same
[03:51:53] <ds3> QoS is not strictly part of ethernet
[03:52:04] <toastydeath> yep
[03:52:08] <ds3> so RTNet requires everyone to be RT
[03:52:21] <SWPLinux> I believe that RTNet requires that all devices in a collision domain be RTNet
[03:52:28] <ds3> no linksys/cisco box broadcasting on it
[03:52:44] <SWPLinux> there are RTNet -> normal ethernet "drivers", that pass normal traffic in otherwise unused timeslots
[03:52:48] <SWPLinux> right
[03:53:10] <toastydeath> what about using a non-blocking switch
[03:53:19] <ds3> I see.
[03:53:26] <ds3> why not just use TR or FDDI to start with =)
[03:53:32] <toastydeath> lulz
[03:53:43] <toastydeath> wulfkit network
[03:53:49] <toastydeath> 3.6 us lag
[03:53:56] <toastydeath> hmm, i can't make the fancy u
[03:54:16] <toastydeath> DAMN YOU, FANCY U, DAMN YOU.
[03:54:31] <SWPLinux> hmmm. there's a pair of classes on "Reducing Runtime Overhead in C++ Programs" - that may be interesting as well
[03:55:00] <ds3> sure sounds a lot like "Supercharging a Geo Metro" ;)
[03:55:09] <SWPLinux> heh
[03:55:37] <SWPLinux> there was a talk last year (repeated this year) where the speaker showed the difference between generated code for C and C++ programs
[03:56:00] <SWPLinux> there wasn't much difference, and in some cases, the C++ actually resulted in smaller and faster code
[03:56:19] <toastydeath> is that a feature of the compiler or the language
[03:56:22] <ds3> but was it a real C++ program?
[03:56:37] <SWPLinux> yes
[03:56:50] <eric_u> different than the old days
[03:56:56] <ds3> if they were comparing void main( void ) { printf( "Hello, World\n" ); } compiled with gcc vs g++....
[03:57:03] <SWPLinux> actually, GCC produced rather bad code, and the ARM-specific compiler made pretty good code
[03:57:08] <SWPLinux> nope
[03:57:16] <SWPLinux> more like printf vs. cout << ...
[03:57:39] <ds3> hmmm
[03:58:24] <ds3> C++ did bring one nifty feature... ability to easily have code run before main ;)
[03:58:28] <eric_u> not impressed by the current g++, too much chasing the specification
[03:58:42] <SWPLinux> also some direct register manipulation in C++, where the bit vector classes were better than explicit shifting/masking (or something like that - it was a year ago ;) )
[04:00:14] <ds3> always inline ASM using machine specific bit manu. inst
[04:01:01] <SWPLinux> the interesting thing is that a very good C++ compiler may have exactly that as the STL implementation of a bit vector
[04:03:38] <ds3> SWPLinux: know what time you will be done tomorrow?
[04:03:51] <SWPLinux> hmmm. lemme look at the afternoon classes ;)
[04:04:12] <SWPLinux> I think petev and I are going to the "Korean Palace" for dinner tomorrow night
[04:04:21] <ds3> Oh okie
[04:04:22] <SWPLinux> well, one of them anyway
[04:04:40] <ds3> be prepare to smell like a kitchen afterwards ;)
[04:05:16] <SWPLinux> not a problem, I have my own hotel room ;)
[04:06:07] <tomp> try this stuff at the korean kitchen jin ro http://www.jinro.co.kr/english/product/01.asp
[04:07:15] <SWPLinux> err - if I liked any alcoholic beverages (other than Bailey's), I'd be more inclined ...
[04:07:37] <SWPLinux> I do hope they have good kimchee - I can't remember from last year
[04:07:43] <tomp> it's the central item in most korean drinking games
[04:07:54] <ds3> Palace is more of a buffet/cook it yourself thing
[04:07:58] <SWPLinux> heh - then I definitely don't want to try it ;)
[04:08:04] <SWPLinux> yep - that's the one
[04:08:21] <SWPLinux> they did have the "salad bar" and otherstuff too though
[04:08:45] <tomp> bool gogi, diy dinner, have fun
[04:09:02] <SWPLinux> heh - gotta have that, plus the spicy pork
[04:16:07] <ds3> hmmm
[04:24:03] <Jymmm> ?
[04:24:12] <SWPLinux> ??
[04:24:16] <SWPLinux> ?++
[04:26:42] <ds3> Fault.
[04:26:48] <SWPLinux> 15-love
[04:27:05] <SWPLinux> I wonder why they call zero "love" in tennis
[04:28:15] <ds3> is there a really a reason for folks who just run around aimlessly chasing a round furry thing? ;)
[04:31:31] <SWPLinux> dunno
[04:31:41] <SWPLinux> I chase furry things, but they aren't round
[04:35:14] <ds3> I need to find out which sessions have the best give aways ;)
[04:35:31] <SWPLinux> heh - good question
[04:35:48] <ds3> last year I got an ARM eval board; got to top that!
[04:35:53] <SWPLinux> I haven't gotten much good stuff this year
[04:36:06] <ds3> (Wish SiLabs had a talk where they give away the Stix)
[04:36:12] <SWPLinux> just pens and things (Kontron had a nice notebook+pen)
[04:36:52] <ds3> Can use more shirts
[04:37:14] <SWPLinux> yeah. I didn't want to stand around, or I would have gotten one from Coverity
[04:37:28] <SWPLinux> they had a "quiz" - spot the bug and get a T-shirt
[04:37:32] <ds3> they are still doing shirts?
[04:37:42] <ds3> Grammatech is doing the same thing this year
[04:38:18] <SWPLinux> I didn't see them - I only hit the half ot he show floor nearer to the Hilton (rather than the Marriott)
[04:38:46] <ds3> ah, they are on that other "Room" at the other side
[04:39:53] <SWPLinux> ok - I should get there tomorrow, hopefully
[04:40:08] <SWPLinux> maybe I'll win one of the ipods or something (like last year)
[04:40:22] <ds3> grumble... I never win any drawings
[04:40:50] <SWPLinux> heh
[04:41:04] <SWPLinux> got a 1G flash drive as well (in the mail later)
[04:42:27] <ds3> was it the scope folks from last year?
[04:44:35] <SWPLinux> I got the ipod shuffle from Agilent
[04:44:55] <SWPLinux> the flash drive was from someone else - a Lexar secure jumpdrive
[04:46:17] <ds3> wonder what happen to the magazine vendors
[04:46:38] <SWPLinux> there seem to be a bunch in the front lobby area
[04:50:51] <ds3> they moved things around this year
[08:48:27] <lerneaen_hydra> 'lo all
[11:28:45] <alex_joni> http://www.youtube.com/watch?v=mSfto9g5z2g
[11:33:49] <lerneaen_hydra> hmm, isn't it moving very very slowly?
[11:34:13] <lerneaen_hydra> oh, btw, how does axis deal with rotary axes in the preview plot?
[11:38:11] <anonimasu> hm
[11:38:14] <anonimasu> while that video is cool
[11:38:30] <anonimasu> I'd like to see it at a sane speed ;)
[11:38:55] <anonimasu> I thought routers had high feedrates in wood
[11:38:56] <anonimasu> :/
[11:41:57] <lerneaen_hydra> yeah, me too
[11:42:04] <lerneaen_hydra> like 5000mm/min+
[11:42:59] <anonimasu> hehe
[11:43:00] <anonimasu> yep
[11:53:52] <maddash> when i issue, `scripts/emc configs/stepper/stepper_inch.ini`, i get a kernel panic -- where could I find the corresponding log?
[11:58:30] <maddash> shit -- is this my punishment from emc2 for using 2.6.19/rtai3.5??
[12:21:35] <maddash> are you all using 3.4?
[12:25:23] <skunkworks> 3.4?
[12:26:06] <skunkworks> logger_emc: bookmark
[12:26:06] <skunkworks> Just this once .. here's the log: http://www.linuxcnc.org/irc/irc.freenode.net:6667/emc/2007-04-04.txt
[12:28:18] <alex_joni> maddash: dies the machine still work after the panic?
[12:28:27] <alex_joni> if so the info is in 'dmesg'
[12:28:54] <alex_joni> if it crashes.. then there's something borken.. I suggest you start with configs/sim/...
[12:31:59] <maddash> alex_joni: i compiled --disable-simulator
[12:33:35] <maddash> "unable to handle kernel paging request at virtual address ********"
[12:34:12] <maddash> and reference to ipipes sprinkled all over the output
[12:34:22] <maddash> skunkworks: rtai 3.4
[12:36:25] <maddash> looks like i'll have to run back to 2.6.17/rtai3.4 again.
[12:36:39] <alex_joni> maddash: how much ram?
[12:37:12] <maddash> alex_joni: 128
[12:37:17] <maddash> MB
[12:38:01] <maddash> brb
[12:44:35] <maddash> hm, i enabled register arguments when compiling the rtai3.5-patched -- could this be the source of my woes?
[13:06:22] <maddash> ...
[14:01:57] <xemet> hi
[14:02:42] <alex_joni> hi
[14:02:51] <xemet> in Axis in the manual control tab there is a button to start and stop the spindle and two button + and - to increment the speed
[14:03:01] <alex_joni> yes
[14:03:02] <xemet> is there a way to change the scale?
[14:03:09] <xemet> they increment by 1
[14:03:12] <alex_joni> hmm.. don't think so
[14:03:26] <xemet> so they are useless...
[14:04:16] <xemet> there is the button to start or stop the spindle manually...but whan I start it, its speed is set to a value of 1
[14:04:26] <alex_joni> you can enter S500 in the MDI
[14:04:38] <xemet> they are separated
[14:04:40] <alex_joni> or whatever value you want
[14:04:56] <xemet> if I go in the MDI, it doesn't control the manual control tab
[14:05:04] <xemet> so if I start the spindle in the manual control tab
[14:05:28] <xemet> and after I switch in the MDI and type s500 nothing happens, I've to type M3 s1000 for example
[14:05:39] <alex_joni> hmm.. I see
[14:05:43] <xemet> even if effectively the spindle is already on
[14:06:02] <alex_joni> xemet: that might count as a bug..
[14:06:07] <xemet> ah ok
[14:06:11] <alex_joni> what if you do M3
[14:06:14] <alex_joni> then S500
[14:06:16] <alex_joni> then S1000
[14:06:22] <xemet> that's ok
[14:06:23] <alex_joni> does the speed change?
[14:06:26] <xemet> yes
[14:06:28] <alex_joni> ok..
[14:06:37] <xemet> if I control all by MDI everything works
[14:07:23] <xemet> but if there is a button in the manual control tab to start and stop and a + and - buttons, would be nice to have a scale to set in the .ini
[14:07:45] <xemet> I cannot increment from 1 to 10000 pressing the button 10000 times :)
[14:07:55] <alex_joni> you can .. but you don't want that :P
[14:08:20] <xemet> yes
[14:08:22] <alex_joni> why do you need to control the spindle in manual mode?
[14:08:54] <xemet> no need to do that....I was only asking because I thought there was a way to set the scale
[14:08:57] <alex_joni> (I agree there needs to be done something about increments and +/- buttons)
[14:09:56] <xemet> to me, even the start or stop button are a little useless...because I use EMC2 to run the cnc using g-code programs...not manually
[14:10:10] <xemet> the only thing I need to do manually is jog
[14:13:50] <alex_joni> right
[14:25:04] <xemet> why if I set the MIN_SPINDLE_OVERRIDE = 0.5 in the .ini I have always 0 as min?
[14:25:19] <xemet> max works, I've set it to 2 and I have 200% max
[14:30:41] <skunkworks> well - we dropped a drive again in the raid array.. looks like a weekend replacement party.
[14:31:04] <skunkworks> raid array? :)
[14:31:18] <alex_joni> skunkworks: ?
[14:32:22] <lerneaen_hydra> skunkworks is schizo!
[14:32:49] <skunkworks> sort of an oxymoron
[14:33:32] <lerneaen_hydra> how so?
[14:33:36] <lerneaen_hydra> oh
[14:33:38] <skunkworks> redundant array of independent drives array
[14:33:48] <lerneaen_hydra> sort of like "personal pin number"
[14:34:01] <skunkworks> or pc computer
[14:34:12] <lerneaen_hydra> (which I have seen in a cell phone manual)
[14:34:42] <lerneaen_hydra> well, you've got a bit of redundancy there
[14:34:58] <skunkworks> redundant redundancy
[14:35:32] <lerneaen_hydra> indeed
[14:35:57] <xemet> I repeat the question: why if I set the MIN_SPINDLE_OVERRIDE = 0.5 in the .ini I have always 0 as min?
[14:36:33] <skunkworks> the best one I have seen is from microsoft... right on the splash screen for windows 2000 server iirc
[14:36:58] <skunkworks> 'based on NT Technology' (based on New Technology Technology
[14:37:02] <skunkworks> )
[14:37:33] <lerneaen_hydra> heh
[14:39:28] <skunkworks> xemet: sounds like another little bug. (can't test it here)
[14:42:53] <alex_joni> xemet: I only tested with tkemc, and it used to work ok there
[14:43:54] <alex_joni> so I suggest it's a problem with AXIS
[14:44:53] <SWPLinux> halui is tetkemc and halui are the only things that have MIN_SPINDLE_OVERRIDE, according to grep
[14:44:57] <SWPLinux> s/id/and/
[14:45:02] <SWPLinux> argh
[14:45:04] <SWPLinux> s/is/and/
[14:45:24] <SWPLinux> actually, just ignore all the typos, please
[14:46:57] <xemet> uhm...but max works with axis
[14:47:07] <xemet> I've set it to 2 and I've 200% as max
[14:47:17] <SWPLinux> max is not min :)
[14:48:08] <SWPLinux> and max only works with halui, tkemc, and axis (not mini or xemc, keystick ...)
[14:50:21] <xemet> ok, so it is time to let min work with axis, where is jepler? :)
[14:50:51] <SWPLinux> he's on vacation, but cradek seems to be changing axis a bit in his absence
[14:51:53] <xemet> wow, it is the first time I don't see jepler online!
[14:52:02] <xemet> I'm happy for him!
[14:52:08] <SWPLinux> heh
[14:56:06] <xemet> now I go, thank you all
[14:57:51] <skunkworks> jepler takes vacations?
[15:00:21] <maddash> is there a way to speed up the feedrate during g-code execution?
[15:01:03] <alex_joni> feed override
[15:01:47] <maddash> by "way," i meant an nml command for emc -- something similar to EMC_SPINDLE_INCREASE
[15:03:44] <maddash> possible traj_set_scale?
[15:03:51] <maddash> s/ble/bly/g
[15:04:15] <SWPLinux> how about something like EMC_SET_FEED_OVERRIDE or similar?
[15:04:21] <alex_joni> * alex_joni heads home
[15:04:27] <alex_joni> there's a SCALE something message
[15:04:39] <alex_joni> the exact wording slips my mind now, but I'm sure you'll find it
[15:04:59] <maddash> is there an nml reference doc lying around?
[15:05:02] <SWPLinux> not me - it's breakfast time. see you later
[15:05:05] <SWPLinux> hahahahahaha
[15:05:10] <SWPLinux> err - maybe
[15:05:45] <maddash> yep, traj_set_scale
[15:07:10] <maddash> yeesh, so is the override value some relative or absolute value?
[15:07:58] <SWPLinux> I suspect it's absolute, but I'm not sure
[15:08:17] <SWPLinux> 1.0 should mean "the programmed feed rate"
[15:08:35] <SWPLinux> I say this only because it makes sense to do it that way, not because I know anything about that part of the code
[15:08:56] <SWPLinux> time to run - see you
[15:10:05] <maddash> see you
[15:10:09] <maddash> override
[15:10:12] <maddash> overide
[15:10:16] <maddash> [sigh]
[15:34:57] <maddash> "can't do that (EMC_AXIS_OVERRIDE_LIMITS) in auto mode with the interpreter idle" -- how should i override limits while executing gcode?
[15:52:05] <lerneaen_hydra> isn't there an override limits button?
[16:02:04] <alex_joni> maddash: you can't override limits while executing
[16:02:30] <alex_joni> you can only override limits while homing (if you are homing on a limit switch), or to jog off a limit switch
[16:05:08] <maddash> shucks.
[17:22:20] <DavidMTL> Is there a way to control the maximum velocity allowed during a direction change (velocity changes sign)?
[17:25:48] <DavidMTL> let me know if my question is not clear
[17:29:18] <Dallur> David: do you mean the max acceleration ?
[17:31:21] <DavidMTL> I don't think so. What I mean is this: When running servos or hardware step generators such as the pico board, sometimes the velocity changes sign while in motion. So far it seems that it doesn't change sign above 123HZ velocity on my setup but I am trying to find if one can adjust the maximum valocity at which a direction change is allowed.
[17:32:49] <DavidMTL> re: changing direction on a stepper while in motion can cause problems if the stepper is going too fast
[17:33:29] <Dallur> DavidMTL: This sounds like a pretty serious issue, out of my league I'm afraid
[17:34:09] <DavidMTL> ok, thanks for paying attention
[17:34:57] <Dallur> DavidMTL: btw, most of the guys in here are not at the keyboard at all times, they might drop by every hour or so, (most of us are have to work to) :D
[17:35:34] <DavidMTL> yes, I assumed this is what is happening
[17:35:36] <Dallur> DavidMTL: If you wait for a bit I'm sure someone will have an answer for your
[17:35:47] <Dallur> DavidMTL: errr s/your/you
[17:41:58] <skunkworks> DavidMTL: are you saying your seeing the direction pin change state while moving in one direction? (changes state when you think it should not)
[17:43:33] <DavidMTL> yes, but I am not saying it should not change. I assume it may have to change to stay on course in a servo loop. What I am trying to figure out is what is the maximum velocity at which a direction change is allowed on a specific axis
[17:44:12] <DavidMTL> for example, a direction change may be fine at slow speed of 10HZ but not ok at 1000 HZ
[17:44:44] <cradek> is this a servo system?
[17:45:28] <DavidMTL> it is a test I an running with a hardware step generator similar to a pico board.
[17:45:57] <skunkworks> as far as I know there is none in emc - it uses what ever your accelleration is set set to all the way down to zero velocity. (I assume you mean like turbo cnc - you can set a minimum velocity at wich you can allow the 'steppers' to change direction)
[17:46:05] <cradek> so you have a position pid loop?
[17:46:15] <DavidMTL> the tests I an running have nothing to do with the board. It is a simulation and I am seeing the velocity change direction at up to 123 HZ
[17:46:32] <renz> renz is now known as renesis
[17:46:48] <cradek> pid's job is to push in the correct direction, according to following error, to maintain position
[17:46:51] <SWPLinux> DavidMTL: if you're using a pico board and drivers like geckos, then the direction change (a step or two in the opposite direction) will only change the position error in the gecko, it won't directly cause the motor to reverse direction
[17:46:54] <DavidMTL> yes. a PID loop
[17:47:26] <SWPLinux> in theory, the gecko would eventually notice the overshoot and run the motor back to the correct position, even if EMC doesn't ask it to do so
[17:47:55] <SWPLinux> this is a specific instance where tuning a PID loop inside another PID loop can be difficult
[17:48:04] <cradek> the position loop doesn't know anything about velocity in Hz like you are saying
[17:48:05] <DavidMTL> for this test I am using a allegro based step driver with a small step motor
[17:48:10] <SWPLinux> (PID loop 1 is the analog gecko position loop, loop 2 is the PID in HAL)
[17:48:35] <DavidMTL> ok, let me rephrase
[17:49:07] <DavidMTL> in a setup like the pico board, the driver takes the velocity value and looks at the sign to determine direction correct?
[17:50:07] <DavidMTL> for example, if velocity > 0, direction is CW, if velocity <0 direciton is CCW
[17:50:14] <DavidMTL> this is just an example
[17:50:21] <SWPLinux> that
[17:50:30] <SWPLinux> that's basically correct
[17:50:34] <DavidMTL> ok
[17:50:51] <SWPLinux> I think the pico card controls the direction bit itself, but the effect is the same
[17:51:12] <DavidMTL> so what I am seeing is that the sign is changing for freq=velocity*scale up to 123
[17:51:50] <SWPLinux> you're actually using a pico board, and you've jumpered it so that it counts the steps output, not the encoder inputs, right?
[17:51:58] <DavidMTL> this happens at the beginning and end of a move, the sign changes back and forth while velocity is not 0
[17:53:51] <DavidMTL> The hardware is not a pico board. It is a custom FPGA and yes I am counting the steps in hardware but my question is not hardware related. I observe this while simulating and looking at velocities and sign changes in my custom hal driver
[17:54:11] <SWPLinux> understood. here's the problem:
[17:54:28] <DavidMTL> trying to understand the motion algorithm and foreseeing all senarios of direction changes
[17:55:54] <SWPLinux> the floating point velocity requested by PID can't be exactly represented by the frequency generator. this results in a small overshoot (or undershoot). PID then looks at the (wrong) "position", and tries to correct. This can cause the direction to change from positive to negative at nonzero speed
[17:56:31] <DavidMTL> that part I understand
[17:56:34] <SWPLinux> ok :)
[17:56:53] <SWPLinux> what is the scale you're using, out of curiosity?
[17:56:55] <DavidMTL> my question is what is the maximum floating point velocity allowed for this sign change to happen
[17:57:08] <DavidMTL> for example it never happens at high velocity
[17:57:25] <DavidMTL> scale is 4000
[17:57:28] <SWPLinux> I believe there is no explicit maximum, but the PID algorithm just won't do it at high velocities
[17:58:26] <DavidMTL> what you are saying is that a following error woul dbe triggered before a sign change can possibly happen at high velocity?
[17:58:39] <SWPLinux> thinking about it further, it probably depends on the accel values you specify. very high accel seems likely to increase the max speed at which you could get a reversal (it increases ringing amplitude)
[17:59:16] <SWPLinux> it's not a following error, but there has to be some position error before PID will correct anything (otherwise there's no correction needed)
[17:59:43] <DavidMTL> ok
[18:00:16] <DavidMTL> it sound like I don't have to worry too much about EMC reversing direction at high velocity then
[18:00:17] <SWPLinux> try quadrupling the accel, and then quartering it, an see if the max reversal vel changes
[18:00:24] <SWPLinux> I don't believe so
[18:00:43] <DavidMTL> so far in tests runs it never happened above 123 HZ step rate (velocity*scale)
[18:01:18] <SWPLinux> that's 1/32 unit per second at 4000 scale - a bit faster than I'd expect (without knowing mavel and maxaccel)
[18:01:28] <SWPLinux> maxvel, that was
[18:01:48] <DavidMTL> maxvel was at 1.2 during the tests
[18:02:21] <DavidMTL> max_accel 20
[18:02:49] <SWPLinux> ok. 20 * 4000 = 80000 Hz/sec^2 accel
[18:03:16] <SWPLinux> anything up to 80 Hz is therefore fair game, and there may be a factor of 2 in there as well, so maybe the max vel would be 160 Hz
[18:03:29] <SWPLinux> (speculation, if you couldn't tell ;) )
[18:03:42] <DavidMTL> it sound about right
[18:03:46] <DavidMTL> from what I have seen
[18:03:55] <DavidMTL> sounds
[18:04:06] <SWPLinux> I assume it's correct until proven otherwise ;)
[18:04:35] <DavidMTL> I wil digest your explanation and run further tests
[18:04:36] <DavidMTL> thanks
[18:04:48] <SWPLinux> heh - good luck
[18:12:11] <skunkworks> that was a bit over my head :)
[18:18:31] <DavidMTL> SWPLinux: if you are curious changing max_accel from 20 to 15 did not change the maximum reversal velocity. Still 123 HZ
[18:18:41] <SWPLinux> hmmm
[18:19:02] <SWPLinux> what velocity (or velocities) are you using in your testing?
[18:20:08] <SWPLinux> also, what are you scoping? (with HALscope) to see what EMC is sending to the driver, you should look at the PID output
[18:20:26] <DavidMTL> max_velocity was set to 1.2 and the test was g1x10F100 but I assume velcocity peaked at 72 (1.2*60)
[18:20:46] <SWPLinux> yes, it should have peaked at 72
[18:21:40] <DavidMTL> In my driver I am looking at the velocity parameter directly connected to the PID and when it changes sign I keep in memory the maximum absolute velocity
[18:22:03] <SWPLinux> ok
[18:22:22] <DavidMTL> I use hal meter to look at a float pin that represents this max reversal velocity
[18:23:16] <SWPLinux> ok. just to eliminate erros in the driver, try using halscope to monitor the PID output, and trigger on vel<0 (this will obviously only work as desired on positive moves)
[18:23:20] <SWPLinux> errors
[18:23:24] <SWPLinux> not erros
[18:25:05] <DavidMTL> I will try that. I did use hal scope earlier today and did notice sign reversals hapenning but was not familiar enough with hal scope to use it for accurate measuring
[18:25:20] <SWPLinux> you can also set up a ddt block (with nothing connected to its output), and monitor the total change in requested velocity
[18:25:46] <DavidMTL> the values I get in the driver seems all correct and the move behaves as expected with the FPGA step generator allegro driver and step motor connected
[18:26:14] <SWPLinux> this may have more to do with PID tuning than accel, actually
[18:26:45] <SWPLinux> I don't think the PID block is limited by the TRAJ accel and vel values (not directly anyway
[18:27:16] <SWPLinux> if you have 100000 for P gain, then you could get very large swings in output velocity, even across zero
[18:27:17] <DavidMTL> I will play with PID values. Need to learn more about them
[18:27:43] <DavidMTL> P = 150
[18:27:43] <DavidMTL> I = 100
[18:27:43] <DavidMTL> D =0.1
[18:28:03] <SWPLinux> lots of in-depth info here: http://www.wescottdesign.com/articles/articles.html
[18:28:09] <DavidMTL> thank you
[18:28:15] <SWPLinux> sure
[18:29:03] <SWPLinux> I wonder if P is actually the limit for reversal velocity. if there's an error of 1 count (1/4000), then the PID output will be 150 times that , or -150 counts/sec (or some similar equation)
[18:30:03] <SWPLinux> maybe add a pin to the driver that gives you the total velocity change - I bet it's going from +123 to -27 or thereabouts (a total dV of 150)
[18:30:04] <DavidMTL> will try it right now
[18:30:24] <SWPLinux> though I and D will also interact there, so it won't be so direct a correlation
[18:30:51] <SWPLinux> gotta run to the show floor. be back later
[18:30:55] <DavidMTL> ok
[18:32:53] <DavidMTL> interesting, I changed P from 150 to 75 and the max velocity reversal changed form 123 to 171
[18:33:06] <DavidMTL> going to lunch. be back later
[19:11:11] <alex_joni> hi all
[19:12:13] <skunkworks> Hi alex. Home?
[19:12:49] <skunkworks> so - in less than 3 months we bought and sold a house. We where damn lucky.
[19:12:57] <alex_joni> heh.. nice
[19:13:21] <alex_joni> skunkworks: glad it worked out ok for you
[19:14:03] <skunkworks> Thanks.
[19:14:20] <skunkworks> didn't even have to pay 2 morgages
[19:14:37] <skunkworks> mortages
[19:22:03] <alex_joni> skunkworks: eventually you'll get it right :P
[19:29:15] <skunkworks> mortgage?
[19:44:29] <Jymmm> Jymmm is now known as Red70sShow
[19:44:30] <Red70sShow> Red70sShow is now known as Jymmm
[20:00:25] <dmwaters> {global notice} Hi all! Freenode is currently looking for more leaf and hub servers for both the US and Europe, as well as AU and other countries. If you would be interested in possibley hosting a server, please see 'http://freenode.net/hosting_ircd.shtml' for more information.
[20:02:23] <alex_joni> hi martin
[21:23:46] <anonimasu> 4hm
[22:03:48] <CIA-19> 03cradek 07TRUNK * 10emc2/share/axis/tcl/axis.tcl: two birds: make this more explicit and get a keyboard shortcut
[22:18:08] <mschuhmacher> hi Alex
[23:14:28] <robin_sz> meeeeeeeeeeeep
[23:14:54] <robin_sz> * robin_sz meeps