Jymmm: pretty sure it's /dev/fd0
index of 2.00005 = 2, 2.0001=2. 2.00011 = ?
EbiDK is now known as EbiDK|AWAY
i am trying to post a mail to the emc newsgroup <email@example.com> , but it didn`t work?
have you joined the list
i wrote something 4 days before
sourceforge has its bad days :(
you can ask in here we will answer if we can
when i put on my machine it occurs the following error:
following error on joint 0
even there is no movement
how can I deactivate this error message
I did see a message to that effect and you have had a reply
oh where I couldn`t find it
I got a mail from mail delivery system?
I can see the online list is lagging but it should have been sent to you
you can't deactivate the message
if it still happens when you set FERROR to 100, then there's something else wrong
yes it happens with FERROR = 100 as well?
I saw your mail, that's how I know ;)
can you put your ini file and hal files on http://pastebin.ca?
when did you get the last mail from u<firstname.lastname@example.org>?
about 15 minutes after you posted your question
from Sven Wesley
he asked about whether you use shielded cable for your encoders
I use SSI Standard not a incremental counter and the cable is shielded yes!
the driver for the hardware are self-made :)
too many "SSI Standard"'s on google what is it
it's a serial data standard used for encoders
I think it's more or less SPI, with some more specific data format
have a look here http://www.sick-stegmann.de/sickstegmann_de/about/eigenmarken/ssi/de.toolboxpar.0005.file.tmp/SSI_Produktinformation_Englisch.PDF
heh. I have a Stegmann encoder manual :)
oh. is this an absolute encoder?
it`s more or less spi
how are you starting EMC?
emc ...inifile comand from shell
there isn't really any support for absolute encoders in EMC, but you may be able to work around that if you're careful
I guess I mean how does it go to the "machine on" state
if your encoder feedback is valid when EMC is in estop or estop reset, it should work OK
(emc makes commanded position track feedback position while in machine on, and maybe estop as well)
err, machine off Imeant
(sorry - just starting on my first coffee of the day)
oh :) no problem
the machine works, if i put it on and start a programm with fast movements
you should check your feedback with halscope
set halscope to trigger on a following error, or on the motor enables going false
after a while the error occcurs spontaneous
yeah, that tells me that something is wrong with the encoder readback
either something is getting one bit off, or you're getting FFFF / 0000 readback sometimes
in halscope i didn`t see anything
I don't know why it would be better with faster movement
if you trigger on following error, you will see what causes the following error
ok then what is it? :-)
the ferror is between 1.7 and -2
trigger on axis.N.f-errored
1.7 and -2 what? what are your units?
if mm, that's a huge error and you need to tune your pid loop
bernd_l, when it happens spontaneously, is that only when moving, or does that also happen when it's supposed to be motionless
during the movement it occurs after about 5 minutes
by the way, your messages did go to the list. there were no answers.
but motionless after 5 sec
there was one answer to the first message, I didn't see a second message from bernd
Subject: [Emc-users] joint 0 following error
Date: Wed, 29 Jul 2009 11:27:05 +0200
and a reply from Sven Wesley 15 minutes later
but nothing since :)
that's because there is not enough information in the question to give an answer
my in-box is still empty :)
well, other than a guess
my guess is that there's a glitch in reading the encoder value, which triggers the following error
if the ferrors are between 1.7 and -2 (mm? inch? mile?) it may just be an untuned loop
my questions are not getting answered
2mm is WAY WAY too large
you need to tune
you may have more than one problem, but that is one of them
he said in the email that the errors still occur with FERROR and MIN_FERROR set to 100
ok, then we need a plot of commanded and feedback positions and ferror, when the ferror happens (when you get a trigger on axis.N.f-errored)
is the machine actually moving when the error occurs, or is it stationary?
then we don't have to guess
guessing is stupid when we have diagnostic tools
what have I to do?
instructions please :)
make us a screen shot of halscope showing the things I said above
ok just a moment
i am still woking :)
it can be hard to capture this kind of thing but it's worth it :-)
i can´t believe it, it works fine !!
there´s no error
if you have halscope set up to trigger on f-errored, just let it run. the error will be back.
ok I have it
take a screen shot of scope and put it on imagebin.ca or the like
make sure you set up the scales and time base so we can see what's going on
ohh i forget the position-cmd
i´ll try another one
i put it on imagebin.ca anyway .. the next picture ..
will come soon
bernd_l: we also need the link from imagebin.ca
to be able to look at the picture ;)
[13:34:18] <alex_joni> http://imagebin.ca/view/LXJk8x7.html
f-error reaches 1 in your picture
as you can see, the joint feedback position jumps by about 4000 (units)
is this a 12-bit/rev encoder?
(depending on scaling and units, this kind of error can be due to incorrectly interpreting the turns counter and the position within the turn)
http:12 bit yes, but it´s configurable
but this is the case!!
i will check this
thanks a lot :)
yep unless the machine moved 2 meters in a msec, your feedback is incorrect
4 meters - that was closer to 2 divisions at 2k per
that's a fast machine!
what driver is reading this encoder?
I wrote it by my self ;)
it doesn't work right, heh
it isn`t proved yet ;)
its proved wrong
if you had disabled following error checks, your machine would have worked very hard to instantly move 4 meters
ok ok i`m still a beginner ...
you're doing quite well, don't let us stop you :)
i can´t stop this, is´s my final practise!!
the machine have to work!! sais my boss...
most of us are still practising
are you using amicrocontroller to read the SPI data, or is it a HAL component (reading from the parallel port or something)?
ssi data is emulated by an BoschRexroth controller ECODRIVECs
the data is read by a PCI-Card ADDI-DATA 1710
what's the update rate?
1 ms - i´m not sure
you wrote a HAL driver for this card, then?
that's something to check. you probably don't want to run the PID loop any faster than your feedback channel can provide new data
I wonder if that kind of error is in the data form the encoder
it sounds like a dodgy connection somewhat
it'd be odd i'd think to have the encoder working 99% of the time and it be a software problem ;->
bernd_l, in your HAL driver, you may want to add a parameter that outptus the raw SSI data (if it's available), or the raw register readback value
if you cursor over the plot in halscope you can see the exact numbers - maybe you can see whether it's a single bit error
especially if it was software written by somebody other than me
then you can plot that in halscope also, to see if it's the hardware or the software that's making that spike
if you have sign-extension, check your rollovers etc too
sorry i was absent
you can read back :)
step by step
i don´t get it
a dodgy connection?
a hardware problem
a couple of possibilities
it could be software - if the software does word size extension then the rollover detection might be wrong
i try another controler
think about my suggestion of adding a "raw read" parameter to your HAL driver
that way, you can see if the data is correct or not
that tells you which side of the PCI (or ISA) bus the problem is on
(the outside or the CPU :) )
it could be emi in the wires too no?
i´ll add an halpin with the rawdata
has anybody used the GRAFCET sections in classicLadder?
not me - only bits and s32
I noticed in the docs that there is some mention of the GRAFCET functionality not working quite right yet.
I tried to mess with it once, but I had no clue how to use it
I suppose I'll just do it with the ladder stuff.
hopefully i´ll meet you tomorrow bye :)
almost lunch here
here too i guess
love emc2, but i am a python newbie. having trouble debugging python in emc2. there is no way to get a shell in emc, is there?
a python shell, like idle?
to just run a python program?
no, to debug
did you check dmesg for the debug info you need?
CWC: say what problem you're trying to solve
trying too. i just "finished" a python script, and its large and twisted. some widgets are not being displayed.
but they are if i run in idle under linux or win
just not under emc
idle gives me a shell in the scope of the running application, that i can debug from.
emc is waiting for the app to finish, so i dont really know how to debug in emc2.
can you run the app from a terminal window?
i thought there might be a way to do this?
yep, works fine, under windoze and in linux shell. not in emc2
its my fault, i tested under emc2 in the beginning, 500 lines of code later, some Tkinter.Listbox's and Entry's are not displayed.
this is for a pycvp widget?
i created a tiny app that uses the same widgets the main app uses, it works.. so its one of the 495 lines
no, (i dont think so)
not sure. i am not importing pyvcp. so i think thats a no.
i am creating a turning app for my lathe
enter the data and it generates the gcode
does turn, face bore, drill, cutoff
do you know how to spit the g code directly into Axis?
yep, thats what i am doing, and if i exit without action, i just print 'M2'
back to emc
how are you starting your program?
ok, didn't know if you knew about these or not http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Simple_EMC_G-Code_Generators
if it's with "loadusr", then you should be able to run it in the terminal or in your favorite environment
yes sir, i read those
if you're embedding them in axis with ~/.axisrc or whatever, then set your GUI to 'dummy', then start axis inside the terminal or your favorite environment
but axis has to (A) be run in the directory of the inifile and (B) with the commandline argument -ini your.ini
i was using the fools approach, i am pretty new to python and emc2
i am just running the app.py as a gcode file, using FILTER
or as a filter
just cant find a way to debug once its running in emc
it dont think it will work, and i am wasting all of your time. sorry.
eh, don't give up that fast ;)
im not, i think i need to explore what jepler said
CWC: you should be able to run it stand alone
and it should return the g-code to stdout
true, works great.
in windows and my preferred OS
so your program works if you run 'python myfilter.py > mygcode.ngc' at the terminal, but misbehaves when you open myfilter.py in axis?
hold on i have emc on VNC at the moment, ill try
typically i dont run from the terminal. run from icon
so where does the output go?
I mean how do you check if the g-code is ok?
if you run from a terminal then you will see your error msgs
output is Tkinter widgets. ok trying now...
explain "output is Tkinter widgets" ?
misspoke, the app generates the code from data in the widgets.
@jepler - yes, it works from the command line
it works in emc too, just many widgets are not displayed.
seems like just Tkinter.Entry(s) are missing
emc calling a different version of python?
now thats been on my mind and i am not sure..
i installed from LiveCD
but i havent checked out the pythonic details yet
python reports 2.5.2 in terminal
i developed it under 2.4.4 TK version 8.4
have to go look what emc is using
its most certainly some bugs in my app. i created a new test app that uses the same widgets and they are displayed fine.
i was looking for a way to debug like in 'Idle'
I can't imagine how to run your program both in your debugging environment and from inside axis's "filter"; even if you could, it would probably just make the buggy behavior evaporate.
agreed, i dont want both, i was looking for some debugging tools in emc2.
it runs in the IDE, or commmand line. but has problems in emc.
im trying to figure out how to debug
i could comment out stuff, until i fell over the problem.
i dont think i can do what i was asking for.
I usually do debugging by adding print statements and runing from a terminal
yep me too.
(for python code, anyway)
idle allows you to interact with the running application
in the code - self.gCodeWindow = Text(self.TextFrame ....)
then i run it with 'F5'
then i can - app.gCodeWindow.insert('helllo',END)
when the app is run in emc, emc is waiting for a response.
so i dont think there is any way to debug at that point.
emc is waiting for the userland app to finish.
you can print debugging messages on sys.stderr; if you run emc from the terminal, they'll show up there
(though maybe not until you exit your program)
the Python code that calls the filter looks like this: http://pastebin.ca/1511231
the differences between that and running at the terminal should be fairly modest: stdin and stderr are pipes instead of the terminal, and stdout is a file.
and there's an additional environment variable set
is that in the Axis source? i read through Axis and dont remember that method
guess it has to be
If you use "idle -d" instead of "python" as the filter, it looks like it gives you the graphical idle environment, and you can hit F5 to start running
never tried that
I didn't test that inside emc yet, just 'idle -d myscript.py' after reading the manual
slow under VNC
(huh, but then my program failed in a weird way under idle ..)
'AttributeError: read' on an object that should be a file
oh, idle is diverting stdin and stdout to its window
i need to read the docs on the filter feature
hm, when I list multiple files on the commandline after -d, idle opens them all .. which is not what it should be doing
forget it, it doesn't work :(
gonna try anyway.
the app goes hangs when i "write to Axis"
er , the app hangs when i ...
the 'instance' would be in idle, not emc doing it that way anyway..
i can just use 'print'
thanks to all who tolerated...
anyone know if there a built in way to display 'Radius or Diameter Mode' in Axis for a lathe?
this is probably a pyvcp thing
i can see it in the mdi window
SWPadnos_ is now known as SWPadnos
it looks like adding an indicator for radius/diameter mode in pyvcp would add it in another frame to the right of the backplot
it sure would be nice is classicladder supported tags rather than these hard to remember variable names like 12
havent looked at CL yet, it really cant do a 'string' tag???
is that a limitation of CL itself?
or the interface between emc
CWC: HAL doesn't have strings, so I'm not sure what EMC/CL would do with them
CWC: also you're right, there is no radius/diameter indication in AXIS except the active gcode g7/g8
cradek, it would just be useful to name variables in the interface, most PLC software I have seen does that.
yes, you can name variables
how? I would sure like to know :)
you edit them in a table in the gui
don't they show up as the name of the signal they're attached to?
SWPadnos: not anymore, but the signal shows up in the same table for reference
so, this looks cool: http://www.newegg.com/Product/Product.aspx?Item=N82E16856101075&Tpk=shuttle
too bad everyone says the touchscreen is crappy
Awesome!! That greatly improves my day :)
hm, demo_sim_cl doesn't run anymore
Hmm, I need a htpc..
that would be an awfully small and low-res screen ;)
this one seems more popular: http://www.newegg.com/Product/Product.aspx?Item=N82E16856101044
there's a VFD behind the lower panel
and it comes with a remote
and they have an interesting USB feature - they call it "SpeedLink" - it basically lets you plug this and another computer together via USB, and this one shows up as a hard drive (or something)
[18:21:26] <cradek> http://timeguy.com/cradek-files/emc/symbols.png
we have some shuttles on equipment here. They run too hot. you have to make sure you keep the heatsinks super clean.
we had the as workstations, the became to be called "Shittle"
they have remote heatsinks that mount at the back of case.
wow, never noticed the htpc's before, those are cool
^^ picture of the symbols/strings
tom2 is now known as tom3p
i see your point with tags on the classic ladder example page
could write an application to manage the data an spit out a Classsic Ladder config?
like the CL editor? :)
problem is hal right?
debugging from hal?
you have a tag in cl that maps to 1242939whatever in hal. i thought that was the problem
reading hal docs now...
i get it. sorry
sorry, I still don't understand
its the that hal doesnt support 'string literal' tags
i was stuck thinking the problem was in CL. sorry
even after you stated it was in the hal......
right, hal doesn't have a string type (although the name of every pin and signal is a string of course) - what would they do?
should i be looking in the hal configuration dialog to find modal g code states. i.e. G7/G8 rad/diameter
it looks like mostly system stuff
hal doesn't know anything about gcode - these are apples and oranges
i want to add a radius/diameter PyVCP indicator. not what emc component has the data. would that be the hal?
hal is hardware/interface abstraction
pyvcp displays and manipulates hal signals, so you cannot access internal gcode interpreter state there either
I believe editing the gui of your choice is the only way to accomplish what you want
as you saw, that state is available as an "active gcode"
yeah, i had that feeling
i would want it to be on the backplot which is in OpenGL i think
which is a little over my head in python
yes it is
I thought Les had made a patch to show DTG and position correctly
(in dia vs rad mode)
dtg and position works
yes it all works fine
everything works, i love emc2
i just need a big sign that says i am in rad or dia mode
cwc: what are you running with emc?
not yet, building tooling
pick radius or diameter and never use the other :-)
@cradek - yeah, had that feeling too. i just dont think in radius mode
then you should pick diameter mode ;)
SWPadnos: that seems like good advice
hahah. i use both.
is the problem...
I would add G7 (or G8 or whichever it is) to RS274NGC_STARTUP_CODES
if you go down that road, you probably want in/mm on the display for consistency
"inch radius" "mm diameter" etc
rarely use metric, but good point
it's expected that you know your units when reading the position readout - I guess rad/dia is just another case of that.
they're just like another units difference
i completely agree.
but its bad if i forget/don't pay attention
well now I'm disagreeing with myself. both rad and dia are shown on the screen. the thing you want isn't information in the dro. it's part of internal interpreter state. it's much more like g90/g91 than readout units.
this is a set of things that affect how the gcode you type is understood
those things are reflected in the 'active gcodes' window already
so now I think you don't need another readout
no i just go look at the mdi screen
usually i am there anyway
sure, the only time it matters one bit is when you're typing an mdi command
I know this because that's all g7/g8 affect
or the application i am writing in python
your application is broken if it does not specify g7/g8 and expects it to be one way or the other
but its canned in there too
it should also specify g20/g21 and g90/g91 etc etc
it could probably be nice to see that active G-codes display when on the auto mode page
SWPadnos: why? it has no meaning
sure it does - it lets you see the current state of the machine, like the backplot does
unless it's "out of date"
no, it shows the state of the interpreter
(due to readahead)
cradek is right imho
when proofing code, the more you can see the better (IMO)
it doesnt fit emcs display standard
which standard is that?
if you'd click a line in the preview or gcode display, and you'd get the interpreter state corresponding to that, I'd be all for it
but some random unrelated interpreter state does you no good
that would be cool
is it unrelated due to readahead?
yes the interpreter is always (?) ahead of execution
in that case it wouldn't be too useful :)
except when in mdi mode
no, it's probably even confusing
i forgot about the readahead
sometimes I wish our architecture was different - wish I knew what it should be
thinking back to the recent questions about effective program size limits, I wonder if isn't a big deal to do checkpointing (for reversal, or so you could keep track of interpreter state to show it when a line is clicked, etc.)
since you can't have an infinitely sized program with any modern user interface, concerns about huge logs/checkpoint files may be immaterial
keep the interpreter state for each line interpreted?
or just when it changes
I haven't done the math but it feels like it may be problematic
it changes at every line...
in a predecessor of AXIS I did pretty much that: http://media.unpythonic.net/emergent-files/01227191152/rs274py-cone.png
-- it never felt very useful, and the feature was dropped pretty early
cradek, it doesn't necessarily change at every line
we're talking about different things then - I was thinking the entire state, which includes the position
I'm talking about modal codes
you mean the modes, I think
and motion modes can be ignored (G0-3), since they're explicitly in the code already
(actually they all are)
I forget what your goal was :-)
err. me too
then let's call it accomplished
well, not done, but not important
(not important enough to remember for 5 minutes anyway)
glad, you guys talked me out of that.. ;-)
Lerman_______ is now known as Lerman
i figured out the python problem, it was throwing an exception that i was missing cause i did not run emc from the shell.
i recall Axis spawning a new window for exceptions, and got sucked in......
glad you found it. running from a terminal will often show you more information that from an icon
yeah, and i should know that. but it ran fine on every platform i tried until i ran it in emc
it would take a bunch of work to add the debuging i was looking for to Axis.
basically adding 'Idle' to Axis
i am better off just writing good code in the first place
If only we could all write good code in the first place.
agreed. i recall seeing some 'interactive shell' code for another language. it was like 10 lines.
axis would need to spawn a new Toplevel and allow input/output from the interpreter
ill do some digging
you may be able to change the .py handler to something like "idle blahblah.py" in your ini file
but I don't know if it would work
jeppler and i tried. no workie. the 'instance' of the application would still be running in idle not axis
yes, it's an external program anyway
not a pyvcp thing, but a g-code generator thing
echo -n "$prompt'
that might do it
Courtesy of "UNIX F.A.Q.," 1993
its for debugging only, but it might help
and you could change things on the fly
seb_kuzminsky: I'm working on a control project where I
I'm not using EMC, just the hal and ClassicLadder with a 5i20 and some steppers.
geo01005: what's the project?
Is there a way that I can reset (home) the stepgen position?
This is for my thesis.
Think of it as developing a fuzzy logic controller for an sinker EDM.
Or is it best to just use an offset and set the "home" position with that?
there's no way to do it just in the hm2 driver
it would be a nice addition, I think
it'd be easy to do
then stepper homing could work like encoder homing, since the "feedback" part would act like an encoder
the sw stepgen doesnt have it, and that's the interface i copied
but it could be added
it isn't worth adding for this application.
sure. it would be nice there too :)
i bet there's some trickery you can do in hal to get what you want
* geo01005 thinks about how encoder homing works...
is there an offset component?
I believe there is.
I was just looking.
[20:42:00] <seb_kuzminsky> http://www.linuxcnc.org/docview/html//man/man9/offset.9.html
dont call me a ho!
er I meant it in the santa claus sense
yeah, looks like the offset component will work.
oh well carry on then
has there been any previous attempts to port emc to arm?
I'd love to run emc on beagleboard
most attempts have been from arm>hand>mouse>emc>machine ;)
it has been tried, though not in real earnest, and hasn't worked
on the beagleboard
oh, so there has been an attempt?
a significant amount of effort was expended I think
but it proved "too hard to be fun or interesting", I believe
is there anything documenting that attempt?
I'd love to give it a shot
hm, maybe I should first try cross-compiling to arm
RTAI proves to be a bitch
maybe we could bypass that
-rt doesn't work so well
(this is all from memory, so I could be wrong)
-rt might work on hardware-assisted systems without a base thread, no?
I think the max latency was in the 400-500 us range
here's someone else who tried, and the 400 uS number pops up: http://groups.google.com/group/beagleboard/browse_thread/thread/979703d56b67497c
I was planning on running the tp and possibly a ui on the beagleboard, with external stepgen
that's what was tried - connected to a 7i43 via the GPIO connector
emc-devel-2009-07-20.log:13:46 <jepler> fenn: Since rtai isn't ported to OMAP, I did some work based on rt-preempt and kernel threads. This gives some pretty good results on an x86 PC (enough to possibly run servo-thread-only systems) .. but on beagleboard I got 300us latencies in good trials and worse latencies in other trials..
(I seem to recall still seeing latencies of up to 4ms when accessing the sdhc)
anyway, it was around that time I got bored
yeah, 4ms is pretty boring
maybe we need to run closer to the hardware?
the beagleboard's got a freakin' floating point co-processor
so did some 286's
weren't they all external '287 chips?
cnc controllers shouldn't require multi-ghz
but still .. they had them ;)
the beagle actually has it built in :)
if you could afford them
(like the 486 started to do)
SWPadnos: semantics :P
Weitek WTL-4167 I think it was, but that may have been for the '386 family
oh, I guess they did have chips for the 286 (and 68k even)
maybe I could write a tp from the ground up
don't forget the RTOS
remember to do S-curve accel
and jerk limiting
for non-trivial kinematics machines too, while you're at it :)
s-curve accel? as in linear jerk?
because it's better
I meant, what's that much better about linear jerk, vs. linear accel?
because you can :P
what's better about linear accel vs. linear speed ?
might as well just use this http://www.safeguardrobotics.com/default.aspx?tab=cncbrain
heh that thing
ooh, it's "literally a brain"
have they sold any yet
or this: http://www.talkshopbot.com/forum/messages/2/19159.jpg
I think it is still vaporhardware
it also has "massively-parallel processing framework"
like a brain-cluster?
a rack, of vats, of brains?
couple of PIC chips probably
[21:13:54] <skunkworks_> http://www.cnczone.com/forums/showthread.php?t=72401
fpga right? (brain)
"If the machine enters a fault state during machining, the CNC Brain will automatically calculate the course of corrective action. "
why can't emc do that? ;)
and double closed loop?
double closed loop == infinity symbol
or the simbol for a toilet in some countries
well.. emc certainly doesn't do this:
MPP (Massively Parallel Processing) framework - Interconnection matrix for high-complexity data processing and interdependent interaction.
I prefer independent interaction
I did a double loop in and audio amp..soon learnt infinity
I prefer independent noninteraction
archivist: chuck norris counted to infinity.. twice
that MPP is probably on the bottom board: http://www.safeguardrobotics.com/gallery/cncbrain/e_stack.jpg
cradek: another cool clock (actually calendar) idea: http://blog.makezine.com/archive/2009/07/capillary_action_colors_calendar_in.html?CMP=OTC-0D6B48984890
if drying and clogging dont win
just thinking i'd friggin spill something on that
good night all
have there been any alternative hal/schematic solutions other than eagle2hal?
seb_kuzminsky: does the acceleration-velocity limiting work on the hm2 stepgen?
hmm, I must be missing something in my configuration.
you're on 2.3.2 or newer, or trunk?
the limiting isn't really the problem, but there are no steps being generated.
oh well that's different ;-)
is .enable on?
stepgen in enabled
"is it plugged in?" :-P
hm2 read, write, and watchdog are all on the base thread.
The base thread is running.
I think I have it set to .000625
shouldnt it be the reciprocal of that?
it's "steps per user-unit"
yay, an easy bug :-)