I had one cheat me no less than 3 times during one transaction at a subway sandwich shop I finally just gave up let her keep the 15 cent difference I'd whittled it down to
All the russian girls I have met have been lovely, if scary.
andypugh well count your change
I swear she stiffed me I brought it to her attention so she tried to stiff me again on the deal I tried again and was like forget it
here its largely Poles. As half my school were polish I barely notice the difference.
well I'm half polish myself
And, as a computational aside, the british/US/not-quite-given-up-yet French etc would quite probably have lost the last major Unpleasantness without the Poles.
I guess I have to call myself of pan-european extraction I'm irish german italian and polish
so yeah sure I like to drink
If anyone is curious about my previous statement: http://en.wikipedia.org/wiki/Bomba_(cryptography)
that in reference to bletchley park ?
Very much indirectly. But yes.
what was that movie where the guys got seduced by female german spies?
was pretty good as i can recall
Probably the one where the US stole an enigma machine and won the war. Lets not go there
but if you're really into that sort of stuff nothing beats Cryptonomicon
I thought it was the poles who nicked one out of a downed german airplane?
though the US did get one out of a submarine didn't we?
No, that was the RAF (from a sub) The Poles broke Enigma in 1932
What's up davidf ?
rommel knew it was cracked
The Poles bought a commercial Enigma and used that (and a lot of Clever to figure out the original military 3-disc version)
^ THat way. :)
Any more machine prospects?
pfred1: Really? The biggest use of it was being able to check that the Normandy landings would be a surprise.
andypugh actually monty relied heavily on it to set up his african campaign
Endeavour, I was thinking, for plastic printing, and certainly experimenting, you should be OK with ordinary all thread for screws and home made rails.
Endeavour, Also, An old scanner or two would provide rails.
Yeah, but I'd prefer to have a more versatile machine.
And motors, belts, etc
I'd still need everything else for driving them; steppers, drivers, etc.
Then the Taig is a goo candidate
Yes, it was a horrible situation for Churchill etc, they didn't dare do anything to give the game away, so had to actively not warn convoys etc.
With the router I can actually make decent rigid parts for another design.
But maybe a bit pricey
Taig is out of my range.
andypugh well in bombings they'd send out a scout plane then a bomb run
And I does have the drawback of only 5.5 inches travel on X
It not I
LOL more as I ponder that one.
A scanner with extra axes sound like a good starting point. An X/Y plotter possibly more so
I just got my acme leads i bought off enco
I'm going to try to make my own tap out of a piece of it to tap either some fiber material I have here or HDPE
because the taps are crazy expensive and sort of odd too
andypugh, I have one of those old HP xy Plotters 74-something or other.
But it works by rollers on the paper for X
that and for linear bearings I'm going skate bearings and angle iron method
But very cool to watch, esp the pen change. Quite impressive for donosaur tech :)
rod linears seem questionable unless you spend the money to me
I used one to make actual physical parts. Slicing STL files into paper-thick slices of adhesive paper and assembling in to stacks.
andypugh, wow. interesting idea
Like the paper clock thing
Replaced pen with exacto knife or something?
I made a holder for a conventional vinyl cutting knife
they pivot right?
pfred1, I saw a website long ago with a how-to on making three-bearing linear slides for round rods. He actually made a casting for the brackets and milled it to accept the bearings
davidf yeah i saw the same too fiddly for me
surpluscenter has cheap acme rods and cheapish nuts... wonder if you could use a pair of the nuts for a DIY anti-backlash thing
davidf and with his method you couldn't support the rod either
fiddly. OK. :)
the twin angle iron and skate bearing technique looks pretty solid to me
still it seems that three bearings on rods might be a good way to go.
Then I painted the parts with superglue, and sent them to a brassfounders. My bike panniers have been hanging on them ever since (though I only know that they work to 140)
the way they really do it is with bearing sleeves
but even it doesn't look very durable to me
Yes, if reamed, broze bearings can be super accurate
Got to keep 'em clean
like this: http://www.vxb.com/ball-bearings-images/kit988-1.jpg
But I just thought getting super straight ways with angle rion might be a bit difficult
this is my favorite home linear hack: http://cr4.globalspec.com/PostImages/200902/IMG_3795_715B08D9-CBFE-66F3-F01EF2DAB26920C2.jpg
I'd call that brilliant
Would be nice to make some molds of routed parts then do some bronze castings.
I've cast aluminum its about as easy as barbequing a burger
Aluminum melts pretty hot though?
nah like 1200 F
1100 I think
That's fairly hot.
really you can do it on an open fire with a mild blast
What's Bronze at?
Propane tank, plaster mold
heh... I cast lead using aluminum pans
davidf dude i did it with pine scrap I got out of my yard
Broze is quite high I think
I believe that easily
when i did it I was like dang thats easy
1100C for bronze iirc
right That's what I thought for Bronze
bronze is one step away from iron
yeah bronze you probably need real crucible and burner and furnace
iron probably is easier with a cupola furnace
who's gonna make one of them when a blower works so well?
pfred1, that last pic was extruded al angle right?
davidf yes probably not the best material I just used it as a visual example of the design
I'll use polished steel
and I'm not building an over under gantry either
Actually probably straighter and smoother than iron, and with ball bearings, little wear so pretty good solution imo
al I mean
Is there a way to get EMC to reload the ini file and the hal file without terminating the running copy and starting up again? (Have to reset the scope and all if I restart)
davidf: Paper parts: http://picasaweb.google.com/lh/photo/tjht3D69CSp25i9tYwD7dg?feat=directlink
OMG someone's on topic.
as far as cheapie home brewed linears go i've seen no better
Wesbaker, nope, been there
Second question is more difficult
if V groove bearings weren't so crazy expensive I'd say they're better but they're not so
The scope should save its config, though
I just wanted it while hacking my ini after stepperconf
I gave up when I realised it's best to run stepperconf in editmode
I found with stepperconf I'd have to close the popup dialog box in order to make some value changes
even in the popup box
I am familiar with basic PID tuning from process control. Ovens in particular. P only control gives me an offset. Add I and cancel the offset. Without getting into D or anything, here's my situation: I am tuning the axis on a 3 axis linear machine. During the accelleration portion, the error continually climbs. At constant velocity, the error stays and never diminishes.
I can add I to several orders of magnitude and it still doesn't begin to cancel the error
If I add enough, it starts to be unstable, but even then, it oscillates around the 20 thou following error and doesn't move towards zero error.
I eventually realised that hand-editing was more flexible than stepperconf. I approve of steppeconf (and pnc conf) as they make EMC2 less daunting, but thy do mask so much flexibility
P only produces about a 15 thou following error.
P plus I doesn't really change it.
A P value of 90 makes it unstable.
P of 70 is stable if you don't mind the large following errors.
andypugh I like gui configs for making skeleton ini files
Add an I of 50, 500, 1000, 2,000. It doesn't really change the picture.
WesBaker: Are you possibly one-derivative off? Perhaps you are tuning position to a velocity error or vice-versa?
Constant velocity is constant error and the I term in the loop doesn't seem to close that error
andypugh but to me it does seem like stepperconf could be improved upon just from my dealings with it
As I understaind it I is only for final value of position _ not from EMC stuff, just in general
Andy: Not sure what you mean.
What is the input to your PID, and where does the output go?
Andy: Well, I am making some assumptions with little knowledge of EMC, but I believe the output is going to a current command to my servo drive. The input is the error or the difference between the target velocity and the velocity feedback from the encoder
I have started with a standard HM2-Servo example file
I know how to read the HAL file, and the INI. I understand the pin mappings etc.
Is there a target velocity?
If I jog a single axis, EMC is creating a motion profile that obeys my max accelleration and velocity. I can chart that line on my halscope.
I also can chart the feedback from my encoder for velocity
The difference between the two is the error and that is what is the input to the PID loop
It reacts somewhat as I expect.
hi... i have a basic question : i have a file that must be symlinked to the ~/emc2/nc_files dir.
and i don't know how to do that
penguin ln -s <what I have> <what I want>
But if my target velocity increases from 0 to 900 in/min at my accell rate, my error increases proportionally the whole time from zero to about 20 thou.
I am rather out of my depth here, I confess, as I haven't yet done a non-stepper system. I do have a PID for spindle speed, though. In that case as the only input is first-order error the tuning is all in the I term, I run zero P.
I can imagine how that makes sense for a spindle.
pfred1: it was a command or a joke?
penguin I guess its a joke to you
Is there a way to post a screen shot to the group?
Good, so at least we are seeing things the same way.
penguin try this man ls
man ln even
i enter "man ln even" in the terminal?
Screenshots to imagebin.ca, HAL and INI to pastebin.ca
penguin sure why not it can't hurt
Andy: Sorry, I don't understand.
i think i was a joke
ln -s blah/blah/blah/file.ngc ~/emc2/nc_files/file.ngc
ok... i will try that
which is what you have followed by what yo uwant
WesBaker: if you have an error proportional to velocity, you can tune it out with FF1
I think, about repeating the filename at the end
For reasons that are unclear, EMC2 trust http://www.pastebin.ca
more than the alternatives
which is how ln works
WesBaker, 900 in/min? I've only used steppers. 900 is like lightning fast to me...
I used imagebin.ca because it was clean, but they've gone all adverts since then
davidf steppers can do that depending on the drive system belted is as fast if not faster
oh no, that was imageshack I've gone off, even tho it's more permanent
MattyMatt: I have discovered that by putting a small negative number in FF1 that I can cancel most of this error. But it is like black magic and I can't find anything documented. It is causing other little problems (like extended settling times near zero velocity) and I couldn't find anything documented that told me what FF0,1,2 did and why.
racks can be pretty fast too
* MattyMatt knows nothing about servos
pfred1, I should have said I've only used neam 23 steppers :)
MattyMatt they're DC motors wiht encoders
pfred1 yeah OK I know what they are, but I've never had to tune a PID loop
PCW: The message I addressed to MattyMatt was for you.
The machine will do 900 in/min with less than 20% torque output. This thing will fly with EMC if I can ever get it tuned.
davidf I saw a vid on youtube of a guy showing off his 1000 IP/M machine that was stepper based
but he used belt drive
FF1 is velocity feed forward
imagine a servo moving at a constant (high) speed
without FF1 you would need an sizeable error at the input to the PID loop to generate
the outpu to drive your servos that the (high) velocity
knocked off one of his limit switches too it was funny
that woodwork machine? big steppers on that
Wes baker: what are you using for servos?
ln command not found
PCW: I thought the I term would kick in as the small error persisted and cancel it out to zero. Are there docs on "velocity feed forward". The definition isn't getting me what I need
penguin echo $PATH its in /bin for me
through my thick skull
just looking at my font :)
Like, I said. Adding FF1 at a negative number helps but it doesn't make logical sense to me and is causing a small
arghh last line should be "The output to drive your servos at that high velocity"
settling error at the end of each move as the axis
I am groping here myself, but for an input-to-output error D you have P = gD, I = k(Int D), D = k(dD/dt). If your measured error is an order removed from your input "effect" (as speed is from position, or torque from speed) then you might want to tune elsewhere. I think FF1 is int2(D) and FF2 is int3( D) but I await correction.
very slowly creeps to zero error
PCW: My output is a current output not a velocity output so it actually is taking very little command signal to hold speed. It just has to fight friction.
pfred1 you mean /bin from the file system?
maybe their PC isn't fast enough to figure it out or the base period is too fast or something?
penguin no bin from dust
FF1 is not error related, but rather just proportional to commanded velocity
OK, that comment helps.
penguin if ln isn't on your path your system is not right
I'm puzzled by the fact that I have to use a negative number (just learned by trial and error).
pfred1, i have a bin directory in the file system
(thats why its call feed-forward) the PID terms are all _feedback_ terms
I'm also puzzled by why it is creating the settling error at the end of the move.
only i don't understand what i need to do with it
(I'm so ashamed)
Oh. Feed Foward. Now I understand something. Learned something there.
Here's a simple question that might help me understand how EMC tuning works.
penguin ln is part of the coreutils package means you have to have it
If I have a constant following error or .020 inches during a constant velocity move, why doesn't the I term in the PID loop gradually come into play and increase the output so as to cancel that error.
FWIW in my day job we have controllers where P I and D are pulled out of 3D maps where the axes are other variables, and we still find we need more subtlety when the pesky users turn the AC on.
penguin that is good
The I term should pull it in evetually
ln: creating symbolic link `/home/agustin/emc2/nc_files/M101': File exists
penguin a lot of file manages can make symbolic links for you as well today
PCW: that is what I thought and that is why I gave up tuning and came to the group.
The I term will not pull it in with my setup.
If I add enough I, the error will oscillate around the .020 mark but it will not drift either way.
I think the real question is why it isn't.
its probably a unionized shop
is the integral limit set?
Again, I think I olny affects final position
I am 20 feet from the machine. What is integral limit and how do I check?
So, I does have an effect? I was about to question whether you were actually changing what you thought you were changning (ie HAL wiring error)
I'm not all that familiar with EMCs PID component, let me check
Andy: Yes, changing the I parameter has an effect, but it is not at all like the effect I expected. As I said, it does eventually cause the output to oscillate but it oscillates around the error of .020 rather than working to cancel the error.
I know enough about the hal file and the ini file to look and make sure the signals are mapped. They are.
P terms seems to work exactly as I expect.
symlink it's like create a icon in windows
D seems to as well but that one is more difficult to determin. It has a dampening effect
penguin it is where microsoft got the idea from
Anybody know how to get a screen shot in linux/ubuntu? Ctl-alt-printscreen like windows?
you can do it right from the menu today though
gimp takes them too
but the traditional old skewl method was xwd
xwd --root > myscreen.xwd though its been hears so don't quote me on it :)
I was close xwd -root > screendump.xwd
I found a little utility on the ubuntu 'accessories' menu.\
yeah nder graphics right?
davidf thats only giving me a single window
oh yeah you're right. Sorry
hey I never knew about it
I remember like 15 years ago using xwd though :)
LOL just printscreen. HA.
I'd always have to open them in gimp to make them into a file format that made more sense
pcw: I'm gonna walk over t the machine. will be back.
That gets the whole thing. You might know it would be as simple as possible! LOL
xwd dumps in raw bitmap format or something
those were the days back when Linux was new exciting and fresh
printscreen was the last thing I tried. funny.
WesBaker, 1. SET KP. Starting with KP=0, KI=0 and KD=0, increase KP until the output starts overshooting and ringing significantly.
2. SET KD. Increase KD until the overshoot is reduced to an acceptable level.
3. SET KI. Increase KI until the final error is equal to zero.
and you had to write your chat and pap scripts by hand in order toget online
WesBaker, that was from here: http://www.ecircuitcenter.com/Circuits/pid1/pid1.htm
WesBaker: Have you tried negative I terms? (clutching at straws, but I have known it to work)
(i'm installing to run graster in EMC2... it isn't very excinting at the moment)
Can anyone recommend low cost analog input drives for ac servos
gotta go 'Nite all
WesBaker: You could cheat and use http://www.linuxcnc.org/docview/html//man/man9/at_pid.9.html
good bye old man
60-2 years old
ha you whipper-snapper.
60 is the new 40 something right?
davidf: All that makes sense and is something I am comfortable with. But EMC is not acting that way for me with my setup
as stated, setting the I term is not cancelling the final error in any way
davidf: If that makes me 20-something again, then it get my vote
WesBaker, EMC PID stuff is definitely out of my league just thought it couldn't hurt to post that
andypugh is 40 ?
andypugh: No, never tried that. It seems to make my brain hurt to think how it could work, but I can poke it in and see what happens
I am 43, I think.
I just act young and stupid
andypugh hey I didn't lose track myself til just last year
andypugh, cant remember? uhoh.
now you're officially old.
andy: Now that auto tune thing looks interesting. Hmmm.
davidf one year is much like the next after a while
and before a while too
in dog years, it is like 1000 years
yeah dogs don't live quite as long as i already have
yeah ancient. Don't worry squirt you'll get there too.
On the plus side, 5% of people have never died, we might have time yet
tell me about it i recently heard a stat that says more pwople were born in the past 10 years than the previous 2,000
andypugh, Now that's really quite interesting. Shows where we are on the exponential growth curve.
its a tough thing to wrap my head around
we are a plague
guess we better step up the space program...
we've already proven that humans aren't worth escape velocity
pfred1, speak for yourself
not even the best of us are
Absolutely. We are the only way that the only life we know to exist will survive the death of our sun.
well our Sun has at least another 5 billion good years left in it
Um, make that Migt survive.
which is longer than there's been lifeo n this planet
Wel, yes, but I hope to be there :)
over 90% of that life is extinct today
pcs: you still out there?
and we're well on our way to twilight now ourselves
You mean PCW?
PCW: you still out there?
PWM you still out there?
davidf our present system os so unsustainable I'm amazed it works as well as it does
pfred1, It works? :)
quite well for me
Good for you then just kidding
But we are truly a flash in the pan in the grand scheme of things
pfred1: How old are you? My generation are surprised to be here still, this looks like an up-slope. When I was 14 I was the only kid in my class who thought we might not be dead in a buclear conflagration before we left skool. (so we didn't pay much attention to learning to spell)
I donno we're almost living in the age of buck rodgers compared to back as far as i can remember
andypugh I'm just a couple years older than you are i have a good memory though
andypugh like i can remember the first Moon landing live
Yes still here
andypugh you'd have been a bit too young to recall that even if you'd watched it
and Buck Rodgers if that says anything. :)
davidf when I was a little kid the FM radio band was some strange thing
pfred1: But I agree, we have to get used to the idea that perpetual economic growth is impossible on a finite planet.
no one thought of personal computers or sell phones that was dick tracy stuff
Endeavour: wow, that's some storm
andypugh oh i donno the information age is making enormous advances possible
today we can do a lot more with a lot less
As a kid my high tech electronics was discrete transistor circuits. My brother bought a potted module the size of an ice cuge that was called an integrated circuit. LOL. Had like 5 components encased in epoxy.
pfred1: John Brunner thought of comoputer viruses in 1972. I find that incredible.
I'm pretty sure there actually were computer viruses in the late 60s
morfic, yeah what Endeavour siad...
Negative I works more like the I term should work
[01:49:51] <morfic> http://www.weather.com/weather/map/interactive/78209?animation=true
Something must be wrong with my configuration
thought to remember Endeavour was in austin
(Anybody interested in EMC?)
andypugh but compared to what we think of as computer viruses today they'd be more like cases of the sniffles
Sorry Wes, yes, we should get back to the point]
morfic: Ah, yes.
Should still be getting another round in a bit
WesBaker, you can invert any i/o line.
Do all your position commands work as expected as far as direction?
I use positive I in my zero-P PID, so actually, now I think about it negative I to cancel steady-state errors probably makes sense.
WesBaker if i had to take a wild guess I'd think your base period or something was a bit too optomistic
Yes, the axis move in the expected direction and the magnitude and direction of the DRO's are correct
But wouldn't he be getting real time delay error messages?
WesBaker: As a random, wild, experiment, have you tried a zero-P I-only tuning?
servo-thread period is 1000 microseconds (uSec)
Pretty fast insn't it?
Mine is like 46K
I guess my hunch from over an hour ago was pretty on target
No wait nano secs right?
1000 microseconds is 1 ms, which is the standard servo period
it's written as 1000000 nanoseconds in the files though
The EMC2 PID P term is simply the error x gain. In some PID schemas the P term is the integral of that. The ECM2 PID has no "memory" on the P term.
P should never be integrated
its "P"roportional to the instantaneous error
I believe the sign is such that positive numbers make sense
ie, error = command-actual
SWPadnos: I agree, but some controllers do output a constant term that changes according to the error, rather than being the error
so + error actually means you need to go more positive to catch up
P scales the error
we may be talking past each other though, I'm sure you've seen something I haven't :)
I can't get any sensible movement with I only. I have the following errors wide to play with it, but can't get I only to make it move.
why would you try to use only I?
it would have terrible response
OK, it was just an idea
my question too
I-only is what I use for my spindle.
that seems strange. don't you have some FF0 or FF1 in there too?
andy: I only on a spingle might work, You don't care about following error. You just want it to get there in a dozen seconds or something
WesBaker, did you ever post your config files on pastebin?
I don't know how.
I don't know why I asked that, I'm about to go to sleep :)
go to http://pastebin.ca
load the config files in an editor (like gedit), copy, paste
I have speed command and measured speed. There is no "constant variable" there to measure, so using the I term to "remember" the speed command thread-to-thread makes sense
sorry, that didn't make sense :)
Sorry, I meant "constant variable" to modify
Typically you add the P term to your output variable.
commanded speed is the command, speed feedback is the feedback, and the PID has and internal integrator and "last value" for derivative
you add all of them
(P * error) + (I * integral of error) + (D * derivative of error)
The PID has only one output, which is the speed error (modified by I and D)
no, PID output is a new control value
which includes all of the terms
plus FF0-FF2 in emc
(proportional to command, first derivative of command, second derivative of command, I believe)
No. Consider speed request 1000 rpm, actual speed 800rpm, 200 rpm is not the correct voltage to send to the FVD
it is if you have P=1 and all other terms = 0
my box kicked me off. I think I am back
I figured out the file posting thing. I guess I post there and then come back here and past a link.
SWPadnos: Convince me :-)
my cache was cleared when it kicked me off so I may have missed something important.
[02:10:12] <SWPadnos> http://en.wikipedia.org/wiki/PID_controller
note that I is the integral of the error, not the integral of the command
(and P and D are also based solely on the error term, not the command)
As I see it, given a 10V - 10000rpm VFD, a required speed of 1000rpm and an actual speed of 800rpm 0.2 (P =1, I = 0, D =0) is going to give you 200 absolute rpm, not 200 _more_ rpm
well, yes, that's true, except that when you start, the error is 1000 (assuming you start at 0 RPM)
so the error is actually 1000, and with P=1, the control value will be 1000 RPM
until the spindle speeds up
Yes, and as you get closer to the set speed, your speed request drops.
which is a sign of bad tuning
you need much higher P terms, usually in the 10-1000 range
especially if that's the only term, which isn't a great idea in most cases
if you want to output the command value, you set FF1 to 1
or maybe it's FF0, I don't remember L()
since FFx work on the command, not the error
I think it comes down to where your input and output are on the "calculus order"
the only thing that's order dependent is calculating the integral and derivative of the error
since you have to insure that the right thing gets subtracted
swpadnos: This is making sense. Standard PID stuff like in a PLC.
swpadnos: I'm geting a clear picture of the FF terms. This is helping.
other than that, you have a set of independent equations which are summed together to generate a control value
swpadnos: but I still think something is wrong with my config
WesBaker, yes, PID is PID (but PID tuning is not PID tuning :) )
look at the manpage for the hal PID
and/or the HTML or PDF documentation
it's all explained in detail, IIRC
I do not think that you can do spindle speed with P only. And with multiple gears choosing the right FF1 will be a problem. I-only might be wrong, but it works.
do you sum the PID output with the command value?
using a sum2 component or similar
I don't have a command value...
spindle speed is the command
motion.spindle-speed-out or whatever
[02:19:12] <SWPadnos> http://www.linuxcnc.org/docs/2.4/html/man/man9/pid.9.html
But yes, I did try using a sum2 on on spindle speed + PID and it worked poorly.
[02:19:22] <SWPadnos> http://www.linuxcnc.org/docs/2.4/html/motion_pid_theory.html
with I only, it should be pretty good after a while
but it's easier to just use FF0=1 instead ;)
then the PID is also the sum
Using the I term as a "memory" proved to be far more adaptable to gear changes.
it's only a memory of the error though, so I don't know what really happened there
My hal and ini files: http://pastebin.ca/1876381
where was I supposed to put images?
do you need to post images>
Yes, pastebin.ca gave me a place to paste text but I thought you told me somwhere else to put images.
Is this system small enough that you can rotate the motor shaft by hand?
Putting in a small error by pushing the motor shaft around should cause the PID loop to correct
the error with only an integral term
If it doesn't eventually fight back with full force with even a small error, the I term is busted somehow (or limited)
OK, here's the halscope trace of my error in a short linear move.
Image at: http://imagebin.ca/view/rVToITS8.html
SWPadnos: The internal calculation is something like I = I +Igain x error, so can be seen either as a calculus-level above P, or simply as saving you doing that addition in a separate sum2 block.
(Yes, I know he has left, but I need to sleep)
no, that's not the calculation
it's "integrator = integrator + present_error"
Isn't that what I said?
error = command - feedback
no, notice that there was no gain in that equation
new_integrator_value = old_integrator_value + new_error_value
Yes, so the I term _changes_ depending on the error, and the P term _is_ the error
well, yes and no
So where does the I-gain value come in?
you have to keep straight in your mind that P, I, and D are coefficients which are multiplied by the internal error, integrator, and differentiator values
there are 6 values involved, plus another 6 when you count FFx
So, what is the actual equation for the I part of the PID output?
the caluclated error and its integral and derivative are three values, the P, I, and D settings are the other three
new_integrator_value = old_integrator_value + new_error_value
the I component of the output is Igain * new_integrator_value
similarly for the other terms
output = sum (TERMx * GAINx)
it's much easier to understand if you read the code, it's about 20 lines
Can you guys still see my image link or has it scrolled off?
I see it
I can scroll back to when I logged in
halscope of my tuning problem: http://imagebin.ca/view/rVToITS8.html
OK. I see the difference. The gain is applied to the I term, not the rate of change of the I term. It still converges.
This shows how my error climbs at a constant rate during accelleration and maintains a fairly constant offset from the desired zero during constant velocity
yes, it's more or less equivalent if the gain never changes
WesBaker, yes, you have a tuning problem :)
Sure looks like I is broken
the output scale is probably not set to engineering units (1.000 looks like a default value)
Yes, it looks like I is just broken
I did actually start off using it conventionally, adding the PID output to the command value, but it worked rather poorly when I changed gear. It works rather well in I-only mode.
that's very weird. if you have a chance, post the hal/ini files
I'll look tomorrow ;)
Thread order problem?
I posted the hal and ini at: http://pastebin.ca/1876381
bye time to go home
WesBaker: Another shake of the dice would be to put the PID addf lines between the motion thread lines (the functions execute in the order they are added to the thread) but frankly I doubt that is it.
WesBaker: Where did that HAL file come from?
andy: It's my hal file from my machine
What kind of drives do you have?
I purchased a used router table equipped with motors and drives. The OEM outfitted it with a computer and proprietary controller card
the computer and card were gone
The servo motors are simple brush type motors with 5v quad type 500 line encoders
I can't remember the brand of the amp card. Copely maybe.
The encoders don't come back to the drives at all. Just to the controller (emc).
Do the motors have tachometers?
No tach on the motor. Just encoders.
The drive has no way to determine velocity
the analog signal from EMC can only mean torque
Not sure what you mean by "Analog in?"
The drive takes a +/- 10v signal from it's controller (EMC). +10v = max forward current/torque. -10v is max reverse
that looks like a decent tuning to me. FF1 will null the velocity-proportional error, and gently fiddling with D will probably get rid of that high frequency eoscillation
Adding D slowly does dampen it and reduce the oscillation you see. I was trying to illustrate my primary issue so on that screen shot, I zeroed out all the FF values and the D value
sorry I didn't read everything - what's the primary issue?
Primary issue is that I didn't understand why adding I (even in large amounts) does not cause the error to cancel out over time with the large error over the long time.
I'm assuming something must be broken somewhere since even with large I valies, I still get that fairly constatnt following error at constant velocity.
One guy suggested I try a negative value for I. That actually causes the error to drift towards zero during constant velocity movement, but it winds up and screws up the stop and forces it to over-shoot.
are you sure pid.0.Igain is getting set? how about pid.0.maxerrorI? are you getting pid.0.saturated?
Positive values to FF1 make the constant error worse
negative values in FF1 do in fact allow me to get the constant velocity followin error near zero but the accell and decel are still ugly.
depend on their particular ugliness FF2 may help
WesBaker, dumb question. Does this behave the same way at slower (much slower) velocity?
If I add small negative values to FF0, that whole error curve moves up. The slope of the errors during accel and decell are reduced, but instead of having an error that starts at zero and moves more and more negative during accelleration, I have an error that is pushed positive quickly and gradually works it's way toward zero.
you surely don't want FF0
The other issue is that at the end of the moves, it has a long setteling time.
FF2 for accell deccel FF0 is bias, you dont want that unless you are going against a spring or gravity
The best I got was to to Zig Nichols on the PID values, put very small negative numbers in FF0 and FF1 and a small positive number in FF2. But as far as the FF numbers goes, I was just playing aorund blindly.
did you check your pid.N.maxerrorI
I do not know what pid.N.maxerrorI is. I assume it's a value in the ini or hal though. I'll take a look.
if you aren't getting I response, either your pid Igain isn't getting set, or you have maxerrorI set, or something else goofy is wrong
so yeah, look directly at the hal pins to check
pid.N.maxerrorI does not exist in my hal file. I found the section where it is mapping the variable values from the ini file to the appropriate pins and where it sets things like maxoutput.
No mention of maxerrorI
examine the hal pins while emc is actually running
hal file and ini file are posted at http://pastebin.ca/1876381
I will check that pin value in the scope while it is painting the traces like you see at http://imagebin.ca/view/rVToITS8.html
I can't get to the machine right now or I would test and report
oh no - that's maddening :-/
I don't see anything obvious wrong in the files (I looked for copy/paste errors in the pid hookups)
It is not like the I function has zero response. Huge postivie values contribute to the oscillation in error and output that you see in the existing trace.
negative numbers have the effect of gradually cancelling the error but VERY slowly. Over seconds.
I better turn the lights out.
Thanks for looking.
if you add debug=1 to your pid loadrt lines, you'll get more pins
Has anyone here done any 3D printing?
those include the value of the integrator
I'll start it up again when there is more daylight and closer access ot the macine
you can see exactly what it's doing, then
loadrt pid ... debug=1
if positive I values cause oscillation and negative values sort of work,
something is really broken, one or the other should cause runaway (latch-up)
then you can see error_i, error_d, cmd_d, cmd_dd
OK, I understand what you are saying about add the "debug=1"
maybe you can learn more by plotting these
I guess you are saying that if I add the debug parameter there will be a bunch more pins created that I can monitor with halscope
and one is the integrator's accumulator
Is there a doc file that would describe all these?
probably the pid manpage does, but I'm looking at the source
pcw: A negative number in D does (as expected) cause a runaway.
P and I should as well
cradek: thanks for the tip about debut=1. I have it written down. I think I've got to go study the backs of my eyelids for a few hours though.
pcw_home: Negative P does. but negative I sort of works.
Hi cradek, Hi WesBaker: I'm getting in on this late and didn't read back everything, but (backing up to the big picture first) is your loop config correct for torque output? Are you extracting velocity from the (position) encoder and running that back into the velocity loop, etc? Sorry if you've already discussed the obvious, etc.
Torque output and I think I saw "no tach gen", correct?
No tach gen, so you've got to close the position loop *and* the velocity loop in emc, right?
cradek: He probably thought of that already. Nevermind.
darn, he pinged out
So, you're coming to EMC from Ohio?
with Igain=1, command=0, feedback=1, I see both errorI and output counting negative at 1/sec
so at the most basic level I think it's working
OK, well, that's good to hear.
yes jeff and I will be going from ohio (somewhere) to ann arbor monday evening I think
setting enable=0 clears errorI (and output) as expected
maxerrorI does stop the integrator windup at the specified value
OK. I should arrive at least by monday evening also, details uncertain. I had thought of arriving earlier, but not sure now. And maybe staying later? Again, not yet certain.
I forgot to notice if the dorm rooms have internet, I presume they do. You're driving your bus, right?
no, I'm staying in motels. fuel to drive the bus on this trip would be $900
ok maybe only $800
Maybe you need to recruit 12 friends at $100 each?
OK then, 10 friends.
nope, I don't have the required license to carry a bunch of people
Party barge? RV?
yep, not a bus anymore
at 60mph it'd take a while longer too.
KimK: did you get my phone number in a /msg?
(I don't care who here sees it, I just don't want it logged)
That's about all I can do with 1.8L myself. I was considering driving through La Crosse either before or after, but John might not be able to make this workshop and he would like to visit Sam's too.
Yes, thanks, got it and replied with mine.
An alternative schedule would have me stay here until John's business class is over Tuesday (noon, maybe?) depart then, and arrive late. Still not sure what to do.
Oh, I guess that's not clear, I meant that leaving late would allow John to go to the workshop too, if he can get away for other assorted reasons.
[04:18:17] <penguin> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Rastering_With_A_Laser
unfinished for now
penguin: Great, thanks, we will look forward to more.
thanks KimK.... it have been a long journey for a non.linux user
who's still up?
I am. Anybody else?
You have an upside schedule I think
Hi davidf. cradek was here, but he said bbl. Maybe horizontal now?
11:31 CST where I am
Yeah, like that "small business - our hours" sign, "I'm here all the time, except when I'm somewhere else, but I should be here then too."
I got Eagle looks good. Tried it out still need to practice more till I get the hang of it
Yes, same time here. NW Minneapolis area.
Coming to the workshop?
I tried to make a library entry for a connector - big learning curve and found the documentation less than desired
I have to look at the keyboard when I hunt and peck so I will be behind you temporally. I would love to be there but I don't know if I can afford the lodging and fees and also (more importantly) the time off from work
Ha, nothing like diving right in to a new PCB package. If you can create a schematic, export the netlist, import the netlist, make a new library component, place it on the PCB, straighten the ratsnest, and get the output you want, you've about got it in the bag.
"Eat a live toad the first thing in the morning, and nothing worse will happen to you all day."
LOL in a huge font if I could.
Who said that
I don't know, I heard it somewhere and it stuck, maybe Google knows? I'd like to know.
KimK, this is funny have a look. http://www.quotationspage.com/quote/269.html
Craks me up when I see how online co's try to take advantage of searches
Ha, yes, a bunch of good ones. I'm not really familiar with the quotes contained in "quote of the day" (qotd) but I know a lot of people are due to it's wide use on assorted computer systems.
I like this one I just stumbled across: "Some national parks have long waiting lists for camping reservations. When you have to wait a year to sleep next to a tree, something is wrong." --George Carlin (1937 - 2008)
[re: can't afford it, etc.] Yes, I hear you. I can't really afford it either, but I haven't found work yet, and I would like to lessen my ignorance about developing (Linux generally and EMC2), so I thought I'd better go anyway.
I'm pretty sure "quote of the day" data (and many others, "The Simpsons, etc.) are available in Synaptic, but I don't know what apps are available to present them or how. Maybe you'll want to search Synaptic?
I like this http://www.quotationspage.com/author.php?author=Unknown
got by clicking on this link from my first pos "View a detailed biography of unknown" as if unknown was a real person. That just makes me giggle. Gimme a break if you are going to make a website that offers links to people who said stuff, then bother to see if you are quoting people named something other than unknown.
There are lots of funny stories about attorneys and courts too. Probably Google has those too. One I can remember:
Attorney: And were you there when the accident occurred?
Witness: (nodding head)
Attorney: I'm sorry, all your responses must be oral. Do you understand?
Attorney: All right. Were you there when the accident occured?
OK, well, maybe you have to have a certain sense of humor to enjoy that one.
All right, since I'm off topic, what EMC2 news with you?
Hey, Endeavour, how's it going?
KimK: Decent, just researching stuff.
Making any progress?
Yeah, finished defining the objectives for the 3D printer.
Was looking for additional opinions from folks about adding some other things, but not many added any, so it should be good.
I need to start looking into stepper motor driver design
Can't you just buy them? They're pretty reasonable. Or is this a product?
Need to design 'em.
I was looking at existing options but I realized it would be better not to just use an existing product.
Know of any good stepper manufacturers?
Err, stepper driver ICs, rather.
Endeavour: No, can't help you with that, sorry. fragalot: good morning. And with that, gents, I'm off for a meal and bed. Goodnight all.
Endeavour the allegro ones are popular in repraps
these toshiba ones I'm using seem fine, but I think this whistling noise they make at half steps is worse than typical
all chopper drivers are going to make some noise if the chopper freq is audible. maybe I need to jig my caps
and the kidney shaped pool was on your list already? good man :)
the real, serious suggestion I had was the 3d scanner tho. I've always intended to do that on mine
in fact I wanted to before I wanted a mill
but I wouldn't have got the stepper control together without emc
and in the end, I wouldn't have built a moving table until I was making a mill
all steppers chips are practically equivalent these days, afaics. they are all choppers, all bipolar only etc
awallin: good morning
yesterday my stepper went wild, jittering back and forth. the arrow keys, i would press the left < and release and press and, the table went in two different direction
i looked in the ini file and the ferror was 1.0 for the x asis but .05 for the other two
would they be hat far different. have been using the mill all day. didn't happen til the end
sounds like noise
or step/dir reversed
but since it worked afterwards, I'd guess noise
from the computer ?
or from the outside
spindle motor, vacuum motor, something
and should i change the 1.0 to .05 like the other two drives ?
you mean the noise from OUTSIDE the system ?
what's your scale?
i do have a vacuum cleaner about 5ft from it ?
[09:55:51] <piasdom> http://paste.org/pastebin/view/19293
maybe check if it's relevant when you start/stop the vacuum
never happened before, vacuum beed the over a year
1" of ferror is HUGE
0.05" sounds more like it
don't know why it changed during operation
i changed it to .05
can anyone help me?
[10:11:30] <_TwisT_> http://pastebin.ca/1876518
strange error on line 11
SWPadnos: hi! remember me? I've asked about an crashing EMC2 some time ago... here is the logs ^
_TwisT_: pastebin hal file and xml file please
ok, one moment
_TwisT_: there is also an error message about unexpected RT delay
that means that the machine might have problems driving steppers
maybe SMI can help, or a different VGA driver
but if all fails, I'd change the PC
micges: its in the first paste at the end http://pastebin.ca/1876518
there should be second hal file
alex_joni: SWPadnos said that souldnt be a problem, because spikes only happens at OpenGL init and shutdown
_TwisT_: your custom VCP panel is empty
[10:33:48] <alex_joni> http://pastebin.ca/1876532
you need to add at least a slider or something that you can connect the speed to
oh, thank you :)
alex_joni: yes, works fine =) thanks a lot :)
_TwisT_, I knew there was an actual error in there somewhere :)
everybody says hi
man, what a deal: http://www.newegg.com/Special/ShellShocker.aspx?cm_sp=ShellShocker-_-412227-_-06032010
re xchat crash...
I have a question : why polar coordinates works just in XY plane?
I think it just hasn't been implemented for the other planes
I don't think there's a specific reason why it shouldn't work
I don't know if there are not been implemented yet or there is difficult or impossible to implement
I have a Zotac motherboard in the Hardinge
johnt, this one is pretty cheap, and has onboard (nvidia) video, but the combo price is about the same as the CPU price
and it's less than an Atom board (though larger)
I will take a look on the code to see if I understand somethink....
it's not going to be simple to change it, but it's not conceptually difficult
ok, I need that fonction for a non-trivial cinematic, It will be more simple to implement gcode moves
kinematics should have no impact on G-code, they're separate domains
are you implementing a non-trivial kinematics module?
yes I know, but one of my joint is rotate one
and for some pieces I would like to move in polar coordinate (and move only this joint)
OK, I think you're talking about a rotary axis, not the polar coordinates I was thinking of
I can also use G02 G03 but it is more complicated to use in my case (cartesian)
No I am talking about fly cutter like this the one of the archivist: http://www.youtube.com/user/davethearchivist#p/u/3/Ge9_Qbd09zU
yes, that's a rotary axis, and you program its position in degrees
polar coordinates is about using R and Theta to describe a point on a plane, instead of X and Y
yes but the profile of the gear are described in cartesian coordonnate (circles,...)
Yes I know that
well, what you're talking about may be harder than I thought, or it's already done :)
alex_joni: would the spindle motor burning the brushes to the spring and shutting down be the kind of noise you were talking about ?
For exemple, in the video the teeth are arc of circle
if you program a G1 move in Y and A (with the machine in the video), you get an arc profile on the tooth
and I had to write kinematics to use G02 G03 to describe mouvment
yes with short G1 moves
no, a single G1 move
if you rotate the work while changing the radius, you get a curve
but to describe a circle with A and Y is difficult
you can cut a circle by setting XYZ to some point and doing G1 A360
that sets the cutter somewhere, and then spins the work one full circle
[12:30:06] <Xavier_H> http://en.wikipedia.org/wiki/Polar_coordinate_system#Circle
The difficult is describe circles (center other than (0,0) ) in polar coordonnates
I think we're talking past each other. we both know what the equation of a circle is
In polar coordinates it is tricky
are you trying to do something like inscribe a circle on a gear?
It is for that I make kinematics modul to work in XYZ coordinates (gear is considered fixed)
it is the teeth profile
like HTD teeth?
as the gears on video is
the gear looks like it has flat sides to me, though the teeth are arranged in a circle around the circumference (of course)
archivist, do you have the code for that escape wheel handy?
yes HTD are also circle but aren't machine with a saw disk
Ok for the exemple it is escape wheel and it is linear motions
heh that combo throws in a free HDMI cable too
* johnt wanders off to work now
but I need to describe teeth which are describe by arc of circle
like a ratchet? (arc on one side, probably flat on the other)
Like gears in the switzerland norms for clock making
heh, oh. (not that I know what that is :) )
I try to find examples
[12:43:53] <Xavier_H> http://www.clock-works.clara.net/cata/wnpc3.html
good afternoon ;-)
SWPadnos do you see what I am talking about?
but I'm not sure polar coordinates will help much
the way they work now, R and theta are measured from the origin of the current coordinate system
how about just reconnecting the z as y and programming in x-y polar coords?
alex_joni: thanks, motor did that yesterday, any way to protect against that happening again ?
davidf : yes it is the simpliest way
for the full ogive profile, you'd have to set the origin to one side of the gear tooth, then you can specify endpoints for the profile in polar coordinates, but it doesn't make the path programming any different
you can do arcs in 3 planes, regardless of how you specify the endpoints
SWPadnos : Polar coordinates will help to describe some points of the profile (start points), the I will use cartesian coordinates for the teeth
Ok, I'll try to use this
I am in G19 (YZ) mode
Thank you again for you advices
sure, I just hope I was right :)
I will test it!
piasdom, I used to work in a motor rewinding shop - we had power tools come in often where that had happened. It was usually from running on a long extension cord, which reduced the voltage, and increased the current , heating the springs and causing them to lose temper resulting in burned brushes and fried springs
davidf: thanks, motor plugged straight into the wall. one spring does look burnt. maybe old motor(2 years) ?
Could happen anytime you are running at reduced speed (and therefore reduced back-emf) whether due to mechanical overload or reduced voltage
only use at full speed(2400)
figure of merit for age is hours of operation of course
guessing about 500 hours(not used every day
How does the commutator look?
still brass looking, no groove
Just replace the springs and brushes then...
i did, motor working for 3 hour now
good. 497 hours left to go :)
[13:40:35] <Jymmm> http://www.wimp.com/babymoose
such a huge animal... don't ever pick a fight with one and your wee Honda ;)
[13:45:00] <Jymmm> http://www.wimp.com/deadliesthamburger/
[13:48:09] <Jymmm> http://www.wimp.com/babyelephant/
elmo40: I picked up a used EU2000i yesterday
[13:53:26] <Jymmm> http://www.wimp.com/deersafety/
What you think, 10 gallons per mile? http://www.wimp.com/extremeoffroad/
Ok, something EMC related... http://www.wimp.com/japaneserobots/
Looks like they were having fun too!
sure they do
This is cool!!! http://www.wimp.com/peoplestairs/
Anyone here have any suggestions for *good* stepper driver ICs?
[14:34:33] <Jymmm> http://www.wimp.com/threecats/
smart one in the middle :)
must be one of yours
awfully nice of the others to hold it for him
I thought so too
hi, what is the NML file for?
it is automatically generated?
it tells the system how the various parts of emc will communicate
[14:38:26] <Jymmm> http://www.wimp.com/householddominoes/
no, it's not automatically generated, but it's rarely necessary to change it
if i have a custom HAL and INI files, I need to rewrite NML file too?
look SWPadnos: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Rastering_With_A_Laser
yes, I saw the emails
this is new
ok, I'll take a look at some point
the NML file only needs to change if you (a) want to use a remote GUI (since you have to tell it to use a network instead of shared memory), or (b) you make some changes to the code which require larger buffers
otherwise you should be able to leave it alone
JT-Work & Jymmm : ICs, not pre-built solutions. :)
you said "good", which more or less eliminates all the ICs you could easily buy
SWPadnos: How do folks like Gecko do it? Make their own silicon?
yes, more or less
the old ones used discrete logic, the new ones use CPLDs
another question: i have a M101 file in the nc_files folder, and I expect that EMC2 run this file when I enter "M101" in the gcode
(for geckos anyway)
what i need to do to get tihs work?... some people says i need to symlink the file
Is there a practical way to build your own driver, or not?
it really depends on how good and powerful you want it to be
and what your equation is for trading time vs money
The process of designing one is more academic in nature than wanting to save money.
Truth be told I'd sooner buy a Gecko and forget it.
ok, in that case there are several designs out there
L296/L297 is one chipset people use
But, need to build the driver, so, I'd like to be able to do something that's good, and not end up with lackluster performance.
or was that L297/L298
that's the thing
The ST OpAmp?
"Good" will take a lot of engineering effort
no, it's a stepper driver chip
but the more integrated ones all have pretty low limits for both voltage and current
Just looked it up. Similar number to a different chip of theirs I saw last night.
and some go poof if you go slightly over voltage - there's no headroom
pcw_home: That's OK
there are others as well, I don't remember the names
SWPadnos: Are there superior ways to design a driver without using ICs, but only discrete components?
yes, if you're an electrical engineer who specializes in motor drives, and you have a spare 1000 hours :)
it's not that the ICs are bad, they just have relatively low power limits relative to CNC needs
Endeavour: stepper or servo driver?
I've seen 6-motor drivers on a single chip, but they're meant for really tiny motors, like the kind you'd find in a digital camera (which is where I found that chip :) )
1000 hours is probably optimistic dont ask me how I know this...
i have a M101 file in the nc_files folder, and I expect that EMC2 run this file when I enter "M101" in the gcode
I did say specializing in motor drives :)
what i need to do to get tihs work?... some people says i need to symlink the file
penguin, yes, you can expect that, if the file M101 is executable
no, no need to suymlink
i simply copy and paste the file and make it executable?
Endeavour: remember. steppers offer no feedback. EMC is 'guessing' as to where it went with the info from setup and the pulses it gives the controller... so... making a driver shouldn't be difficult :P it is only step and direction
as long at it can be executed by typing ./M101 in the nc_files dir, it should work
note that it's M101 and not m101
elmo40: A lot of people seem to hate some of the existing driver solutions
A3997 by Allegro, and others.
I'm not opposed to building around a chipset, but would like to make something reasonable, too.
if you're trying to make something to drive a specific motor that you own, and that motor is within the specs of the chips (usually 25-35V max, usually 2-3.5A max), then it's reasonable to do it for the learning experience
if you want something that will get the best performance out of the motor, or that will work with unspecified motors later, then you should probably just buy something
* JT-Work loves the existing driver solutions I have on my lathe and plasma cutter
SWPadnos: Yeah. Some people here really seemed to dislike specific chips, though.
they're all relatively fragile, from what I hear
if it says 35V max, you'd better not go to 3.5., or it will fry
that said, if you have a motor that will perform well enough, while being driven well within the limits of the controller chip, then you're fine
JT-Work: list what you have, to make Endeavour think about pre-built options
elmo40: Mesa 5i20's 7i33TA, 7i37's, and some Gecko 203V's and a Mesa THC
7i37TA I meant
i'm using a custom NML file and EMC2 don't run
PHYSMEM_HANDLE: Can't write 10748 bytes at offset 60 from buffer of size 10208.
here is the pastebin:
[15:15:36] <penguin> http://pastebin.com/CjX6axe2
[15:16:03] <cradek> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?UPDATING
i know i need to comment the NML file line in the ini file
what is your question?
but i'm trying to use a custom nml file
what is your question?
then increase the buffer size in your NML file
what's wrong with my nml file?
did you read the instructions at that url?
i will try increasing the buffer size
(I doubt that's true)
I don't know why you need to use a custom NML file
but that's up to you
(i read it yesterday :p)
I suggest reading again - it's spelled out very precisely
* Jymmm just shakes his head
THINK OF THE CHILDREN!
YES... i works increasing the buffer size
:) :) :) :) :) :)
i have graster streamer working
the laser don't want to turn on... i need to guess why
you should write a wiki page on it. :)
i am writing one
[15:27:16] <penguin> http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Rastering_With_A_Laser
penguin: nice work!
[15:36:06] <Jymmm> http://www.wimp.com/woodenmirrors/
alex_joni: you would like that ^^^^^^^^
OMG - Woman clothes shopping in under 15 minutes http://www.wimp.com/futureshopping/
alex_joni: I KNOW you have to be in at least ONE of those shots... http://www.wimp.com/bizarretraveling/
Melting steel with sunlight http://www.wimp.com/meltingsteel/
Ok, EMC related DAMN.... http://www.wimp.com/robothand/
that's fast 8)
Think they used the Paraport? <snicker>
penguin: any picutures?
DAMN, he's good http://www.wimp.com/yearboxer/
SWPadnos: Re archivist www.collection.archivist.info/verge_escape.ngc Im playing with an iPad on martyns new toy
Oops typo www.collection.archivist.info/verge_wheel2.ngc
skunkworks: not yet :p