halcmd show pin
sorry, wrong keyboard! heh
gcam is 6 - 8 weeks away from a beta
03jepler 07HEAD * 10emc2/src/Makefile.modinc.in: not all of the correct RTFLAGS were being used to compile external modules. Lead to insmod errors like 'Unknown symbol __subsf3'
will keep you posted
03jmkasunich 07HEAD * 10emc2/src/rtapi/rtapi.h: wrong type - string module params are called 'charp' (char pointer), not string
hey fenn, long time no see
ya i had too many projects going
I know the feeling
someone's asking me about bending steel plates for a submarine, so i was wondering if rugludallur still hangs out here
I haven't seen him in a while, but I haven't been on continuously
anyone got suggestions for running a linear system for 9ft x 5ft?
I'm thinking of using what jymmm suggested the other day... using 8020.net extrusions.
get big linear components
they claim to have some stuff, that doesn't flex, and can be used with sliding pads.
they actually have a flex calculator, I think
i used it.
it's flex is minute.
you'd need to use some of their largest stuff to get good machining tolerances (0.001 or so)
like .009" at themiddle of 9ft.
sounds like a lot, unles syou're only through cutting
I wonder if I beef it up from underneither, would that be good enough?
like put box tubing + shims under it.
box tubing + shims = cheap.
you'd want to support it at several locations - that'll cut down the beam length in those calcs
you mostly worried about vertical loads?
use a membrane
what's a membrane?
in terms of machining/machines
piece of 1/8" thick aluminum sheet
make it 1 foot tall and 9 feet long
put an 8020 at the top and bottom, and its like the web if an I bean
much stiff (vertically)
you might even be able to use thinner
so I'd need to drill a few dozen holes, to bolt to the 8020 to that 'membrane'
holes in the sheet
why would I need two?
the 8020 already has slots
why would i need to 8020?
you might not need one on the bottom
top and bottom, to keep the flat sheet from buckling
couldn't I use like a box tube on the bottom, if I did need one?
could do something cheaper on the bottom
like angle or box
or get them to put a fold in the 1/8" sheet.
that'd stiffen it up super.
but that kind of messes up the extrusion if I wanted to use it as a as a linear slide... using their method of three pads, that clamp over top of the sides and top of the extrusion.
the slide covers the top and both sides?
let me find that.
there's a slot in the bottom, right?
no it doesn't - you can have screws inside the slot
screw in top slot, through center tube, into edge of flat sheet
though you'd need to use a thicker sheet
(the slot can take a 1/4 sheet)
that would get heavy/expensive
with the added advantage that it would work ;)
anybody have a URL handy with the 8020 profile?
www.8020.net I think
but which profile
[04:43:44] <SWPadnos> http://www.8020.net/T-Slot-4.asp
1010 or 2020, I'd bet
instead of this sheet?? should I just use an angle iron instead already?
the strength of the sheet comes from its width
structural steel isn't all that smooth
if the slides are 8020, the reinforcement should also be aluminum
(sheet, angle, box, whatever - just use alum)
otherwise when temperature changes it will warp
9' length of 3"x4" angel, isn't THAT expensive.. but epensive enough, if I get it in like 1/8" to 1/4".
is this the slide: http://www.8020.net/Images/Application-Thumb-106.jpg
I'm lookin at their 6833 and 6834 products... they're linear bearings (plastic slide mechanisms)
jmkasunich, pretty much the same product.
this guy actually http://8020linearmotion.com/images/6823%20Photo.jpg
note that those are basically delrin slides, *not* rolling bearings
[04:48:34] <A-L-P-H-A> http://8020linearmotion.com/images/6834%20Photo.jpg
they call them linear bearings, but you're right
[04:48:51] <A-L-P-H-A> http://8020linearmotion.com/images/6834%20Photo.jpg
<-- that's the model I'm looking at.
if your speeds permit, thats ok
I don't even know what the hell my speed limits will be.
the surface isn't smooth - it's a textured anodized aluminum
any particular reason you are using the double wide rail>
not a deep texture, but not smooth
I want to go like 200 ipm... with like say a ballscrew with 1TPI, or maybe a 2TPI.
jmkasunich, it was for deflection.
laying flat like that, its probably twice as strong side to side as vertically
alomst exactly, I'd say ;)
this is going to probably be a 3/4" x 0.5TPI ballscrew.
how heavy is the load?
my budget is something like $1500CDN for the frame of the machine... then get the motors, ballscrews etc.
[04:51:50] <jmkasunich> http://www.8020.net/Images/Application-106.jpg
if you orient the slides like that, one side of the rail is free
jmkasunich, 1" plexiglass, thin sheetmetal + aluminium sheets (engraving, slight milling), 3" Max MDF.
can fasten a vertical sheet to it for stiffener
I figured the system to be 100lbs.
the moving gantry part?
i want to put a router on there, as well as eventually a plasma cutter.
gonna need interchangable table tops then
I'll probably have like 1" thick MDF board, for anythign non-metal.
and slats for plasma.
if you orient your X rails like that photo I linked, you can install both stiffener sheets and aluminum angles on the inside faces of the rails
the angles (horizontal leg down) give you a ledge to fasten your table to
and stiffen it somewhat for side loads
the sheets stiffen it a lot for vertical loads
I'll need to see how fast these slides can go as well.
but I see your suggestion, and understand the reinforcement of the angle
want this machine to be mainly cabinets, and plexiglass signs.
dual screws for the X?
single probably in the middle...
above or under?
you think it'll skew?
near the same plane as the slides
keeping this low profile as well.
how you gonna keep the plasma crap off it
overhead cover plate. let me find, or draw a schematic.
and yes, it will skew
unless the slides are long
what level of accuracy are you aiming for?
in the Z, GOOD... in the x/y 1mm accuracy.
how heavy are the loads gonna be in x/y ?
shouldn't be that much... I'm going to be making signs, and milling MDF essentially.
the plasma was for shits and giggles.
I wonder if you can use rack and pinion, or even toothbelt for X and drive both sides
hmm... I completely forgot about rack and pinion.
R&P is a great idea.
run a cross shaft, pinion on each end, and skew is a thing of the past
mount the rack with teeth down to avoid dust
so, like train track rails... but instead of smooth, it's R&P on both sides.
like gear train rails
rack and pinion on both sides, but the gears are connected by one shaft
love it... nice simple idea.
that means the X motor is on the gantry, but thats not too much of a problem
might even be an advantage
put the drivers there too - minimal motor lead length
send power and step/dir to the gantry
might even be cheaper to do it R&P.
I'll price out R&P stuff...
do a 3:1 or 4:1 toothbelt reduction from motor to driveshaft (also solves the problem of needing shafts on both ends of the motor if you drive direct
X motor near one end, Y near the other, to balance the weight
6gt length is $50USD. would need like 18ft of it, or so, for the whole machine
lots cheaper than ballscress
I was thinking geat in the middle of the axel, and a box to house the motor near it.
$150 for lengths, 32pitch.
that works too, (but make sure that stuff doesn't interefere with Y travel
the two gears are only $10 each
the box would be under the table support.
what size racks?
oh, width is shit. 3/16, I didn't read that.
I think I would want at elast 1/2"
you looking at mcmaster?
part number 6295K124
16 pitch, 1/2" hi, 1/2" wide, 6 ft long, $61
the splice isn't to much of a problem - you use a short length of rack to align the two pieces
depending on your shop capabilities, you might want to consider the predrilled ones lower on the page
an extra $15 per rail - hard to drill em yourself for that
but only 4 foot lengths
yeah. I'd do the pre drilled.
think I could get away with mounting that stuff to say a an angle iron?
angle iron is really crufty stuff
the sides aren't parallel or anything
aluminum angle is a lot nicer and should work OK
I have it here in Canada, local, no shipping. for cheaper numbers than mcmaster.
hmm, 20 pitch racks are cheaper
duh, 20 degree pressure angle
still 16 pitch
how about cold rolled steel plate? [straight enough?]
hard to say
cause then I could just have the machine's down weight to keep itself down... and have the plate as straight guides.
you need to decide what your rails are gonna be
then figure out what to mount them to
even a plate 3/8" thick by 6" wide is pretty flexible the flat way if its 9 feet long
geometry is your frient
nono... it's be like crap... let me get drawboard up.
arrange it so that forces are trying to bend wide flat things the hard way
jmkasunich, did you get my pm?
oops, not paying attention
if thats what I think it is, my browser's not gonna like it
trying, but no result yet
yeah it should...
[05:31:24] <A-L-P-H-A> http://18.104.22.168/drawboard
doesn't look likeit, unless it's dial-up ;)
I'm getting nothing on either url
nope - connection refused
nothing on either urls. oddddd.
this is messed up.
I have the DMZ setup.
and it's drawn... but you guys can't connect.
no matter - I'm too tired to pay attention
[05:34:00] <A-L-P-H-4> http://22.214.171.124
doesn't give you "hello"?
gives me nada
I'm tired too, about to head for bed
okay. night guys
A-L-P-H-4 is now known as A-L-P-H-A
SWPadnos, jmkasunich, you guys still around?
I think I fixed it...
I get the hello now
[05:42:05] <A-L-P-H-A> http://126.96.36.199/drawboard
should autoload now
"click here to download plugin"
you don't have java?
I got the drawboard (I have java on Windows here)
do you get my picture?
mostly. what's the blue on top? (a gantry?)
yeah, the gantry
java crap doesn't want to work
want a screen shot instead? :)
am I still here?
I am... okau
windows decided to go into standby
[05:47:13] <SWPadnos> http://www.cncgear.com/images/ALPHA-drawing.jpg
SWPadnos, thanks! you're much quicker.
I don't even have photoshop/gimp installed.
I see bearings for side-to-side, but not vertical
the vert should be taken care of by the weight of the system.
you probably don't want to be scraping alongthat way
what holds _up_ the weight?
the pinions... and maybe another beating on the angle iron, from the top to support it from toppling
are you planning to use the R/P as a wheel to hold up the weight?
1) that like a car with only one axle, inherently unstable
2) rack and pinion wants a fixed center distance, not pressed together with weight
more wear, and bumpy up/down motion as you move
3) with gearteeth up, rack will fill with dust, pinion will pack it in
also, rolling bearings don't like dirt/dust either
the bearings for side-to-side load are less of a problem, because most but not all dust will fall clear
but the ones the support the weight will be riding over dirt
which will eventually make the axis rather lumpy and mess up your Z accuracy
one nice thing about slides vs bearings is that slides push dust out of the way
wheels or ball bearings roll over it and squish it into the track surface
dust covers, or something of the like.
maybe go for the 8020 slides still, mount to angle iron and plate?
I'd be tempted to try something like bronze on drill rod
or delrin on drill rod maybe
that takes math, and its too late at night
1/2" I know is too flexible.
ideally you would use open bearings so the rod can be support over its length
if its unsupported, even 1" is to flexible
but supported, 3/4 or maybe even 1/2 would work
support rails... argh. expensive, and don't have continuous lengths of that side.
how heavy is the carriage gonna be compared to the cutting forces?
hmm, mcmaster sells some of the 8020 slides
not cheap - one slide is $75
I'm thinking that the total force is not going to be more then 100N... and even then, that's shit load.
that's like 25N more than my weight.
I have absolutely no clue what I'd be expecting in weight.
it will be only soft materials.
start with X, Y, and Z motors
add Y screw, X pinion shaft, Y rails, the entire Z axis, and the router
I bet 100 lbs easy
like MDF, wood, and plexiglass... maybe some engraving in alu.
I figured 100lbs, but i gave it 75N = 75Kg.
that'd be about 150lbs.
Mcmaster says the higher strength (about $15 more) guide blocks are suitable for higher speed stuff like pick and place and parts transfer
so maybe speed is OK with those
8020 1.5" square rails, $66 for ten feet
that's not too expensive.
but the slides are. dang.
6" long slides to fit are $87, need 4
could use the 2.7" long ones, $70
4? per axis?
4 for X
how long is Y gonna be?
might use something different if its shorter
y = 5ft
I'm looking at the iglide J material... from igus
I'm going to bed ;-)
jmkasunich, thanks for the input.
something like thist. http://www.igus.com/show_dw.asp
[06:18:15] <A-L-P-H-A> http://www.igus.com/dwflash.asp
What is it : "HAL: Error : pin 'motion.spindle-incr-speed' not found"
then , good bye, talk you later
SWPadnos_ is now known as SWPadnos
I have a question about gpg
getting the key to install emc on a breezy badger
I browsed the web trying to find out to make it work behind a proxy
but with no success
Could anyone give me advice about this? Thanks
pier: get this file http://emergent.unpy.net/files/sandbox/key.txt
pier: then, in a terminal, change to the folder where you put key.txt and run: sudo apt-key add - < key.txt
then comment out the lines about gpg in emc2-install.sh and run it again
you're welcome. I hope it lets you complete the install now.
I'll have to do that tomorrow from school lab... irc isn't working too so in the morning I can't have access to the channel (and your help)
I am going to set a nice new cnc router to make my students to practice with G-code under linux
it sounds interesting
before accessing the bridgeport machine (not as cheap as the little new baby toy) :)
I remember being confused by g-code the first time I ever saw it
me too... I lernt how to use hidenhein language set on the Bridgeport milling machine we have at school
I get this message when configuring emc2:
checking for LyX version... 1.4.1
configure: WARNING: LyX version != 1.3.x, documentation will not be built
so with plenty of handy functions it is hard to make all the writing without them on another machine
acemi: yes, jmkasunich determined that there are problems if some people developing the docs use lyx 1.4 and others use 1.3.
I don't know the details, but it looks like that configure test is doing its job properly.
jepler: the only problem is that files opened with 1.4.x will be converted automatically
and they _cannot_ be opened by 1.3.x afterwards
in Debian Sarge, when I use lyx / lyx-qt /lyx-common 1.4.1, I get the above message and I can't build the documents; when using version 1.3.2-4, configure is stopped by "There were errors during the LaTeX run" after the command:/usr/bin/lyx-qt --export pdf2 ../docs/src/Master_HAL.lyx
is this the problem that goes away when you remove the line about 'hyperref'?
the first problem is solved after removing hyperref but i egt another error message later
looks like this will make lyx print the latex errors to the terminal (among a lot of other information): /usr/bin/lyx-qt -dbg 128 --export pdf2 ../docs/src/Master_User.lyx
one min, I must to instal 1.3.2 again
or just use --disable-build-documentation so you can get a working emc2 and use the online version of the docs...
to build emc is not a problem with me, i can built it after changing LYX version line in configure. I only want to inform you
I appreciate it, but so far I don't have enough information to fix anything
after changing this line to 1.4, there is no problem for me
ok, I'll try to give you more details
can you build emc2 wtih documentation in Ubuntu now?
yes it works just fine
ii lyx-qt 1.3.6-1ubuntu4 High Level Word Processor - Qt frontend
hmm, lyx in debian is 1.3.2
why is the lyx version of the build machine problem? if I can build it with version 1.4, configure has not to prevent to build.
because we expect that most people who will want to build the documentation also want to develop the documentation.
but if they develop the documentation with 1.4.x it apparently makes the files not loadable on 1.3.x
but to limit the configure file isn't the right way I think
I wish jmkasunich was around, I'd like to get his opinion.
can you read back to about an hour ago when acemi and I started talking about the documentation build?
hey the holiday was _yesterday_
I'm on vacation this week
that thing I don't do often enough
it's when you get in a car and drive 20 hours or so to get to a warehouse in an Illinois field, where you can pay with big machinery ;)
this isnt a real vacation - not a day job, but working on other stuff
not _at_ day job
I suppose building docs with Lyx 1.4 is ok
just don't ever save the lyx files with it
until we have more information, should we also make configure blacklist lyx 1.3.2 and older?
I wonder what it is about 1.3.2 that doesn't work
it might not be lyx itself, might be latex2pdf or one of the other utilities
but if I understand acemi right, the only package he's changing is lyx from 1.3.2 to 1.4.x
ok, thats good data
I installed lyx, latex2html (and depending packages) from sarge-backports. wtih this configuration there is no problem. when I change lyx, lyx-qt and lyx-common to 1.3.2, problem starts
I've revised the configure test, I guess I'll check it in so that acemi can test it
it's supposed to: refuse to build the docs on 1.3.x older than breezy, and warn if using 1.4 that it's not suitable for editing the documentation.
I don't have 1.4 on the farm, but I can check the config output for the other case
03jepler 07HEAD * 10emc2/src/ (configure configure.in):
acemi reports that debian sarge's lyx 1.3.2 does not build the documentation
correctly. require 1.3.6, which is the version on debian breezy.
he also reports that debian sarge's lyx 1.4 does build the documentation.
permit it, but warn that the documentation should not be edited with lyx 1.4.
so 1.3.6, 1.3.7, 1.4.1, and 2.77.33 should all be acceptable lyx versions now
ii lyx 1.3.7-0ubuntu4 High Level Word Processor
oh I didn't read the screen, sorry
is that dapper?
unless I screwed up the configure test it should be fine
checking for LyX version... 1.3.7
checking for latex2html... none
configure: WARNING: no latex2html, documentation will not be built
and their mirrors aren't responding again.
I remember back when ubuntu had fast servers all the time
so far, the uk servers always work when the us don't
perhaps the servers are as fast as ever, but popularity as increased the load
wow, I'm getting a LOT of output building docs
yeah, its noisy
03cradek 07HEAD * 10emc2/src/Makefile: make clean should clean docs too
I see you're busy already :)
* alex_joni hates going through backup files :(
unpacking a 1.5G tar.gz is not fun
* cradek bites his tongue
I wonder if assigning a float goes thru the FPU
cradek: what can I say.. I work with what I have :(
jmkasunich: I think the answer is 'maybe'
thats what I think too
jepler: I think it's 'sometimes'
bummer - that means the streamer HAL function needs to be tagged as using FP
depending on some factors
jmkasunich: you could use slightly-inappropriate casts instead
actually, I can see if the user is streaming float data, and if not skip that tag
I've already got more casts in this code than I like
I think moving a float doesn't use the FPU
its amazing what messy webs you can weave with pointers
a double or ext may
I'm gonna play it safe
you could always look at the generated assembly code
_if_ the user is streaming float data, I'll tag the function as FP
yeah, that works for microcontrollers
not for Linux
where the next compiler version, or the next brand of CPU, will be completely differnet
that shuold be safe, and won't incur any penalty, since the generator of the float data is very likely to be tagged as using float anyway
or optimization flags
what would really suck is if gcc decides to be clever and uses the FPU to copy non-float data
I think we looked at this way back when, when Paul was complaining that a float store isn't atomic
I don't think it does that
jmkasunich: we do have 386 in the kernel, and the code produced by gcc should run on any 386
even one without FPU
any modern compiler issues FPU instructions
it should use FP emulation if no FPU is present
there's no FP emulation for kernel space
there's not supposed to be FP for kernel space ;)
but I really can imagine anyone using EMC on a 386SX
in fact, they can't
no time thingie
a 386 DX has no FPU
the lack of RDTSC will stop them
I wonder what error code is appropriate for 'failed to export a hal pin'?
what causes that failure?
most likely causes of failure: already exists, out of shared memory
gotta look at hal_lib to see what others there might be
-EINVAL if already exists, -ENOMEM if out of memory ...
* jmkasunich puts the lid back on the pandora's box
-EEXIST for "already exists"
(hal_lib does not use E codes, it uses some I made up in my foolish younger days)
I opened that box briefly too, at fest
maybe I should actually fix it
I changed 1e6 return values only to find that 1e9 more of them remained, so I gave up
only 131 instances of "return HAL_<foo>" in hal_lib.c
here are the codes I used:
it seems to me I got about four layers deep before I gave up
#define HAL_UNSUP -1/* function not supported */
#define HAL_BADVAR -2/* duplicate or not-found variable name */
#define HAL_INVAL -3/* invalid argument */
#define HAL_NOMEM -4/* not enough memory */
#define HAL_LIMIT -5/* resource limit reached */
#define HAL_PERM -6/* permission denied */
#define HAL_BUSY -7/* resource is busy or locked */
#define HAL_NOTFND -8/* object not found */
#define HAL_FAIL -9/* operation failed */
INVAL = EINVAL
NOMEM = ENOMEM
PERM = EPERM?
I think there's a problem at the next level up though - almost everything returns -1 when there's a failure (such as module loading)
I think some work was done on that, but I don't remember the specifics
err - true
if I fix hal_lib, then it returns decent values, even if higher level code doesn't pass them up
and newer higher level code will pass them up
UNSUP = ENOTSUP
LIMIT = ?
BADVAR = EEXIST ?
that one needs to be split I think
LIMIT = ENOMEM ?
it can be duplicate or non-existent, depending on the context
for LIMIT, I'm thinking ENOSPC
its not a memory issue, more like "I allocated space for 20 of these, and you just asked for number 21"
sounds good enough
jmkasunich: if you come up with some small directions, I can help parse through the other modules & components
I decided to finish one thing at a time
the RT part of the streamer seems to be working
now gotta do the user part
once both work, I'll move on to return codes before I start the sampler
streamer reads lines like "3 4 12.3" from stdin and writes the results to HAL pins
sampler reads hal pins and writes lines to stdout
both at a specified sample rate (the thread rate that their RT function is in)
they use buffers between the RT function and the user program that does the file I/O
sampler sounds like a simplified version of halscope
no on-the-fly changin of "probe" locations
but unlimited memory depth
could also think of sampler and streamer as record and playback of signals
can you pipe that to a socket?
and move to another machine?
it's stdin in userspace, so whatever works there ...
wonder how well that would work ;)
depends on the network, I imagine ;)
there would be lag of course
so normally there is lag
SWPadnos: even sampler > /dev/ttyS0
but if the average bandwidth is enough, and there are no pauses long enough to allow the fifos to empty, you might achieve accurate, but delayed, transfer
heh - who needs a HAL serial driver? ;)
anyone who wants to close a loop ;-)
the concept seems like fun, which is why I'm writing them
* alex_joni heads home
see you Alex
this started in response to greg on the users list
he was online for a while yesterday, but didn't say anything
I figured I'm a lot more familiar with writing hal components than he is, so I could implement a generalized version
I should have poked him (maybe I wasn't around when he was)
soemone named gpetit joined IRC yesterday
it was during the discussion of the fish video
(may have scared him off ;) )
download instead of display?
thinks the log is a bin file, and won't let me open it, only save to disk
won't even let me say "open with <editor>"
if the guy didn't say anything, not much to see anyway
hmm... should the user part of streamer call hal_init?
it needs to call rtapi_init, because its gonna access rtapi shmem
it won't be exporting any hal pins or params (I don't think)
so technically it isn't a hal component, just a helper
but it might be nice to have it appear in "halcmd show comp"
and exit with 'halcmd unloadusr'
oh I was thinking that since both userspace and realtime components can be unloaded now, maybe there should just be 'halcmd unload'
that seems reasonable
is there not a way to get rid of a thread?
short of "realtime stop"
actually, that might be fixable
a thread is just a rtapi task
and rtapi has a task_delete()
it's really no trouble using "realtime stop" or "realtime restart"
and the stop has the additional advantage of recovering the leaked shared memory
but it has a disadvantage in that there will be no threads running, rather than just one deleted
another item for the "great refactor"
in my case I was just testing a component, and so I needed to 'make; realtime restart; halcmd -f blah.hal' each time
also, halscope will probably die, since the scope_rt module will stop for a while (even if it's automatically reloaded)
jepler: your testing requires a new thread every time?
jmkasunich: no, but 'blah.hal' tried to load threads every time
maybe I could have used '-kf'
jepler: makefile question
I'm trying to add a user space program in the src/hal/components dir
there is no submakefile there now, I need to add one, right?
yes .. when you add a Submakefile in a directory that is listed in the main Makefile's SUBDIRS, it will be automatically picked up
I'm looking at the halcmd stuff in src/hal/utils as a pattern
the "call TOOBJSDEPS" and TOOBJS things are confusing me
the OBJSDEPS one seems to include stuff for the gcc command line that halcmd needs
you can probably ignore those unless these files need special compile flags
ignore the extra flags, or ignore the lines completely?
ignore the lines completely
I know I need this:
HALSTREAMERSRCS := hal/components/streamer_usr.c
USERSRCS += $(HALSTREAZMERSRCS)
well, if I spelled it right anyway
it's these two lines you don't need:
$(call TOOBJSDEPS, hal/utils/halcmd.c): EXTRAFLAGS = -DEMC2_BIN_DIR="\"$(EMC2_BIN_DIR)\"" -DHAL_RTMOD_DIR="\"$(EMC2_RTLIB_DIR)\"" -DMODULE_EXT="\"$(MODULE_EXT)\""
$(call TOOBJS, hal/utils/halcmd.c): Makefile.inc
you do need lines like these:
../bin/halcmd: $(call TOOBJS, $(HALCMDSRCS)) ../lib/libemc.a ../lib/libnml.so ../lib/libemchal.so $(READLINE_LIBS)
$(ECHO) Linking $(notdir $@)
@$(CXX) $(LDFLAGS) -o $@ $^
TARGETS += ../bin/halcmd
except the list of libraries may be different
(no readline, for sure)
the lines you don't need have to do with making halcmd get recompiled if EMC2_BIN_DIR and friends change
libemchal.so - whats that? hal_lib by another name?
hm I wonder why libnml is linked into halcmd!
inifile stuff maybe?
shouldn't really be part of libnml, but there is _lots_ of stuff in libnml that has nothing to do with NML
oh yeah probably
oh, have there been any new commits to head WRT timeout since yesterday?
'use a default timeout value, seems that's the way other GUI's are handling it'
UTC 16:28 on Sep 05, 2006
I am still having some troubles about getting CVS to run here. I get unknown symbols when the modules are to be insmodded. Any hints?
Everything seems OK in dmesg, except that motmod has unknown symbols:KinematicsType, KinematicsInverse and KinematicsForward.
that's your problem, you have to load a kinematics module
[16:56:52] <cradek> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl/emcinfo.pl?UpdatingConfigurationsForDevelopmentVersions
see step 2
you may run into the other problems too if your configuration is old
what is SIGPIPE?
jmkasunich: the guy on the other side of your pipe died (you're writing to a pipe and nobody is reading it)
ok, so streamer won't have that problem
(I stole some of the signal handling from halcmd)
can sigpipe also happen if I'm reading a pipe and the writer dies?
or will I just read EOF
just eof I think
EPIPE / SIGPIPE apply when the "reading end" is closed. If you're the reader, you can't get SIGPIPE.
fwiw: man 7 signal
I looked at man 2 write
I looked at man kill, it has a crappy list of signals
I started there and followed a "see also"
design question about streamer (want opinions)
suppose streamer is reading thru a file, expecting two floats and a bit per line, and getting that
then it finds a bad line (maybe a letter in the middle of a number)
print error message and quit
print error message, drop the line, and read the next one
I'd say keep going, but have the error expressed in such a way that a person could hook it into the software estop chain if they need to abort
thats gonna be tough
since the reader that knows about the error is in user space
I do have an "empty" HAL pin that asserts if the fifo ever gets empty, so that case is covered
but a "transient" error in the data file...
it seems like aborting the streamer is safer if there's no other option for signalling the error
then the fifo runs empty, the empty pin turns on, and that does a safe shutdown
how about a stop hal pin, and an error output pin -hook them together if you want it to stop on error
sorry - stop HALPIN
you mean like "halcmd stop">
no - i'm communicating badly
I meant a bit input pin that stops the streamer
and a bit output pin that is asserted if there's an error
the error pin would belong to the user space component, the stop pin would belong to the rt part
duh, hal _does_ support userspace pins, I almost forgot
if those are tied together, then the component will stop on error (+/- one RT cycle)
instead of waiting for the fifo to flush out
yep - you may have invalid data, so it could make sense to stop there
except... I think I want to avoid hal pins on the user part
by its very nature, halstreamer (the user part) is transient
is there a particular reason for that?
you can't start it, connect its pin, etc, and then later start feeding it data
saure you can - connect it to a pipe or socket, and the data starts once the producer starts writing
I'm thinking the most common usage will be "halstreamer 0 <somestuff"
(0 is the channel number)
so can you devote a bit in the structure you send to realtime that means "malformed input line", which the realtime portion would put on a pin?
I'd expect it to be used with a program generating input more often, eventually
so the pin would appear, the data would start flowing, at eof, the pin would disappear, and some seconds later the buffer would empty
that doesn't seem so useful, since the pin needs to be connected to a signal to do any work
SWPadnos: exactly, which is why I'm reluctant to add the pin
err - what pin are you talking about? (I assumed it was the channel0 pin just mentioned)
I kinda like jepler's idea of a "valid" pin
I forget that I'm using terms you haven't read yet
yep - that can be streamed along with everything else
heh - no problem. it's fun trying to figure it out ;)
invocation of the RT part: loadrt streamer cfg=ff,u8u8b depth=400,100
that creates two "channels"
the first channel transfers 2 floats, their pins are called streamer.0.pin.0 and streamer.0.pin.1
the second channel transfers two u8s and a bit
pins streamer.1.pin.0 thru pin.2
each streamer also has pins streamer.0.empty (bit) and streamer.0.curr_depth (int)
depth is the current number of samples in the buffer
empty is obvious
do you get two functions (streamer.0.update and streamer.1.update)?
so you can be streaming some things at 100Hz and others at 10KHz if you want
there should probably be a parameter or pin that lets you skip N executions, to allow for varying rates
when you start the RT part, empty is true, curr_depth is 0, and all outputs are zero
maybe, or just put it in a slower thread
sure. it's probably something that can be added later anyway
anyway, once you do "halstreamer 0 (or 1) <foo", the empty pin goes low, curr_depth becomes non-zero, and the output pins start changing
once you get to the end of foo, and halstreamer exits, curr_depth starts dropping, eventually reaches zero, empty comes on, and the output pins hold their present value
ok - and they stay that way until you run halstreamer again and feed it more data
if there is an underrun for any reason, the same happens - empty goes true, the outputs hold, then when more data arrives, empty goes false and out comes data
the ability to start/stop the RT part with a pin, and the ability to divide by N, are both usefull additions
but I want to get the core working first
makes sense to me :)
so, the easy solution: if halstreamer sees a bad input line, it prints an errormessage and exits. OR,
can you throw in a "-k" option"?
1) I add another pin, and fifo entry, to tag each sample as valid or not
without it, exit on error
with -k, continue, but don't write the malformed line to the FIFO
I guess if I really knew what it would be used for this would be an easier decision
if you are using files, then abort on error makes sense, go fix the f-ing file
did you already rip out the command line option parsing? ;)
err - un-rip it :)
although -k wouldn't be _too_ hard to put back
one other thought on the keep going approach
if the file is truly fscked (for instance, someone pipes their favorite pron to it by accident) you'll get a storm of messages on stderr, instead of just bailing out
I'm not sure that's a problem
I suppose its a problem that ctrl-C can fix
you can also do something where it bails anyway if N lines in a row are malformed
I want to finish it this afternoon - I need to go pick up some metal before 5 ;-)
I think version 1.0 is gonna quit on error
I'll stop bugging you. maybe put some of the suggestions in a TODO-type comment in the source
back in a bit
03jepler 07HEAD * 10emc2/src/emc/usr_intf/axis/extensions/minigl.c: start support for opengl feedback buffer
it allows you to find the transformed vertexes for all primitives drawn
you mean the coordinates pre-transform?
?REDO FROM START
"Drawing does not occur; instead, information about the primitives that would have been rendered is sent back to the application. In feedback mode, information about transformed primitives is sent back to an array of floating-point values"
so I get a series of tokens that say a 3-vertex polygon was drawn with vertices A B C
A B C are the coordinates after the MODELVIEW and PROJECTION transformations are applied
it's just one step from these coordinates to the pixel locations that the primitives cover
what I want to do is a sort of "dirty rectangle" redraw in AXIS: the contents of the back buffer are saved. then at a redraw, the part that was under the coordinate read-out and the cone are restored, then any new part of the backplot is drawn, and the image is saved. Then, the cone and coordinate read-out are drawn
but to do that I need to find out the rectangle that encloses the tool cone/cylinder
if I can get it working it should really improve the framerate because the preview and backplot won't be redrawn every time
(it'll still be slow when zooming or rotating, of course)
did you ever hear of Packard Bell ?
yes I've heard of them
I assume they were related to the US phone company
I just bought a laptop named Packard Bell
but during the 90s they were makers of cheap PC-compatible hardware. Some called them "Packaged Hell"
I dunno how they've been since then
seems kinda nice, pretty cheap too
I still avoid them because of the reputation 10-15 years ago
they were the first crap to show up in some of the big retail stores
cradek: not much of a reputation around here..
but they gave 2 years warranty.. so I hope it's ok :)
sigh .. openGL based graphics cards are just so damn expensive
but it would be nice to have CAD that worked quickly
it depends how much performance you need. seems like you can get a previous-generation nvidia agp card for under 50USD, e.g., http://www.newegg.com/Product/Product.asp?Item=N82E16814145003
looks like i need a qudaro FX ... its pretty much ignores other nvidia cards and just does its own thing
ah. AGP or PCIe system?
well, currently AGP
oh well ;)
but Im buying a new machine soon
a prett ygood value, though still expsnsive, is the Quadro FX1500
I might just get a Dell precision workstation and just suffer the expense
it's in the same speed class as the top of the line previous generation (FX4500 ...), but is only $600
probably 600 GBP there though
check out Boxx tech for high speed, well configured CAD stations
(I haven't bought from them, but their stuff looks great, and pretty much all they do is rendering and CAD stations)
oops - brb
[20:04:18] <jepler> http://www.solidworks.com/pages/services/videocardtesting.html
lists many of the consumer-grade nvidia chipsets as "passed with limitations" -- the "limitation" apparently being the number of accelerated windows
this one is a "6200" chipset with 256 megs RAM: http://www.newegg.com/Product/Product.asp?Item=N82E16814130014
anyone looking for a mitutoyo digital (lcd display) 1-2" digital outside micrometer?
SWPadnos: got a link on the Boxx boxes?
[20:48:19] <SWPadnos> http://www.boxxtech.com
are they cheap or something?
I mean - no, not really
why are we looking at them?
they just know what they're doing when it comes to CAD or rendering performance
[20:49:53] <alex_joni> http://www.boxxtech.com/products/apexx4_Config_Intl.asp
32 GB DDR400 ECC ram
they don't even list prices for the 8-processor versions ;)
if you have to ask...
it's there in front of you :)
that's 8 cores - they have 8-chip versions as well
[20:51:08] <SWPadnos> http://www.boxxtech.com/products/apexx8_specs.asp
I think I don't want to spend that much
I'd love to, but I can't :)
just think that'll be obsolete in a few years :D
wish my nails wouldn't grow so fast.
probably 10 :)
depends on your definition of "obsolete" I guess ;)
worth less than 25% of what you paid for it
I need this... to umm... run simulations on taking over the world...
should have gotten this laptop: http://www.boxxtech.com/products/1400.asp
I so much wanted to win that from their booth at NAB
I want a laptop that you never notice becoming warm
this probably isn't it :-P
ugh 11.3 lbs. with Battery
I notice there's no hint of battery lifetime
dang! there really is a lot _more_ screen output when making docs
I thought it was a lot before
nobody seems to advertise battery lifetime anymore
jmkasunich: html added a lot more?
I guess thats what all that is coming from
streamer seems to work OK
jepler: I wish the 10-12" laptops were 30% cheaper than 15" ones
but they're actually way more expensive :(*
in area, they should be 50% cheaper ;)
I set up a 100 deep fifo, and it never seems to drop below 60% full even when compiling emc
doing a find / -name "*.c" to thrash the disk seems to have no effect
it stays 90% full
maybe the file I'm redirecting into it is in cache
jmkasunich: try turning swap off ;)
I'm too lazy
or boot with less memory
to make it swap even more
I'm gonna remove a couple printfs, and commit it
it probably could stand some more severe testing (differnt numbers of pins, of different types, etc)
what happens if you misuse it?
is that possible?
have the writer and the reader speak different data types
say reader expects char, writer sends float
when you loadrt the RT part you tell it the types, and it exports pins accordingly
the type info is stored in shmem, and the user space part looks there to see what to expect
if you define float, float, bit, u8, then the reader will expect lines containing that
and complain if diffenerent
that's one place where a real scanf is nice - you can build the parse string programmatically
(that comes from the part of me that runs microcontroller code, which often needs sformat strings to be constants to compile efficiently)
but passing pointers of the right type, and quantity, is messy
that is true
I did it with a loop that does a switch on type, and invokes strtol and friends
03jmkasunich 07HEAD * 10emc2/src/ (Makefile Makefile.inc.in): initial commit of 'streamer', a HAL component that takes data from stdin (user space) and streams it onto realtime HAL pins at a fixed sample rate
03jmkasunich 07HEAD * 10emc2/src/hal/components/ (streamer.c streamer.h streamer_usr.c): initial commit of 'streamer', a HAL component that takes data from stdin (user space) and streams it onto realtime HAL pins at a fixed sample rate
good night all
good evening all
Anyone up for an e-stop question?
sometime tonight (before 10PM CDT) there will be downtime on cvs.linuxcnc.org.
* danex is away: Away at the moment