Trying to "roll your own" insta-spin motion solution might be turning a molehill into a mountain. I'd suggest using one of the hobbyist CNC-router 3axis motion drive packages that already included the insta-spin.
Also noticed this in the instaspin technote re sensorless control:
"Position applications require a mechanical sensor in order to precisely identify the motor angle at zero and very low speeds. The FAST Software Encoder may provide redundancy in position control applications; this can be used as a safety feature in case the mechanical encoder fails. "
I've used magnetic encoders before, Austria Microsystems were the leader in this field about 5 years ago. You need SPI type as I2C too slow for motion control, the AS5040 is typical , 10 bits "absolute" , you can cascade multiple devices , so 48clocks = all 3 axes in 6bytes, (some encoders also do multiturn absolute, can save you a couple of lines of code) . Just glue a magnet on the rear shaft (nudge it gently while slowly rotating to centre it). Austria also have ring magnet solutions too. One issue with the outrunners is the magnetic flux of the magnets might cause positioning errors.
You can write your own trapezoidal move algorithms with 1kHz update rate on a 20MHz CPU that will give adequate positioning control. To get 9PWM's you will find PIC's may be a better option than ATMEGA's, and of course the TMS320 range have many PWM's.
When it come to encoders, you need about 4 to 16 times more resolution than your required accuracy. This is necessary to be able to accurately measure the speed right at the end of the move.
Thanks for the input AD. I think that I am leaning towards a max build area of about 8"x 10" at the largest. Perhaps even a little smaller.
What are people's thoughts about this size range? Still too big. I need to go and look at what Seeed Studio is offering for their sizes. That might give a good calibration for this. What other popular services are people using that offer their services in certain standard board sizes?
I think 11" x 17" is overkill. The widest board we make (if you are aiming this at in-house prototyping rather that hobbyist) is 100mm wide by about ~9". If you are aiming at the hobbyist, Indon't think you would need much bigger than a Arduino shield.
I do have some familiarity of the hobby bldc motors, though the information that you post is great background for those that do not have that background.
The thing that I love about the hobby brushless motors is that there is such a large varity at very cheap prices. The other fact is that their power output per volume is much higher than the steppers. Though their downfall, as you mentioned is that they would need to be controlled in a closed loop fashion. The great thing about this, though is that you can reduce the size of the motor as you are not as concerned with slipping at high torque if you have the right motor control solution that can handle that.
The standard hobby controllers would be out of the question, but I have been speaking with TI about their Instaspin Motion control solution. I am not saying that this is the direction to go, but it does provide an itneresting option that may be more ideal for this type of setup.
As to the actual motors that I would be looking at, I am actually thinking that outrunners are going to be the desired option if this was the path to go down. They can be found in small sizes at lower kV (in the 1200-2500 range) and would not be that difficult to adapt for this type of operation.
On the topic of encoders, I would like to go with perhaps a hall based, non contact encoder. the biggest issue is going to be update rate, but there may be some solutions out there that could deal with this. It is something that I really need to iinvestigate much more. Standard contact encoders are rather large, but as you said, there is not a large need for high line count. I am sure that there is a technical solution, but is it cost effective? That will be the question. This is something that I would like to have play out in a post as it will provide some valuable learning. I think that this application will be right on the cusp of both solutions. I think that there will be value found in both and that both could be made to work. It will then turn to what is the cost of each solution, and do they make technical sense from an engineering perspective, not just a that is a cool thing perspective.
You are correct that my calculation was rather simplistic. The calculation that I did was more than anything to bound the problem on the high end. Removing all other aspects including acceleration (I recognize that this is a futile assumption), what would be the bound on the high end. 60 components per second with an average of 8 inches of travel would require a .25 inch lead, lead screw and a 9600kV motor at 12V. All of these things are in the relm of possiblity. Are they practical, no, and are there other factors that I need to look into, yes, just have not had time to do that yet.
I am going to take the information that you presented and put it into a spreadsheet so that we can play with accel rates and other fixed time variables to generate a more realistic bound for the speed of the machine.
I also think that a 1g acceleration is a little low, without having given it any great thought, I do not see right away why up to a 10g acceleration cannot be achieved. Some of the details that would have to be looked into would be power/torque capacity of the motor, structural concerns (though I do not think that this will be a major concern), vacuum capacity to hold the part (friction), and positional accuracy
I've half addressed the motor tradefoffs just now.
I've also looked at using the hobby BLDC motors for machine type applications, I've collected a few motors and a few ESC's but got too busy to play with them.
Some notes re hobby BLDC motors:
(a) Most have the rotor on the OUTSIDE , known as an "outrunner", can be a bit awkward mechanically, so check which one you have.
(aa) Likewise most don't have two shafts so mounting an encoder on the back might be difficult.
(b) They spin very fast, denoted by the "k" number , so if k=3000rpm/volt , you get 30,000rpm for 10v. For our purposes a LOW k is desirable. so Kv=500 is about 10,000 rpm at 20v , close to our requirements. Note that the torque constant is the inverse of Kv, so halving the Kv , doubles the available torque per amp,
(c) Some motors (designed for helicopters) have an integral gearboxes , so combined with a finer leadscrew, you could drive the motor in vector mode and get stepper type encoder-less positioning
(d) The motors are designed for sensorless operation, making it difficult to generate much torque at near standstill.
(e) almost all BLDC's are 3 phase, so if you want to retrofit an encoder for commutation or vector control, it needs to have <some multiple of 3> lines per revolution (most are multiples of 4 or 25)
Accuracy / resolution is another issue, consider you probably need 0.05mm to place a 0.65 pitch part, so with a 5mm pitch leadscrew you need to locate within 1/100 of a rotation, requiring perhaps a 100 line encoder = 400quad counts.
A 200step stepper with a 5mm pitch leadscrew gets you 0.025 without microstepping. Same 200step motor with a 1/2" diam pulley gets you 0.18mm without microstepping, 4:1 microstepping is achievable so 0.05mm resolution is then possible.
Apart from the gear backlash , a 38mm standard "robotic" gearmotor, with 3:1 gearbox and 100 line encoder is in the right speed/resolution range with a 5mm leadscrew (but might fall apart from all the load cycling)
The piezo motor sounds like an "inchworm" drive, are these available at sensible prices nowadays? (they used to be ~ $1000 each)
Ok 60 parts per MINUTE might be manageable for a low budget machine.
That's 7.5" there and back per second = 0.42mph , it's much better to do all the mechanics calculations in metric units (=200mm/sec avg), you will eventually come unstuck persisting with furlong-fortnights , to the order of 32 or worse.
Lets consider 1 cycle/sec, if we limit the ramp to 1g , then we have 250ms to accelerate, 250ms to decelerate,250ms to accelerate, 250ms to decelerate, so the maximum distance traversed for the ramp of 250ms,1g = 300mm or 600mm = 2ft point to point. So you would be ramping ~ 10% of the total trip.
It takes time to pick up the part and place it. So a full cycle might be 100ms build up suction. 80ms Zacc , 80ms Zdec,100ms X acc, 100ms X dec, 80ms Zacc , 80ms Zdec , 100ms to release vacuum, then 80+80+100+100 +80+80 to get to next part. = 1.24secs / cycle. These numbers give 48 cycles/sec. for 4" point to point move, the actual distance doesn't change the calcs much if you have a servo drive, (8" point to point is 1.44secs, 16" is 1.64secs)
Acceleration is important too, and given you may not have the large variety of nozzles, and suction variability as commercial machines, you will need to limit the acceleration, particularly with larger parts. Stepper motors can be jerkier than DC servos too.
Stepper motor will need a coarse leadscrew to get any reasonable speed.
Rotation speed will be limited to ~ 1000rpm for metal nuts, to prevent galling.
A double start 5mm pitch leadscrew with acetal nuts would be something I might consider.
Backlash can be fixed by using two nuts with a spring between them (and anti-backlash positioning algorithm)
Torque vs speed is a tradeoff with motor type and leadscrew vs pulley. So to get 8inch per sec , you need 2440rpm with a 5mm leadscrew or 338rpm with a 1/2" diam pulley. 2440rpm with a stepper motor generally requires a very high voltage drive (e.g. a typical "5v 6A" stepper motor might need 100v to get 1200rpm). Unlike a servo motor, the available torque at full speed is severely reduced in a stepper motor, (typically you need to use half the rated speed and half the rated torque in your calcs)
Be careful in your calculations from linear values into rotational (motor) values , there is almost always a 2 x pi in there somewhere.
Yes agreed that there are some tradeoffs as you suggested between a gantry system and a moving bed/workpiece system. I currently prefer the gantry system for mounting the head to for both solder paste and the vacuum head. I am not stuck on it, but for the reasons that you mentioned, I think that trying to have a moving bed may end up being more complex and producing an inferior result, including solder bridges on find pitched parts.
Now for the area which contains the unplaced parts. Here I think that a moving bed concept of some sort is the way to go. The reason for this is that it will both simplify the operation, while reducing the foot print of the device. As you mentioned, there will have to be some general indexing to know where to go and hunt for the next component, but then again a regular feeder needs to know how far to index the tape as well, so I do not really view this as an added complication.
The other thing (I am not sure that I mentioned it yet) is that I am in contact with one of the guys at TI in their C2000 group that does motor control. I am looking at what the trade would be to do servo motors vs stepper motors. The one thing that this would open up is that hobby brushless motors could be used in conjunction with a standard type of encoder. This also would play to the fact that this type of machine does not need hi holding force, more that it needs to traverse quickly from one point to another. This is now starting to play into the strengths of a servo motor over a stepper motor. This is not even close to being decided, but I do want to do some investigations into it as this might be a way to get some higher speed out of the device that might not normally be there for this type of a machine.
Let's make the distinction between "grid pickup" and "feeders"
(a) Feeder: always picks up at the same X, Y coordinate for any component
(b) Grid pickup: picks up at the "next" coordinate
So you are considering grid pickup (this entails some extra software, as it has to maintain a database of "next" for every strip of components, and these may be on 2 or more plates)
The second piece of the puzzle is the axes arrangement, there are basically two approaches
(a) keep the work area stationary and move the head around in X,Y,Z
(b) move the work area in X , and the head in Y (much like those large plan plotters where the paper goes in and out and the pen goes side to side.
There are some significant advantages to moving the carriage in only one direction, as it can get pretty bulky by the time you add a camera, pickup nozzle, alignment plates, glue dispenser. You can also combine the two, so the carriage can move say 12" in Y and only 4" in X, but the workpiece (PCB + parts) is on a X conveyer so could be quite long.
You can make good use of the Z dimension too (which I think it what you are suggesting, when I hand place with tweezers, I use a cantilevered parts tray that sits about 1/4" above the pcb, less likely to bump already placed parts.)
If you are moving the workpiece (the grid and/or PCB) you need to be mindful of the X accelerations , the smaller parts are OK, but electrolytics, inductors and SM connectors have low paste area to mass+height ratio, so may need to limit acceleration to 0.2g at the end when the big bits get placed.
When you are thinking about plates with grids of parts , (I will call this a "grid plate" from now on, ) ensure the grid plates have sufficient weight to limit the acceleration induced during normal handling, e.g. the plates should be 1/8" minimum thickness aluminium. Or if made from PCB stock, glue a 1/16" sheet of steel on the bottom.
Even if using "grid pickup" you should add a vibro feeder, these are simple and will take all the SO-xx & Dpak parts in tubes.
As I have been looking into the pneumatic systems, most have a popoff valve to help with the "inertial" effect. I actually would prefer to use a squiggle motor for this type of system. I need to see if I can convince them to help us out with a motor to use as a prototype. This is great as it has both the motor and the leadscrew already integrated. They are piezo electric systems. Pretty neat little devices that have very high force in a well concentrated device. By actually making it a closed loop system based upon displacement, then I think that very fine control can be had in a dispensing effort. Thankfully this will come as a later addition to the machine, but the basic framework needs to be laid out from the beginning so as to be able to integrate it later.
As a side note, I was working out some basic calcs for speed of the machine if we were to want to have it place 60 components per second. If the average travel distance were 7.5" per component, then that would mean that the average head speed would be about 50mph. This seems like it might be managable, but will have to look into the wear characteristics of the components. By going with a smaller build area, this would allow for leadscrews to be used and compete in cost with other components for a belt system. Leadscrews will allow for better positioning of components, but one of the maintenance items will have to be the lead nuts. Anti backlash nuts could be used, but are pricy. Might be able to use two nuts and make our own anti backlash nuts for cheaper. Will have to look into it as things get closer.