I see that you are mentioning the C5030 and C5055 but have you taken a look at the C5047 device? The only reason that I mention it is that it has not only a serial digital out, but it also has a standard quaderature interface. In other words, it acts as a drop in encoder replacement. This could simplify any roll our own efforts as we may be able to completely leaverage a dev kit from one of these motor control solutions with little modifications to their code. This could make the transition to a BLDC servo solution very palitable.
As an announcement to all those that are reading, Bob (aka salbayeng) has been invited to participate in an official capacity with this project. I think that all of us have been able to learn from his very detailed posts.
He sent me his detailed calcs in the spreadsheet that he pulled these numbers from, and it is top notch work. We should look forward to seeing more from him as he has indicated that he is willing to do some guest posts for us.
Hi Adam -- did you see this Desktop PCB Printer project? Actually, it's more of a desktop PCB etcher.
But the point is, there's a lot of talk about the problem of drillig holes in PCBs. If your pick-and-place machine were modular, would it be possible tow swap the "place" head for a "drill" head and actually drill through-hold PCBs?
Hi Adam, looked at the numbers in your last post, call this AC1, put them in a spreadsheet , errors looked good, but very high motor speed and low torque utilisation. So toned it down a bit , AC2 used a coarse leadscrew of 0.5", and only 2g accel, and trapezoidal speed profile. So now have manageable motor speeds but larger errors, would need a second 1024count encoder somewhere?. (I've randomly called the error budget 0.1mm)
Overview: All cases are 0.5lb payload, with 10" travel. Error budget = 0.1mm total Case AC1: 10g triangular profile with 20tpi leadscrew = 0.050" lead (1.27mm) Use an outrunner motor , say 5% error due to angle estimation, (=18% of budget) An AS50xx mag encoder requires 4.9% of budget. And 0.001" of backlash is 25% of budget. Maximum speed=16fps (5m/s) and ~100msec travel time. Big problem is motor RPM = 236,000rpm And torque is a miniscule 4.5mNm (about 1% of motor's spec) Basically we are doing 200mph in first gear.
Alternate case AC2: has 10x longer lead (0.5") , and trapezoidal velocity profile with 2g max. Has some error problems, e.g. 152% of budget if we want to hold using 12step mode. Magnetic encoder 49% of budget. Total travel time = 240ms Max motor=7500rpm Torque=.01Nm (2% of motor spec) OK now we are doing 60MPH in 2nd gear
I guess what all this says is we need to match the motor and gearing to the payload and error requirements. Most commercial PnP machines have very coarse gearing (consider a typical 1"diameter toothed belt pulley has a 3.142" lead)
Yes, the BeagleBone black is high on the list of parts that we anticipate using. We were able to speak to Jason Kridner at EELive and he said that he would be willing to help get us pointed in the right direction.
As to the encoders, I really think that it will depend on the overall stiffness of the system. If you are mounting to the opposite end of a 3/8" leadscrew that is only 10 inches long, then at the maximum capacity of a plastic leadnut (which we would not be running at) the deflection due to torque would be .8°. This would be a 350 lb load. If we were to say that the gantry head weighed .5 lbs and we were to be running at a max accel of 10g's, then the deflection would be .01°. For an encoder to be able to register this, it would need to be over 30,000 counts per revolution.
As for going with the Geko drives, that is probably out of the range of what we are able to handle. Most likely we will have to leverage some other solutions that are already out there.
We did just get some information from Trinamic on a new dev kit that they have. This is something that we may want to look at. I know that the TI solution is a full closed loop control for BLDC motors, essentially creating a servo motor. I have a feeling that we are going to have a lot to learn in this area.
There's no reason to apologize for taking your time; family and job always come first. So some more notes:
If you're using an encoder for commutation and/or speed control, it's probably best to have it mounted on the motor (or use dual loop feedback). True, I've used Newport linear stages ($$$$) with an internal belt where the sole encoder was mounted after the belt -- but those used brush motors.
We also had issues with getting a circular encoder wheel mounted exactly in the center for a protoype stage (one reason it remained prototype). That project had much tighter specs (IIRC, we were looking for ~1,000,000 counts per 360 deg), but little details like centering do matter.
If you're really going for affordability, you pretty much have to go steppers and custom drivers, since even affordable commercial drivers (such as Gecko Drives) will eat a lot of your budget.
ST does have some advanced stepper drive chips such as the dSpin models; I'm not sure how they compare to Trinamic. Allegro Microsystems and TI are other "usual suspects" for integrated stepper drives, but as far as I know, neither one currently offers anything comparable to the more advanced Trinamic parts. However, TI is also considering doing instaSPIN for steppers, but I have no idea when or if it will appear. BTW, Trinamic was at ESC--I mean EE!!!LIVE!!!!--2014.
One possible approach would be to use sensorless control (such as instaSPIN) to control hobby motor speed and commutation, and use a cheap linear encoder for position (such as a US Digital EM1 + encoder strip; cheap but low res (for a linear, but probably good enough for this project) and looks hard to mount).
For overall control, an old PC is one approach. I'd recommend taking a look at the BeagleBone Black, which is $55 for Rev C, runs Linux (including MachineKit, which is based on LinuxCNC), runs OpenCV, has good connectivity (Ethernet, USB, etc), good real time control (PRU-ICSS, which people are using for stepper control), 3 encoder inputs, a bunch of PWMs, an active community, some 3-axis (or more) stepper capes already created, and some attempts at using it for Pick and Place.
Hey, I just came across this link for a mechanical solder paste dipsenser that might be applicable to somthing that we might want to do, and while it is not very detailed, it is an interesting concept. I think that it could be done in a much smaller package, but it is some food for thought.