cradek: I don't know if pluggable interpreters is the direction we want to go or not .. but the difficulty of making them pluggable *without the ability to share any implementation with the current interpreter* was not that great
what makes it a lot harder if you wanted to share some implementation?
(assuming that said pieces can be stuck into a shared library)
SWPadnos: my approach creates a base class for all interpreters, but it only has pure virtual functions and no data.
ah, ok. so it's more of a language-y thing than a runtime thing
SWPadnos: you *could* arrange to share implementation by a class with useful methods
but that is work -- work to decide what is useful, and work to separate it out from the specifics of the Interp class as it is now
cutter comp would be one example of something you'd like to share and which might be feasible
sure, I can imagine some of the parsing stuff could be separated, but then again maybe not, for instance if a language actually treats spaces as meaningful separators
on the other end :)
parsing a "line" of gcode might not be, if you want to parse a dialect with multiple words per line with the same letter (G??? X Y X Y X Y)
right, though tokenizing could be shared, as well as numerical interpretation and possibly variable names or something
err, variable expansion ...
all it needs is for somebody to figure out all the particulars
yeah. the "work" part :)
but if someone really wants a 100% "fan*c" or "h**s" interpreter, I think that this is the way to go
as opposed to trying to make rs274 parse rs274 AND something else
oh. for G-code dialects, definitely
right, like STEP or something
I remain firmly disinterested in writing an anything-compatible gcode interpreter (having once done it for about 12% of emc1's rs274ngc!)
I probably still have the antlr/whatever code for a nearly complete parser
written by - err - Pete V
reminder, the code I wrote for pluggable interpreters is at http://git.unpythonic.net/view?p=emc2-jepler.git;a=shortlog;h=refs/heads/plug-interp
urk, 8 hours to download ISE12.3 on my dsl
thanks. I'll see about getting that soon
and you've got real DSL
clone url git://git.unpythonic.net/emc2-jepler.git
oh I think most US broadband is faster than mine by now. I'm on 1.5, though last year I was on 3.0 for awhile. (1536/384kbps)
oh. I'm surprised my 2M/256k is "competitive" with anyone these days :)
1/256 here :(
still beats dialup though.
yeah by at least a factor of 2 or 3
I was really bummed when they told me that the 8/2 or 16/2 service wouldn't be available to me (though they do have it in my area)
cheap too, like $59 or something for the 8/2
they're supposed to have 12.0M/768 in lincoln, but my line would only test out for 3.0 and that was not reliable
I'm only 0.8 miles from the CO, so it should be possible
but since I'm with a local (formerly anyway) company which leases lines from FairPoint, and I would need a new line put in, and the pedestal is all the way across the street, it was too hard
(and I'm not kidding, it's directly across the street, less than 100 feet from my house)
did spartan-4 and spartan-5 get skipped in xilinx's naming system?
I don't think so
urp -- the new ise doesn't support spartan2 at all (even in ISE design suite)
I think I remember peter telling me this now
huh, even in the costly one?
yeah, even in the costly one
[02:21:42] <jepler> http://www.xilinx.com/images/tools/ids_prodtable.gif
that's awfully small :)
I guess I don't need to bother seeing whether 12.3 (with the "map -r" flag removed) can fit the nearly-full designs onto the xc2s200 parts!
I do need to figure out a commandline version check, though
at least they still let you download older versions
hmmm actually one of the designs that doesn't fit without "map -r" is for 7i43-200 which is a spartan3 part
eyah, the 5i20 is the only spartan2
well, other than some of the PC/104 cards maybe
yea, there's also the 4i65
is that the one with the ARM CPU on it as well?
or just an FPGA card
speaking of small files, those mesa datasheets!
ah - ARM board is 4C81
oh - you linked to the small gif file, not the pdf :)
[02:27:07] <jepler> http://www.xilinx.com/publications/matrix/Software_matrix.pdf
did you have version 11.x before?
SWPadnos: no, 9.2
positively ancient, I know
looking at the release notes, they don't list spartan2 in 12.1, but I think it did in 11.5
I have never had 11.x. I did find in some documentation that implied -r was removed from map in 11.x. (it referred to the GUI equivalent, the name of which I forget)
hmmm. no, I guess I'm confused
I was looking for the latest version that has spartan2, but might also have better routing than 9.2i
I think ise 11 dropped spartan2
[02:47:13] <jepler> http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/irn.pdf
yeah. my brain isn't working
I looked at the 11.5 release notes and didn't find spartan-2, so obviously I had to check some later release notes to see what had happened to it ...
I'm sure it helps that they write it "II"
yeah, that could be a "help"
well, I think I'll call it a night. see you later
It seems that (on master, at least) the classicladder default value load variables (per Integrator's Manual) numSymbols=Auto, numFloatIn=10, numFloatOut=10 if added to the classicladder load string, cause emc2 not to start (at least here). So: Bug report on classicladder loading? Mark those 3 as "coming soon" in the manual? Remove those 3 from the manual?
EMC: 03seb 07master * r44eee4d32536 10/src/libnml/posemath/_posemath.c: remove some dead code
EMC: 03seb 07master * rf7e85db8dfec 10/src/hal/user_comps/modbus.c: remove some dead code
EMC: 03seb 07master * r1db60d955aa6 10/src/emc/motion/stashf_wrap.h: remove some more dead code
i've made changes on axis.py
can i upload this?
I've added a new parameter for the .ini file
it sets the default path for the openFileDialog in axis
axis video: I'm trying to embed a camview as per wikipage, but the axisrc script gives me a traceback :-/ http://imagebin.ca/view/kGqZfi1.html
sebastian_: Doesn't this exist already as OPEN_FILE= ?
were you referring to me?
KimK: no OPEN_FILE sets the default .ngc file that is shown when starting emc
KimK the default path for openFileDialog is now "PROGRAM_PREFIX"
KimK: i don't think thats a good idea because it's also th path for user defined Codes and pyvcp
kimK: with openfileDialog, i mean, if you want to open a file
EMC: 03jthornton 07v2.4_branch * ree9d10d3b486 10/docs/src/gcode/main.lyx: update canned cycles description
ISE 12.3 can't fit the SVST4_6 config on the 7i43-200
jepler: Is it possible that that firmware you sent me might not have active pwmgens? I am trying to exclude possibilities as some part of the chain of software and hardware is not playing the game.
!later sebastian_ (sent via !later) OK, I think I see. So you think the user should be able to keep his ngc files somewhere besides ~/emc/nc_files? All right. But does your improvement make a separate path for the user-defined m-codes? I have a bunch of those, and I'd really like to get them out of nc_files.
andypugh: You wouldn't happen to be using a 7i43-200, would you?
KimK: No, this is a 5i23. It worked previously with a 7i43-400
andypugh: OK, nevermind then. Just before you entered, jepler said, "ISE 12.3 can't fit the SVST4_6 config on the 7i43-200". I mistakenly thought that might have to do with you. (I put 2 and 2 together and came up with 5?)
No, this is SVTP6_7I39.BIT
KimK: in master, there is already USER_M_PATH, SUBROUTINE_PATH to separate those things from nc_files
can you default a checkbox in the pyvcp to true?
cradek: Good morning, congrats on Wichita. Oh, nice, I didn't know about those. So, maybe I still don't understand, what then is sebastian_'s proposed AXIS improvement?
skunkworks: Hi Sam, how goes it?
I guess I could have the checkboxes labled 'disable pump' and 'disable amps'...
well - spindle at speed seems to work.. I might want to filter the signal.
KimK: I think the problem he wants to solve is already solved in other ways...? not sure.
skunkworks: I think if you use radiobuttons you can pick a default?
cradek: OK, but why didn't he see that while wandering through the Axis code?
cradek: I guess that's a silly question. Why does anything go wrong?
those options are not in AXIS, they're part of the interpreter
cradek: Oh, so they are available with any display? Nice.
* KimK makes a note of the magic undocumented incantations.
cradek: Should the magic phrases be documented?
That would leave the High Priests of IRC with no aura of mystery.
section 4.2.4 seems to document these features
On reflection, it is better for the docs to lag the features than the features to lag the docs. Otherwise folks get frustrated that the things in the docs don't work.
guest843: Ah, yes, I see, thanks. It's documented in the master manuals, but not in the 2.4.5 release manuals. Are the features in 2.4.5 or v2.4_branch?
andypugh: Yes, that was my observation earlier about CL's numSymbols, numFloatIn, and numFloatOut. Oh well, at least USER_M_PATH and SUBROUTINE_PATH got into the new manuals. So the manuals *are* improving, excellent!
JT Spends a lot of time on the manuals. If there is a problem it is perhaps that too much old and outmoded stuff is still out there.
I am supposed to be helping JT with the docs, but I have slacked off lately due to other things. It will be a good winter project, though.
yeah, unfortunately the docs are always behind the features - sometimes things get through
andypugh: I looked at the 5i23/SVTP6_7I39.PIN file again and I don't see any obvious mistakes (it's identical to the 5i20 one except for the clock speeds in the top block)
andypugh: I can build you another one without the changes I recently incorporated from peter, in case that's a cause of trouble
did you say somewhere what the specific problem is?
I can't see any PWM on the scope
I can with the TPEN6_6.BIT file
However, I could be on the wrong pins, the driver could be set up wrong, any number of things
I need to go through a few more iterations to be sure where the problem lies
let me build a firmware without the recent vhdl changes so that if you like you can test that as a possible cause
wait a bit
I see PWM now
I thought I had found the problem a while back (watchdog pining for affection)
But then saw no improvement, but perhaps I was not doing the experiment I thought I was doing
OK, sorry for the trouble.
It seems to be working now.
I just wish I was clear on what has changed.
There is quite a chain, all experimental...
I encountered some problem to build Hostmost2 firmware
I have ISE installed
firmware.txt with only this line : "i23 SVST8_4IM2"
and when I run "make" I have this :
./build.py i23 SVST8_4IM2_72 fw/5i23/SVST8_4IM2.BIT
# workdir /home/xavier/Bureau/hm2-dev/fw/5i23/SVST8_4IM2_work
# xst -ifn scr
# exited with 127
make: *** [fw/5i23/SVST8_4IM2.BIT] Erreur 127
Someone know what this error mean?
GHDL are installed to
Perhaps try shouting jepler so that his IRC client goes "bonk"
shouting? like that?
jepler: Are you connected?
It seems that his speakers are off ;-)
He did say he was going away for a while.
Perhaps he has noted that if you ignore people for long enough they tend to solve their own problems.
ok I will try to find myself again
I don't want to bother anybody
Thank you again andypugh
I don't think I have been any help
You try to help me to find someone who can respond to my questions
(is it English?)
ok I don't have "xst" executable... I think it is from ISE package
ok I found!!! setting32.sh were not set at the right base path...
"Bitstream generation is complete."
Ok now how work this gaz-factory...
thank you again andypugh!
If you can put the value you need in a register, you can read it out with the Hostmot RAW functions.
See "enable_raw" in the Hostmot2 manpages
ok I will be very usefull!
but I don't have mesa card for now!
In fact, for a single value you could do it all in hal, just setp hm2_5i20.0.raw.read_address to the right value, then use the *raw.read_value as a pin
interesting observation... If I home just the b axis - when I go to rotate it (command a g0b0) I get an error 'linear move in mdi would exceed joint 1's negative limit' so I then home Y axis and then I can do the move.
not that it is a big deal - once I get everthing situated - force home will be re-enabled.
is 0 outside Y's travel?
I don't think so.. my limits are 0 and 36 for y
I wonder if it starts up at -0 or 0- for some strange reason
if Y moves even one count negative after you start up, the error is expected (more or less)
that makes sense
it sags I am sure
yay - b axis servo is now hooked into the control box. (before it was run with a extension cord...)
hnm - so locking rotorys always needs a g0?
can't make any sense to cut with it unlocked, can it?
cradek, do you think genserkins should have some way of showing when matrix inversion doesn't work (as you did on Stuarts machine with rtapi_prints)?
I can add counters attached to HAL pins/params to do that if you think it's useful
I don't know...
that might be better than bombarding the syslog
right - it just It threw me off because you can;t do g0b0 then b180
yeah. maybe params so they're easier to reset
oh? that is kind of a thrower then
(can you setp an IO pin?)
I don't know
ok, yes you can
so I'll make them io so they can be metered and reset
SWPadnos: i've added signal object to hal with link command
i think i'll bug you tomorrow for review/suggestions :)
I'll be traveling tomorrow, so that won't help :)
did you mean that you have added the "linkp" or "net" commands to python?
command to link signal to pin
pin to signal
either way :)
and some signal related stuff
create new/find existing
i think some high-level interface for listing connected pins is needed too
in general, you would want to be able to list anything: threads, functions, components, pins, params, signals
and also add/remove functions to/from threads
and of course connect/disconnect pins
that's too much :)
for so huge amount of monkeycode it's better to use some type code generation...
python bindings are very verbose...
yeah. we have talked about adding /proc or similar kernel interfaces to get lists of things (cat /proc/hal/pins would give you a list of all the pins)
but it's too muck like work ;)
this won't work for ULAPI
and it's sad
right. it wouldn't be instead of the existing interface, it would have to be an addition
whe you'll be available again?
I'll be on IRC from time to time, but I'm heading to Berlin until next Saturday
hah, i'll send you printed hardcopy of my patch! :)
my wifes sister is going to germany on 1st of december
fax it to the Berlin Hilton :)
but i don't know where exactly, maybe not to berlin
Germany is fairly small
everything is relative :)
even a train station is big when you're looking for a specific person :)
SWPadnos: when you will be in Berlin?
arriving Monday, leaveing relatively early Saturday morning
cradek: Do you have another Axis adjustment for the pulse width of the E-Stop reset? (I'm guessing it's currently about 200ms?) My E-stop relay is a little bigger/slower, 200ms(?) might be a "tease", I haven't tried it yet. I could stretch it with a timer, but thought you might have a direct adjustment?
no, sadly I bet that's hardcoded somewhere deep in task
OK, thanks. I can stretch it if I have to, maybe it'll be OK as is.
KimK: on what pin is this?
KimK: There is an E-stop HAL module that might help?
micges: On iocontrol.0.user-request-enable
Oh, I guess it's not Axis then. Sorry.
isn't that output active as long as you're holding the UI button?
I've been flipping the red knob in the corner of Axis, lol
(or for some minimum time if you don't hold it down)
it's a strobe
No, you get one hit per push
The steady one is iocontrol.0.user-enable-out so they're pretty similar
andypugh: Thanks, I forgot about the estop component, I'll look at it
I confess I have never quite worked out what it is for.
you can set [EMCIO]CYCLE_TIME to some higher number, but that will increase the overall response time of iotask related things
KimK: this strobe signal is at least [EMCIO]CYCLE_TIME but not greather that 2x of that
SWPadnos: Slowing everything down doesn't sound too good, stretching sounds better (if needed, may not be).
but on heavly loaded system it could take longer, iotask is userspace
micges: OK, thanks, good to know.
.7 second delay seem to work with the lift/unlock
skunkworks: Hi Sam. Delay? There aren't up/down switches?
skunkworks: Or is this a "switch detect delay" which is sometimes also needed?
I think there's a switch - the problem is that one switch doesn't tell you both "is now fully down" and "is now fully up"
Ah, OK. So Sam is simulating the other side's switch. OK, no problem.
Probably it's a "down" switch, since there's a curvic coupling. OK.
yeah I think it was starting to move before it was fully up.
you can see it in the video.
As long as it detects mismatches (switch doesn't trip if curvic not seated), that's the main thing.
yes - nothing stopping skunkworks from doing g0 b2.5 some evening in a drunken fit
heh. use HAL to fix that (plus a large ferror setting)
Maybe Sam can put an overstuffed recliner chair on the table, like that guy on YouTube that strapped himself into a chair on the end of a robot arm.
with a mod/round comp, just make the command equal to the closest multiple of 5 degrees
you'd get jerky motion then
that's the wrong place to mess with it
that would be an interesting addition to the interp - axis resolution
or tp or whatever
it's true interp could validate the axis position for a locking axis
actually, you can do it in HAL, you just need a limit3 there as well, with the same settings from [AXIS_N]
Sounds more like a job for a hal component
(though that wouldn't work with FO and such)
no, cradek is right, the TP knows how it wants the axis to move, so fiddling with that in HAL is more complexity than should be needed
This almost comes back to my suggestion of offset pins into the pre-trajectory-planner level
so making the TP/interp aware of additional limitations in positioning makes more sense
Though, could you do that with an offsetkins?
andypugh, yeah, I wrote a component that does that, which can be chained with limit3 to do what you're saying
(for tool changing)
Torch height control, non-circular lathe turning, edm orbiting. There are almost three corner-cases where external offsets might be useful some of the time.
I think I wrote an even easier one actually, it's only like 5 lines of comp code (plus the pin defs)
but it prevents motion from knowing where the machine actually is, which is the issue with doing it outside the TP (in HAL)
That's why I want to do it between Interpreter and Motion
one issue I can think of for doing it inside the TP is that the TP attempts to satisfy both path and speed constraints, which is a problem when you want to add some sudden quick motions to the output
(that's by far not the only issue either)
Surely that is a feature? Your sudden quick motion will only be containably quick and sudden?
It is a pity, perhaps, that a long time ago nobody considered the possibility of chaining kinematics.
(Actually, I am hexapod built of 6 puma robots...)
I bet very nearly one user would find that useful.
(Sorry I seem to have gone off on what I could imagine being a rather irritating tangent)
remember, the design was done when CPU power was actually costly :)
the thing about EDM/THC is that you actually want very fast motions, which are not constrained by the normal limits
the mechanics are sometimes (maybe often) made so that there is a small motor that does the fine quick movements, while the axis motor does the "normal" motion
Wouldn't that be a UVW axis though, with different accel/vel limits?
it's not something that really has anything to do with the programmed motion
you don't program it as W motion, because by definition it's not a programmed thing, it's reactive to feedback
Well, in that case you wouldn't use my proposed idea.
no, I wouldn't ;)
If you have a THC-only actuator that would run in HAL through a limit3, nothing else makes much sense
incidentally, "chained" kinematics have another interesting application, which would be to e.g. use gantrykins and something non-trivial at the same time, like two motors per joint on a genserkins or hexapod-type machine
yes, that's true
gotta run. bbl
Non-trivial gantries were my main idea, I just threw in the puma-hexapod for laughs
You guys! :)
we are very happy with just making sure we type the degrees in right. :)
yes - there is an up switch - but it activates a little before the top of travel.
so - I think between the halui.mdi-command-mumble, in position, ladder and luck - I should be able to automate pallet changes. :)
How does Ladder compare to custom-comp for that sort of thing?
well - for the tool changer logic - I used ladder. for the transmission I used comp. I mainly used comp because I wasn't sure how I would even do it in ladder
I have not decided if I will do a comp for the pallet change. The physical load/unload is in ladder - but making sure all the ducks are in a row might be easie for me in comp
EMC: 03seb 07master * rf607d8bd70a7 10/src/rtapi/ (5 files): get rid of $Revision$