03alex_joni * 10emc2/configs/ (m5i20_io.hal m5i20_motion.hal): moved to configs/m5i20
03alex_joni * 10emc2/configs/ (motenc_io.hal motenc_motion.hal): moved to configs/motenc
03alex_joni * 10emc2/configs/motenc/ (motenc_io.hal motenc_motion.hal): moved to configs/motenc
03alex_joni * 10emc2/configs/m5i20/ (m5i20_io.hal m5i20_motion.hal): moved to configs/m5i20
are we well?
well alex and I are both breaking emc2 in our own ways
(except I haven't checked any of mine in!)
other than that, yes
cradek: I'm finished in a bit
does each breakage involve throwing away cruft?
alex_joni: I'm just poking fun
03jmkasunich * 10emc2/src/hal/drivers/hal_ppmc.c: ppmc driver: fixed incorrect PWM duty cycle calculations, fixed shutdown code, added initial values for parameters
robin_sz: mine's just a bugfix, so no
coo .. and .. there goes John too
and I'm about to add some cruft, I think
robin_sz: pretty busy people around ;)
a peculiar startup mode for JonEs PWM amps
busy? yes. pretty? ... im saying NOTHING!
yeah, that's probably a stretch for any of us
03alex_joni * 10emc2/configs/stepper/ (5 files): moved to configs/stepper
03alex_joni * 10emc2/configs/ (5 files): moved to configs/stepper
cradek: can you lend a hand on the wizard?
a GUI hand?
that's an understatement ;)
python might be a good language for that
not GUI.. the simple one
but it's such an uninteresting project
were you following the discussion on emc-devel
alex: I can do the simple one
cradek: make it interesting ;)
alex_joni: seriously, what do you want my help with?
can I remove emc.run ?
03alex_joni * 10emc2/scripts/emc.in: another typo, removed fancy autofind for HAL scripts
cradek: not much.. forgot that jmk will do it
find out if your new scripts work first!
cradek: something like this:
there are some [-f typos in the one I got a while ago
cradek: I've been using it for a while
check above message :)
alex_joni: ok, there's an update
use does "emc", or "emc foo", where directory configs/foo doesn't exist
the run script says "I dunno what to do" and invokes the wiz
or maybe configs/foo exists but doesn't hold a foo.ini
the wiz nicely (and GUIishly if possible) asks the user would you like to create a new configuraion?
what name do you want to use
what existing config from <list> do you want to use
and present him a list of templates to chose from ;)
where <list> is the dirs in configs
each dir in configs would have a description text file, you'd let him read that to help decide
I'm up-to-date with the commits
woot! .. /me buys himself a new luxury vehicle
[00:22:47] <robin_sz> http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&item=4595616478
when he decides, you mkdir a new directory in configs with his name, and copy files from the template he chose
^^^^ impressive huh?
server timeout, impressive indeed
well, what you expect, ebay runs on windows
can anyone check latest HEAD on emc2?
I can't right now
we're gonna be cruisin chicks in that baby this summer for sure ... oh yeah.
in the middle of ppmc stuff
alex_joni: just get a new checkout in a new directory
then don't blame me for breaking it :P
* jmk_hiding does a cvs up
it's not that.. I am positive it's uptodate
I might just be using something others are not used to :)
I did the cvs up to get all your changes
./configure and make clean done, make in progress
not really necessary.. but better like that
03alex_joni * 10emc2/src/ (configure.in configure): changed the message instructing the user to run scripts/emc not scripts/emc.run
ok alex, it compiled... what would you like me to test?
try running it
like you would expect to run it
heh, I don't actually run emc that often
"hey, it compiles ... ship it!"
ok, running emc with no args got me the sim version
try emc stepper
we have a sim version?
that will fail
cradek: sim as in HAL not connected to HW
simulated machine, still wants RT
should give you the default stepper
alex: yes, it failed... not elegantly, but that can be addressed later
.ko no such module?
lol.. sorry ;)
that is where the wizard should ask you what you really want to run
ok, the stepper/stepper_in.ini didn't work
scripts/emc: line 1: cd: stepper/: No such file or directory
Could not find ini file '/home/John/emcdev/emc2head/stepper_in.ini'
John@main:~/emcdev/emc2head$ sudo scripts/emc stepper/stepper_in.ini
scripts/emc: line 1: cd: stepper/: No such file or directory
Could not find ini file '/home/John/emcdev/emc2head/stepper_in.ini'
ahh.. treating it like conf dir
duh, my fault
no.. I said it like that
alex_joni: has been a busy little boy.
fscking up my maibox with a bazillion little commits.
most wouldn't have fitted a big commit
You've certainly got more energy than I have. On behalf of everyone, thank you for doing a thankless job.
cradek: broke it for good?
lerman: no need to thank me for
we all are doing this..
I started reading some rt code today. I'd like to know for myself how big a job a new TP would be.
depending on your skills
probably 1-2 months to get it right
Jacky^ is now known as Jacky^afk
OK. You are correct. A big had for all of us....*round of applause*
if I were doing that I'd do the API first: canon in, hal out, and write an exact-stop no-blending TP first
lerman: lots of stuff happen in canon first
so what gets to TP is somehow sane
Yes, cradek. Make it do something. Then make it do the right thing.
I haven't read canon, yet.
But I just sent a RANT on hal_lib to the list.
it's pretty good; I think just a few messages are passed to TP: velocity, arc, line,
Well, you can get a flavor of what canon must do by reading TP.
although not right now
I wonder what the bare minimum API is
lerman: you have some good points, and some that I'd take issue with
Hey -- a probe is on my list of things to (probably) build.
wanna talk about them now?
if that no-blending TP was in cvs history somewhere, everyone who wants to make a new TP could start with it.
jmk... Isn't that the way we expect it to be. Sure -- talk now.
the shmalloc up and down... that is to separate RT data (parameter values, pin pointers, signal values) from metadata
the metadata is never accessed from RT code, only from config and setup code
Yes. I know. But did it really gain anything? Do we have measurements to prove it? (Rhetorical question.)
putting 1 word of RT data in the middle of a 50-60 byte struct of metadata ensures that every RT access will be to a differnet cache line
some things I just KNOW are wrong from a RT perspective
I understand the argument. But how much does it really cost. Yes. I know it, too. And the sun does obviously move around the earth.
I don't give a flying fsck how fast or slow the code that accesses the metadata is, but I know that allowing the RT data to be grouped is better
maybe only 0.0001% better, but better none-the-less
and - in the long run, I want to move the metadata out of shmem completely
jmk_hiding But is it worth the effort for 0.0001% betterness ?
But if it is so slightly better, there are other costs that might cause the total to go the other way.
by having different allocators for metadata and RT data, I can do that
And the cost of the different allocators is pretty small.
later they will be completley different, one will allocate from shmem, one from normal kernel memory
before you guys figure out I broke emc2 completely, I'll go to bed :D
But the cost of the pointer in the metadata might be high. (and I do mean might)
? nothing in the metadata is accessed from RT code
pointers in meta data is good
no chance for user to muck RT
Then why is the metadata even in kernel space rather than user space?
it is in shared memory today
because user space isn't the only thing that accesses it
"there is no problem that cannot be solved by two levels of indirection" :)
hal_lib.c gets compiled twice, once into a kernel module and once for suer space
But didn't you say that the RT stuff doesn't access it.
RT != kernel
Yes, I had that impression.
there's difference between RT and kernel
Why put it in the kernel if it is not RT?
when you load a HAL module into kernel space, there is code in init_module that runs in kernel space to set up the HAL component
it calls things like export_pin, etc
lerman, HAL module is kernel at init and RT at run
that is in kernel space, but not realtime, just doing init stiff
then later, the RT code is executed as part of a RT HAL thread
This would be a lot easier if we had a RT operating system.
the RT code is optimised, the rest isn't
There was an attempt to optimise the RT code, but not the rest :-)
we do - we have two of them in fact, RTAI and RTLinux, but I don't see what you mean
The fact that the RT stuff must be in the kernel is a pita. Solaris has RT tasks that seem pretty fast (have low latency) and run in user space.
I thought the later 2.6 kernels had a low latnecy almost realtime thing?
RTAI is exploring that (LXRT) as are the xenomai stuff, but both have a way to go before they match kernel
speed is not the only issue
we have to access HW too
Solaris RT tasks have access to all the other user stuff -- mutex, shmem, IO, etc.
IO from user space is way to slow
lerman: thats fine if you are running solaris, we're not
But the HW part is the easy part.
Yeah, I know. Stop bringing me down to earth.
user space code can't do an outb without invoking a trap
to do it right you would have to have kernel mode drivers and take a performance hit to access them
I'm not suggesting a change in architecture. If I were, I'd just take most of the RT stuff and move it to a separate board connected by a high speed connection -- pci, ethernet, usb, parallel port (ugh)....
anyhow, going back to ken's "rant"
the shmalloc up/dn thing has to do with separating metadata from RT data
Please do -- petev and others new to the discussion should know that I was the one to first characterize it that way.
next is the malloc failure handling
Yup. And you've convinced me that it isn't so bad.
I know I'm on thin ice on that one. There are traceability arguments. But it sure does bugger up the look of the code.
well, things like freeing mutexes need to be handled, so you can;t just throw up your hands and _exit()
If I were doing this in user mode, I would output the error message, do a traceback and exit.
you'll end up with a system that won't clean without reboot
what is a traceback?
How many mutexs are there?
traceback-> stack trace to show the calling path. Not much use to users, but gives good info to debuggers (people, not programs).
and non-trivial at best to imlement in C
So, before you exited, you could see if the mutex was held and free it.
gotta know if you hold it, or if someone else does
also gotta free shared memory blocks
and remember that most of the functions in hal_lib can be called from the init_module code of a kernel module
Yes. Typically I add a line or two of asm (inside the C) to get copy the stack pointer to a variable. Then the rest is pure C. -- but not portable.
anything you print there goes to the kernel log
Yes. The kernel log.
How may shared memory blocks are there?
one for HAL
one for me
halscope uses another for its captured data
one for you :)
classicladder uses one for the ladder program
emcmot uses one for user/rt comms inside emc
and one for motion
Can't they be freed at the user level? After the crash?
a given shmem can be opened by multiple kernel modules and/or user processes, thats the whole point of it
each is supposed to close it on exit
when the last closes it, the system deletes it
ok, I know I missed the start of this, but what's the main problem? The HAL API is well documented and it works. Yeah, there are a few implementation issues to fix, but the overall architecture is good.
My general impression is that in most systems 20% of the code gets executed 80% of the time. More than half of it is never executed (it handles errors that are never supposed to occur.).
yeah, I can buy that
in a typical HAL module, well over 50% sets up the module so the rest can actually run to do something usefull
in emc1 its different
Sure. But when there is a crash because we ran out of memory somewhere, all bets are off, anyway. So, just kick out the modules (rmmod) and start over again.
if a module hasn't properly released the resources it uses, the kernel won't let you rmmod it
Most of the error handling code has never been tested. Do you want to tell the customer who is moving multiple tons of steel in real-time?
for good reason, that leads to oopses and panics
wtf are you talking about
hal does no memory allocation in RT, for exatly that reason
you either get your memory and set up the modules before the RT code starts, or you don't
ok, I know I missed the start of this, but what's the main problem? The HAL API is well documented and it works. Yeah, there are a few implementation issues to fix, but the overall architecture is good.
Ah.. That was not at all clear.
petev: no need to ask the same question twice -- whoops, yes there is. Did you see my post to the developers list?
have you looked at a typical HAL module?
no, didn't see it
I get batch emails
Yes. I read the module containing the pid code.
ok, you are clear which parts of that are RT and which ones are init and cleanup, right?
It wasn't clear that one would start all of the modules at the same time. And not add or remove some while you were running.
I admit that the code to export pins is extremely repetitive
you can add a module while running
but it has no effect on the running code
Well, I just had to read it, not write it.
that particular insmod would fail, the rest would keep running
So, that module might not get memory and the rest would be OK.
If you removed a module, though, you wouldn't get the parts of shared memory containing the pins you used back, I presume.
the metadata gets recycled
Is pins the right word. S/B signals?
the RT data does not (today)
pins and params and functs belong to modules
signals are kinda global
so if you remove a module, its pins go away
When I built a system like this, we required that all of the signals be defined up front. Of course, we were programming in assy on an 8080.
A module is like a chip it has pins. A signal is like a wire; it connects pins. Correct?
the entire point of HAL is to let a user/integrator build up a system from standard components, without predefining what he can and cannot do
Yes. But the user/integrator could build the system offline; defining what he wants to do. Then the whole shebang could be installed (I use the term install imprecisly).
for emc, thats exactly what happens, we run all the hal files, "installing" and interconencting modules, THEN we say "halcmd start" which starts the RT threads
and at shutdown, we say "halcmd stop" before we start removing modules
We did that process offline with a compiler that generated the tables, tasks (threads), metadata, etc.
however the system was build to allow you to safely add and remove modules while it runs
of couse you can't remove a module that a critical signal passes thru...
Is halscope one of the modules that is added and removed while running?
scope_rt is the kernel module that halscope uses
jmk: that does make it easier to debug and build a system (the ability to add and remove while running).
I use it as a breadboard
So, what IS this thing called refactoring?
I'm probably one of the few (or only) folks who do that, but I don't care
a lot of cleanup
addressing much of the repetitive code
moving the metadata
Well, the guy who writes the code DOES get to say what it does and how it works.
extending the API so that halcmd and halscope and others don't need to access the metadata directly
one big thing is to make insmoding a module and instantiating the component(s) in it two separate things
right now, you insmod pid.ko, and you have to tell it how many PIDs you want
You just answered the question I was about to ask.
I want you to be able to insmod it, then later say "gimme a PID loop", then later still "gimme another one"
That would be good.
lerman: look at the hal_refactor branch
some nice code in there
Any plans for a generic logic equation evaluator (yes, classic ladder does that, but not in terms of logic equations as far as I know) or for a generic numerical equation evaluator. I wrote both of those in a past life.
Around 35 years ago.
not at present, but if you want to contribute such code it would be welcome
kernel vs. user space sucks tho...
its hard to pass for example a string containing an expression to the kernel side
why not just bolt on a standard library, like say Lua
Why is that?
we would want to parse the expression and form an expression tree or something in user space, then generate fast code to evaluate it and pass that to the kernel module to run in RT
Drivers get passed data all the time. Could the /proc 'file system' be used.
/proc is one possibility, an ioctl for /dev/hal is another
both have pros and cons
We just took the infix notation and executed it on the fly.
how fast is that?
how much code does it take?
and how does it handle expressions that make no sense?
Hard to say. It was fast enough. Only a few hundred bytes. Well, it always gave a number. If it doesn't make sense, the value is useless.
I would be interested in that
Signals were represented by numbers representing an offset into the 'signal table'. Operators were represented by negative numbers. Constants were just signals with constant values -- so the user could change them.
it does basics, + - / * I assume, how much beyond that? ^ ? sqrt()? trig?
I hope we're talking about the same thing...
I don't recall if we had trig functions. And I believe we did sqrt by successive approx.
I'm thinking of a hal component that has say 4 input pins a,b,c,d, and out output, x
and when you instantiate it, you can say "x=a*3+b^2-c/d*4.2"
and then it does that calculation every time the RT thread runs
if there is an error in the expression (typo, etc), it would complain when you instantiate it
hence the separate parse and evaluate phases I was talking about
how about division by zero or stuff like that?
Except that we didn't allow constants. That is, constants had to be separate pins. But it would be easy to have constants. Yes. Every cycle the values were recomputed. And if one of the outputs was also an intput, you could do successive approximation.
thats another issue
Divide by zero could give NAN. or + or - INF.
heh, I'd do INF
I wonder what happens if you take the output X and connect it by HAL to input b
NAN is evil
alex: depends on how you coded the module
I didn't :P
It works just fine. All of the values are captured before any are calculated. (Well, that's what I did -- I think).
if it reads all inputs, does the math, then writes the output, then it would evaluate each time, using the previous times output as an input
We did a separate box for AND OR NOT XOR. It worked the same way.
bits in and out?
Also boxes for PID, lead/lag.
Jymmm is now known as Red70sShow
Red70sShow is now known as Jymmm
I don't recall if we used bits or bytes.
I have PID, integrators, differentiators, summers, muxes, comparators, limiters... no lead/lag yet
Jymmm: at least that's what I think you just said
Can you specify a rate for each box? Or are there a set of fixed execution rates.
you create threads, at whatever rates you want, then add each "box" to a thread
We had four different rates. Each box could have a specified rate.
Well, we only had 8 different task priorities, so we were fairly limited.
emc only uses 2 threads
most problems don't really need skads of threads at differnet speeds
But our context switch time was probably better than linux.
hard to say about context switch
latency, probably so
Yes. I should have said latency.
03alex_joni * 10emc2/scripts/emc.in: added sudo in some key places, no need to run the script as root anymore
modern general purpose CPUs are optimized for throughput, not latency
sometimes I think an 8051 could have better latency
but once the modern CPU gets started, damn it can get a lot done quick!
Yes. But for a specific application, a modern DSP can get even more done.
ok, back to the rant: the type specific pin_new functs, instead of the general one, was done specifically to enable typechecking of the pointer passed in
true, but how many folks have a modern DSP on their desks
I would love emc on something like this: http://www.acmesystems.it/?id=4
I understand. And a DSP is not for GP applications.
* alex_joni goes to bed.. nuff coding for today
alex_joni: no, No, NO. You want a dsp on a pci board.
lerman: I don't
gnight -- you've earned your sleep.
But linux has too long a latency.
I want a PC in 20in^3 and 20watts
I really don't want a dsp on a pci board ;)
that like probably is close
lerman: define "too long"
Well, no accounting for taste.
jmk_hiding: 2.6" x 2.83"
my point was, I want a little PC, not a DSP
Well, I see rtapi as a kludge.
But your little PC is NFG for RT.
try going back to emc1 and the ifdef's for rtlinux and rtai
No Fscking Good.
he knows what it means
but why do you say it
Well, it isn't just the PC. It's the PC running Linux. Although the RT stuff on 2.6 kernels is quoted at decent latency. We shouldn't have to put this stuff into the kernel to build a system.
lerman: anyways.. I have a good one ( a Geode Gx1-300MHz SBC)
and it's running emc2
one day it'll run off a CF card, right now HDD
lerman, I would love to do something like HAL that is strictly user space
Can you do 8000 servo cycles per second on it?
but linux, even 2.6, isn't quite ready
RTAIs LXRT could do it
I'm not familiar withLXRT.
user space RT
latencies some few microseconds worse than RT in kernel space
Is it free? And what are its limitations?
it is part of RTAI, which is free
Of course, then you get to address the IO issues head on.
limitation: well, latency is worse than kernel, and you can't just do outb when you want IO
well, you can, but it will cause a trap and a transition to ring 0 (or is it ring3) and all kinds of crap like that)
I might well explore those things for the future
And how many cycles will that cost you?
I mean the trap.
I think it is a context switch, but I could be mistaken
heh.. I like this: http://www.damnsmalllinux.org/wiki/index.php/IRC_Rules
we should adopt that
its pointless to discuss right now, we need to support RTLinux and RTAI as it exists on the BDI distros
we could rewrite everythign to use LXRT (not sure how nasty that would be) but doing both is about impossible
I thought we had (rules). Although Jymmm appears to be a bot. :-)
oh, you commented about allocating only one byte for a u8...
I'm about ready to head off to bed (it's 2100 hear in Connecticut).
But I'll hang for a while if you wan't to address that.
Yup. I figured. cache me if you can.
actually, I should probably address the whole thing point by point in a mail, that way the list sees both sides of the discussion
Thanks for addressing the questions so calmly. And not calling me an idiot.
anyway, the cache thing - modern CPUs are so fast that cycle counting optimizations like I used to do is pointless
(used to do: Z-80 days)
for any but heavily looped code, memory is the bottleneck
We should actually put stuff like this onto the wiki. Even if we just copy the two emails. That way it is permanent.
RT code tends to be not so heavily looped
the list has archives, but poor if any search ability
Off to bed. Thanks again.
And you need to know what to search for.
03jmkasunich * 10emc2/src/hal/drivers/hal_ppmc.c: ppmc driver: Added bootstrap mode to the PWM driver, this provide the special waveforms needed enable the FET drivers on the Pico System PWM Amps. Off by default, set parameter ppmc.x.pwm.xx.bootstrap TRUE to enable it.
jmk_hiding is now known as jmkasunich
jmkasunich: Hey LTNS =)
he's been hiding
SWP_Away: Oh, I didn't know that.
G83 rules! Forgot to set the F and was drilling this sign-makers wood for collet storage with a 7/8 ths Forstner...doing 6 mm pecks...did the holes without even swetting...
Pretty scary seeing the Z axis moving that quick, with a live tool and chips flying all over...got used to it though...
Reversing that quick, that is....
Almost like it was on springs....
03cradek * 10emc2/src/emc/ (5 files in 3 dirs):
Fix for bug 1374766: wrong offsets written to var file (units problem)
Note this was not only a problem with the var file, as explained in the
bug report's followups.
03jmkasunich * 10emc2/src/hal/hal.h: hal.h - added a comment that explains the somewhat screwy definitions of HAL_RD and HAL_WR (which differ for pins and parameters, and can be confusing)
cradek: really? whee!
yes! I think it's even right!
we need a bugfix in axis to go with it - it's probably broken for mm inis now
it needs to read the user units from the ini
(our canon module does)
let's talk about it tomorrow
I hacked in the inch values so it works for me
03cradek * 10emc2/scripts/emc.in: this broke any system where the path includes the string emc
jmkasunich is now known as jmk_sleep
03paul_c * 10emc2-auto/wiki/ (14 files in 8 dirs): "Auto update wiki from a cron job. Mon Dec 12 05:30:01 GMT 2005 "
damn storm :(
* Jacky^ going to buy www.emc.eu
found waht to do for the next 4 week
buy all domains .eu to re-sell later at double of the price :P
I already got the offer to buy eu domains at 4x the price
domains the seller didnt own..
the domains for the company..
if we wanted them we'd habe bought them.
time ago I was looking for a domain name with my name-surmane.it
a guy (giovanni colombo) write an email to me and sayd ive already registered you domain name if you wnat it you only pay 200% of original price
so, i decided do not accept that, and I registered my website as www.giovannicolombo.it ! fack you :P
damn dsl !
i was sayng
time ago I was looking for a domain name with my name-surmane.it
a guy (giovanni colombo) write an email to me and sayd he have already registered my domain name: if you wnat it you only pay 200% of original
so, i decided do not accept that, and I registered my website as www.giovannicolmbo.it ! fuck
my dsl hiccup :(
I have a good domain ;)
it's lovely ;)
an object can have joints, but the joints are made up of objects
heh. Fenn, you can have joints. And you can be smoking one. ;)
thrashing out a framework for emc3
i am back :)
is there some overview on how i can convert frmat X into gcode ?
i try to do my first pcb milling but the gcode output programm doesntnt produce anything usefull, so i need to convert from gerber or hpgl or something that works
if you're using eagle, there are .ulp files available for smarter g-code output
they aren't very smart overall though
fenn: i use it allready, but only for viewing
fenn: i use eagle, but... the gcode.ulp produces a empty .ngc. the outline thingy produces muhc to thick wires. and the gerber thing...well, dont know i and how i can convert it to ngc
hp2xx will convert hpgl to g-code
see if you can find lpg-pcb-gcode.ulp
fenn do yu use eagle ?
i have a nice g-code file here that was written from eagle though
cradek and I are eagle users
jepler: ic. ma i ask you non cnc related quetion about the autorouter ?
cncuser: I'll answer it if I can
our eagle-to-gcode program is here: http://unpy.net/cgi-bin/viewcvs.cgi/eagle/ulp/
grab rev 1.2 of gcode.ulp and 1.2 of singlesided.gpar
jepler: i paint a schema. arrange the board. klick on autoroute and got autorouted paths. but if i change something i cant autoroute again.
(the .gpar file has stuff like depths and feedrates)
cncuser: if you want it to route a particular wire again, "rip" up the trace so it turns back into the thin yellow line
ahhh, ok : thanks :))
cncuser: type the command "rip" or it's one of the icons
with green dots and grey dotted lines
ic cool :)
i allready thought its a limitation of he freeware version :)
no, the only limitation is board size
oh and layer count
did you get it to work?
jepler: like a charm :)
if you try out the gcode.ulp we'd like to hear whether it works for you
jepler: i want to build one of these, and allmost am ready copieng the layout from the given picture
[15:35:43] <cncuser> http://www.serasidis.gr/circuits/AVR_VGA/avr_vga.htm
cncuser: neat. I did a TV output video game on AVR a year or two ago
jepler: cool, pacman ? spaceinvaders ?
cncuser: never quite finished it, especially after I discovered that my timings were all wrong, and didn't work on a real TV (but did on the LCD TV I had been using)
cncuser: space invaders
this is from one early stage in the development: http://unpy.net/avr/avr-tv-invaders.jpg
later I made more alien-looking shapes
jepler: yes, generating video iss a hardjob. i dont ebven uderstand the sassambler routines used :)
I thought I understood them but apparently i got something wrong
well, I understand the assembler but getting the timing right is still tough
cradek: nice fixes
checking for RT dir...
is it normal for it to hang here?
find /usr ...
alex_joni: I would like to always have the interp array and var file in "internal" units (mm) but that will break tkemc which edits the var file directly
so I had to use user units, which unfortunately means adding a couple canon callbacks to get the user units
cradek: can't tkemc be fixed?
not by me
because that's an ungly thing to have it read the var file
it's hard to do what it does any other way
but yeah, I agree that behavior is completely broken
it should use MDI to set offsets and it should read them from the stat buffer.
but getting that right would be a pain.
let's talk this over with rayh
but I think that running tkemc remotely.. will result in bogus behaviour
if you use offsets
yes it definitely will
cradek: Has your change changed the meaning of some g-code programs? Something like 'G1 X#52xx' has a different meaning now, since the value stored there is different
jepler: possibly. As long as you were in your native units mode before, the program should do the same thing now
jepler: the case that's different is a machine with inch ini, switching to mm in gcode, then accessing #52xx
but that's been so broken that I doubt anyone did it
jmk said he thinks everyone religiously avoids their non-native units
jepler: I really think the current behavior is what everyone expects and wants, but you're right, there is possibly a program out there that it breaks.
I think 'G1 X#52xx' is probably of dubious utility
I would be a little surprised to see a program use that, and even more surprised to see one depend on the changing-units behavior
cradek: emc2 won't start on install2 now. mind sorting it out? cms_cfg.cc 624: cms_config: can't open 'emc.nml'. Error = 2 -- No such file or directory
did you use an old ini?
I ran 'sudo scripts/emc.run'
sudo scripts/emc sim
all the configs and stuff got moved
emc.run is defunct
jepler: try 'scripts/emc'
but I suspect you have an older config file
and it can't find the emc.nml file
* alex_joni goes home..
I'll be online in an hour or so
[16:01:48] <Jymmm> http://www.golmatic.de/GOLmatic_EN/maschinen_en/MD23_en/md23_en.htm
i downlaodet crap ;)
that looks like it has about 2" of "Y" travel
cradek: rightclick on the thumbnails and view them
jepler: the same i get an 0 Dec 12 17:04 untitled.ngc empty file
jepler: is there a way to make you ulp less steahlth ? so it can output debug information ?
hmm, i see you got line with Error in there. but they dont get viewed. its like everything is ok
maybe its the eagle version
what's it called, when you wipe down a drive, by writing zeros and ones, over every bit on a HD?
secure erase, but it's writing 1's and 0's about 50+ times over and over
sounds good... is it win32?
that's not a program, that's the name of the generic terms of what you speak.
well, I googled it, and there is a programmed named that hehe.
[16:50:37] <Jymmm> http://www.google.com/search?q=secure+erase+hdd&sa=Search+Google
well, personally look for DOD grade or better, and dos or nix based.
* Jacky^ loves GNU/Linux :P
[16:55:04] <A-L-P-H-A> http://www.sysinternals.com/FileAndDiskUtilities.html
that difference ! Linux user loves their OS, Windows user bears yous OS.. bauahahahaha
Jymmm: whats up ?
sometime my head is going to be crazy ..
Im in love with Debian LOL
hi A-L-P-H-A :)
the OS isn't that bad in winxp... other than it's not as secured...
the incredible thing, really, any day I use this os it surprind me
winxp usability is better... they did do that write. the security of the OS is the issue.
I think as better you want to mean stupid better
yes, it is
really not better usable
try wm as Ion3 after some week youll love it !
thats the power
the only reason i'm using the viruz is for a cad/cam !
there are no free altrenative sigh
I guess a competitive cad/cam project would take 2 entire developers community as emc :(
right today I sell an object on eaby for E. 15
ebay taked 6 euro for publishing
paypal takes 2
at the end will i give something to they ?? O_O
how it work ?
I dont want to try to transfer the few euro are in my paypal account to my credit card .. since id lost it during the ship :/
damn im in pats of choth with the adsl
Jymmm: I might just be curious but what kind of information is that secret that you need to wipe your stuff before incinerating it?
well, anyone want to help me make emc controll a step4 basic 450 cnc ? :) it has a parallelport controlled stepperdriverbox. when i use freqmod i can hear some ticking on the steppers
i tried the softwrae that came with the box (dos software) it is so crappy i dont want to use it
what is step4 basic 450 cnc ?
a small cnc
i search the web, one moment
anonimasu: say that again?
i got it cheap
Jymmm: what kind of stuff is that secret that you have to wipe your stuff off it?
[17:54:58] <cncuser> http://www.step-four.at/
is there some easy to tune points in the ini. or hal ?
cncuser: which drivers ?
[17:55:40] <cncuser> http://www.step-four.at/artikel.php?language=1&id_artikelgruppe=4&id_artikel=3
its called sf-c2
anonimasu: There are lots of things. DOD 'classified' level requirements are 50+ rewrites, but even at that it can still be recovered. Secret or Top Secret requires the storage emdium to be physically destroyed by shedder, heat, or both.
[17:56:20] <cncuser> http://www.step-four.at/files/anschlussbelegung.pdf
all german :(
Jymmm: yes, but why would you have that kind of requirement as a normal person?
anonimasu As far as data goes, could be drawings, plans, NDA, contracts, legal documents etc.
when i worked as a sysadmin. we used hammers and played golf with old harddisks.
I can see it from a admin point of view..
anonimasu Ha! admin's are lazy bastards
say that again and I'll punch you
they would be the ones trying to recover to be nosey
You've been having a bad share of admin
Jacky^: whats step dir ?
anonimasu I AM a SysAdmin you goober!
whats your drivers input ?
Jymmm: if you do that kind of stuff you are off the bad share ;)
anonimasu: I have also worked DOD contracts, so I'm familure with the processes.
anonimasu 'bad share' ?
cncuser: sorry .. i meant bad maybe
not voltage, inputs
Jacky^: i have n clue, im the one to sorry ;)
if you are trying to recover your users data.. ;)
they've removed, unless it's a court order about it.
Jacky^: inputs... like ?
cncuser: that what you need to know before all
SWP_Away is now known as SWPadnos
Jacky^: it has a rs232 connector and one dsub25
anonimasu Hell yes, good way to blackmail em =)
Jymmm: did I mention I run a tempest device in my office ^_^
especially if they're dumbasses
cncuser: yes, Iunderstood, bat wich signal you driver accept in input to drive motors ?
anonimasu: See, your worse than me
Jacky^: oh, did you look at the pdf, maybe its in there ?
need go for a drive to work..
cncuser: I'm looking at the assembly pdf, and I haven't found the pin assignments yet
I don't suppose you have an oscilloscope handy? ;)
SWPadnos_: doesn't everybody? ;)
SWPadnos: haha, no, but i have a bt878 tv card with an ad that can do around 0.5 mhz and a view atmel controllers laying around...would that help ? :)
* Jymmm holds up a sign.... "Will test for oscilloscope"
(sorry - had to get more coffee)
i have an oscilloscope
but i dont dare to connect it :)
its a siemens oscillar I
well - if you can run the control software without the machine attached, then you can do some testing
just some LEDs would do it
looks like about 50 years old. has lots of tubes in it and a round cannon like looking visuallisation tue
hmmm -my scope only has one tube
i think if i connect it it will explode or something. bought it 5 years ago as trash :)
my next scope will have 0 tubes ;)
SWPadnos_: yes, like the mine
i dont have much clue on electrics but i thing those tubes are high voltage stuff
at the least we can take it and put in a trash
without touching nothing inside !
the tube mine has is the CRT, or if you adjust it wrong, an X-Ray gun ;)
* Jymmm christmas list ---> http://www.home.agilent.com/USeng/nav/-12093.536881892/pd.html
thats is a spectrum analyzer
heh - I'd settle for the 1GHz MSO - the MSO6104
but I'll probably end up with the 6054 instead
Jacky^ is now known as Jacky^dinner
SWPadnos you get a soundcard scope or nothing!
thanks - no soup for you!
damn soup nazi!
come back. one year!
actually, I hate the show, just happened to be flipping channels that day
I think I'll just keep my Agilent 54622D, thanks
should remove some bugs ;)
don't click the little X, ok ;)
well, i have the pdf open now
SWPadnos: actually it was restart jwm ;) my latest puppysit is kind a bugy...
it pretty much just says "connect this to the parallel port on the computer"
oh i c
the mapping parport pin -> axis is missing.. you mean that ?
you can find it pretty easily by making an LED probe
ok, ill do that
do i need resisitors for the led ?
ok, ills see, ii need to go to an electronicsstore then
I'd suggest using two LEDs - connect one from +5 to gnd, so you can see the brightness of a full on LED, then use the other one to probe the data pins
the step output should be dimmer than the full on, and the direction lines woll go from full off to full on when you do moves
[18:21:42] <cncuser> http://www.step-four.at/files/technische_daten_interface_fa.pdf
ok - that could be easier ;)
wait a sec - that's only two axis
no, its X Y Z
richtung = direction
ah - OK. are there two X motors?
yep -Takt = speed
not with my machine. i got 3 axis and a switch
Referenzschalter = limit switch?
hmm no, its not placed on a limit. its i think for manually placing the machine on and make test driving and then go back to the postion to see if all is ok
hm - ok.
i dont need that :)
well - you should be able to test (or look in the box) which switch inputs go to what pins on the parallel port
any of you ever heard of sfw files ?
nope -I've heard of swf though
well, the sofware i got with the bos has some special binary format
so i can take the pin mapping, and configure a hal for it ?
whats next to do ?
yep - one sec (I'm looking up sfw)
ah - Seattle Film Works image ;)
no, its some thing they made up i think
ok - you'll want to use emc2, with the core_stepper .hal file
one sec - I'm just checking a couple of things to find the easiest way
ok - the default ini has the step and direction pins swapped
you'll need to edit the standard_pinout.hal file (or create a new one)
there are several lines that look like this:
linksp Xstep parport.0.pin-03-out
linksp Xdir parport.0.pin-02-out
which you'll need to change to something like this:
linksp Xstep parport.0.pin-02-out
linksp Xdir parport.0.pin-03-out
yep - note that the parport pins are the pin number on the parallel port, so it's especially easy ;)
if you need to change the polarity of a signal, there are parameters that control that
my z is 8 and 9
called (I think) parport.0.pin-02-out-invert or something like that
yes, it looks that way
hmm, where do i get a standard emc.ini
i messed mine up
from an emc2 checkout
i have no cvs
Jacky^dinner is now known as Jacky^
whia linux distro are you using?
SWPadnos: a stripped down puppy linux
SWPadnos: no, really i know how to make that work. i just dont want to. i just want to download a file ;)
well install cvs..
ok - is there a package management system (or can you get the original ini off the CD?)
you can get the ini file off the cvs web interface at sourceforge
hasn alex joni built daily tarballs ?
oho , president bush sayd we lost 2140 americans soldiers in irak
are we sur he calculate uk and IT soldiers too
it seem to me we lost few dozen too there
to many dead people
seems a good result
a solder is there to kill or die.. i dont count that
cncuser: found the pinout ?
i fight with my emc.ini now :)
ok, gotta go meet a friend, cu alter
thanks for all :)
and standard_pinout.hal ;)
haaa it works :)
of course :P
not "of course" - it can be configured wrong ;)
cncuser: now work on fine tuning
backlash, vel, etc :D
how are the things ?
thats ok after a day of work ;)
id like to playng a bit around Ruby, but ive not much wish :/
I think will post-pone all to the new year
moon is actally turning in wrong direction
is better to wait :)
anyone tried Ruby here ?
* chinamill is back
how it seem to you ?
I did part of a ruby tutorial once. I didn't see any feature that made me think it was a better language to know than Python, which is my favorite "interpreted" language.
yeah, I know Python is great, a lot of libs
i was thinking Ruby has some advantage
like to auto-insert what i could forget
talking about interpeted language
why a compiler show a warning to me ?
if it found a warning or sintax error, why cannot correct it for me
that waht i like in Ruby
ruby never produces a warning or syntax error?
it is powerful and intelligent language
maybe more of Python ..
but is young
maybe someday I'll decide to learn it
of, course we are examining the case of a guy who want to start with a newbie and powerful language
figured out the problems with the runscript?
jepler: you no need it :)
alex_joni: I hear you did a lot of work on emc1 HEAD. Thanks!
now it's up to chris to realease it :)
we want a final sourcecode release for emc1
jepler: it could be nice, I think, because a lot of peoples could be offer their contribute on developing, instead
and maybe binaries for the common BDI's
alex_joni: chinamill just reported that the A axis bugfix did fix it
cradek: great news
he also said the other day that his moves are ok now
it was a misconfiguration of the stepgen, (overshoot & co.)
I think that was the last big bug I know about
I hope that's true
cradek: are you going to backport the rs274ngc offset bugfix to emc1?
because it's an API change?
as you pointed out, it's (very remotely) possible that it changes the behavior of a program out there
I shouldn't ought to have
do you think it belongs in emc1? I guess it IS a bugfix
* cradek struggles to care about emc1 now that he's switched to 2
but I'm stuck back on emc1!
you're on the board, can't you order someone to make emc2 work on a simulator without a realtime kernel?
yeah, and I know just the developer to do that
cradek: you do?
he talks a lot but hasn't ever checked anything in
oh crap. busted.
I think he even has a plan for doing it already
never trust a design made before looking at any code
jeff: c'mon, the rtapi part is pretty
you would make another rtapi backend?
that's how I'd do it
I've never looked at rtapi but I think I understand the idea
and I think zwelch even started that
* alex_joni looks
did he ever check anything in?
he sent me a patch, want it?
I think we really need this. I know jmk doesn't use the debugger, but I rely on it heavily
there would be some other changes needed, since halcmd uses insmod do implement loadrt
cradek: jmk dont use debugger ?
even ./configure --with-rt=simulated (or however it's spelled) is fine with me
jepler: just looked at it, only differences for ./configure and makefiles
you'd need new versions of all the hal modules, I think (or a non-RT rtapi module)
he seems to use users as debugger that are better :P
SWPadnos_: no need for new hal modules
only a rtapi_sim
which already is there.. just not finished
yep - that was the part in parens ;)
ok - cool
does the simRT use kernel threads, or just fake it?
probably it's a LOT more problematic than at the first view
If I was to put encoders on my steppers, can emc handle this?
yes and no
you would get true position feedback from the encoders, so that would work
I wna tthe encoders to "drive" the steppers (so to speak)
but there's no velocity adaptation to slow things down if the steppers can't go as fast as you want
how do you mean?
I have run this same job 8 times now, it's costing me money in ruined materials alone. I even ran the job this morning on some scrap without a problem. MY X axis seems to have an issue, and randomly stalls at one point or another and botches the job.
I'd want the encoders to prevent this from happening, even if that means slowing things down.
ok - wo you want to have emc stop if the stepper gets too far behind
Jymmm: switch to servos .. its good
you want some inverted PID
going the other way as usual
you need the G-Rex from geckodrive
the TP has to do any velocity adaptation, not the PID
alex_joni I really dont know what 'PID' is/does
Jymmm: usually when you do loop feedback, you have the position from the encoder
that gets fed to the PID loop which does the loopback
so when the position fallse behind what was commanded, the command is increased
so it'll catch up
but that only works on servo's
can't do that on steppers.. because once a stepper starts loosing steps, you can't command it even faster.. it won't do any good
right - you could use the lag to autmagically drive feed override, but there's no pin for that now (AFAIK)
that's a good idea
and not hard to do
well - get to it ;)
Id like to try with a biggest stepper before ..
At this point, I dont care at all about speed, just position.
but it has the potential to stop it
may in the axis youve the issue
then just lower the speed with FO
The REALLY sad part is I'm running the job at 40IPM
and it still fucks up.
thats not the material
ok, and what spindle speed / cutter size?
1/8" 20K RPM
what's the depth of cut?
any slower feed and I'll start burnign the wood
SWPadnos_: after some hour of work the motors become *very hot* and start to lost steps ..
i had the same issue
do you have control over spindle speed?
(other than on/off)
8k to 25k
well - slow the spindle, and run slower feeds
Jymmm: do you have the issue always in the same axis ?
also, what pulse rate are you asking emc to generate?
I found that up to 27/ipm my cnc could start losting steps in X and Z
if the issue for you is only in one axis, use a biggest stepper, im sure youll solve
if are 2 axis.. better to change motors and drivers !
if you want to run so fast
Jymmm: im pretty sure your drivers ar very good, not enough instead the motors
taking a break
from the shop
hi les_w welcome :)
Took a look at hobby cnc router costing
profile rails are too much money for hobby
commercial cnc ?
fine for yours jacky
had to check prices
you think its a good time right now for that ?
$93/meter for rail and $53 percarriage is a very good price for commercial
Good time for hobby cnc router sales?
I don't know. I'ts just an excercise
Have to rethink the guide rails
1 rail per axis and a simpler outrigger on the other side would save money
may a large rail ?
or get cheaper rails, and surface grind the assembled carrier
Well, one precise linear rail as for your machine on one side. It would be the master guide rail
cradek: are you around?
then a Plastic bearing/surface outrigger on the other side
sure, but if I'm imagining the construction, you'd get a bit of "bounce" on the other side
I ssh'd to a machine (/dev/pts/1) is there any way to connect to /dev/pts/0 ?
yes I'm around
what do you mean "connect to"?
SWP: yeah...capture it somehow
what are you trying to do?
or cam followeres
cradek: it's a fresh installed debian, and there's some config utility on the other pts
I need to close that.. but kill won't work (it keeps reappearing)
I even rebooted, and it came back :(
want to borrow my redhat CDs?
a few km away
kill its parent, whatever's starting it
that's why I bother with ssh..
can't find that
don't know how else to help you
Ok. a couple skate bearings above and below a plate. One spring loaded. Master rail controls transverse stiffness. Easy near kinematic construction
Big cost saver, still very accurate I think. Few disadvantages that I can think of....
Big rails/ blocks cost about the same as little ones....
so just use on one side.
I AM TRying to think of disadvantages for this
hmm...no clemency from the terminator....just anounced
read right now..
boh .. I cant understand, I live in mars ..
the effect they want would be exacly the opposte
hope i'm missing
les_w: do you have a draft?
this is the paradox of the world: http://www.ogrish.com/archives/2005/july/ogrish-dot-com-gay_teens_executed_in_iran1.jpg
Jacky^ what the fuck?
Jacky^: religious fundamentalism.
Jacky^: that's the cause of this kind of evil.
i really think no man at this world could kill another
right yesterday i was thinking about the man died at 96 years old
the man who used the aromic bomb in japan
28k peoples died ..
how can fill him before died ?
we have not been created to win on this heart
peoples wnat understand
life is short enough
thats really OT, sorry ..
Jacky^ is now known as Jacky^afk