EMC: 03jepler 07TRUNK * 10emc2/tests/threads.1/ (checkresult test.hal): check that the 'tmax' of a thread is nonzero
EMC: 03jepler 07TRUNK * 10emc2/src/rtapi/sim_common.h: fix zero thread/function time/tmax on amd64/sim
EMC: 03jepler 07TRUNK * 10emc2/src/hal/utils/comp.g: tweak optimizer to get correct behavior for doubles
EMC: 03jepler 07TRUNK * 10emc2/src/Makefile.inc.in: tweak optimizer to get correct behavior for doubles
EMC: 03jepler 07TRUNK * 10emc2/src/ (configure configure.in config.h.in): on some systems, rdtscll is available from asm/msr.h in userspace. check for it, we'll use it soon
other than consistency (with HAL and previous versions of stepconf), can anyone think of a good reason not to have stepconf ask for velocities in IPM?
oh, maybe accel is a good one
EMC: 03jepler 07TRUNK * 10emc2/src/hal/hal_lib.c: fix cast for 64-bit systems
EMC: 03jepler 07TRUNK * 10emc2/src/rtapi/sim_common.h: asm/msr.h defines timestamp read function sometimes; use it if we can
EMC: 03jepler 07TRUNK * 10emc2/src/rtapi/sim_rtapi.c: fix 64-bit warning
(strangely, ubuntu broke <asm/msr.h> between dapper and hardy)
and people wonder why NIH programming happens
hm, I wonder if my changes to CL today are wrong for 64 bit
EMC: 03jepler 07TRUNK * 10emc2/docs/man/man3/rtapi_get_time.3rtapi: seems these functions are not in ulapi
EMC: 03jepler 07TRUNK * 10emc2/docs/man/man3/ (intro.3hal intro.3rtapi): overview of realtime considerations
hm, this looks like serious work, I wonder what he's doing
me? oh, nothing
"we'll use it soon"... <cue ominous music>
oh, that -- I was just fixing the "time/tmax always shows 0 on 64bit/sim" bug
which was actually just a typo, it turns out
I saw the ____patch
I bet that was very easy to miss
is "classicladder works on 64 bits" something I can test easily?
you could run demo_sim_cl or however it's spelled
but I bet you could see only very basically that it works
sounded like you were worried about something specific
the stuff I fixed was modbus
but maybe it's all busted, I have no idea
the demo_sim_cl ladder works
I think the modbus code I touched is definitely busted wrt byte orders
ah, that's nice at least. the things light up and it comes out of estop?
did you figure out what's wrong with rewoffl?
no, once I figured out to type "rewi" or "rewo" I forgot about it
I swear the dg unix mt that I know best took "mt rew" as a synonym for "mt rewind"; I dunno if it's because "mt rewoffl" didn't exist yet or what
surely rewoffl existed though
anyway, I still type it even though it hasn't worked on any unix mt I've ever use
er, any linux mt
I'm also used to rew being rewind
there are at least 5 "mt"s in ubuntu, I should try them all
/bin/mt-gnu /usr/bin/mt-dds /usr/sbin/mt-daapd /bin/mt-st /bin/mt-star
that's just amazing
I think I have mt-gnu now
and that system's offline anyway
you should just use the one that comes installed with the base system along with dump and restore - you can be sure it will work
anyway, from the ltrace I'm 95% sure it's trying to print the error message that 'mt rew' is ambiguous
* cradek calls troll on cradek
oh, thanks for that
cradek, the modbus byte order looks correct. it's supposed to be high byte then low byte
I really wish somebody would split out the modbus interface into its own component
if we can come up with a reasonable way to specify what's where on the bus(es), then I'm all for it
I have the older LGPL2 version of a modbus library, which works
* jepler spins the wheel of answers
I think the LGPL3 version would require that EMC2 be released as (L)GPL3, so I don't want to use it
SWPadnos: looks like the answer for "reasonable way to specify" turns out to be: XML
well, yeah - I was thinking something like what pyvcp uses
do we have an xml-like parsing library that can be used by multiple modules?
if you write it in python
there's the halvcp version too
or whatever the original vcp was called
that wasn't XML
it was some abomination that I made up as I went along
incidentally, classicladder's modbus interface is lgpl
jmkasunich, it was close to XML though :)
hm I could swear I had a python modbus master implementation half-written somewhere here..
you did, I remember
close only counts in horseshoes, hand-grenades, and nuclear warfare
well, I remember you talking about it - there's a python modbus library somewhere on the intarweb
no, this was a from-scratch implementation
hm I can't find it on any of the machines that seem like likely candidateds..
hmmm. maybe it was based on pyserial (however that's spelled)?
oh right - I think you might have stopped when you hit the CRC function
like they had some sample code but the spec didn't say what kind of CRC it was
yeah it was the day we had that discussion that I was working on it
I recall that I eventually found what the crc was
this one works: https://launchpad.net/libmodbus
the 1.2.x versions are LGPL2
the 2.x are LGPL3
then get 1.2.x
or take the one in classicladder, it's lgpl as well
oh right, the insane timeout specification that's contradicted right in the footnote.
what I have is based on 1.2.5, modified so the library (optionally) won't print any errors
I don't know if this library is compliant on that front
that's OK, the spec says nobody conforms to that part of the spec
but I do know that it communicates fine, and it notices when there's no communication
the spec doesn't conform to that part of the spec
SWPadnos: anyway, now that you've been told the answer is "XML", you should finish the implementation by friday.
where do we want the libmodbus code to go?
that was another problem I had
where to stick outside code that may be used by several modules
you mean because classicladder could use it too, or because you imagine some less-generic modbus driver is waiting to be written?
there is a less-generic driver already, and I don't want to un-write it :)
namely the GS2 VFD driver
you know, with 'alias' it's unimportant for the generic modbus master to have a complex scheme for naming pins
naming pins is the least problem involved
multiple ports (can be solved by running multiple instances)
multiple devices on a single power
multiple "endpoints" in a single device
strange packing of bits/bytes/words/dwords
modbus doesn't specify anything besides bits and 16-bit values, so everybody makes different shit up?
multiple address spaces in the spec (registers, coils, etc)
there are 32-bit values, which are usually pairs of contiguous words
oooh hooray, I just flipped back over into not caring about this
I feel so much better
I think I have pin aliases working
probably need some completion tweaks
and params will need to be done (copy paste, so might as well get the kinks out of pins first)
show pin needed _zero_ changes
the G540 is arriving tomorrow, so I'll probably play with that most of the day
if you show pin original_name, does it work?
gotta test a few edge cases, then I'll commit
I think some things will need to, like link / net
if they don't, the pin may as well be renamed instead of aliased
for most purposes, an alias is a rename (but with an undo button)
right - it's things like "subroutine" HAL files that would need the originals to be visible
you can do "net <signal> <some-old-name>"
also linksp <sig> <oldpin> (or <alias>)
and unlinkp <oldname> or <alias>
(just tested those cases)
ok, as long as those work I'm happy
show should only show one copy, which the plan we discussed would do
they use find_pin_by_name, and it recognizes matches to either name or oldname
heh - net parport.0.pin-1-in axis.*.jog-enable :)
only thing I haven't tested is unalias
snce the parser doesn't recognise that
right. I'll work on that
I think I like what I have - gonna review the diff, then commit
ok. I'll plug in the laptop :)
SWPadnos: what hardware do I need to use your gs2 driver?
other than, obviously, a gs2
a GS2 and a serial port
serial aka rs232?
cradek: you have a GS2 on the lathe, right?
yes, but you'll need a special cable I think
EMC: 03jmkasunich 07TRUNK * 10emc2/src/hal/utils/ (halcmd.c halcmd_commands.c): halcmd side of 'alias' command - for pins only (still need 'unalias')
the pinout is available, it's a DB9 to RJ12 cable I think
that should get you 'alias pin', 'show alias', 'show pin', and 'status mem'
I have fwd/reverse/analog speed
hmmm. routine fsck. it'll be a few minutes
cabling is not a problem
oh - this will read back the actual speed IIRC
maybe I should try it.
time to walk mr. dog.... I'll do params tomorrow
cradek, any ideas on where to put the (third party) libmodbus code?
just stick it in the hal/user_comps dir maybe, since that's all that can really use it
I'd like to get "at speed" and "fault" from it which I currently don't have
I'll have to see if it has an "at speed" output
I'm pretty sure it reads back actual speed
(in supplied Hz or something)
oh, that may make sense :)
I'm not sure I know how to do the dependencies for that though
(include lib/modbus.h, and make sure that lib/modbus.c gets compiled and linked with whatever needs it)
there should be examples though, I guess
if not, we'll get it to build tomorrow
but for now, I'm going to bed
still waiting for the laptop to boot ...
I hate that
always when you're waiting for it.
fsck is not very fast on a 200GB notebook drive
buildmaster: status all
dapper-x86-2.2-realtime-deb: idle, last build 102294 secs ago: build successful
dapper-x86-2.2-realtime-rip: idle, last build 103290 secs ago: build successful
dapper-x86-2.2-sim: idle, last build 103143 secs ago: build successful
dapper-x86-trunk-realtime-deb: idle, last build 3838 secs ago: build successful
dapper-x86-trunk-realtime-rip: idle, last build 1618 secs ago: build successful
dapper-x86-trunk-sim: idle, last build 1980 secs ago: build successful
hardy-x86-2.2-realtime-deb: idle, last build 102641 secs ago: build successful
hardy-x86-2.2-realtime-rip: idle, last build 102955 secs ago: build successful
hardy-x86-2.2-sim: idle, last build 102301 secs ago: build successful
hardy-x86-trunk-realtime-deb: idle, last build 1503 secs ago: build successful
hardy-x86-trunk-realtime-rip: idle, last build 3834 secs ago: build successful
hardy-x86-trunk-sim: idle, last build 2154 secs ago: build successful
buildmaster, shut up already
buildmaster: status hardy-x86-trunk-sim
hardy-x86-trunk-sim: idle, last build 2214 secs ago: build successful
Get help on what? (try 'help <foo>', or 'commands' for a command list)
if it's too chatty i can turn it down or turn it off
buildmaster: help commands
Usage: commands - List available commands
buildbot commands: commands, dance, destroy, excited, force, hello, help, last, list, source, status, stop, version, watch
right - figured that out finally :)
hmm, colons only I guess
not all of these work, i need to upgrade it to 0.7.9, but that didnt make it into hardy
SWPadnos: or \/msg it
buildmaster: What happen ?
Somebody set up us the bomb.
SWPadnos_ is now known as SWPadnos
EMC: 03swpadnos 07TRUNK * 10emc2/src/hal/utils/ (halcmd_commands.h halcmd.c halcmd_completion.c): Add halcmd support for alias and unalias pin and param
EMC: 03compile-farm 07Ubuntu 6.06 LTS (dapper) non-realtime (2.6.15-52-386) * 10emc2head/: build FAILED ; see http://linuxcnc.org/compile_farm/emc2head_slot8_log.txt
EMC: 03swpadnos 07TRUNK * 10emc2/src/hal/utils/halcmd_commands.c: Oops - forgot one file for completion. my bad
jmkasunich, alias/unalias should be complete now, except for the commented code to handle params in do_alias_cmd and do_unalias_cmd
jmkasunich, completion should work for both with no changes, since the param structs already have the oldname field
EMC: 03compile-farm 07Ubuntu 6.06 LTS (dapper) non-realtime (2.6.15-52-386) * 10emc2head/: build PASSED
is the compile-farm output on irc new? i dont think i noticed it before
no, it's been there for years
was it enabled?
it only says something when a build fails or the first time it passes after a failure
that explains it
okie doke, goodnight
cradek, you still awake?
cradek, I am looking for a python wrapper for the freetype version 2 libs... there is PyFT for version 1... I would like ttt functionality as a python module to insert into another python project... any ideas ?
EMC: 03swpadnos 07TRUNK * 10emc2/src/hal/user_comps/ (modbus.c modbus.h gs2_vfd.c Submakefile):
EMC: First check-in of GS2 VFD module
EMC: This communicates with an Automation Direct GS2 VFD, and provdes start, stop, speed,
EMC: and direction control. Some status, including actual speed, are read back as well.
EMC: Right now, the serial port is hard-coded as ttyS0, 38400/O/8/1 (default for the GS2)
EMC: modbus.c and modbus.h can be used in any userspace components.
EMC: 03swpadnos 07TRUNK * 10emc2/configs/sim/gs2.hal:
EMC: This HAL file can be added to most any config, and will make necessary HAL
EMC: signals and connections to let you use the basic features of a GS2 VFD
Yea. Thanks SWP.
Hi alex. Rest well.
SWPadnos: your checkin causes an odd failure on an old fedora core box, which is where I build the documentation
make: Entering directory `/home/jepler/emc2-docbuild/src'
In file included from /usr/include/glib-2.0/glib/galloca.h:30,
/usr/include/glib-2.0/glib/gtypes.h:385:2: error: #error unknown ENDIAN type
good morning jepler
argh, I should go to the office
SWPadnos: oh, you need to do autoconf stuff for gtk; the setup on this system differs from yours, and -I/usr/lib/glib-2.0/include doesn't work
SWPadnos: oops, and the debs dont build any more: http://emc2-buildbot.colorado.edu/buildbot-admin/builders/hardy-x86-trunk-realtime-deb/builds/116/steps/compile/logs/stdio
seb_kuzminsky: can't read that page without logging in
anyway, maybe corrected now...
cradek_ is now known as cradek
huh. odd problems from that I guess
[15:03:27] <seb_kuzminsky> http://emc2-buildbot.colorado.edu/buildbot/builders/hardy-x86-trunk-realtime-deb/builds/116/steps/compile/logs/stdio
i keep using the admin part of the site, not the public one
the above url should work for all
* seb_kuzminsky kicks CIA-38
seb_kuzminsky: thanks for fixing
jepler: thanks for dealing with paul
thanks everyone for fixing my commit droppings :)
has anyone else tried alias?
I got the impression it wasn't done yet
is that incorrect?
it is, except that param aliases aren't implemented in hal_lib yet
oh, but pin aliases are?
SWPadnos: i havent played with it yet but i will
so you can do neat things like alias pid.0.Pgain Pgain-X
SWPadnos: each pin always has a "real" name, and it has zero or one aliases?
I think I got the completion right - most pin and parame related things will match both the alias and the old name
each pin has one name, and possible an old name as well
so yes, that's right except that the alias replaces the original name in the pin struct (and it gets re-ordered)
the alias more or less replaces the old name - it's used preferentially in list/show/save output
oh. I don't know if save is done yet
what's the intended use cases?
renaming your long hm2 pin names ;)
SWPadnos: it doesn't work
halcmd: help alias
No help for unknown command 'alias'
the manual is also brokeb
I'm not sure why 'pin' is necessary; it could work like 'setp' under the assumption that pin and param names should be distinct (even if that's not enforced)
thanks SWPadnos ;-)
the type may not be necessary, but it would help if there happen to be a pin and parameter with the same name
for setp the clear choice is to set a parameter first, then a pin (since setp used to operate only on parameters)
for alias, the choice isn't clear
does unalias take the original name or the alias name?
either I think, but completion only lists the aliases (I think)
it was last night so I don't remember any more :)
It must take the original name
no, it accepts either
but completion only lists aliases
oooh, a test. thanks :)
SWPadnos: have you tried out the gs2 driver?
I tested it with a GS2 at the CNC workshop
that's how it was developed
cool, do I need to add anything to the manual about using it?
now I see some other reasons I didn't want to commit it: it's ugly looking and it has hard-coded serial port info (I see I was starting to add command line processing to it
there should be something, but I should get the getopt stuff working first, since the command line options will be a big part of the manual
ok, just let me know...
Those are some real cost effective drives
yep, they sure are for the smaller ones. I think the big ones get into serious money though
be real handy to have on a spindle I think
my mind went to wandering when I saw your commit :)
well, it worked at the workshop. I think it should still work now, but I don't have any hardware to test it with any more (it was Ray's)
which means I can't test getopt stuff. hmmm
well.. getopt should be fine with printf's to test
should, but I can't tell if the comms work correctly
[16:30:38] <SWPadnos> http://pastebin.ca/1267691
help text - OK by you guys?
oh, I should add the type options to unalias
looks ok to me
I'd say "Add or remove pin or parameter name aliases" instead of "pin and parameter"
* SWPadnos kicks CIA-42
* alex_joni rubs CIA-42's tummy
seb_kuzminsky: seems the launchpad import worked afterall
they didn't have -d:ext: implemented at the time
so it took a week
Just this once .. here's the log: http://www.linuxcnc.org/irc/irc.freenode.net:6667/emcdevel/2008-11-26.txt
* alex_joni shuts up
holy cow. the G540 is tiny
heh.. we want pics :)
it would fit across the opening for a full-height 5.25" drive, with about an inch to spare above it, and it's ~1" thick
got it free?
it even comes with DB9 connectors for all 4 motor connections
gonna make up a stepconf config for it
yeah, I'll say :)
too bad it's so far from here :)
I bought motors from Keling for about $50 each
I have big hands, but it's still impressive that it fits easily on my hand
that's breakout board, 4 axis drivers, and heatsink/case
* seb_kuzminsky does a little dance
* SWPadnos hides
* alex_joni looks away
<-still feeling some nausea from the cold
and the dancing
didn't look.. but it would probably bring back memories
(from todays breakfast)
and meds too :)
branching it now... :-)
then i'll "diff -x CVS" it against my cvs sandbox
SWPadnos: even the normal gecko drives are way smaller than you think they should be in person.
yeah, I have a few of them
this is even smaller ;)
it's odd that it doesn't show on their products page
hmmm. should I take it apart first or make a working config first
but if you go to G251 it shows up under related
config first ;)
nothing shows up on their page because of stupid flash
[19:48:13] <alex_joni> http://www.geckodrive.com/product.aspx?i=14469
it oddly sais G320 DC ...
funny that it shows as related to the G251 instead of the G250, which it actually uses
SWPadnos: do you have steppers?
heh, I had to buy a few so I could test this stuff :)
[20:04:56] <skunkworks> http://www.youtube.com/watch?v=xiO9lfdmghI&eurl=http://www.cnczone.com/forums/showthread.php?t=61578&page=22
huh, I never realized the 120Hz flicker of lights was so pronounced
I wonder if the lighting was incandescent or other
skunkworks: I'm not sure what's supposed to be exciting about a motor that can accelerate to 1800RPM and then stop, though
in both directions!
I just thought the video was neat - time lapse.
This guy has been fighting with this step/dir servo drive for months - problems with it counting the encoder consistantly
the guy who posted the video?
skunkworks: this is way more exciting: http://www.youtube.com/watch?v=ElVM0ncEqHs
buildmaster: /msg buildmaster status all
buildmaster: hi :)
hmm.. it's too silent now :D
alex_joni: have you branched trunk from lp?
it's being incredibly slow for me
i'm trying to branch it into a shared repo with a bunch of other (local) branches, but that should be fine
Get help on what? (try 'help <foo>', or 'commands' for a command list)
units fail: 180 rpm/s^2
buildbot commands: commands, dance, destroy, excited, force, hello, help, last, list, source, status, stop, version, watch
buildmaster: dance ?
well that's precious
wonder if seb does that better
cradek: yeah, noticed that too
maybe he meant jerk in an odd unit :D
buildmaster: hello again
buildmaster: What happen ??
seb_kuzminsky: I get Service Temporarily Unavailable from the buildbot server
i just restarted it, try again
hardy has buildbot 0.7.6, which is over a year old...
the irc and mailing list notifiers were notoriously buggy
i've requested a backport of 0.7.9, which is much better, we'll see what they say
[20:39:34] <seb_kuzminsky> https://bugs.launchpad.net/hardy-backports/+bug/302281
hm, branching the lp pull of our cvs into its own new repo is much faster
alex_joni: if it was 180 rpm/sec, it would take 10 seconds to get up to speed. assuming I'm seeing about 420/60 speedup since it says "Filmed at 420fps" (7x) that would mean 70 seconds. So there's much more fail here than just units.
hmm - developer email list sounds like a new nigerian scam ;)
that is off-topic for BOTH lists he sent it to
ah, got it now..
I wonder how the transmitter will send ground
bzr branch from lp was being slow because i was branching into a shared repo with a different repo backend format, and it was having to convert on the fly
branching into a repo of the same format as lp uses, or into a new repo where it clones the remote format by default, makes it nice & snappy
[20:51:19] <seb_kuzminsky> https://code.launchpad.net/~vcs-imports/emc/trunk
seb_kuzminsky: any issues?
* alex_joni runs to bed
good night all
skunkworks: huh, I know cradek uses usdigital encoders without trouble
s/cradek/a zillion people/
probably an electrical incompatibility of some kind
cradek: do you know if the usdigital encoder on your lathe specifies external pull-up resistors?
I had trouble with mine when I put it on the lathe spindle - a bit of lost motion every revolution. but then I took it back apart and tightened the set screw I forgot to tighten
jepler: no, I don't know, but the mesa is jumpered for TTL input so I think it has pull-mumbles.
seb_kuzminsky: what am I supposed to be able to do with https://code.launchpad.net/emc
I did get a read-only copy checked out
jepler: I have used them also without issues.
cool, the bzr import merges into changesets, like cvsps
is that bzr or launchpad that does it?
I think that bzr has a cvs import
git has one that uses cvsps to get changesets
I'm glad enough people are still using cvs that this stuff works
heh -- the time is still right to switch away from cvs
cradek: after you run the "bzr branch" command listed at the top of that page, you have two things on your hard disk
1. a working directory similar to a "cvs checkout"
2. a repository containing all the history, similar to a cvs repository
you can now do all the standard cvs type things, like log and diff and commit, all locally
you can "push" your branch back to lp, so others can see it, or you can give them a URI to your branch on your computer so they can access it without going through lp
you can branch locally, to make little bugfix branches or experimental feature branches or whatever
you can merge from other people's branches
(or your own)
hmmm, does that answer your question?
there was a cvs branch I'm interested in. is that in my repository? 'bzr heads' doesn't show anything like that
(I'm interested in the question of whether we can incrementally move developers to using more launchpad and less cvs...)