* cradek hides under the rug
actually I'm not sure it does
but I was kinda hoping you would tell me :)
I started working on the stuff jeff proposed for digital inputs
and one of the things is wait for input
I got the command down to the motion controller, but I'm not quite sure where it would fit in best
I think it needs to get on the tc queue
I don't understand what it should do
say you have the following g-code:
M66 P0 E1 L1 Q4
the M66 is wait-on-input
the program execution needs to be frozen, until the input selected by P0 (motion.digital-in-00) turns true
Q4 defines the timeout to wait, if it didn't happen in 4 seconds, execution of g-code should resume
does that make sense?
what are E,L?
E is type of action to wait for (rise, fall, active high, active low), and L selects between analog and digital inputs
maybe that one (analog/digital) should go away, as the rise/fall/high/low makes sense for digital mostly
action also has immediate return
0-immediate, 1-rise, 2-fall, etc
brb (I'll rad back)
there are a couple of loose ends for me:
1. how does motion tell task that it finished a movement/command
2. when the wait-for-input command is received from the interpreter it's not time yet to perform it, so I think it must go on the TP queue
I tried to document M66-M68 here: http://www.linuxcnc.org/docs/devel/html/gcode/main/index.html#sec:M66-to-M68:
alex_joni: that is going to be really cool.
I think you should just not queue past these, and handle them in task
past these is no issue
I solved that already
the problem is with the already queued commands motion has
task needs to wait for those to finish executing, before it begins to handle M66
ok I understand
I'd ask alex, he knows how task works better than anyone
isn't this what EMC_TASK_EXEC_WAITING_FOR_MOTION_AND_IO is for?
yes I think so
I think so too, but ain't quite sure :)
cradek: so you say task should keep checking the Io from motion (it's in emcmotStatus already) from time to time
hmm.. sounds like a good idea ;)
look at TRAJ_DELAY_TYPE, it does the EMC_TASK_EXEC_WAITING_FOR_MOTION_AND_IO
then when the delay is finished, it sets EMC_TASK_EXEC_DONE which lets it continue
seems ales does know some parts of this
too bad I didn't ask him :D
do you mean zles?
my evil twin
oh, the EMC_TRAJ_DELAY hint is a beautiful one
I just need to add EMC_TASK_EXEC_WAITING_FOR_DELAY for the postcond, and EMC_TASK_EXEC_DONE when it finished :)
nice, if I can find the time I'll finish it tonight
I think the default should be digital immediate
(you don't say what the default wait type is)
wait a sec, aren't M67/M68 redundant if the default is wait type 0?
I don't understand the purpose of WAIT_TYPE_IMMEDIATE, nor how any wait works with an analog value
jepler: it doesn't work with analog
and the WAIT_TYPE_IMMEDIATE can be removed from M66
M66 E1 seems to specify an analog value .. ?
how about M66 Px for digital input x, M66 Ex (or Qx) for analog input x
it exists because M66, M67 and M68 use the same CANON call
disallow P and E(Q) in the same block
jepler: you'll get an error message if analog and not immediate
sorry, we can tweak the gcode api later
hmm.. I only did it this way because it seemed reasonable to me at the time
(it should be as simple as possible)
cradek: I can surely change it at any time
I wanted to have M67 and M68 as simple as possible
(the most common used ones imo)
and have M66 as configurable as possible to use all other possibilities
yes but it could be just as easy with one mcode and optional (more complex) words
I think you are right :)
so.. just have M66
M66 Px is digital input, immediate return value to #5398
yes I think so
M66 Ex is analog input, immediate return value to #5399
why different #?
I know I had a reason.. but it eludes me right now
can't come up with one right now
and M66 Px Ly Qz (digital, wait type and timeout)
value into #5399, -1 if timeout
does that sound better?
an error if E word and L word together
an error if P and E
an error if (Q || L) && !P
maybe leave "rising" and "falling" out of the first revision
I think they will turn out to be unneeded
I know I suggested them in the first place :P
jepler: those are actually more interesting for analog
but then you need to specify a treshold
"to go to" for level trigger is imprecise language, it implies an edge/transition
rise for digital means go to high
but if the input was already high.. that wouldn't be true
yes I understand the intent, I'm being pedantic about the language, sorry
I'll help fix it later if it needs fixin'
that's what I was after
you can do all that fancy stuff with hal blocks (?)
alex_joni: can you get more than one input at once? like move to x y z, do something when a switch closes
do something else based on x y z
you can write :
G1 x#1 Y#2 Z#3
* alex_joni runs home
AXIS needs a tool table editor (NOT a text file editor)
I bet the nml stuff for that is completely bitrotted
it's not existing
but if you make a feature/bug report you can assign it to me
I just read back, and I have a comment on "wait for analog"
although I won't touch it before my vacation (starting on thursday)
SWPadnos: just a warning first :P
you're one of the programmers, so if it's usefull/nice you get to implement it :P
the M code or one of the other words can specify whether it's a "wait for above" or "wait for below" (essentially the same as edge detect)
just set up a bug and assign it to me :P
and you need to set trigger level
I'm going to have a lot of other stuff going on in the next few weeks, much of which I'll be able to commit
sure, but that can be another word like L2.75 ...
I'd use D which is float I think
I'm not sure how the scale should be set though
ok, you know that stuff waaaaaay better than I do :)
I just make it sound that way :D
no, it's true
(I know just about nothing, so if you know anything, you're waaaaaay ahead of me :D )
not sure what to do first..
on a separate note, my OpenMoko arrived today: http://www.openmoko.org/
it's very cool
oh, cool.. I read about it
is it shiny?
it's mostly matte, actually
and a little rubbery - good gripping
should I continue with what I started? or should I fix the g-code api first?
is it big?
I don't know. I think it's best to set down what needs to be done, before doing it
continue means working in task :/
but that's often not the way it works :)
I'll do the task stuff
* alex_joni feels lucky tonight
alex_joni: there was tool table editing stuff in task. It may be gone, or broken, now
cradek: can't promise I'll look before my vacation on thursday
I'll be gone for 2 weeks +
I sure plan to..
going to france for 2 weeks
pas de quoi
alex_joni: anywhere in particular in france?
la rochelle - first week
then near le mans the second week
I've never been in those parts of france
we want to spend some time at the seaside the first week (actually ocean)
I've been more in the north and east
and the second week t visit the castles on the loire valley
and probably paris too
I thought le mans is a nice spot
I also liked the place where we will be staying (http://www.bellefontaine72.com/)
yay, it works :D
wait on input :)
yes indeed that looks like a nice place
not quite cheap.. but we'll be 6 people, so it's ok
alex_joni: I'm jealous .. though I got my fair share of vacations this year
I had a couple too.. but this should be nice :)
I'll make sure I get lots of photos
here's a photo of the openmoko: http://www.cncgear.com/Files/openmoko.jpg
pardon my ugly hand
and the poor focus :)
once I stick a root filesystem on it, it'll even boot ;)
right now it kernel panics
you can easily load one with initfs
but I guess you know that
there's a remote update utility, I just need to get my Linux machine running so I can use it
initfs is the easiest way to get embedded going
it sticks the root filesystem right into the kernel
there's an image for it, but the manufacturer forgot to stick the root fs in flash, so I have to do it myself
no need to worry about reading the fs, drivers & such
then if it can load other stuff it mounts it on top
replacing the initfs
I'll be mostly getting this analog board design done in the near future, but after that I;ll play around with this :)
jepler: still around?
* alex_joni is happy
it seems to work as it should :)
SWPadnos: by the time you have your board done, you'll be able to read it from g-code :P
although I doubt you need this
hopefully it'll be in production by the end of the week
nope - I don't need G-code - only HAL and maybe some userspace stuff for serial and remote monitoring
that was my thinking too :)
serial comms and remote monitoring, that is
who in a sane state of mind would use g-code on a new, clean app :P
especially when the app is a 20000A power supply :)
what, a .02MA power supply? that doesn't sound like a very big number.
not when you put it that way :)
MA or mA ?
I think it's only 12 or 20 V though, so it's not that high total power
who rates PSUs in Mega-Amps?
jepler seems to :)
yes it is
at 20V it's 400kVA
that's why G-code is unnecessary ;)
not quite the smalles
yep - like I said, not too big
but still big enough
* alex_joni likes power supply cables for machines like that
had a ~400kVA spotwelder recently
I think they were talking about paralleling 3 or 4 0000-size wires for that
it uses 2x95 mm^2 / phase
some of their power supplies use a 6" x 2" copper bar for the output - with internal coolant conduits
or was that 3 x 95 mm^2 ?
this is a pulsed DC supply
wonder what size steppers jepler puts on that PSU
hmmm - that would be a very big stepper, wouldn't it?
I recon it would
alex_joni: see, that's the joke -- like people say that their computer is "3000mHz" or has "1024mb" of RAM
missed the first line from SWPadnos
this stepper I first hooked up is marked "5V 3.6Ohm 1.38A/phase", dunno the supposed torque
"fingertip pressure at the end of a 3-inch bar" makes it stall, though
strong finger pressure or light finger pressure?
halfway in between strong and light
medium then :)
and actually I'm not stalling it, I'm pushing it from one position to the next while it's trying to hold
ok, so that's even worse, since holding torque is the highest the motor can deliver
24V drive, 5V faceplate rating
this isn't a motor I'm planning to use, it's just the only not-5-wire stepper motor I could dig up on short notice
I mentioned that I have some servos with encoders, right?
yeah, you did
I'm going to start with the steppers, since they were included with the machine I ordered
they're very inexpensive, 500 CPR encoders with index, ~120W continuous
ah - ok
I need something to test pluto_step with anyway
(inexpensive like $10 each or thereabouts)
SWPadnos: what rom?
lemme check - I think they might say ;)
roughly is enough
26V 4.2A 4000RPM
they're Yaskawa "print motor"s - pancake style
* jepler overclocks his 24V power supply to 27V
when I powered one up, I noticed it had a little bit of cogging, so that's a definite downside
hmmm. that could have been the pin hole in the shaft though
I assume no reduction on it.. right?
I mean gearhead
nope - just a 6mm smooth shaft (plus hole)
would have been perfect geared down a bit.. but it's a nice one
how big is it?
actually about 17mm thick, and the flange is 120mmacross
reminds me of breakfast
alex_joni: for breakfast you eat something 17mm thick and 120mm across?
I prefer a nice bowl of cereal
an oversized pancake
(can be a stack of pancakes)
jepler: you forgot metallic, ~120W, 26V, 4.2A, 4000 RPM
well.. gotta catch some sleep
only 3.5 hours last night and it's 2:20 again :/
at some speeds you can just tap the bar on the motor and it will reverse