anyone know a linux tool to edit pdfs?
PDF is typically a publishing format, not edit.
eric_unterhausen: you can export to PDF from OpenOffice.org
(the software suite, not the actual website)
eric_unterhausen, I have used pdfedit ... mostly for adding and deleting pages in pdf's
eric_unterhausen, it like to crash, so save often
that's what I ended up with. It does have bugs
"save as" doesn't
at least it works for removing ad pages from pdf's
I thought about removing a page, but it wasn't immediately obvious how so I skipped that
1 garage door opener installed. slick.
yah... no point in wasting ink on printing some nonsense
I should get the rest of the doors and windows installed - huh?
skunkworks, good work
now the other 2 should be much easier
'any idiot can do it' should be the slogan. very easy to install
Its like the garage doors... I only install one about every 10 years and it always is a learning experience
I didn't even have to futs around with the light sensors. The 'just worked' tm
mine weren't bad, but the brackets are easily bumped out of position
I think you need to servo your opener.... quick open/close in the winter
quick open is nice
these are kinda neat - they clip on the rail - then you have a thumb nut to tighen/aim.
fast cycle is always good when the cops are chasing ya home!
these are not the fastest. but I can deal
oh well - time for bed
skunkworks: ug ug ug MORE POWER!!!!!!!!!!!!!!!!!!!!!!!!!!!
need starwars blast door style open/close
.something of a second
tom2 is now known as tom3p
a seconds is FAR too long
geo01005: what the idea of resetting the position? do you just want to reset depth at 1st spark ? use rel (G91) or set a zero in a work coord system and chg to that system.
the system im using now (not emc) only has one work coord system, but i save the present Z value when i probe the surface, set it to 0 (G92) then cut the user's depth, retract to 0 + some clearance, and restore the orig reference.
same idea for electrode length offsets
all in macros
Valen1 is now known as Valen
tom3p: The application that I'm using hal with doesn't really have anything like a Z axis.
I ended up using the offset component, and used ClassicLadder to set the offset.
dmess: i made a part for the test rig tonite... 3000 rpm ...1.4 IPM hss uncoated #69 drill mike's .0690"- brand dormer
(22:07:01) dmess: they went straight to the ferarri last week .. and we had a MUD hole get thru.... I ended up reeling in the reighns on Fri. after 750 dollars HADNOT made a hole..
dmess: the other drills wer 180 a pop .. and you didnt hear ANYTHING ...
(22:08:17) dmess: mine 1.99
(22:26:03) dmess: thats 180.00 dollars verses 1.99 dollars no typo
(22:27:57) dmess: fenn..i made a g72 $drill call to a sub called drill and nested the up and downs there so they wound ALLWAYS be the same..
oh its a 0.029" drill in a CAT 50 taper
geo01005: maybe the torch height controller code would be useful? it's motion that is numerically controlled by a gap voltage. so might be used in edm ( my work is building custom cnc edms)
and the work done with wedm and a speed reduction algorithm to find a better rate ( not really gap control, but gap affected)
those 2 ideas are emc implementations
WOW Speak of the dead and they appear
well... workin... livin single with 3 kids....
who me.... Jymmm
geo01005 i think BJT was using the offset component, but i never read how he resolved removing the offset. at first it seemed the joint would jolt back into position when the offset was removed
dmess: No, a-l-p-h-a
i just f'd up my NAS... lol
I changed it's root password, and it's not what I thought I typed.
we are 15-20 km apart after all.. so your intuition just needs a fine tweekin'
dlink dns-323, with debnas installed.
worse case scenario, I format it.
oh not the test block i have anear PERFECT one behind (my) machine..
well got hit the pit... more baby holes to make ... 0.029" holes dont make them selfes
and sometimes, you don't make them either
no matter how many drills you break
SWPadnos: On thos cheapy RAID cards, do you remember the name of the bad/icky chipset?
highpoint rocketraid maybe?
SWPadnos: No, the chipset name, like Marvel or some such thing
I just coldn't remember the name of the BAD one.
SWPadnos: $29 may not be bad to revive an older computer http://www.newegg.com/Product/ProductReview.aspx?Item=N82E16815124020
that took a long time to get that sorted out.
NAS root password changed.
hacking your own systems is not fun...
SWPadnos: If nothing else, that card might be nice just to transer data off of old systems.
I use a USB -> (IDE / mini IDE / SATA) doodad
SWPadnos: Yeah, but slooooooow
I have one too
it depends on the interface, but most old slow hard disks are much much slower than USB2
ah - this one: http://www.newegg.com/Product/Product.aspx?Item=N82E16812156102
does it do 2.5" IDE too?
SWPadnos: This is the one I have... http://www.dealextreme.com/details.dx/sku.474
works great, even under linux
yes, mine does 3.5, 2.5, and sata
and min is fine under Linux as well
I'm not sure I've tried it on Windows :)
LOL "limit 100 per customer"
I don't remember which one it is, but there's one of those that lets you use multiple connectors at the same time
well, a $29 card in case a old ide hdd fails doens't seem too shabby
I agree in principle, but I don't know that it would help
on a Linux machine, maybe (assuming that the chipset is supported by the installed kernel)
on a Windows machine, almost definitely not, unless XP is a heck of a lot better than anything prior at using "whatever" disk interface is found
(it used to be that if you changed chipsets, sometimes even from the same vendor, that it wouldn't be able to boot)
SWPadnos: Yeah, there that, but I mean if there's nothing wrong witht the machienother than the ide hdd, just rebuilt it back to what it was just using a sata hdd
on that note, good night :)
Hey, a emc2 pendant http://www.dealextreme.com/details.dx/sku.26910
USB, so it should work with hal_input
SWPadnos: did you ever get your logitech gamepad working?
sure, though I've only "used" it in sim
Jymmm you can get away a bit cheaper by building a jog box yourself
CYCLE_TIME=0.100 in ~/configs/sim/axis.ini file. If I make it to be 0.200, will it save some CPU time?
Valen1 is now known as Valen
Parameter `MAX_LINEAR_VELOCITY = 1.2' offers strange 1800 mm/s even when 50 mm/s is set as maximum. Why does the multiplier assigned to `1.2' when default value is `0.25'?
What is `CYCLE_TIME = 0.001'? What if I assign a far larger value as `0.01'? Could it save some CPU time?
ilya: repeating your question will not get it answered...wish i could help you
piasdom: these are three different questions related to /sim/axis.ini file
ilya: sorry...i seen CYCLE_TIME and thought they were the same
* piasdom minding his own business :)
When EMC2 in sim mode shows the milling entities order, CPU has a one third to half a load. It's probably because video card is built-in, it's a laptop, right?
ilya: i know they say that a built-in video is not advised...something to do with power draw
if its got 3d stuff on the screen, and you are running without 3d acceleration then you are using the CPU to render it all
if your only running sims you can run with 3d acceleration
CPU participates in creation of beauty AXIS interface
the no built in video thing is mainly a latency thing
Valen: and 3d acceleration = fglrx driver for ATI vidocards?
thats the open source version i think yes
how can driver reduce CPU time in `painting' 3d view?
because the video card does all the work to render the 3d scene
so, i can try my proprietary driver right now
will you ever use the machine you are running it on for production?
IE actually running a real mill
Valen: i want to use it for .dxf-to-suitable G-code tasks
but not actually running a mill
if thats the case then yeah you could use the best 3d driver you can find for your card
If its a multi processor machine you can also look at using the SMP kernel and a SMP version of EMC which will give you a bit more response
Valen: yes, latency is 15000 to 100'000, and this laptop works, but one another doesn't work at all in RTAI mode
thats pretty bad already lol, might as well turn on the real 3d drivers
whats the specs on the machine?
Valen: no, for fglrz i should download xorg-fglrx-dev (two files totalling 10 Mb in size)
i will have to wait too much time
i dunno for ATI stuff anymore
Valen: ASUS X51RL laptop, 2GHz M550 Celeron, 2Gb RAM
yeah the fglrx is probably the way to go, you can turn compiz on then too for the shiny effects
Valen: with proprietary driver, 'Composite' extensions as compiz have to be turned off to see graphisc in axis EMC2 interface
thats odd, I have the nvidia driver working with compiz and showing axis fine
Valen: i usually edit the xorg.conf file, there can be other ways to go with compiz and axis
i just ran the propriatry driver installer
Compiz reduces latency, anyway. It always spends some CPU time
because otherwise you need to muck with recompiling kernel modules and the like
I'm too, then sudo /etc/X11/xorg.conf
*nano or gedit
why? it seems to work without any of that
Valen: my words about it are in the 5.5 Installing EMC2 in wiki
Valen: graphics are 'in shadow' if you do not disable the composite extensions as compiz.
all i can say is what I did.
Section "Extensions" | Option "Composite" "disable" | EndSection
CPU load seems to be the same
ilya_: when will the connection will be reset by peer?
if you register with nickserv you can kick your old usernames
ilya1 is now known as ilya_
only one username
ilya_ is now known as ilya
see /help ghost
ilya is now known as ilya__
Anyway, i still try to make heekscad to mill inner countours at first
it follows the order entities of dxf were created, while DXF2GCODE follows the order from last created object to the first created object
Does anyone creates g-code from drawings? Is it a common practice to redraw whole drawing, starting from contours to be milled first?
Can I add G41 and G42 codes later, when to the created drawing?
With freeware t
G-code is text, you can edit it however you like after it's created
SWPadnos: the problem is, I have to redraw whole dxf file to be able to add G41 or G42
then you're doing something wrong
it gas mixed lines and arcs -- which are to be milled either clockwise and counter-clockwise -- until I try to redraw it.
drawing and milling are separate steps, separated by CAM. if you have to redraw things to mill them with cutter comp, then your CAM is broken
one arc goes clockwise, another goes counter-clockwise -- it means two appearances of G41 and G42 in the code. Is it normal?
I think you are confused
I'm using QCad -> HeeksCNC
g41/g42 are cutter-on-left/right
has nothing to do with cw/ccw
cradek: yeah. And i have to redraw arcs to be able to CUT CONTOUR COUNTER-CLOCKWISE TO ADD g41 BEFORE IT
sorry, I still don't understand what you mean
1. I'm given a someone's dxf file with a sheet of metal and arranged details on it. 2. I'm trying to create a program. At first, an inner contours of a first detail goes.
try explaining it without using the word contour
if cutting stuff out of sheet, I understand that you need to do the inner contours/things first
if arc was saved or "created" in a clockwise direction, i should add G41, otherwise g42. But i have a 20-40 objects, which direction in DXF is mixed, so tool goes right and left
i wish i can use pastebin.ca or so due to limited traffic.
your software needs to join them together in a continuous path for cutter compensation to make sense
say your internal contour is a square. you can cut it cw (using g42) or ccw (using g41) but you cannot cut it randomly (left, then right, then top, then bottom)
I think heekscnc is buggy in that respect
imaging, that this square has chamfers, which break left/right direction.
there are two approaches with dxf: use polylines (REALIZE does this), or don't use polylines and guess contours by looking for endpoints that match or almost match (most other dxf-reading software does this)
ilya_: not if you cut them continuously in order
ilya_: any combination of lines/arcs are just fine if they're in order, end-to-end
cradek: to cut continuously in order, HeeksCNC can arrange ID numbers.
I don't know what ID numbers are
ilya_, I think what cradek is saying is that you need CAM software that sorts the drawing entities into continuous paths, it can't generate good G-code in the (random) order the entities appear in the DXF
dan falk reported a left/right arc bug the other day
cradek: yeah, but heekscnc reads dxf as they appear in the dxf.
heekscnc is very alpha at the moment
it has to do other reordering too - for instance doing inside contours first - I think often this is done interactively because it's hard to guess from a drawing
archivist: HeeksCNC has ID numbers for entities of the sketch. This way, i have arranged my small drawing. I'm just curious if it's normal that it takes some time (sometimes) and ain't automatic.
Im not using the cnc part of heeks
cradek: I used relatively cheap CAM Expert (30 USD) -- and everything was good. Now I need freeware, and DXF2GCODE or HeeksCNC seems good, but it's a bit tricky sometimes to get everything working.
HeeksCNC needs good bug reports
perhaps you could help improve it
cradek: I'm not a programmer
I'm poor (in both ways) mechanic with GPRS internet access :'(
bug reports dont cost
archivist: how can I add a comment, not a bug, to HeeksCNC?
and add to the wiki
and also send to the email list
archivist: usual sourceforge.net webpage costs 1 Mb or about 0.2 USD at a daytime
lots of places take feature requests as bug reports
ilya_, HeeksCNC is on google code
mailing list is probably low bandwidth
archivist: i know, i just emphasize my problem
if I was a developer I'd like to get a report with a sample drawing (simplest possible that shows the problem), a description of why the generated gcode is inadequate, and an example of how the generated gcode should look for that drawing
ilya_: Cosider it a low cost fee to have a useful product
that's my idea of what a good bug report/request for help would be like in this case
Jymmm: It's actually so.
IMO, the cam should add g41/g42 for you, with suitable entry and exit moves. to do this, it has to know which contours are inside and which are outside. I don't know how heeks would do that - it probably would need the user to specify somehow.
I think if I try to change ID numbers of entities, HeeksCNC offers to re-order the drawing. In this case, program seems to understand that what i try to do.
also, ideally, you could tell it to use climb or conventional milling by contour
you should go to #cam and ask
is heekscnc free or what
free and is being developed. Useful, anyway.
says not done =\
there is an irc # that the guy who makes heeks hangs out in
no software is done
#cam is the place but dan heeks is not in at the moment
cradek: so why would you point it out, is my point
archivist: anyway, i can not say i've tried all the features.
HeeksCNC has more options to produce code without redrawing, than DXF2GCODE
also how is it broken
There's still a way to create g-code for inner contours, and then add g-code for outside contour
renesis: it's OK, just start to work and see
mostly using gcam or mastercam right now
gcam? is it free?
yes i did alot of beta testing for it
dev doesnt hang out in our smallchan anymore but it looks like hes still working on it
I think i could create g-code with DXF2GCODE, then manually add g41/g42 for different contours.
[14:32:16] <renesis> http://gcam.js.cx/index.php/Main_Page
thanks, will see after 1.5 hours
Just this once .. here's the log: http://www.linuxcnc.org/irc/irc.freenode.net:6667/emc/2009-07-30.txt
HeeksCNC: Sketch > entities of the sketch > id's -- this should be changed to get one-to-another pathes.
ilya_, make comments like that in #cam, devs monitor the log of the channel
just noticed that the linuxcnc. home page does not show the newest 2.3.3 release FYI
It's easy to change the axis direction for arcs and therefore their direction, poor me mathematician
MS W1nd0ws made me a thoughtless consumer...
hmm, it looks like classic ladder dosen't handle floats correctly....
it only manipulates bit and s32 hal types
I'm confused why there are float pin then?
classicladder doesn't have float pins
Is this just for the future?
Yeah it does.
oh? what are they called?
(I don't see it in the man page)
yeah there aren't in the man page.
classicladder.0.floatin-00 and classicladder.0.floatout-00
you are right, hmm
apparently it just chops them.
I don't know what (if anything) those do
1.125 is 1
sounds not too useful
I'm not sure floats belong in ladder at all
yeah... looks like I'll have to get creative.
what are you trying to do?
Well most commercial PLC handle float now.
I was just going to do some calculations for homing.
I guess you could compare them with < and > (but not =)
we have hal components to do that kind of thing with full double precision
I'll have to use some external mux's or something like that.
I was assigning float with CL, and that clearly won't work.
it sure explains why I couldn't get things to work right :)
I think it may be easier to do most of what I was going to do with classic ladder in a realtime component with comp.
if you have to do a bunch of float manipulation, I bet you're right
Well it is really just assignments, but the numbers are not know ahead of time. I don't see a good way to do it with the stock components.
what's the task? sounds interesting
It is really quite simple... Just homing a joint.
Go in the negative direction till a proximity sensor is triggered, then backup and additional .25"....
must be something unusual about it
doesn't one of the existing homing methods just work? there are so many.
if you need to latch a value, you can use a mux2 to do it
The go forward at a slow velocity still the sensor is triggered,
hmm. actually that's a sample and hold, so you'd need some extra logic to keep the latched value
cradek: doesnt homing apply an offset above the joint level? the hm2 stepgen geo's using (and the sw stepgen) dont support a "reset the feedback to 0 right now"
stop motion and change change to position mode go forward some pre determined distance and set that to be zero.
seb_kuzminsky, that is the case when you're using emc2, but if you're using a bare HAL (which I think I remember this being), then it has to be done in HAL
Btw I'm not using emc, just the hal and classic ladder.
geo01005, write a simple .comp that has a couple of bit inputs (track and hold), and a float input and output
no wonder I was confused
Yeah SWPadnos, I think that is what I'll do :)
when the track input gets turned on, (regardless of the state of the hold input), out=in
when the hold input gets turned on (regardless of the track input), stop updating the output
track is fed from the "homing" procedure in CL, hold is fed from the switch
alternatively, you can use CL and the existing mux2 to do the same thing
from CL, you need an output that turns on when "tracking", and off when the value should be held
you then use a mux2, with its output tied to one of its inputs, an dthe other input connected to stepgen feedback
when the selector selects stepgen feedback, the output will track. when it flips to the other input, it will remain at the last seen value
(since out is fed back to in1)
(I think :) )
There is still the issue of commanding velocities and positions from CL
yes, you'd need some float work
so it might be easier in a .comp
I just might make a little "Joint Controller" comp.
Withing last hour, i've downloaded 220 Kb of 574
Hi, someone ever used optical rotary encoder with step motors?
I want to use theese as an indexer
to detect missed steps
for what purpose?
(detecting missed steps I mean)
safety, and measure precision
I run motion experiments on the machine (on top of cnc duties)
well, you can sense position with an encoder connected to a stepper, but it won't do much good as far as control goes
ie, you can't use PID like you would on a servo
Can't you do that with velocity mode?
I don't want to improve the control (for now)
I'd only want emc to know the current error
is it complicated to set up (sensing position)
shouldn't be. just connect the encoder to the same interface you use for the step outputs (parport / mesa / whatever)
I have access to renco's 512
geo01005, not really. once a step is missed, the stepper is more or less stalled and you have to slow down (orstop) to get it moving again
okay, to the parport inputs for instance
malem-cnc, as long as the resolution is close to your step size, it shouldn't be a problem
if you're using 10 microstep drives, then a 2000-count (or so) encoder should be fine
if you want much higher resolution, then count speed will be a factor
well, They are 512 counts per rev
and I use 200 steps with 10 uSteps so I'm short
malem-cnc: good thread http://www.cnczone.com/forums/showthread.php?t=37309
is that 2048 in quadrature?
but, 512 would be precise enough for me
I'm betting that's 512 cycles, which will be 2048 counts
[16:00:55] <SWPadnos> http://wwwpdb.renco.com/ansicht/Renco/media/img/RCML15_646770.pdf
found this on ebay :
[16:01:02] <malem-cnc> http://cgi.ebay.com/RENCO-Low-Profile-Encoder-RCML15-512-0_W0QQitemZ200055585379QQcmdZViewItemQQptZLH_DefaultDomain_0?hash=item2e943dfa63&_trksid=p4634.c0.m14.l1262
yep. saw that :)
so its a 512 line count
it's very likely that you will get 2048 transitions per revolution
(count and line are different units, sometimes :) )
and only 38.9mm across
it is pretty small
yes its quite thin, it fits on the stepmotor very well
so, I'd need 3 inputs per encoder?
two is the minimum, three if you want to see index
it's a lot
only 6 per par port
you'll need additional I/O if you want feedback. there's no getting around that
I could sample these with an mcu maybe?
you'll still need to get the data into EMC2 in realtime, which means you'll need to use port pins anyway
and send the data via ttl?
more latency.. but if I only want to synch befor each gcode command (for example)
you will probably want to look at positions 1000 times a second, so you'd need a way of sending all the data from as many encoders as you want in that time
without burning up CPU time waiting for slow I/O instructions
which means you should buy a Mesa card and skip all that :)
what other input interface yo see other that parport
Mesa cards are well worth it.
there are several, but if you want to use steppers and encoders, the mesa is the only hardware that will work well
actually, jon elson's (pico systems) setup for servo geckos might be useful in this situation too...
you can only read back one thing from each channel
so you either get the stepgen output position or the encoder feedback position, but not both
with the servo geckos that's more or less the point .. I can see where it might not be what you want in this case
it made sense at the time, and for the intended use
browsing for mesa cards
they dont appear to be on ebay
it is annoying though that you can't attach a jog wheel to the unused encoder inputs on a stepper system
go to www.mesanet.com
where to find them cheap?
the parallel-port connected unit is $89, and has 48 I/Os
and it's got FPGA-based stepgen and encoder feedback
I don't know if anyone sells them used
Why would anyone want to get rid of a Mesa card? :)
only if they have too many I guess
I have 2 - but I will not sell them :)
worried about the interface
PCI is dying...
I have not seen any sign of that
PCI will be around longer than the parallel port, I'm sure
Mesa will develop cards based on another interface if PCI interfaces ever do become "unavailable"
they have pci-express cards coming out already
7I43 FPGA based USB/EPP Anything I/O card
that's the one
unless you want the PCI card, which is faster and doesn't depend on a parallel port
this one is usb
no it's not, at least not used with EMC2
ub is inherently "not realtime enough" for us
EPP is parport
yeah I wondered, since it appears to be USB-TTL bridge of some sort
so even worse latency
the good thing with a parport is that you will always be able to by a parport card
200K or 400K gates?
I think either would be fine
if you want to play around later, I'd get the 400k gate one
you can write your own VHDL for them, so they can be interesting toys
should I drive my geckos from it also, or will it over-stress the parport
the mesa connects to the entire parport, and all data goes through the 48 I/Os on the 7i43
you will need some interface hardware on the machine side, to isolate the FPGA pins
there is no "stress" on the parport
okay, the motion computations are done one the FPGA?
no, just waveform generation
not motion, but all fast-thread stuff like encoder counting and step / PWM generation
Mesa makes a protection/break out board (7I37TA) but there is no electrical isolation.
the 7i37 is isolated
16 in 8 out
so I need 2
oh, sorry I copied and pasted the wrong heading...
Could I plug the outputs in the parport inputs of my G540?
and skip the electrical isolation for these
(there's not a 5 stepgen + 5 encoder firmware for 7i43 .. it would have to be compiled specially)
can the controllers be mixed?
(4 axis parport, 1 axis 7i43)
yes, you can use one hal_parport and one hm2_7i43 (the name of the hal driver for the 7i43 card)
good, and I could use the 7i43 for the 5axis inputs?
the only pre-built firmwares that have more than 4 encoders have no step generators, so you could do all encoders on 7i43 and all step generators on the second dumb parport
if you want to venture into the world of building fpga firmwares, there are no technical barriers to having 5 encoders + 5 step generators on 7i43; it's just that this isn't provided in precompiled form
but I don't blame you if that doesn't sound like fun
well, I think I have enough free parport outputs for a 5th axis on the 540 (plus a separate g250)
so I could also use the hostmot only for inputs
I'd may adapt the firmwares later on, I did a very little bit of pfga programming long time ago
but for the moment I need indexers
me too, hungry
you guessed my motivation
hmm odd, the disc in this encoder implies that it's an absolute encoder
but the output is A / B / S
I think it's because of the index pulse
don't think its a remco, it's from a omron servo
seems to be like 6 orbits on the discs
sorry, wrong thread
hm, should be 10 orbits since it's a 1024 encoder
Epler has a cool A2D input scheme posted on his blog at: http://axis.unpy.net/01198594294
I would like to use this technique and map a channel as my feed override. Is there any info out there that shows this configuration? Thanks!
Larry: hello. I cannot help you - but jeff will probably be back in a few..
SWPadnos : I think this http://pico-systems.com/univstep.html
would be a clean solution
you can't use the encoders and still find out how many steps the stepgens have generated
well, the board knows
no, it doesn't
that boards stepgens are just frequency generators
and send back the encoder's output
they do not do positioning
so EMC can apply PID
its the purpose of the board, no?
yes, but not driving steppers with encoders
steppers can't be PID-controlled like servos
once they lose position, it's over
DaViruz: The tracks may be A/B/I, HallA.HallB,HallC
a servo can give a little extra juice if needed
PCW: i checkd it more closely, it's definitely a 10 track grey code absolute encoder
which outputs a, b, index
so what is the use for this board
no hall output
higher step frequency?
OK I thought you said 6 tracks, And I've seen 6 track encoder wheels
malem-cnc: pcw is mesa
oh, yeah, couldn't get a good look at first and it was a rough estimate
Does the encoder have absolute output as well? Otherwise wouldn't make economic sense
it doesn't, not that i can tell anyway
9 pin connector which is a+, a-, b+, b-, s+, s-, 5v, gnd, shield
SWPadnos: stepgen does give position (step counts)
SWPadnos: they can't "loose" position, the board make the stepper appears as servos
so emc2 is relying on encoders only
you can use the board without encoders
and THEN you can loose position since the board simulates the encoders out of steps generated
[17:57:07] <malem-cnc> http://pico-systems.com/univstep.html
firefox is receiving my typing in strange order, like an arrow key is stuck
you cannot use that board with encoders 'and' steppers
the 7i43 would be much more economical, though
Malem-cnc: The way step motors are used currently is open loop, the closed loop part just guarantees that the step generator
generates the proper number of steps (feedback is from count of steps generated, not motor position)
from the www : This board makes any step/direction drive appear to the computer as a servo system. Even if encoders are not used, the step rate generators provide a simulated encoder signal for the encoder counters to count.
i can't see why it wouldn't be possible to hook up real encoders to the pc instead of using the simulated encoder from the board?
it's not impossible, start writing
Some user (gtom?) has a system with linear encoders and runs the stepgen in velocity mode for a close loop system
Note that this system can still lose steps and stall, it willl detect this via a FE however
From this page :
[18:02:42] <malem-cnc> http://pico-systems.com/univstep_pins.html
it looks possible
sounds like a nice way to get rid of backlash if nothing else
but yeah once a stepper looses steps it usually stalls so i suppose rotary feedback wouldn't be of too much use
Its entirely possible to make a full FOC unstallable servo outs of a step motor with encoder feedback
but its requires:
1. Fast PID loop say 30 KHz or better
2. Current controlled driver (Step+dir is not what you want)
if you're going to put encoders on something it makes more sense (to me at least) to put them on a dc/ac motor and get a true servo
I can't afford it
A step motor can be a true servo, just 2 phase AC, inefficient, high torque but low speed
that being said, i'm very happy with my steppers for xyz and will probably never replace them
so in the end of the day, is it possible to used the feedback from encoder on servo system in some usefull way
I believe that all the malem-cnc want is to measure the position of the steppers so that detect if there are steps being lost.
yes, and maybe have EMC stop or correct when the offset is too large
the best would be to have EMC "learn" in wich situation it looses steps dans never try that again
Stop is easy the 'correct' part is where the problem lies
even stopping would probably be nice
yes, I realize that
[18:10:39] <geo01005> http://www.quicksilvercontrols.com/
<-- this company sells closed loop stepper drivers... might as well go for an AC servo at their prices though.
If a step motor is about to lose a step due to resonance or excessive load, nothnig you can do with step+dir will help
in fact, for my very need, just reporting the true position would be enough, as long as EMC applies the soft limits using it
PCW could probably whip one up a 2-phase driver/control system for steppers in a few hours ;)
I already have the drivers
Its really no different than a 3 phase AC servo drive, just 2 phase and very high drive frequency
PCW: is EMC prepared for such a functionnality (react to a delta between DRO and encoder
should be entirely possible to create a system in hal that tracks error between commanded position and encoder feedback and halts machine if it goes out of limit
that system is already there :)
the following error is the difference between the commanded position and the feedback postion.
For full servo, no I think it would be a stretch because of the loop rate
for using stepmotors with encoder feedback a high microstep count step+dir driver
in close loop velocity mode: sure, known to work
I have a g540 (g250) driving 200 step/r steppers
and a 512counts encoder with index
for just checking for missed step, should be simple: if abs (step_counts - scaled_encoder_counts) > FEL --> FE
You will have to get the initial offsets fixed and scale factors right but should be easy
i'm actually tempted to do this on my own machine now
too bad i can't spare the i/o
you can actually set that up now. Instead of using feedback from the stepgen - you use feeback from the encoder. a few have done this. then setting emc's ferrors works
ah, I wondered what these (FERROR) where used for
sure you can use encoders for feedback. you cannot make the machine magically work perfectly even though you ask it to do something it can't - just don't confuse these two things
[18:24:36] <Jymmm> http://www.boston.com/bigpicture/2009/06/recent_scenes_from_the_iss.html
I don't expect the machine to do moves that it could't before
malem-cnc: FERROR is how you tell EMC to stop if the actual machine position deviates too far from the commanded position
great, so I wont have to code anything once I configure the encoders
I may try to code some algorithm so that the control learns how not to miss steps
hmm, this machine that I have has a new install of the live CD on it and it says:
bash: comp: command not found.
I don't remember having to do anything special to get comp to work on my other EMC boxes...
[18:32:10] <geo01005> http://www.linuxcnc.org/docs/devel/html/hal_comp.html
geo01005: what does dpkg -l emc2 say about which emc2 package you have installed?
I'm not sure what the rest means.
at the beginning of the line does it say in?
what does that mean?
isn't comp part of emc2-dev ?
it means 2.3.3 is installed
* cradek points at alex
oh, I thought that was the point of comp, so that you could install a component without emc2-dev?
emc2-dev is a minimal package which helps you do things like comp
it doesn't mean get the full emc2 source + all dependencies to build it
sudo apt-get install emc2-dev
and you should be set
(it's probably installed by default in the LiveCD, so that might be how you got it)
why isn't that part of the live install?
I see it's not mentioned here: http://www.linuxcnc.org/docs/devel/html/hal_comp.html
geo01005: no room for build-essential
so am I going to need build-essential as well?
Clearly label each submission with its license. Submissions hosted on linuxcnc.org must be as free or freer than emc2. This means approximately that they have a license accepted under the [Debian Free Software Guidelines]. GPL and LGPL are two examples of permitted licenses. "Free For Noncommercial Use" is an example of a non-permitted license.
* For all types of file, include the standard license block indicated by the license being used.
* For ".c" components, also specify MODULE_LICENSE("...");.
I meant: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?ContributedComponents#How_to_compile_and_install_a_component
* For ".comp" components compatible with EMC2.1 and later, also specify MODULE_LICENSE("...");.
mentions emc2-dev and build-essential
I could have sworn bjt had added a mention of it in the comp docs though :-/
thanks jelper... One last question.
when I do sudo comp --install component.comp after I have already installed a component with the same name it will simply replace the old component wit the new one right?
good, that is the only way I know how to test/debug my comp code.
(jepler) Jeff, you have a cool A2D input scheme posted on his blog at: http://axis.unpy.net/01198594294
I would like to use this technique and map a channel as my feed override. Is there any info out there that shows this configuration? Thanks!
Larry: use an encoder knob for feed override, and it will cooperate with the other feed override controls
if you specifically want to use a pot and adc, then you can hook the analog value to motion.adaptive-feed.
When adaptive feed is enabled with M52 P1, the commanded veloc‐
ity is multiplied by this value. This effect is multiplicative
with the NML-level feed override value and motion.feed-hold.
Thanks -- there is a pot already in the old machine -- so I will look at both solutions, the commport solution may be easier for me in the short term. Thanks again!
btw EMC 2.3.3 is working perfectly here, thanks to all the developers working on it!
So say that I have a filter on my machine that needs to be replaced every 200 hours of operation. I would like to have my machine keep track of how long the current filter has been in the machine.
good luck with that :)
Is there an good way to save the time that the filter has been in the machine when I exit the hal?
oh that fun huh?
there are no time functions in HAL
Well you could have CL count the time for you.
you could do a little wrapper shell script to start emc, and have it log the time.
but you could certainly have a program that runs in userspace and writes the time when it's told to exit
he's not using EMC, just HAL
same principle applies though
loadusr timekeeper logfilename
when it runs, it notes the time and reads elapsed from logfilename
when it's told to stop, it saves the (current time - startup time)+previously read running total to the file
So in the main hal file that I run the last line is the one that waits for the pyvcp window to close.
I was wondering if I could just have the next line be "save all temp.hal"
the last line would be one that sends some nice signal to your timekeeper
then if the number of minutes the thing had been on was a hal pin or parameter then it could be saved.
halcmd setp component.initialtime $(cat logfile)
(to read the time at the beginning)
and halcmd -s show pin component.totaltime > logfile
to save it
then all it needs to do is keep track of when its started and stopped, and output (initialtime + $now-starttime) on the totaltime pin
That would work.
userspace even - doesn't need to be an RT component
here I am not very savvy with linux, $(cat logfile) does mean a ton to me...
* geo01005 goes to read about cat
$(...) executes the command inside () and sticks it on the command line for execution
so do backquotes: `ls`
this is just by the nature of halcmd?
that will put the output of ls in the command to be executed
no, that's a shell thing
so are most shell thing valid in halcmd?
no, almost none of them are
or rather halcmd is executed in the shell...
halcmd is executed by the shell
so any substitutions are done by the shell before halcmd gets them
in a hal file, that isn't so true
so that wouldn't work in a hal file ?
so if you do "halcmd -f myfile.hal", that uses halcmd's command parsing
there is limited substitution in hal files
but if you run the system with a script (the one that runs "halcmd -f config.hal"), then you can add those two commands to the file
in fact, you can just do the work in the shell in the first place
you can set a variable to the start time, then add the elapsed time to the saved time value
(the shell has a reasonably powerful set of features)
Sorry I have to reread this a bunch of times before I get it. :)
ok, the date command can output seconds since 1970 (but it will have to be changed over to 64-bit numbers by 2037 or 2038 I think)
will print a large number, in seconds
Is there somewhere that shows what halrun does to setup the rt stuff?
I suppose the source.
yeah. halrun would be a good place to look :)
I'll have to mull this over... The other thing I was thinking of was using the sampler component... But that doesn't look any easier, and I don't need real time stuff.
sampler won't help with time tracking
well only if you had a component that was keeping track of time.
then I would still have to get the initial time back in on start up.
I may not have read the little bit of doc in the source for the sampler component very well.
try this http://pastebin.ca/1513005
I may have made some typos - I was transcribing from a one-line "script" on another non-net-connected machine
just run it a few times and see what happens
Ok, I'll try that.
But one note, I'm would like to only count the time that a certain pump in the system is on.
well too bad. you can't do that :)
how fast does it cycle?
(once a minute, once a second ...)
oh it will be one for minutes to hours at a time.
controlled by a HAL pin?
well, that script has the general idea. You'll need to add some complexity to get it to work based on a HAL pin
in that case a userspace python component or something like that may be the best option.
sure. the thing I cleverly avoided with the script was dealing with signals, which is how programs get stopped
you could have a HAL pin that causes the starttime variable to get set when it goes high, and then write to the file when the pin goes low
raise a pin, and use an analog chart recorder. :-)
but you could lose some time if your component stops running while that pin is high (or before it manages to write the file)
big big cap and resistor plus a comparator - just do it analog :)
that would be fun :)
or a electro-mechanical timer, like for a tractor or something.
SWPadnos, I'm not sure I get what you are saying by "which is how programs get stopped".
I think all HAL/RTAPI programs get sent the "TERM" signal when you exit from halcmd (using halrun)
and if they don't shut down, they get the KILL signal, which kills them whether they like it or not
if you want the program to do something when it exits, you need to catch that signal (and probably INT, maybe others) and do something in the signal handler
google will be your friend for specifics