jmkasunich: To me it would be better to have the free wheeling diodes outside the sense resister. (keep them from rail to rail). That way the back emf doesn't go thru the resister as bad. Am I thinking right or are there downfall to that?
it depends on what you are using the sense resistor for
current limit for the h-bridge
current limit only, not close loop current control?
current limit only - peak limit shut off
jmkasunich: thank you
I hope someone will find it useful
gonna commit it?
skunkworks: I don't see any problem with putting the resistor in series with the FETs only
just remember - keep the loop inductance down - that includes the resistor
you may have a hard time inserting the resistor without messing up those nice wide low inductance traces
right. It is a work of art the way it is.
jmkasunich: not sure
Thanks again bbl
time for dinner
jepler: the only thing that occurred to me when reading about it was that the generated manpage would be pretty empty
you could either run the truth table tool, then add comments to the .comp,
or figure out how to pass them thru the tool to the .comp
"comments" = the module description and pin description text that winds up in the man page
03jmkasunich 07HEAD * 10emc2/src/emc/usr_intf/halui.cc: removed jogwheel related stuff from halui - jogwheels are handled in realtime for smoother movement
03jmkasunich 07HEAD * 10emc2/src/emc/usr_intf/halui.cc: removed un-implemented halui pin 'joint-select', and converted 'joint-selected' from u8 to u32 - u8 is being phased out
oops, forgot something...
03jmkasunich 07HEAD * 10emc2/src/emc/usr_intf/halui.cc: removed unused function
it's call oldagage. it's my new word of the day.
03jmkasunich 07HEAD * 10emc2/configs/univstep/univstep_motion.hal: changed ppmc setup-time, pulse-width, and pulse-space parameters from 8 bit values in increments of 100nS, to 32 bit values in nS - the parameters are rounded to 100nS and range checked before being used
03jmkasunich 07HEAD * 10emc2/src/hal/drivers/hal_ppmc.c: changed ppmc setup-time, pulse-width, and pulse-space parameters from 8 bit values in increments of 100nS, to 32 bit values in nS - the parameters are rounded to 100nS and range checked before being used
jmkasunich: I can see why you wanted to clean up that stupid time specification, but I'm unhappy about it breaking everyone's configs.
there aren't that many usc users
I made sure to change the param names (added -ns on the end), so they'll get an error at startup, instead of blindly working with incorrect times
(thats if they were setting the times to something other than the default - if they used the default, there is no change at all)
I suspect everyone based their setup on the sample config, which specifies the times
maybe I'm being a bit of a prick, but I think a one time error and quick edit to the config is a reasonable price to pay
the new scaling is also more "discoverable" - you needed a manual to know that the old one was in 100nS increments, the new one is obvious
we're down to 10 converter modules, instead of 56 ;-)
it's too bad those were in the sample config. I guess we shouldn't put stuff in there that has sensible defaults.
theres pros and cons
by putting it in, you let people know that it exists
it's traditional to use commented-out commands that set the values to the default
in this case, that would be worse (IMO)
because the commands would continue to have the wrong names
and someday, when somebody uncomments it and it doesnt' work, he's gonna get confused
03jmkasunich 07HEAD * 10emc2/src/hal/drivers/ (hal_ax5214h.c hal_parport.c hal_skeleton.c m5i20_HM5-4E.h): removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
03jmkasunich 07HEAD * 10emc2/src/emc/motion/ (mot_priv.h motion.c): removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
03jmkasunich 07HEAD * 10emc2/src/hal/ (hal.h hal_lib.c halmodule.cc): removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
03jmkasunich 07HEAD * 10emc2/src/hal/utils/ (8 files): removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
03jmkasunich 07HEAD * 10emc2/src/hal/components/ (8 files): removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
I disagree but it's a very minor point
03jmkasunich 07HEAD * 10emc2/src/hal/classicladder/module_rt.c: removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
[03:05:58] <jepler> http://blog.modernmechanix.com/2006/11/17/motor-scooter-burns-lpg/
at least this way they'll all stop working right away, and after answering the question once or twice, the lists and/or IRC will know exactly what is wrong when people ask
jepler: don't run into a wall with that!
I'll write some text on the wiki about these latest changes
that reminds me - I'll update NEWS
one of the rare times that the char-by-char diff is helpful: http://cvs.linuxcnc.org/cvs/emc2/configs/univstep/univstep_motion.hal.diff?r1=1.1;r2=1.2;f=h
paste the wiki URL when you are done - I'll add it to the NEWS entry
[03:26:16] <jmkasunich> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?UpdatingConfigurationsForDevelopmentVersions
I hate long URLs
03jmkasunich 07HEAD * 10emc2/docs/NEWS: removed all remaining instances of hal_u8 and hal_s8 - HAL now supports 4 types: float for analog data, bit for boolean data, s32 and u32 for quantized data
jmkasunich: did I do OK on the Updating... wiki page update?
the diff tells them everything they need to know
any linux gurus around?
yup. I know >< much.
some people seem to think I'm a guru
slot 2 on the farm might be on its last legs
it had a couple hundred defunct processes
tried to shut it down and it wouldn't
dmesg had some errors that looked diskish
eventually I powered it down and rebooted
ran an fsck, lots of stuff needed fixed
seems to be running again, we'll see what happens
(its doing a build right now)
speaking of the farm - once I move to VMs, I would like to shut that rack off
but cvs2 is in there...
unlike with windows, if it worked yesterday but it doesn't work today, it's _hardware_
the disk is probably going...
I don't know what to say about cvs2
the setup is a non-trivial amount of work isn't it?
I do backup all of cvs.linuxcnc.org pretty regularly
even more so now, since its been a while since you did it the first time
depends. if I were rebuilding it locally, I would just install/restore it from tape, it would take about an hour
if I don't have physical access to the machine (can't plug it into my own network) it would be nontrivial.
in this case, I'm talking about moving it from a farm slot to some other PC or VM
for some other machine, just move the hard drive
a VM is harder
even if the new machine is AMD instead of intel, has different disk controller, different nic, and all kinds of other differences?
it'll be fine with minor tweaks
scp moves files, not raw data, and dd doesn't do networking, right?
to copy it to another disk or machine you would use dump and restore
just like a tape backup/restore but with no tape (stdout->stdin)
hmm, man dump comes up empty
is that a bsd thing>
all real unixes have dump :-)
you might have to install it in ubuntu
I guess ubuntu isn't real linux
by default ubuntu installs openoffice instead of gcc and dump and sendmail and lots of other things
on certain days I would insult it for that
its "unix for human beings" ;-)
ok, I have dump now
looks like dump -f can write to files of the form user@host:file
so I could copy the entire disk elsewhere
you'd do that once for each partition
them "simply" boot from CD or the like, partition and format the new disk, then restore the dumps
would I need to boot from a bsd disk? or could I use a linux live CD?
you'd need to do it all in bsd
because only bsd can make bsd partitions and install the bsd boot loader
I think I have bsd boot floppies around here somewhere
but they don't actually give me a system I can use for the restore do they?
unless you're really interested in figuring it out, it would probably be smarter for me to do it and send you the vmware image.
how much disk does that image need?
the image won't be a small file
03compile-farm 07BDI-2.18 (2.2.18-rtl3.0) * 10emc2head/: build FAILED ; see http://linuxcnc.org/compile_farm/emc2head_slot2_log.txt
the whole of cvs.linuxcnc.org is about 1.2 GB
so its big, but not out of the question for an overnight download
compressed, still many hundreds of MB
700 or less?
maybe, hard to say
not sure you can compress a virtual disk file without messing it up, but who knows
having the cvs server as a VM would be convenient - makes it easy to set one up anywhere
there's really no reason to run it all the time.
once a day would be good just to keep it in sync
/usr/rtlinux/include/mbuff.h: No such file or directory
I bet some files bit the dust
yeah, I saw it
most of the filenames that came up during the fsck were in the actual cvs checkouts
perhaps I should run another fsck and see what it finds
just turn it off, it's not worth any time to fix
you're probably right
but if I see new fsck errors, then I'll _know_ you're right
fsck always looks like an obscenity to me now
there are better tools?
do you know the option to tell fsck "check only"
oh... I thought you meant that the output of the program looked like crap
you mean the name looks like f!ck
yeah because you always type fsck
not just me
"block bitmap differences" are not a good thing, are they?
I don't know what that means
but I think any reported stuff on a second run means things are not going well
27 of them, and this is 10 minutes after running an fsck and repairing everything
doesn't seem right
more errors in dmesg?
I think its time....
gotta get somebody to play Taps
this reminds me to start the backups before bed
1104 builds of emc2 on that slot since Nov 2005
(thats when I started logging the passes and fails)
probably a few thousand more before that, and on the other trees
wow, that's several changes a day for a year
we've been active
not just several files, several change sets
[05:22:36] <jmkasunich> http://linuxcnc.org/compile_farm/
added a death notice
I probably should try to make some good progress on the new farm this weekend
it will be interesting to see what you come up with using vmware
the simplest approach would just be to let them all run just like they do today
but I might get thrashing if multiple builds are going on at once
I was thinking about trying to sequence them somehow
or even having the VMs suspended until a process running on the main box detects a commit, then it starts the VMs one at a time
I did upgrade to 1G of memory
or at least I tried
wonder if you'll even have trouble
does this seem right:
jmkasunich@ke-main-1006:~/emcdev/infrastructure/farm-scripts$ cat /proc/meminfo
MemTotal: 906536 kB
enough ram for firefox can probably hold a dozen simple compiles
one thing I noticed - the vmware processes are -10 priority (pretty high)
you're missing 1xx MB?
they made my box rather sluggish until I reniced them to 5
I wish you could set their priority from the server console
(cause every time you suspend and restart its a new process, and back at -10 again)
seems silly to have them negative
what's up folks?
nevers are frayed by playing ut99.
well it's just about bedtime here
past bedtime here (again)
sleep when you're dead
03jmkasunich 07HEAD * 10infrastructure/farm-scripts/index.shtml: updated the main farm page - added a 'news' section
lerman_ is now known as lerman
lerman_ is now known as lerman
03alex_joni 07HEAD * 10emc2/docs/src/common/emc2_introduction.lyx: added lots of Index tags
03jepler 07HEAD * 10emc2/configs/nist-lathe/nist-lathe.hal: convert to use counter instead of encoder (no PID control of spindle yet)
hmph -- I couldn't get decent PID control of the spindle
jepler: how so?
it doesn't help that there is 1/4 the resolution on 'counter'
is the speed somehow constant?
or does it oscilate a lot?
I wasn't able to find good tuning parameters
either it would settle at too low a speed, or it would oscillate
but if I increased Igain the speed would just drop to 0
too low a speed sounds like a scaling problem
that's normal (Igain)
remember the normal PID operation is on position, not velocity
not for a spindle ...
this is the sherline spindle controller with an add-on board to permit external control .. the controller has a PID inside it already
SWPadnos: no, I meant the PID control inside emc2
it takes a position prescription (or expects one at least)
I understand. what I meant is that PID tries to get the controlled value to match the setpoint value - it's just a float, so for a spindle, it would be velocity
I understood it more or less like SWPadnos -- as long as my command and feedback are both the same kind of thing, shouldn't it work?
it "should" :)
so is the trouble my tuning, or the additional PID inside the sherline spindle driver box, or inappropriate use of PID at all?
usually 2 pid's are trouble
but under no circumstances it should settle on zero position
yep, additionally, the timing of the system may make the PID not tunable
was the spindle speed consistent with the output from the PID controller ?
alex_joni: before trying to use PID, I was just using 'output duty cycle = requested_rpm * gain + offset' and it gave a consistent resulting RPM, but never exactly matched requested_rpm
probably because it's not linear
the last time I tuned it, it gave decent results for the range of 300..1200RPM or so
what's the encoder resolution?
setp encoder.0.position-scale 4096
1/4 that for counter, which I need to use in order to count the top speed
so 1024 with the counter instead
what speed range azre you trying to get?
(seems like counter could count both edges, but I'm not sure whether that matters to the subject at hand)
the spindle's top speed is something like 1400rpm
not fast by any means
ok. I thought about using both edges, but then noise is a bigger issue
ok, so just under 24k pulses/sec
and you're using PWM/PDM to send speed commands?
what's the BASE_PERIOD?
I can check .. but I was working with commanded speeds of 5..10 RPS so the base period is not the issue
brb, life is calling
slow speeds may be more if an issue than high speedss, since granularity pokes its head into the picture
I think I'll leave this for some other time
it would probably be more fruitful to make a component that does the nonlinear conversion from duty cycle to speed, anyway
if you can stick the files on unpy.net, maybe someone else can take a look and see if any suggestions pop into mind
jepler: lookup table?
jepler: seems a float version of the lookup2comp would be needed :)
alex_joni: something like that
hmm.. this sounds a LOT like axis comp
wonder if you can't set spindle as an A axis, and use the compensation
sort of - a table is pretty icky when an equation might suffice :)
remember: "never use the character '_' in lyx index entries"_
you can use ':' and '-' but not '_'
I try to not use any characters in lyx entries ;)
lyx index entries
well, I don't really do either lyx entries or lyx index entries all that well, so ... :)
why would you need more than 1-10 pulses per turn for controlling spindle speed with a PID loop? a revolution doesn't take that long and accuracy isn't all that important
+- a few % doesn't matter much at all
it depends on how fast the PID loop runs
oh, so you mean that you get issues if the loop is faster than the collected input data?
so it sees: move one increment, no movement, no movement, no movement, move one increment
is it possible to have different speeds for different PID loops?
since we con't have "real" velocity (it's done as current counts - old counts), granularity could be a problem at low speeds
03alex_joni 07HEAD * 10emc2/docs/src/Master_User.lyx: changed input to include, updated to 2.1
you can do that, but PID inside PID is generally regarded as bad
maybe some type of smoothing would be good
and you can't change the speed from within a running HAL
can you have <1 increments?
how do you mean?
03alex_joni 07HEAD * 10emc2/docs/src/gui/ (axis.lyx tkemc.lyx): lots more indexes
03alex_joni 07HEAD * 10emc2/docs/src/hal/ (drivers.lyx intro.lyx): lots more indexes
03alex_joni 07HEAD * 10emc2/docs/src/config/ (ini_config.lyx ini_homing.lyx stepper.lyx): lots more indexes
03alex_joni 07HEAD * 10emc2/docs/src/install/installing_emc2.lyx: lots more indexes
ok - time for breakfast and stuff. bbl
if you have this now: 1,0,0,0,1,0,0,0,1,0,0,0 (where 1/0 is increment/no increment), would the motion interpreter accept "0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25," as an increment?
so that there would be some module that takes the time between one increment and the next and spreads that increment out over the preceeding no-increment bits
if that makes any sense
Lerneaen_Hydra: what you mean is have a stepgen or the like, which synchronizes to the outside
but it's not how it currently works.. it could be done though
I don't think that's what I meant, as this was input I was talking about
still.. you lose all the advantages of PID
but it's twisted
as I understand it, the current way that the PID loop accepts velocity is delta-position (position relative to the previous pid_loop_period), and you get issues if delta-position is irregular because of aliasing artifacts, so if the PID loop is much faster than the input from the spindle (say because the spindle is slow or has few holes/turn) you can get uneven delta-position even if the...
...speed is constant. One was of smoothing this out would be by slowing the PID loop down considerably (as a spindle PID doesn't need to be all that responsive, a check every 10ms or so is probably enough). Another method of doing the same thing if all PID loops have to have the same period is by instead of having delta-position relative to the previous position, one could have it relative...
...to the position X ms ago, and then divide the new delta-position by X ms, to get an average of the speed, and thereby reducing/removing aliasing.
but something with that was bad?
what was the bit about stepgen about?
you can do the last part you talked about using a stepgen-like component
oh, I see
that's actually very close to stepgen now that I think about it
except it's inverse
that's why I chose stepgen ;)
I still don't see how I loose the advantages of PID though
(in this case, wouldn't PI be enough?)
what's the issue?
no idea ;)
trying not to think too hard :D
Lerneaen_Hydra: you can use the 'lowpass' component to smooth the granular output, but when you smooth the PID feedback value it decreases the usefulness of I or D (I forget which one) in the PID
probably the D bit
as it's more evened out (I however should be just as strong, as it's just spread out over a longer time, but will result in the same integral)
IMO a spindle doesn't really need a PID as much as PI
03jepler 07HEAD * 10emc2/src/hal/classicladder/arrays.c: do not directly include mbuff.h
03alex_joni 07HEAD * 10emc2/docs/src/gcode/main.lyx: lots more indexes
03alex_joni 07HEAD * 10emc2/docs/src/gui/mini.lyx: lots more indexes
SWPadnos_ is now known as SWPadnos
re: closed loop spindle speed control
need two things: speed feedback that doesn't suffer from severe granularity
and a PID loop that runs a little slower
actually, the second is just one approach to getting the first
it _is_ possible to run a PID loop in a different thread than all the other PID loops
my guess is that you don't want much, if any, D gain
because the granularity of the speed feedback means that the D term is very very noisy
SWPadnos_ is now known as SWPadnos
if you are using a ddt block to generate the speed feedback from position feedback, you should run it in the same slower thread as the PID loop
filling out a rebate form...
way nicer than working on docs :(
heh.. braniac is nice today
jmkasunich: re: PID spindle: that just about sums it up :)
what about a PI loop?
PI is nothing more than PID with Dgain set to zero
yeah, of course
how much processing power does the derivative bit take?
a subtract, a multiply, and an add
oh, so it's not worth making a PI loop then, rather than just using a PID with zero D
wouldn't you need a divide?
oh, the subtract maybe does that
I think I multiply by the recipoical
although I can't spell it ;-)
reciprocal of a is 1/a iirc
yeah, that one
* Lerneaen_Hydra is not completely used to the english terms
alex: do you feel extra 1337 today?
the shaft that ran the resover on the servos are .24" None of our flex couplers smush down that far... Going to have to add a bit of shim stock around the shaft.
what's a relsolver? ;)
:) what they use now days on high end systems ;)
no wonder I've never heard of them
if I have to ask ...
I have said before - I can't spell my self out of a paper bag
that's probably fine, I've never seen a paper bag that would release you for spelling well
SWPadnos: where are you headed?
err - Washington ;)
that isn't too far from where you are I guess
about 500 miles
or 1.5 hours by small jet
your personal lear? ;)
I just share it with United Express most days ;)
I have 2 but one is for parts ;)
yeah - like a Ferrari
I know the last one is spelled wrong - but the first two you could have snuck by
I think they actually have two pairs of 'r's
Oh well - time to get carbon on my hands. (walk over to the shop and play)
I usually do ;)
[19:12:07] <Lerneaen_Hydra> http://video.google.co.uk/videoplay?docid=-5157433404610777048&q=rainbow
something is rather wrong with that video
yep -they recorded that as a joke at some point - it was never shown on air
there used to be a lot of that sort fo thing floating about inside TV stations
the BBC had "christmas tapes" of funny clips and out-takes ... nto any more though
logger_emc, seen les_w?
I'm logging. Sorry, searching removed.
bah useless bot
robin_sz: it's a long time since last..
2 months perhaps
cause he hates you.
I've spent most day in the sofa..
moving around hurts
that's another word that's odd... sofa/couch, soda/pop/coke,
most I did today was to mill a slot in some iron..
and tram/square my vise..
seems like my spindle works well in iron too
I foresee a pump with variable geometry comming up :)
anybody here know matlab?
I knew a Matlock on TV.
Matlab stayed in the computer lab.
if so, is there a function that given an input a+bi returns b?
the equivalent of Im(Z)
not that I know of.
but I honestly never used matlab much.
I used maple V.
though my speed was a bit high.. so it got pretty hot without coolant..
ah, it's apparently called imag(z)
sudo rm -Rf /
* Lerneaen_Hydra loves cat /dev/urandom /dev/fb0
you love cats.
I see cats as useful to kill mice.
that's about it.
cats are soft
at least the ones I have are
if I had a farm, I'd keep cats to kill field mice.
dogs aren't too good at that.
Animals better earn their keep.
A-L-P-H-A is just being a scrooge
my cats seem to be about as soft as rabbits
which is rather nice as they often come and sit in one's lap
A-L-P-H-A: just for you http://kittenwar.com/c_images/2006/09/02/93845.2.jpg
I rather have another type of pussy sit on my lap. that cat is cute... I never said cats aren't cute. I just think they're not as affectionate as dogs.
they're affectionate _differently_ than dogs
not as needy
IMO dogs are too much like hyper 13 year olds on crack
depends on the dog
more on the owner then the dog I think
some are. some are way more passive.
depends on the breed, and that individual dogs personality.
understimulated dogs get ADD :p
or well 13 yo on crack ;)
we have both: http://home.att.net/~jmkasunich/Pics/steps.jpg
oh, btw jmk, how was your quick stop in borkland?
isn't that the cat you etched out in plexi?
the inside of an airport is an artificial environment, tells you nothing much about the city/country you are in
A-L-P-H-A: that was jepler that etched the cat
oh. :) ops.
those two pets look like they shed like mad.
oh, you weren't even outside of the airport?
though the cat's cutter than the dog.
the dog yes - the cat not so much
[20:59:01] <jmkasunich> http://home.att.net/~jmkasunich/Pics/bench3s.jpg
she liked to hand out with me while I did stuff in the basement
aww, I get the same thing here with my cat
guess the cat likes static bags?
likes to sit on whatever paper you
're writing on
yep... "thou shalt not read, thou shalt pay attention to me"
I'm narcissistic, I don't want to compete against a pet for my own attention.
unfortunately that cat died a few months ago... we have one cat left
he likes to sleep with people, during the day he's more independent
after petting the cat for a bit she usually goes and sits under a lamp close by and watches
I'm sorry to hear that.
but aren't cats supposed to be nocturnal?
depends on the cat and season I've found
cats are "whenever-nal"
they still sleep a lot all the time though
my little sister wants a shi-poo... where it's a shitzhu crossed with a poodle.
I don't like little dogs
she's a girl, in the city.
what do you get if you cross a bulldog with a chinese shitzhu?
A friend has a English sheep dog in her office... it nips at people's ankles if they don't walk fast enough to keep up with the 'herd'
kinda funny when I heard that... dog herds people.
rebooting to windows to play games
jmkasunich, my cat is very inquisitive
whenever a strange cat somes into the house, he tries to take it apart to see how it works
he tries to take the other cat apart?
like, kill it and perform an autopsy?
well, not quite
open it up and perform an autopsy, yes,
but not kill it?
he doesnt seem too bothered whether thay are dead or not
you must have a messy doorway
this is a 16lb cat .. not fat, pure killign machine
it catches and eats full grown rabbits and eats everything except the head and front paws and some some squidgy bit of intenstine it always leaves
fur, rear legs, all other bones just go ...
it leaves the headm but eats the ears ... now thats weird
and rabbit witout ears looks weird
do you actually _see_ it eat all that stuff?
seems like volume of cat's stomach << volume of 90% of full grown rabbit
gotta wonder if it isn't dragging parts away and saving them for later
looks like robins cat has an inside larger than the outside
alex_jon1 is now known as alex_joni
alex_joni got grossed out and had to leave ;-)
found out I had 2 irssi's running
* alex_joni wonders what ctrl-a-a does on screen
if I were to change my name to alex_joni, could alex take that name back because it's registered?
and he knows the pw?
try /ns GHOST nick pass
I can't ghost myself
tell me your pw ;)
sure you can't :)
well the nice encoder we got on ebay is bad.
then it's not nice
it has a 339 comparator in it. I get nothing on any of the inputs to the comparator
Ir led - and it seems to be working (thanks to the cam corder)
so either there is a peice of crap on the sensor - or the sensor module is bad or the lm339 is bad or or or something else