Pick and place build, openpnp - Page 1
Forum section: electronics / general

author: pisoiu
author_rank: Regular Contributor
timestamp: September 13, 2019, 08:45:27 am
content: Hi all,I will share here my project progress, a pick and place machine. It is not designed with 'cheap' in mind, it is designed for performance. Initially I was thinking to buy a production line, but after analyzing all pros and cons, I decided to build one. It's more funSome of my goals are 1,5x1m dimensions, somewhere around 24 placing heads.Basic components are purchased ready made (rails, servo motors, servo controllers). Mechanical parts used to join them will be built at 3d printer just to check dimensions and how they fit. After that, they will be built from aluminium at mill.Here is one of the first tests which involves movement. In the movie is the y axis, 1 meter.le: It is not driven to max speed (only about 2/3), nor at maximum acceleration, because the rail is not yet fixed to the table and some components are 3d printed PLA.

author: tom66
author_rank: Super Contributor
timestamp: September 13, 2019, 05:44:08 pm
content: I'm curious what you'll use for the feeders.

author: Kjelt
author_rank: Super Contributor
timestamp: September 13, 2019, 06:00:31 pm
content: Interesting will follow with utmost interest.I also want to build one in the future, already collected a lot of 2nd hand parts for it.So the used ballscrewspindle what is the feed somhow many mm travels per rotation.For P&P you see a lot of 20mm feeds so very fast travel.Do you use a stepper or servo?24 heads, serious? Are you going too place leds or some components with the same value?What is your thought there I wonder also since they take up a lot of space?The linear guide looks self made, ehy not use standard wide linear rails ?

author: pisoiu
author_rank: Regular Contributor
timestamp: September 13, 2019, 07:38:32 pm
content: Outside area can accommodate up to ~80 yamaha cl feeders. Inside area will keep the rest, whatever openpnp supports. Tray, cut tape, etc.Ballscrew is TBI 2550, 25mm diameter, 50mm travel per rotation.Motors are panasonic servo, minas a6, 400w high inertia. Steppers are not even close to this design's requirements. What you see in the above movie is travel at 2000rpm and 100ms acceleration time.Head numbers is due to the fact that I want to avoid nozzle change (I am thinking at juki now), therefore I must have a combination of all sizes required by most designs. They will not be all in line, rather a matrix of 6x4 spaced at 30mm.Linear guide is not self made, it is ISEL LFS series. It is bigger than common rails used in pnp machines but I prefer that part a bit oversized for now since the entire machine is quite big.Everything is mounted on a 20mm thick aluminium plate.

author: Kjelt
author_rank: Super Contributor
timestamp: September 13, 2019, 08:41:31 pm
content: Very impressive hardware50mm per rotation, that is a lot. How many pulses per rotation does your servo-encoder provide, or put differently what is the resulting positioning resolution?

author: pisoiu
author_rank: Regular Contributor
timestamp: September 13, 2019, 09:08:49 pm
content: Encoder for minas a6 series has 23 bits, so positioning resolution in my case is 50mm/2^23...enough. In practice, positioning is worsened by ballscrew, it is a C7 precision class, this one was expensive enough. I didn't wanted to go to C5 or better, those have astronomical prices.For now I am using motor's encoder but if during tests I will notice significant positioning deviations due to ballscrew heating (which cannot be compensated by motor's encoder), I will use external linear encoder, most probably magnetic type.

author: Kjelt
author_rank: Super Contributor
timestamp: September 13, 2019, 09:29:38 pm
content: An external linear encoder came to my mind also. I am however unsure how to connect that to openPnP. OpenPnP just sends G codes with absolute coordinates to move to right? So then you need to build a circuit with a microcontroller that reads the external linear encoder for the current position and returns that to OpenPnp, or it has to solve the delta on its own and sent extra pulses or 0-10V output to the servo driver. I am unsure how that exactly works with OpenPnP.

author: pisoiu
author_rank: Regular Contributor
timestamp: September 13, 2019, 09:36:28 pm
content: External linear encoder connects directly into the servo driver and it's its job to deal with it. Positioning commands are taken from gcodes sent by openpnp by my driver board (which I have to build) and this one connects to x/y drivers on RS485 bus. Changes to support external encoder instead of motor built in encoder are made in the configuration parameters of the servo driver.

author: Kjelt
author_rank: Super Contributor
timestamp: September 13, 2019, 09:39:32 pm
content: Thanks, that makes sense. I use cheaper closed loop steppers but they don't have that option.

author: pisoiu
author_rank: Regular Contributor
timestamp: September 13, 2019, 09:46:34 pm
content: Those servo drivers are monsters. They have around 500 parameters listed in the configuration windows. Of course, not all of them must be touched, but still, gives you an idea about the flexibility of the damn thing....and the possibilities to mess everything up....

author: Kjelt
author_rank: Super Contributor
timestamp: September 13, 2019, 09:50:19 pm
content: Uh yes that is what kind of scared me away of servosMostly you have to tune the PID control using external software after the system is complete.That can be quite an elaborate task what I have heard.Luckily with a p&p machine it is not bad to have a little under or overshoot in contrast with for instance a cnc mill where your piece of work is then ruined.

author: pisoiu
author_rank: Regular Contributor
timestamp: September 13, 2019, 09:59:01 pm
content: From what I read in the manuals, they don't under or overshoot. They measure the mechanical parameters, resonance frequency, etc. and somehow adjust the commands to the motor, to avoid oscillation around destination position. How is it doing this, it's beyond my knowledge. I think they call it 'automatic damping filter'.

author: rx8pilot
author_rank: Super Contributor
timestamp: September 13, 2019, 11:49:53 pm
content: This looks fun.....following.

author: Kjelt
author_rank: Super Contributor
timestamp: September 14, 2019, 08:29:22 am
content: That is some sort of autotune, if it works that is excellent. It might take some time to adjust.If you want to know a bit more about servos control loops , the s-curve, the three pids: position, velocity, torque, this was an interesting read for me:http://www.techtrends.ru/docs/delta/servoprivody_asda_ecma_dmcnet/ASD-M/Tuning_ASDA_Series_Servo_Systems.pdf

author: Kjelt
author_rank: Super Contributor
timestamp: October 03, 2019, 09:57:18 am
content: Any updates ?

author: pisoiu
author_rank: Regular Contributor
timestamp: October 03, 2019, 10:08:43 am
content: Not much, I have 3D printed some more pieces and made some tests with X axis. They are at very low speed (500rpm I think) and very low accelerations, because they are held in plastic mounts. In the next days I will install also X ballscrew and make some tests again.I also received the mill which will be used to build the final aluminium pieces.

author: Kjelt
author_rank: Super Contributor
timestamp: October 03, 2019, 11:59:13 am
content: With my CNC I am running into alignment problems.I am currently busy hours to align with a 0,001mm resolution clock.You have used toolingplate which is much better than the aluminium profiles I use, still I can advise you before running high speeds, to check the exact alignment between linear rails and ballscrew, you can easily see it at the movement of the ballscrew it should not oscillate.Also the noise of the balls inside the ballscrew and linear rails are good indicators.Probably your setup is better and more stable, it looks very nice.

author: pisoiu
author_rank: Regular Contributor
timestamp: October 03, 2019, 12:34:03 pm
content: Alignment is taken into consideration very carefully, there are adjustments methods available for all pieces. Alignment is measured both mechanically and with the servo's software, I have plots with measured torque for movement. It should be constant for all the axis length. Currently it is not, I have small random variations due to inconsistent deposition of lubricant and I also have a small oscillation due to incorrect alignment of the motor shaft with ballscrew end. 3d printed piece.But alignment and tuning for high speed will be done only after all interconnecting pieces will be made from metal. I use 3d printed parts only as proof of concept, to see if all fits nice and to check the manufacturability of parts within milling machine constraints.With 3d printed parts I do not dare to go further than 1000rpm and 4-500ms acceleration/deceelration time. They are quite far from my goal, 3000rpm and under 100ms. What I do not know yet is the behavior of the other end of X axis (not the driver end), it will oscillate a little at stop. I hope I can compensate that from servo parameters and/or to ignore oscillation, hoping it will damp itself until the head arrives in pick/place position. I have a high speed camera (1000fps) camera to analyze this phenomenon.

author: pisoiu
author_rank: Regular Contributor
timestamp: October 03, 2019, 12:53:42 pm
content: Quote from: Kjelt on October 03, 2019, 11:59:13 amDo you need that high resolution? I am currently working down to 10 microns, I have no way to measure or machine better than this value.

author: Kjelt
author_rank: Super Contributor
timestamp: October 03, 2019, 02:31:41 pm
content: Well my goal is also 10 microns so the measurement equipment should be at least a factor three better in repetitiveness. So that is about 0,003mm and that is the repetitiveness of my 0,001mm clock.The problem I face is that I do not have a reference plate as you have. My cnc is mounted on a wooden hardboard which is absolutely not suitable as reference.So I am thinking about upgrading to a stone (granite) plate , if I can find a good one for a good price that is.The alignment I currently do is squareness of the bridge (with me the Y axis for you the X axis) relative to the X axis.This takes a lot of time and I have lent a 4um/m squared block of steel for that purpose. I wanted to buy such a block but it costs thousands of €

author: pisoiu
author_rank: Regular Contributor
timestamp: October 03, 2019, 07:32:54 pm
content: If I understood correctly, you also plan to use openpnp. Why bother to mechanically obtain squarness when it can be compensated in sw?

author: jadew
author_rank: Frequent Contributor
timestamp: October 03, 2019, 08:22:33 pm
content: @pisoiu, nice project, will follow. I've been meaning to make a PnP myself, but it's rather low priority atm.How much did the mill set you back? I've been looking for a similar one myself, but I gave up for now because my shop is not on the ground floor. I needed 10 um precision and was told that I can't get that without spending 6k+ (also, the recommended mill was a lot bigger than that).

author: Kjelt
author_rank: Super Contributor
timestamp: October 03, 2019, 08:23:04 pm
content: Quote from: pisoiu on October 03, 2019, 07:32:54 pmAh yes that might be unclear, sorry, my current machine is a CNC mill not a p&pWhen the mill is finished I want to use it to build a P&P.I have two ballscrews on the two X axis and although I can correct the squareness with tandem homing it is not good to have to large offsets between the axis since this gives many forces on the rails and ballscrew spindles.

author: pisoiu
author_rank: Regular Contributor
timestamp: October 03, 2019, 08:45:03 pm
content: My mill plus some accessories (machine vice, boring head, etc) was around 2k. Mill is orion 2.0, damatomacchine. Italian company, but it is actually made in China. Expect to spend few hundreds more on measuring tools: interior/exterior micrometers, calipers, center finder, granite table, DRO, etc. Mill is manual, not CNC. Most extras are from aliexpress. Not top quality of course, but good enough.Then you'll have to discover the machinist inside you, otherwise you'll spend many more $ paying another trained person for that. But youtube is your friend here, as it was mine. Then you have to practice until you get some practical skills and hopefully you'll brake as few things as possible. I am at practice right now and today's lesson was that steel chips coming from mill are damn hot.I do not have experience, but from what I saw from more experienced guys working on manual mills, 10microns are achievable with proper techniques and good understanding of tools and procedure's limits. Just copying what you see is not enough. A bigger (and more expensive) mill will certainly make your life easier (and your pockets emptier) but this not necesairly mean that you can't achieve results on cheaper machines.Kjelt , much clearer now. At a moment during the initial design of my pnp I thought at 2 ballscrews for Y axis, considering the relatively lengthy X axis (1.5 meters), but my brain locked when tried to imagine how to synchronize the servos for both. So I dropped the idea.

author: Kjelt
author_rank: Super Contributor
timestamp: October 03, 2019, 08:51:24 pm
content: Yes synchronizing servos would require synchronised communication and identically tuned servoloops I guess. My mill uses closed loop steppers and the drivers are more easily commanded by the step/dir interface. The Eding CNC controllerboard does support dual axis and tandem homing which makes it much easier.Since a P&P does not have the large counterforces that a CNC does have, one ballscrew should be sufficient as many pro designs already have proven this in the past. So for my future p&p machine I also think of using a single ballscrew which makes it easier.

author: mendez
author_rank: Regular Contributor
timestamp: October 04, 2019, 12:15:17 am
content: @pisoiuThat looks nice!! Keep up the good work!

author: pisoiu
author_rank: Regular Contributor
timestamp: October 05, 2019, 08:01:19 am
content: And we have X axis:

author: stoyanoff
author_rank: Contributor
timestamp: October 06, 2019, 05:31:12 pm
content: Impressive! Congrats!The hardware is serios! I`ll show you mein in a few days, when I`m ready with the control. But I don`t use cartrige guides and lead screws, but rods and belts! I think your approach is better. I think I will have problems with the vibrations, but I am not sure. Your design is 100% better!Best regards!

author: Kjelt
author_rank: Super Contributor
timestamp: October 06, 2019, 05:40:01 pm
content: I like the 45otilt on the Y axis, you don't see that that much.I only saw it on an assembleon machine once.You like to share you're thoughts why you choose this over the standard 90oapproach

author: SimonD
author_rank: Regular Contributor
timestamp: October 07, 2019, 06:27:57 am
content: Hi,Very impressive plan! Can I ask how much money it has cost so far?Thanks.

author: pisoiu
author_rank: Regular Contributor
timestamp: October 07, 2019, 08:39:04 am
content: Stoyanoff,My design may be better in regard to some aspects but is definitely worse on others, in which your design is better. As everything in life, there are pros and cons in each choice. My design is better in precision and speed than a stepper and belt design, but is much more expensive, difficult to calibrate and heavier.Kjelt,This approach is a result of a combination of factors. My table has roughly 1x1.5 meters in size, it is very big, table alone have around 90-100kg. This is due the particularities I need for my machine. This whole pnp business, as I see it, is focused towards high speed in medium and high production volumes. This is why we see components on feeders and those are the kind of machines designed and optimized by big players in industry. But this is not good for low volume and prototyping, and everyone who asked quotations from PCBA for 10 pcs, knows it. This is also my business, designing many different products, prototyping them in 5-10 pcs and then low production batches, up 1000 pcs. For me is critical to have a fast machine setup and possible offline setup. I cannot spend an entire day setting up a machine for 100 unique components then run the machine for 10 minutes to produce a test batch. I need that machine offline and loaded up in less than 30 minutes. Fastest I can think of is with cut tapes and some kind of standard fixtures. Not feeders. Maybe only on very common components like 100nf and that feeder stays on the machine. Cut tapes are most common when we are talking about prototyping, it is not economically feasible to buy full reels or pay re-reeling service only for 10-20 components. This is why I need big XY space, for many cut tapes and trays.And that comes to your question about 45 degrees. That 1.5 meters X support has to be very solid to avoid deflection. The profile has 2 stainless steels bars inserted on sides. The carriage balls run on those bars when traveling. If I would placed the profile horizontally, it deflects in the middle with approx. 0.2-0.3mm only due to its own weight, not counting the head weight. If I would place it vertically, it bends and it induces oscillations when travelling on Y axis, because it is quite flexible in the direction of travel. That is why I placed it at 45 degrees, to obtain stiffness in both directions. The only other way was to use another profile type, square, but that one would have been much heavier, and this is not good for Y drive elements, supports and performance.SimonD,I do not have at this moment total costs, they will be accounted only at the project end. But I can give you some price examples for most important components:-ballscrews (plus end supports and motor connector) are TBI, around $750 plus $250 shipping from China-Panasonic minas a6 400w servos, drivers and cables for both axis, around $1000, also from China. From european distributor, one motor alone was quoted at 700 eur.-precision aluminium table 1x1.5 meters plus raw aluminium material for manufacturing parts: $800Then comes the interesting part of fitting all together. If you do not have a mechanical workshop at your fingertips and you don't know how to use it, prepare to spend a lot in designing and manufacturing unique mechanical parts. This is also valid for every other task which you have to put others to do it if you don't know how to do it yourself. Calibrating mechanics, configuring servos, vibration analysis, driver hardware and firmware design, optical systems design, pneumatics, integration with software, etc....

author: MR
author_rank: Regular Contributor
timestamp: October 07, 2019, 10:15:39 am
content: Seriously I think you underestimate a Belt design, my Mechatronika is very precise with a belt (in theory hah since those id**ts misconfigured the servo motors initially and we had to fix it by ourself), but they also do a reduction (can't say how much they do on the Y axis since I did not pay too much attention to it, it should be at least >2:1).Even if you watch some high speed Siemens pick and place machines, they're also using belts. I think the idea that belts aren't accurate enough comes from inexperience.Belt design (older Siemens, but I'm sure even that would be high level for openPNP at the current stage):this is a stepper based systemFrom my point of view the only intelligent part of a pick and place machine lies in the pick and place head nowadays. The X/Y movement is nothing worth to mention anymore.-> my opinion the X/Y movement is the easiest part of that machine.... pay attention how close the camera is, the illumination of the PCB is crucial, my Mechatronika is an utter failure with that (you can see the big distance of the camera and illumination ring in the first video) and misdetected fiducials can end up in misplaced or shifted components - and a lot re-working.-> this one picking up all components at the same time, you might need adjustable feeders for thatI would say this is even more efficient than gatling gun pick and place heads I would say, in those areas feeders are the key point.https://www.youtube.com/watch?v=JQcf46hquNQ&feature=youtu.be&t=21this one needs special feeders .. it's getting expensive. some of them don't even use the regular stripe feeder anymore but just queue up the components in a slot.I wonder if that guy also talks like that with his wife at home, freaky ad-talker.

author: pisoiu
author_rank: Regular Contributor
timestamp: October 07, 2019, 11:00:16 am
content: I do not have practical experience with belts on pnp, so yes, I may have some misconceptions. But what I see is that many manufacturers move from belt to ballscrew. In my unexperienced opinion, the accuracy of a belt design has not much to do with the belt itself being imprecise by construction, rather with the fact the material has some elasticity and that creates oscillations when using short acceleration and stopping times. Of course, that can be mitigated by proper servo tuning, using of external encoders, etc. but before being mitigated, designer must have means to analyze them and that can be done only with accelerometer based instrumentation or with high speed camera. Manufacturers, perhaps, have such tools. DYI builders most probably don't.I have some experience in the past with transmissions with belt in other systems and I found them difficult to purchase and the variety was not as wide as ballscrew's. Also, the design of the drive/support ends is a bit more complicated for me, compared with ballscrew, which has all components readily available, aliexpress/alibaba is full of suppliers.Otherwise yes, XY movement is the least challenging part, I expect to be a little difficult only at servo configuration and tuning.Vision system will be with coaxial illumination, ethernet camera on head and usb camera on bottom. I have already built and tested a rough prototype. Currently, openpnp cannot work with multiple component cameras, so for the moment I'm stuck with one. In the future, I plan to develop a fly vision camera to speed up things.LE: your M80 have one nozzle travelling over...don't know exactly, say 50cm from the videos? Mine will have 24 nozzles (hopefully) over 150cm. I would need a pretty wide belt

author: SMTech
author_rank: Frequent Contributor
timestamp: October 07, 2019, 11:32:41 am
content: Most bigger machines stopped using belt a while ago, these days cheaper machines use ball-screw and more expensive ones use linear motors. Linear motor options are often promoted as a zero maintenance option.On our Essemtec it is suggested the 30mm X belt is changed every ~2 years (but this will depend on usage, 5+ seems more common as far as I can tell) on a Paraquda at least Y is driven by belts on both Axes and these last 10+years, although again Essemtec would like you to change them more regularly. When the belt fails you will hear the gantry vibrate when it moves, all the belts can be tensioned & the tension is checked by measuring the resonant frequency by plucking it. On these machines there are linear encoders on both Y axes as well as X, the location from all of these is fed back to the servo controller. A full calibration of the machine maps the location of a glass plate covered in fiducials against the encoder data.

author: Kjelt
author_rank: Super Contributor
timestamp: October 07, 2019, 12:51:32 pm
content: AFAIK belts can be equally precise as ballscrews but they have some disadvantages, the tension is falling after time so you need auto tension mechanisms and they wear out much quicker than ballscrews.Also with ballscrews you need to weigh speed vs accuracy, they are available in 3mm travel per rotation upto over 20mm travel per rotation. If your servos or closed loop steppers are accurate enough it does not matter and you often see the larger travel per rotation ballscrews used in p&p machines to optimize for travel speed.Linear motors are the ultimate but very expensive and quite dangerous if you are doing the pid control loop on your own.

author: MR
author_rank: Regular Contributor
timestamp: October 07, 2019, 01:23:24 pm
content: Quote from: Kjelt on October 07, 2019, 12:51:32 pmAfter my experience with the Mechatronika machine (which is using Delta Servo Motors) I can say that those motors are pretty easy. There's almost nothing you can do wrong if you're careful enough.A completely misconfigured PID will result in a controller shutdown of the motor.So you just need to take care that you won't run against the boundaries of the machine.The other question:The mx80 has a travel distance of around 50cm.After all my experience with the machine I can say all Mechatronika really sells is the machine (at a cost which just does not justify anything they sell) ... but for a successful manufacturing ability you'll need much more...a) stencil mask printer, and experience with solder pasteb) component managementc) maybe AOI, depending on what you want to doThe big limitations of our machine:- I need a tray feeder, we're currently juggling trays manually it's okay but I don't like that. There's a commercial company (probably the first one you'll find on youtube) which sells one tray feeder for 20.000 EUR (yes right, 20.000 EUR). I'm not going for that, I'd rather do it myself with a few steppers and a 3d printer for prototyping.If you would have done a portal design with the portal being longer than the Y rails you could pick the components from outside of the portal.See:That's all stuff you learn once you juggle with feeders :-) Yamaha CL Feeders seem to be okay (I'm just starting with it and building an adapter for my mechatronika mx80).One problem you definitely cannot have is parts falling into the machine, the Mechatronika MX80 is braindead when it comes to that, you cannot get things out of the machine without special tools. We have already modified the machine so we can get inside it.

author: SMTech
author_rank: Frequent Contributor
timestamp: October 07, 2019, 01:56:18 pm
content: Trays represent a major issue to anyone who has multiple ICs that come packaged in trays on a single design. Its true for pretty much any vendor. Typically there is a basic option that uses up around 30 feeder slots and hold two trays, sometimes there might be an intermediate option where a feeder cassette that uses fewer slots can be loaded and it can alternate between ~6 trays, this is an option I've seen on Dima for a reasonable price & I think Fuji do it too, some devices in trays can be quite light so the mechanism needs to be smooth so nothing jumps out of its pocket. The next option is your more typical filing cabinet sized tray changer, £20k is a pretty good ballpark price I think, these can hold lots of trays so you are covered both from a volume and multiple device type perspective.Two machines take a different approach, Europlacer have the option to fit a tray inside the machine over the conveyor that holds 10 trays and Hanwha have a tray feeder that feeds from beside the machine so uses no feeder slots. I think some Yamaha/iPulse machines have(or the option to) a tray area inside the machine possibly at a cost to max PCBwidth.

author: Kjelt
author_rank: Super Contributor
timestamp: October 07, 2019, 02:10:47 pm
content: Quote from: MR on October 07, 2019, 01:23:24 pmI was talking about LINEAR motors.Those do not have any physical resistance (like a ballscrew or belt) which can slow rhem down, they can easily do 20G acceleration.I have seen the damage it could do , a 1m linear motorcarriage went right through 20mm aluminium endplate.

author: MR
author_rank: Regular Contributor
timestamp: October 07, 2019, 02:31:12 pm
content: Quote from: Kjelt on October 07, 2019, 02:10:47 pmoh thanks didn't know about those yet! However I really think that the X/Y configuration is just one part and not the bottleneck of a fast pick and place machine ... far before that the bottleneck will be the pick and place head and feeders.

author: Kjelt
author_rank: Super Contributor
timestamp: October 07, 2019, 03:00:39 pm
content: I agree on that.It amazes me that there are little new innovations in the feeder field.Paper tapes with plastick cover is just so clumsy.Only the bulk component piezo shakers which are rediculous expensive are new developments.

author: SMTech
author_rank: Frequent Contributor
timestamp: October 07, 2019, 03:32:55 pm
content: Where do they evolve too? Tiny parts with tiny legs and an orientation need to be presented to the pick head somehow in a predictable fashion without being at risk of damage, I don't think there is a way round tape with pockets for many items. The piezo thing could perhaps be extended to more parts 2-pin if you could make that feeder just as small as a tape feeder but those bulk parts, come in a tape its just there's a whole lot more in each pocket.

author: Kjelt
author_rank: Super Contributor
timestamp: October 07, 2019, 05:35:15 pm
content: True for asymetric and fragile parts but for the jellybean resistors, caps and diodes it is such a shame.For resistors the time to sort , package plus packaging material itself outweighs the component costs, silly huh?But I am going offtopic so will let it rest.

author: pisoiu
author_rank: Regular Contributor
timestamp: November 29, 2019, 04:52:41 pm
content: Little by little, final aluminium machined pieces are coming together.First Y test with aluminium parts, speed and acceleration at maximum.

author: pisoiu
author_rank: Regular Contributor
timestamp: November 29, 2019, 05:37:22 pm
content: And this is how stopping looks like at 1000fps. Servo driver is not tuned, it will be only in final mechanical configuration.

author: stoyanoff
author_rank: Contributor
timestamp: December 05, 2019, 08:09:20 pm
content: How does your acc profile look like? For mine I`m using 1/3 of the distance for acceleration and 1/3 for deceleration. I have no time to tune this, but now even when I use speed like 7000 the machine acc and dec smoothly and causes no vibrations.I haven`t made clips of my machine, because I made a stupid mistake - I`ve tried to use a simpe camera(USB HD) insted of the industrial once suggested by openpnp. And now my machine doesn`t see anything.... Don`t do it! I have to setup everything manually and it is not great..Best regards!

author: pisoiu
author_rank: Regular Contributor
timestamp: December 06, 2019, 06:20:58 am
content: Hi,Acceleration profile in my drivers is based on acceleration times and max rotational speed, not travel distance. What you see in above movie is with 10ms acceleration/deceleration time and max speed at 4000 rpm. The max speed is only achieved on longer distance, not on small steps. I did not actually measured 10ms acceleration time to see if it's really there, there is also a torque limiter which may be activated during acceleration. I tested this at max speed to see if it holds together, but a complete analysis and tuning will be done only when all pieces are there for both axis. Driver software has very nice tools to help with that, you can plot a lot of graphs with every imaginable parameter from the motor.As for cameras, my top camera is an ethernet camera due to long cable, 2.5m at least. I know it has delays and low frame rate but I don't really care as it is used in production only for fiducial recognition, few hundred ms there won't make difference. But I need immunity on noise. Bottom camera is usb3.0 but I plan to use isolators on all usb's (camera and controller) , to avoid interference from noise sources. Internal communication between main controller and head electronics will be CAN, between controller and servo drivers is RS485, also due to immunity reasons.

author: Styno
author_rank: Regular Contributor
timestamp: December 06, 2019, 08:38:50 am
content: What are your reasons to use CAN for the head and RS485 for the feeders? I know RS485 only handles OSI level 1 and CAN level 1 & 2, but I'd like to know why you don't choose one over the other to reduce adding complexity in the machine communication (besides already using Ethernet and USB)?Do you need CAN stuff like message prioritizing?

author: pisoiu
author_rank: Regular Contributor
timestamp: December 06, 2019, 09:52:55 am
content: Hi,CAN is chosen because of noise immunity, this is the first reason. Data cables are long, over 2.5 meters and in parallel with switching high current cables for servo. I have here available many MCU used in other projects of mine with CAN interface, second reason. I have good experience in writing firmware for CAN devices, third reason. Low latency, hardware address filtering, communication based on low quantity of data, automatic CRC processing, support for many nodes, fourth reason. CAN will be used between main controller to head electronics and main controller to feeder banks.Servo controllers I use (panasonic minas a6) have a choice between standard multi-signal interface (step, direction, etc) and commands over RS485 using their protocol. It is easier for me to talk with drivers over RS485, less wires used, better noise immunity, much better control flexibility, as I have access to all servo parameters, status, errors, etc.

author: nisma
author_rank: Regular Contributor
timestamp: December 25, 2019, 02:48:27 pm
content: As info, without being related to it.https://www.crowdsupply.com/citrus-cnc/simplepnpIt seems that there make some additional changes to lower the price.It already have some serious design flaws for saving small $ on certain components but overall the is not bad and price with 3d printed feeder is not bad.Certainly it depends if the company is registered to export where the vat and machine could be deduct from taxes, otherwise Chinese Machine is in the end cheaper paying less then double that price. This for professionals.For hobbyist this don't matter.

author: Kjelt
author_rank: Super Contributor
timestamp: February 14, 2020, 11:31:17 pm
content: Any updates or progress pisoiu ?

author: pisoiu
author_rank: Regular Contributor
timestamp: February 15, 2020, 09:43:20 pm
content: Hi,There are some, but not very spectacular (meaning no videos).I worked hard at mill to complete the aluminium parts required to mount everything needed for x-y assembly. There are still few parts to be built and I expect at least a month until I have something moving.I also built a controller required to interface everything with openpnp. It will talk with servo drivers over modbus RS485 and will send all data to head assembly over CAN.I tested a laser alignment system for small components, it works fine, basically any component with biggest cross section smaller than 7mm will use laser alignment for placing, not camera. That will be done on route from picking coordinates to placing.The bottom camera is now in building process, and I think I will include in it, besides the coaxial illuminator, a laser displacement sensor, to measure component height in the nozzle.That's it so far.

author: Kjelt
author_rank: Super Contributor
timestamp: February 15, 2020, 11:08:05 pm
content: How does your laser alignment work, is it a oem piece or did you do something yourself?20 years ago they did it like thishttps://www.eevblog.com/forum/projects/tear-down-of-an-assembleonphilips-pp-head/msg1293815/#msg1293815

author: rx8pilot
author_rank: Super Contributor
timestamp: February 16, 2020, 12:14:50 am
content: Quote from: Kjelt on February 15, 2020, 11:08:05 pmOn my Quad 4000C - it uses a laser scanner and a CCD line sensor. All analog upfront that gets digitized for comparison. For its age - it works really well. Guessing modern tech could do the same thing for pennies at 100x the resolution. This method is really fast and travels with the head so the up-camera only gets used for fine pitch BGA's.Someday, I will be forced to convert my Quad to Open PNP as the old hardware dies out and the software becomes a problem. That would be a fun and exhausting project.

author: pisoiu
author_rank: Regular Contributor
timestamp: February 16, 2020, 02:27:36 pm
content: It is built by me. The head is not built yet, I only tested the concept on the bench, a laser diode (7mw red, nothing special about it), a lens colimator and a line scan sensor 128 pixels, 8mm active area (tsl1401). The laser light must be as wide as the sensor and it's critical to be parallel. It will work exactly as in the video shown by you.

author: Kjelt
author_rank: Super Contributor
timestamp: February 16, 2020, 06:42:34 pm
content: If you would like a few of the Cyberoptics units from the Assembleon machine I can sent it to you for free, maybe some optics to be re-used? I have no idea if that would be usefull.

author: pisoiu
author_rank: Regular Contributor
timestamp: February 16, 2020, 07:07:48 pm
content: Hi,Thanks, I do not want to entirely dismiss the idea, but to be honest I prefer to build everything with aliexpress components, this way, if something breaks, it will be easy to fix or cheap enough to build a new one. It is also essential to use that line scan sensor, it is the only one with low cost and SPI access, this way allowing me to control the entire head with an 8051 MCU. I have good experience with this family and I write everything in ASM to have control to the last instruction cycle. This level of control is also required because the Z actuator for head position will probably be a voice coil linear actuator, which I have to build a prototype and test yet. For that one I need also to write a control loop in 8051 firmware.

author: rx8pilot
author_rank: Super Contributor
timestamp: February 16, 2020, 08:05:13 pm
content: What is the cost of that sensor?

author: pisoiu
author_rank: Regular Contributor
timestamp: February 16, 2020, 09:16:46 pm
content: 5eur@100pcshttps://ro.mouser.com/ProductDetail/ams/TSL1401CL?qs=%2Fha2pyFaduidmTd2EaO%2FEzP5HOW4QkvofPff3ELECl8%3D

author: RoGeorge
author_rank: Super Contributor
timestamp: February 16, 2020, 09:41:12 pm
content: Optical mouse sensors are cheap too, also fast, many can be used as low resolution high fps camera. Didn't followed the thread closely, so might be a dumb suggestion.

author: rx8pilot
author_rank: Super Contributor
timestamp: February 16, 2020, 10:50:39 pm
content: Quote from: pisoiu on February 16, 2020, 02:27:36 pmThe resolution seems to be modest - do you suppose that will be a practical limitation? I guess it should get the alignment close enough for most parts - perhaps a challenge as the parts get small.

author: pisoiu
author_rank: Regular Contributor
timestamp: February 17, 2020, 06:55:57 am
content: True. Not great but not terrible either. With this sensor I get a measuring error of +-62.5 microns. I could have used better but... bigger sensors (in terms of size and/or resolution) comes with several problems. I would need a wider laser beam, that complicates optics. Greater resolutions are much more expensive , both the sensor itself and the required interfacing. Most have analog output, they need timing circuits, adc, etc. I have also size constraints, everything must fit in a 30mm square. This one seem to fit my needs, hopefully with good results at least to 0402. When I'll have a prototype, I will see..RoGeorge, for this kind of application, a linear sensor is required. Having 2d sensor would not help, it just complicates optics. The optic mouse sensor itself have a very low resolution (in the range of 20x20) and the array is very small. It is mandatory in this case for the sensor to have the reading area in 1:1 ratio with the object you want to analyze.

author: pisoiu
author_rank: Regular Contributor
timestamp: March 03, 2020, 05:46:23 pm
content: Here are the first tests with x-y assembled, one at minimum speed, another at 50% speed. Nothing is tuned, I do not dare to play more with it, as the travel limiters are not yet installed.Test programs feeds with 96 components and places them. No head yet. Sorry for the shake especially in the second movie but I kept my foot on the table to minimize oscillations.

author: RoGeorge
author_rank: Super Contributor
timestamp: March 03, 2020, 06:34:52 pm
content: That's scary fast!

author: Rat_Patrol
author_rank: Frequent Contributor
timestamp: March 03, 2020, 10:14:46 pm
content: May want to tune your acceleration profiles!

author: pisoiu
author_rank: Regular Contributor
timestamp: March 04, 2020, 06:20:36 am
content: Yes, it definitely needs tuning, not only on acceleration profiles, also on servo filters. With the exception of few basic parameters (comm baud rate, direction, etc.), all servo parameters are default, not matched to this machine. Tuning will be next step after I install travel limiters, I am afraid to do more tests without those, the risk of damage is significant without protections.

author: MR
author_rank: Regular Contributor
timestamp: March 20, 2020, 06:44:13 pm
content: Travel limiters like for trains?https://youtu.be/EVBdrPggXO4?t=34I guess once the portal hits the travel limiter it will be damaged.Or did you mistake it with homing switches?

author: Kjelt
author_rank: Super Contributor
timestamp: March 20, 2020, 07:40:18 pm
content: Quote from: MR on March 20, 2020, 06:44:13 pmThey are commonly used also in commercial PnP machines.Here an example from Assembleon spindle. No idea where to buy them but it does not damage since it has a spring which will deaccelerate the motion and the closed loop servo driver will detect the error and stop the servos.

author: pisoiu
author_rank: Regular Contributor
timestamp: March 21, 2020, 09:38:26 am
content: I wasn't very specific with travel limiters. The system has several components and is different than homing sensor.Homing sensor is optical, that one needs to be very accurate and with low mechanical hysteresis. Currently I am playing with one which has 50 microns hysteresis and 10 microns repeatability.Travel limiters are actually composed of 2 separate components, electrical and mechanical. There are 2 switches connected to servo drivers into protection ports. Panasonic calls them POT and NOT inputs (positive over travel and negative over travel). When those switches are actuated, whole driver immediately stops and brakes the servo. Secondary travel limiters are purely mechanical, installed at the ends of the ballscrew. I will not use springs, rather some thick rubber pieces. They are designed to minimize the damage in the eventuality that POT and NOT fails.The system uses absolute positioning and during testing phase, there may be cases when driver software filters are off and coordinates outside the machine area can be entered. Without protections, there will be damage.

author: Kjelt
author_rank: Super Contributor
timestamp: March 21, 2020, 06:08:28 pm
content: Quote from: pisoiu on March 21, 2020, 09:38:26 amYou already have a servo with encoder, so one of the cheaper but also very accurate methods is to use a simple proximity sensor icw the encoder.Fast move till sensor activates, Brake, slowly move back till sensor deactivates, now continue to move till the first index pulse of the encoder, finished.

author: pisoiu
author_rank: Regular Contributor
timestamp: March 21, 2020, 07:48:00 pm
content: The sensor I want to use is an encoder actually. I don't need to worry about homing procedure steps, the servo driver has a separate command just for that purpose. But it works pretty much as you said.

author: mendez
author_rank: Regular Contributor
timestamp: April 13, 2020, 10:32:42 pm
content: The build looks great!. Which controller are you using? Smoothieboard?Quote from: pisoiu on March 21, 2020, 07:48:00 pm

author: pisoiu
author_rank: Regular Contributor
timestamp: April 14, 2020, 08:31:30 am
content: No, the controller I use is built by me because I need to control timings very precisely. Each millisecond counts. It has a ftdi and 8051 CPU on the main board with CAN interface, from there UART goes to servo controllers through RS485 interface. All data for heads are going on CAN bus and each head have its own 8051 CPU with CAN, which controls vacuum relays, vacuum sensor, voice coil actuator, laser alignment system and rotation motor.

author: mendez
author_rank: Regular Contributor
timestamp: April 15, 2020, 02:28:46 pm
content: Thats amazing! Could you share how you did it?

author: cgroen
author_rank: Unknown
timestamp: April 15, 2020, 05:15:11 pm
content: Great project pisoiu!Is it perhaps possible for you to write the exact partnumbers on the drives and motors (in fact, maybe even the mechanical parts also?) ?I have looked at the motors/drives, and there are quite a lot to chose from, it would be great to know at least a "working combo" if possiblePS: really impressed with the speed and the mechanics !!

author: pisoiu
author_rank: Regular Contributor
timestamp: April 15, 2020, 08:57:07 pm
content: I cannot share design files. They are quite useless anyway because they contain many precision custom machined parts and without a mechanical workshop, it is outside of many amateur capabilities. This entire project is not a personal project, it is a company funded project. The costs are quite high, so far they are close to 10k$ in components only. But I can share implementation details and some component details.For the x-y, motors and drivers are MHMF042L1U2M+MBDLT25SF . Iirc, I said in some post details of ballscrews, TBI2550, one is 1m, other 1.5 meters.Controllers are configured in full closed control, they have external scales with 5 microns resolution, this is work in progress, scales are yet to be installed, configured, then both servos must be tuned to the actual mechanical parameters of the machine. I expect this to be a hard process.The heads are not yet finished. Parts are in various design phases. I tested the rotation motor, it is a small 8x10mm stepper, 20degree step, with 1:10 mechanical demultiplication to nozzle. It works fine, so far microstepping down to 1:8 should be enough for positioning. The laser alignment system is tested as a principle of operation, it uses a TSL1401 sensor (128x1) but currently I am having trouble obtaining a parallel laser beam with good quality. I tested some configurations with plastic lenses but the quality is not ok, they produces a parallel beam but most of them have a dead spot in center due to plastic quality. I must switch to glass lenses but I was not able to find a ready made one for my needs, I need to design and build a custom one.Voice coil actuator and vacuum system are yet to be designed and tested.However, this entire corona situation created me some personal problems which significantly slowed the working pace. The progress is far from what I want, but unfortunately I cannot do too much about it.

author: Kjelt
author_rank: Super Contributor
timestamp: April 15, 2020, 09:26:20 pm
content: I think the tuning of the servos will cost effort but not too much since you do not have a problem with a little overshoot such as cnc machines where this is an absolute dead sin, a no go.So you could start with the autotune feature many driver manufacturers have built in software for to get a first aproximation and then manually tweak for more performance. Sometimes a little overshoot and backing out can be way faster than stopping ahead and slowly move to the endposition. It often also depends on the distance that needs to be travelled.You said you had problems with the laser optics, I offered to sent you a few of the used ones from the assembleon hesds, don't know if they have the good optics, but they did work

author: pisoiu
author_rank: Regular Contributor
timestamp: April 15, 2020, 09:42:46 pm
content: Thanks for the offer. I have studied them but they are not ok in my case, this is why I did not asked for them.My problem is mostly related to space available around the nozzle tip. In order to be able to construct a matrix of heads, I must keep entire head assembly inside a small square of 30x30mm approx. Your sensors are much longer, this is why I cannot use them. Inside that square, nozzle is in center, and alignment system must be in the same plane as nozzle tip, when it is retracted. There are several moves over Z axis which are required to measure component height and nozzle runout during rotation, as well as the component positioning. The beam is approx 8mm wide and here is the problem, the laser diode and collimation optics have very little space to fit, only few mm. This forces me to use a very low focal distance lens and a laser diode with output angle over 40 degrees, which are not too common. Only some blue laser diodes fits these specs. Z of the lens must be also reduced as much as possible, therefore I must use a cylindrical lens, not circular. With common laser diodes and glass optics from aliexpress, I cannot make emitter shorter than 15mm, which is too much, does not fit in available space.

author: cgroen
author_rank: Unknown
timestamp: April 16, 2020, 06:34:50 am
content: Quote from: pisoiu on April 15, 2020, 08:57:07 pmThanks pisoiu!I was not after the design files, only the partnumbers for the motors/drives etc that you were using (as they seem to do a very good job!).Thanks for the info, and I do hope that whatever problems you have encountered during this corana shit will be behind you soon!God luck with the build, and please keep us updatedRegards,Carsten

author: pisoiu
author_rank: Regular Contributor
timestamp: August 06, 2020, 07:30:46 pm
content: Progress is slow but it is.I installed the cable paths and all the required sensors and mechanics for X axis : end stop hard protections, end sensors, homing sensor, external scale sensor, top camera and laser Z sensor.In the next period there will be a lot of work at servo driver parameters, to optimize them for the actual mechanics. I also have some debugging to perform, external scale sensor seem to create some problems at speeds over 2000 rpm, it needs some verification of signals waveforms.Anyway, tedious work. Must go on.

author: olkipukki
author_rank: Frequent Contributor
timestamp: August 06, 2020, 09:46:44 pm
content: There are a lot of vibrations going on - how you will fix it? Epoxy granite or cast iron base?P.S.The most advanced OpenPNP build that I saw in a public

author: pisoiu
author_rank: Regular Contributor
timestamp: August 07, 2020, 06:35:30 am
content: The build sits on a workshop bench, that one was designed only for static loads.In the end, it will have its own table with thicker legs and it will have some weight under it.

author: pisoiu
author_rank: Regular Contributor
timestamp: August 14, 2020, 04:03:32 pm
content: Well, after a consistent number of tests with X axis, I want to share some conclusions in case it may help others. Y axis is not yet ready, about that I will post in the future.The ballscrew I use is TBI2550,class 7. It has 1.5 meters total length but due to mechanical components size and other limitations from sensors, the useful actual travel is around 1 meter.The initial tests were performed with servocontrollers set in positioning mode, that means the position is solely dictated by measuring the encoder in the motor, encoder with 2^23 steps resolution, that is 8388608 steps per revolution or per 50mm of travel.When servocontroller is set on positioning mode, I can use speeds up to 3000 rpm without issues, but I have an error of about 0.4mm over the entire travel length. It was measured with an inox ruler sticked to the table and with top camera pointing to it.When I switched the servocontroller to full closed loop (that means positioning control when the feedback is from the motor encoder and also external encoder), the error was gone. I am sure some error still exists but I cannot see it with the camera. For feedback I use an external encoder from aliexpress, A/B type with differential outputs and 5um step resolution. However, this encoder gives me troubles at high speeds. I discovered that when speed is over 1800 rpm, it 'slips', the head travel more than programmed. I tried to debug the encoder lines with a logic analyzer but I failed to see anything because of the noise present in long wires.However, after some tests using pick'n'place programs close to real cases, I concluded that very rarely the speed approaches to 2000 rpm, so it makes no sense to spend more time debugging this problem. I will leave max speed at 1800 rpm, because what is more important than that is the acceleration/deceleration. The system works flawlessly with 20ms acceleration times and under these circumstances, the measured speed with my test programs was around 5000 cph. I hope will stay around this number after further development.

author: MR
author_rank: Regular Contributor
timestamp: August 14, 2020, 05:23:04 pm
content: Quote from: olkipukki on August 06, 2020, 09:46:44 pmthis one is not doing so much optical recognition, which is needed for placing eg. 0402 nicely, it also depends how nice the feeders are.The CPH will go down drastically once it would do the optical recognition on everything.

author: pisoiu
author_rank: Regular Contributor
timestamp: August 14, 2020, 08:11:29 pm
content: Yes, it will go down definitely. To prevent it going down too much I plan to use bottom camera optical recognition only for big components. For smaller components (biggest size under ~6mm) I plan to use laser alignment in head, during travel. At least that's the plan.

author: Kjelt
author_rank: Super Contributor
timestamp: August 14, 2020, 10:27:48 pm
content: QuoteWhat is the acceleration setting in mm/s2?

author: pisoiu
author_rank: Regular Contributor
timestamp: August 14, 2020, 11:08:14 pm
content: Approx 5.1G or 50.000mm/s^2 if I calculated correctly. Ballscrew step is 50mm/rotation.That acceleration time, according to servo driver rules is time required to reach 3000rpm.

author: Kjelt
author_rank: Super Contributor
timestamp: August 15, 2020, 07:48:44 am
content: That is very high , almost time for a linear motorbut your pnp head is lightweight so the forces will probably be ok?Still I would be carefull of the ballscrew, running at these accelerations might cause extra wear on them.Check with the manufacturer if this is within their spec.At the the end you can tune them down to the needed speeds for your application.Still impressive results.

author: pisoiu
author_rank: Regular Contributor
timestamp: August 15, 2020, 11:10:37 am
content: The heads are still on paper. Most probably I will have to slow it down a bit depending on other components behavior.I already think I have some problems due to high acceleration. The top camera uses a coaxial light and is mounted quite far from viewing plane. To compensate this and to minimize distortions I use a C mount lens with 6-60mm focal. Even if its rings are fixed on position with screws and none of camera parameters are on auto, I observed variations in exposure, most probably high accelerations are affecting lens mechanics.

author: nisma
author_rank: Regular Contributor
timestamp: August 15, 2020, 12:33:09 pm
content: High accelleration, even on fixed lens glued in with red dot glue (nail lack from you girlfriend) after some time it must be serviced and the sensor reinforced with glue as well as other parts and the amera mount reinforced otherwise it flex. Ring light works fine, but real th ring light with intensity settings using lm317 and four piranha warm LEDs with its own brightness settings. I would not recommend using and clearly you must upgrade USB interface for ESD protection and with ferrites, after that 5-7 image drops are normal, but without it freeze camera. This if USB cable is near stepper driver cable running on higher voltage. Camera drops have ben merged to openpnp for high speed head motion.If you are not using loose feeders then illumination is not so critical.

author: pisoiu
author_rank: Regular Contributor
timestamp: August 15, 2020, 01:03:20 pm
content: Truth is I had a lot of problems lately with signal integrity, but surprisingly the camera was the least affected. The top camera is an usb2.0 full hd global exposure camera, 120fps from aliexpress. It is connected with its original ~1m cable and another usb 3.0 extender, in total are ~3m of usb cable, of course, running in parallel with servo cables. It never freezed and if I had dropped frames, I had not noticed them.But the usb to dual port ftdi interface which connects openpnp to the driver made a lot of troubles, mostly, after servo driver enabling, the usb ports from win10 dissappeared. This was entirely my fault, because initial setup of servo installation was not in accordance to recommendations from datasheet regarding filters. After I installed ferrite chokes on power cables and also on usb cable, problems were gone.

author: MR
author_rank: Regular Contributor
timestamp: August 15, 2020, 02:59:24 pm
content: Is the lag of the video introduced by using MJPEG of the camera or OpenPNP itself?We're using YUYV directly for live view and the picture is available much earlier.

author: pisoiu
author_rank: Regular Contributor
timestamp: August 15, 2020, 03:14:02 pm
content: Unfortunately that camera can only output mjpeg stream. It may cause some lag.In the videos above, the laptop I am using for tests works on battery, no external power, and I think is clocked down because of this. Openpnp preview has around 20fps preview rate but when works on external adapter it goes higher, around 50fps.

author: MR
author_rank: Regular Contributor
timestamp: August 16, 2020, 02:58:17 pm
content: Quote from: Kjelt on April 15, 2020, 09:26:20 pmhttp://www.wg.com.pl/pliki/karta/Laser%20Alignment%20Data%20Sheet.pdfIf I look at that and think about it it will require 2 pictures 0° / 90° to completely figure out where the component sits on the nozzle.Is that detection fully done in hardware or is it done on the PC via software in that commercial machine?I'm just using the camera approach for the SMDs.I did not check the price for the modules, but economically are those laser systems still worth it? Or just fading out in current PNP machines.

author: pisoiu
author_rank: Regular Contributor
timestamp: August 16, 2020, 05:13:35 pm
content: 2 pictures at 0 and 90 are enough only if you talk about 0/90 of the component. But since component may be rotated in respect to nozzle, then only a full 0-360 swing with multiple pictures at much smaller angles will determine x-y as well as rotation error.I am not sure about the supplier indicated by you, I know nothing about their products.I do not think laser alignment is fading out. Afaik this is the only way to align small components faster than up looking camera and I am pretty sure all high end machines (including those with hundreds of thousands CPH) uses it.My design will use laser alignment, but I do not use a readily available system, I will use one designed and built by me. All the correction data will be determined at head and communicated to the driver which will apply corrections. Openpnp is not involved in this.

author: Kjelt
author_rank: Super Contributor
timestamp: August 16, 2020, 09:58:04 pm
content: Quote from: MR on August 16, 2020, 02:58:17 pmIt is done in hardware, it was from a machine of late 90s.Besides the reasonable compact laser and optics in this module there is a coax cable going to an aluminium boxed eurocard size pcb where the dedicated controller and computing logic are located. A modern PC with multiple cores could do this easily on the fly.

author: pisoiu
author_rank: Regular Contributor
timestamp: October 05, 2020, 04:54:05 pm
content: Some play with feeders. First 3 are 0402, next 3 are 0603, last 3 are something bigger.https://youtu.be/83dRwtGfQPw

author: Kjelt
author_rank: Super Contributor
timestamp: October 05, 2020, 08:33:28 pm
content: Quote from: pisoiu on October 05, 2020, 04:54:05 pmNice but it is really time to stabilize the mount of you're machine

author: pisoiu
author_rank: Regular Contributor
timestamp: October 06, 2020, 08:50:23 am
content: Unfortunately it's not possible at this time due to restrictions in my mechanical workshop. It will have a proper table after moving to production site.

author: pisoiu
author_rank: Regular Contributor
timestamp: October 07, 2020, 12:19:12 pm
content: Another walk through passive components of one of my projects, to check coordinates accuracy. Most of passives are 0402.-I defined roughly 0,0 of the board-moved head to fiducials location, without any correction-perform fiducial check and apply corrections-walk through components to check placement positionhttps://youtu.be/M-8AKqj_JTk

author: Kjelt
author_rank: Super Contributor
timestamp: October 07, 2020, 02:00:01 pm
content: Very nicewhich camera did you use.

author: pisoiu
author_rank: Regular Contributor
timestamp: October 07, 2020, 04:08:16 pm
content: This one:https://www.aliexpress.com/item/32915353766.html, with a 6-60mm lens (*or 5-100, I have both and I don't know now which is installed). The lens however presents some problems, the aperture mechanism is moved inadvertently due to high accelerations, they can go as high as 5G. I have to find a better lens.It uses a coaxial illuminator with a 50/50 mirror. Unfortunately, in order to see ok most of the items, I have to open the aperture to a point where shiny surfaces and the pads (in the video are ENIG pads) are overexposed and they don't look too nice. But it does not seem to affect fiducial recognition.

author: Kjelt
author_rank: Super Contributor
timestamp: October 07, 2020, 05:43:17 pm
content: Quote from: pisoiu on October 07, 2020, 04:08:16 pmDo you mean it is broken or that the zoom, iris etc that you can lock with the screws goes loose all the time ? The latter you could add a drop of the right Loctite.

author: pisoiu
author_rank: Regular Contributor
timestamp: October 07, 2020, 09:33:16 pm
content: The rings for the zoom, focus and iris are locked with screws. Focus and zoom stays the same, but the luminosity of the image changes from time to time even if the ring is locked in position. I have to unlock it and re-adjust, then lock again. And after some time it changes again. At the beginning, with the screw unlocked, the iris adjustment was smooth but now when I turn it, it seem to move in steps.

author: pisoiu
author_rank: Regular Contributor
timestamp: November 04, 2020, 03:35:32 pm
content: Ok, so I begun to work on the firmware for the controller, the progress on mechanical system is not possible anymore without tons of io's.Specs:-usb interface-rs485 bus for servos-CAN bus for connecting to other boards-60 physical ports, almost all of them can be outputs and digital inputs, 12 of them can be analog inputs-80 logical ports which can be assigned either to physical port or to entities such as steppers, sensors, etc.-configurable parameter system for io matrix assignment, motors parameters, etc-the machine can use one controller board as master board, it takes data from openpnp to and from its ports, or it can route data to CAN bus. From there, any number of other controller boards, working as slaves, can take data from CAN and route it to their ports.I also had to make a turn in the development. I badly need a working machine for my other designs, and is very important to have something that works, not necessary with the top performance. The heads designs is much slower than I expected and I suffered some setbacks. So I decided to quickly install 4 heads from aliexpress, to make it work, and in the mean time the work on my heads will continue.

author: Kjelt
author_rank: Super Contributor
timestamp: November 04, 2020, 04:33:54 pm
content: So the interface of that I/O board to openpnp is USB ?How does that work inside openpnp is that some old fashioned serial interface or can you do 10Mb/s as would ethernet ?Nice sockets, what connectors are those, Molex ?

author: pisoiu
author_rank: Regular Contributor
timestamp: November 04, 2020, 05:54:52 pm
content: FT232RQ is the chip I use for USB interface. It presents a classic COM port to the OS, can be opened up to 921600. I have some restrictions with the crystals on that board and I can generate baud rate only up to 460800, but that's enough. I work with it at this speed. Since the data packets are not that large, it does not matter too much the speed increase once you are over 115200, the communication is much more affected by turn around times and delays in communication.Connectors are microfit 3.0 series, those are actually made by wurth, but molex also have them in identical footprint.

author: olkipukki
author_rank: Frequent Contributor
timestamp: November 07, 2020, 11:50:10 am
content: Quote from: pisoiu on October 07, 2020, 04:08:16 pmWow, "global shutter", "120fps", "1280X720", "with lens" for $85?! Hard to believe, but who knows...Do you know what a sensor inside?Does it come with any drivers or just works?

author: pisoiu
author_rank: Regular Contributor
timestamp: November 07, 2020, 02:22:48 pm
content: 1280x720 it is, global shutter it is, the image does not twist when head is moving fast. About 120fps, I did not measured top value, but certainly openpnp reports much higher frame rate than other cameras. It does not come with drivers, it just works. Lens is a bit of a problem, is a low quality cctv lens, mine got damaged a bit due to high head accelerations, it can reach 5G. I don't know about the sensor, I can't see a part number in the description.

author: MR
author_rank: Regular Contributor
timestamp: November 09, 2020, 10:33:32 am
content: Do you know which aperture this camera has?

author: pisoiu
author_rank: Regular Contributor
timestamp: November 09, 2020, 11:22:52 am
content: Currently I am using this lens on it:https://www.aliexpress.com/item/32972722509.htmlIt's a manual aperture, I think the mechanism is damaged because the image changes brightness from time to time and I need to readjust the aperture. Also, the adjustment does not seem to be smooth, it changes abruptly with the move of the ring.On the other hand I need to look for another lens, made for this kind of applications. Do you know, by any chance, a manufacturer of such lenses?

author: olkipukki
author_rank: Frequent Contributor
timestamp: November 09, 2020, 12:21:13 pm
content: Quote from: pisoiu on November 09, 2020, 11:22:52 amDo you professional-made in well-know companies?Well, prices starts from 300-400... and you relly need to know what you need to buy - so many variations thereIn most cases, depends where you are to find a distributor, no many sell directly.The budget option, I found on ali in range $100 in some specialized stores (search 'lens industrial camera machine vision' ) and still waiting 11.11 to pull a trigger for sake of a few bucks savingDon't forget to check a mounting too, might need C-CS adapter as well

author: pisoiu
author_rank: Regular Contributor
timestamp: November 09, 2020, 12:30:00 pm
content: Thanks for tips. I know they're not cheap but it's an expensive machine that needs to work so....

author: olkipukki
author_rank: Frequent Contributor
timestamp: November 09, 2020, 12:31:54 pm
content: pisoiu, did you machine custom parts for your machine inhouse or outsource to somebody?

author: pisoiu
author_rank: Regular Contributor
timestamp: November 09, 2020, 12:48:20 pm
content: All parts are manufactured by me. Lathe and mill. Outsourcing at this level would be, at least in my case, impossible to work with. It is the first prototype and there are many uncertainties and unforeseen problems which changes the design to the last second.

author: olkipukki
author_rank: Frequent Contributor
timestamp: November 09, 2020, 01:35:32 pm
content: Quote from: pisoiu on November 09, 2020, 12:30:00 pmJust give you an idea, not always you can find pricing available online w/o RFQ...https://www.kowa-lenses.com/en/machine-vision-lenses-c-mount-cs-mount

author: pisoiu
author_rank: Regular Contributor
timestamp: November 22, 2020, 10:59:35 am
content: A dry test with 2 heads. Pneumatics not installed yet and only 2 nozzles installed. Another 2 will join them soon.https://youtu.be/CqVI0omaFPk

author: Kjelt
author_rank: Super Contributor
timestamp: November 22, 2020, 11:06:15 am
content: What is that cross axis chain contraption you have ?Is that for mechanical synchronization of the two X axis ?Do you need it with ball screw spindles and cl servosor what is it for ?

author: pisoiu
author_rank: Regular Contributor
timestamp: November 22, 2020, 12:40:14 pm
content: It is for Y axis. It is driven asimetrically by ballscrew and the other end vibrates badly if left unconnected. The chain is mounted in such a way that is connected to both ends of the X rail and when Y motor pushes one end, the other one is pushed through the chain.LE: pulled instead of pushed, it sounds better for chains

author: pisoiu
author_rank: Regular Contributor
timestamp: January 14, 2021, 10:17:10 am
content: These are the first placement tests.0402 with juki 501 nozzle placed on test board from a strip feeder. At this point there is no nozzle calibration and parts are placed without vision. Some parts have wrong rotation, still working on that.And a bouncing problem which I need to solve:https://youtu.be/99QcyA9aAJILE: 10xSOT23, full speedhttps://youtu.be/5jwegV7XlWE

author: olkipukki
author_rank: Frequent Contributor
timestamp: January 15, 2021, 12:19:31 pm
content: Quote from: pisoiu on January 14, 2021, 10:17:10 amAre you planning to add an conveyor eventually to feed PCB into? or... place all PCBs on custom fixtures (as per video) for production run?

author: pisoiu
author_rank: Regular Contributor
timestamp: January 15, 2021, 02:45:47 pm
content: Hi,The goal of this machine is to perform small and prototyping production batches. It will be used mainly for in house production , <10k boards/year and if all goes well, I will also offer PCBA for prototyping/low volumes.The machine is designed to be loaded fast with components, this is the key to lower setup costs. It has large x-y (~1x1m) usable space to allow as many strips as possible. Most of the components must be loaded as strips and as few as possible on pneumatic feeders, loading and preparing them takes too much time. Maybe only common components will always stay on pneumatic feeders, such as 100nf, etc.The other steps in production (paste deposition, soldering) are also not inline. Soldering is with vapour phase.That being said, it does not make sense to spend effort adding conveyor. It adds little benefit in my setup. Maybe I will change the corner holders with some sort of pcb bracket, but will be manual load for sure.

author: Kjelt
author_rank: Super Contributor
timestamp: January 15, 2021, 03:50:51 pm
content: If you can handle panelized pcbs a conveyor without pneumatic feeders makes little sense IMO. You have to replace the strips anyways

author: olkipukki
author_rank: Frequent Contributor
timestamp: January 15, 2021, 08:05:50 pm
content: Quote from: pisoiu on January 15, 2021, 02:45:47 pmYes, make sense, I'm more interested how you will keep up with this machine, especially if you have optimized for XY movement in advance.I guess if you will place just one board per time, you basically babysitting this machine and no time to boil a water to make a coffee.Thought you either place as many PCB as possible and let it go while doing something else, no?Are your boards high-density with 100++ parts?

author: pisoiu
author_rank: Regular Contributor
timestamp: January 15, 2021, 08:50:08 pm
content: Hi,Imho, prototyping and low volumes involves babysitting, this is why I did not bothered with an inline process.Before considering designing this machine, I was looking to buy one ready made, chinese, something like SMT880, Kayo A4, etc. but none suited to my needs.My most complex design have around 180 parts (total) or 65 parts (unique) on a 75x35mm 4 layer board . It is my main product, a GPS tracking device. The problem is that with my current design there are a lot of variations for my customers, depending on which part of the world are they and what interfaces they require. There are variations in cellular modem type (2G, 3G, LTE), some have internal simchip, some needs CAN interface, there are RS485, RS232, Kline interfaces, etc. Currently I use external PCBA services but it is economically unwise to manufacture and keep on stock all possible variations between these options. I can produce 2-3 variations of products and then hope that the next order will be the right combination of options I have in stock. If I do not have it on stock, then in some cases I can manually change an existing board in something suited for the client, but for me it is an extra cost in labor and thrown components. And it only can be done with 10-20 pcs, not more. What I take out from that board becomes unusable for production. Many times I also had to refuse orders because they were too low on quantity and producing 10-20 pcs with a specific recipe would turn a 50$ product into a 500$ one and the client will not absorb such price difference.So, for me it makes sense to keep on my machine as many common components as possible loaded in pneumatic feeders, others can be quickly loaded on trays and if I need to produce 10-20 custom assemblies for a customer, no problem, it is done in a couple of hours. This is why my machine have big x-y space.I actually do not need from it very high speed. Current speed with what is visible in videos is around 2500cph and will drop once I start to use vision and components placed farther away from the PCB. What I need is to be able to load it fast, and fastest way is using tapes and trays.I used best technologies I could afford because I need precision and repetability over the entire working area, down to 0402. I do agree to babysit it to change boards and load components but I cannot agree to babysit it by always correcting misplaced components.If process works well and if I can find a way to allocate resources to create a PCBA service for prototyping volumes, that will be available as well.

author: pisoiu
author_rank: Regular Contributor
timestamp: July 14, 2021, 08:16:51 pm
content: Hi,I need a bit of advice, since my knowledge in optic fiber components is minimalistic to say the least.My machine design is progressing slowly. Now I am running reliability tests and I have some communication problems between main board and head board. After ~ 1000 components since job start something happens and machine stops, waiting indefinitely after some command. Somewhere between openpnp, serial port, main board, can interface, head board, something is lost. I tried to debug this by putting logic analyzer on the relevant signals but it is impossible. The electrical noise coming from the servos makes any low voltage signal completely unreadable if routed with long wires. On the logic analyzer all I see is noise from servos, nothing readable from wanted signals. So, the only choice I see is to use optical coupling for debugging signals. I want to use fiber optic emitters to be wired on the relevant signals, or to be wired on the CPUS and sending test codes, and those coupled with optic fiber to a receiver in the logic analyzer. But I am not sure what to use, I am unfamiliar with various optic fiber types, connectors, systems, etc. Test signals are in the microsecond range. What optic fiber transceiver/receiver/cable can be suited to this task? I am looking for low cost and ease of use. I want to use ready made cables, not raw fiber, splicers, etc.Thanks.

author: RoGeorge
author_rank: Super Contributor
timestamp: July 14, 2021, 08:46:33 pm
content: Never seen such a request before.I don't think a logic analyzer will be of any help, let alone an optical one. Also, there's no need to look at small signals and high amplification, but rather to measure the eye opening with an oscilloscope synced on both raising/falling edges and try to deduce the expected BER (Bit Error Rate).And if it were to go optical, then better use the optical path for the signals that drive the machine, why bother with optical cables for a debugger? Are those boards DIY or bought? What communication protocols are used, and at what speed, what error checking codes are in use, etc.?Though since the logic analyzer have problems reading the signals to be visualized, same problems will happen to the electronic in charge with all the data communication. Maybe the motors need chokes to remove part of the noise, maybe there is a ground loop somewhere, or maybe the data boards need better HF filters and cleaner power lines.Are you familiar with ground loops, and with transmission lines + reflections that happen in a line/wire at any point where there is a change in impedance? Are the data lines properly matched in impedance and with the proper terminators attached? Does the communication wires have the proper impedance, as requested by the design?

author: pisoiu
author_rank: Regular Contributor
timestamp: July 14, 2021, 10:59:25 pm
content: Ok, some clarifications are necessary.The USB serial interface from openpnp is located on the main board, installed on the machine bench. This board have around 60 analog and digital ports, one CAN interface, one RS485 interface. Ports are connected mainly to relays for feeders, RS485 and some ports are routed to servo controllers and CAN is going to head. On the head, there is another board which control 4 nozzles with steppers for rotation and Z actuation, position sensors and relays for vacuum ejectors. Both boards are based on a Silabs 8051 CPU. There is no signal integrity problem on the machine. USB serial connection is stable, cameras never disconnects. CAN bus is properly terminated, works without errors. Servos as well, there are chokes everywhere, as required by servo controllers installation guide.The problem is that the board's firmware is work in progress. Everything is written from 0. My problem is not to debug something which is supposed to work. My problem is to write the firmware for the entire machine and I have some glitches in algorythms somewhere, and I cannot find them. Typically, a command received on USB is broken in pieces. Some pieces are for servo controllers, those are sent by main board to the servos. Other pieces are for head board, to actuate nozzles, sent on CAN, and there, head board splits them further into signals for stepper drivers. After those are sent, both main board and head board must be monitored for command completion, in position signals, end of stepper movement, etc. Sometimes (1 from 1000 placed components typically), this chain fails somewhere and I need to see where, by monitoring all the path from USB serial port to the other end. When I connect logic analyzer to the machine, it needs to be connected to both boards (base and head) to see the sequence of the signals. But I also need to put analyzer's ground on boards and to laptop and thus I create ground loops which destroys the analyzed signal. This is why I need to transport test signals from both boards to analyzer without electrical connection.You can see the boards in the picture. They are actually identical hardware but the firmware is differentiating between main board and head board.

author: Kjelt
author_rank: Super Contributor
timestamp: July 14, 2021, 11:11:30 pm
content: I had this discussion many times on the cnc forum where they do not connect the shield of the motor or servo cables at both ends to ground. If you don't do this your cable is emc leak for elektromagnetic disturbance.What you should do (IMO) is follow the NEN guidelines for industrial machine construction and have each and every metal bar/profile/plate seperately hard grounded with a 4mm2 or better 6mm2 copper cable, preferably litze cable for emc but that runs up the bill. Tie all cables to a large copper bar somewhere on the machine and ground hard. Also connect the electronicscabinet to this point as all other cabinets/power supplies.By doing so you create the same earth potential on every part of the machine and per definition you can not introduce ground loops or perhaps on very high frequencies.Do not think one moment that a spindle with ball nut and linear rails are a good conductor. Yes you're Fluke will measure it below 0,3ohms resistance on dc level but the grease balls etc are for emc a high resistance.

author: pisoiu
author_rank: Regular Contributor
timestamp: July 14, 2021, 11:18:50 pm
content: Agree, I never take metallic mechanical components as ground conductors. I will try to connect them with thick wire. I have several shielded ethernet cables between table and head and none of them are using shield as current carrier. I use some twisted pairs for CAN, sensors and one cable is just for power distribution , 4 wires are gnd, 4 are 24V, one gnd wire is twisted with one 24v wire.I cannot remember now how the servo cables are connected but I can assure you they are installed as in the manufacturer documentation. They are Panasonic Minas A6 series and there is a quite comprehensive documentation available just for this subject of connecting power cables.

author: MR
author_rank: Regular Contributor
timestamp: June 19, 2022, 04:52:50 am
content: Hi Pisoiu,are you measuring the component height in advance or via sensor now?I think you did some alignment work back then how did that go?i would also like to add a sensor for measuring the component height on my machine so I don't have to measure the component height manually all the time.

author: pisoiu
author_rank: Regular Contributor
timestamp: June 19, 2022, 07:54:14 am
content: Hi,Last period was a little busy with other (more important) stuff, so the machine had to wait. But it is completed and now I am working at calibration. Unfortunatey I have an ellusive problem regarding Z alignment, somewhere, either the z axis of the top camera or the z axis of the heads are not perfectly perpendicular on the working surface. Because of this I have some problems at picking components, 2 out of 4 heads are picking with errors. Now I am building a device to help me calibrate perpendicularity but it is not completed yet. Same calibration will have to be done with both laser displacement sensors. After that, yes, I do plan to measure component height with displacement sensor, any solution which helps me to avoid doing things manually is good.LE: the position of the nozzles were marked with indigo on a piece of papers then measured with top camera, the picking position also measured with top camera. However, there is significant error when head goes to pick the component (0603), as it is vizible in the high speed film analysis. Film is upside down because the camera is mounted inverted.https://youtu.be/9y3F2kAtCw0

author: MR
author_rank: Regular Contributor
timestamp: June 19, 2022, 08:13:01 am
content: QuoteI think you have done some work on this in the past, or some experiments no?Which sensor did sensors did you use for that? And which accuracy did you get?I don't plan alignment via laser sensor, only height measuring.

author: pisoiu
author_rank: Regular Contributor
timestamp: June 19, 2022, 05:40:43 pm
content: Yes, I did some tests. They were for validating mechanical and optical problems but so far the sensors are not integrated into the openpnp workflow.I have a bottom sensor mounted on machine table, maybe I will use that one for checking presence of component in nozzle, measure height of component in nozzle and I have a top sensor mounted on head, that is for component height measurement, mostly for components in trays, cut tapes, etc. For components in pneumatic feeders I don't think it is necessary, they are usually all at the picking level. I also plan to use top sensor in a checking program, after placement is done, to see all the components are on board before soldering.I have 2 models, HG-C1050 and HG-C1100, one with +-15mm range and 30 microns repeatability and the other with +-35mm range and 70 microns repeatability. They are made by panasonic.

author: Kjelt
author_rank: Super Contributor
timestamp: June 19, 2022, 08:26:41 pm
content: Quote from: pisoiu on June 19, 2022, 05:40:43 pmInteresting till I saw the price

author: pisoiu
author_rank: Regular Contributor
timestamp: June 19, 2022, 09:06:16 pm
content: Yes, they're not cheap. If you go with official distribution channels it's probably worse. On aliexpress they are now at $250 ish. When I purchased mine in 2020 they were at $205.I remember I had the same issue with my servos (400w high inertia panasonic minas a6). I purchased from Singapore 2 sets of motor+driver+cable at a total of $1000 at the same time when in my country, Panasonic dealer quoted just one motor around 700 eur. Crazy.

author: Kjelt
author_rank: Super Contributor
timestamp: June 19, 2022, 09:15:15 pm
content: With Ali it is a lottery. I had $50 digitalpressure sensorswitches from Panasonic that in EU cost $100+ and also $20 SSRs and other stuff from Omron, all fake. They worked but were definitely not from the A brands. I stopped buying A brands from Ali therefore, good to hear you had a legit seller.

author: MR
author_rank: Regular Contributor
timestamp: June 21, 2022, 11:23:26 am
content: Quote from: pisoiu on June 19, 2022, 09:06:16 pmYou might check them on alibaba rather than aliexpress, I got mine for 160$ back then... while tme stocked them for 300 EUR or something like that.

author: pisoiu
author_rank: Regular Contributor
timestamp: June 22, 2022, 08:25:10 pm
content: My machine is now somehow finished but not yet operational, there are some calibration and tweaks to be done. But those are on the way.Currently, the head uses 2 double nozzle assemblies from aliexpress (those everybody know of, with juki tips). Far from perfect and far from my original plan, but it greately sped up the commisioning of the machine.New heads, which I plan to design from scratch, are left for the coming period, sort of stage 2 of the plan. Initially, few years ago, my plans for the head design were to use a voice coil to actuate Z and a small motor (like those used in cameras) for rotation. I took this path mainly because availability, for me, of such fine mechanical parts is limited.But now, taking into consideration recent advancements in 3d printing (I already have at my office 3 SLAs), new options may open up. Now I am taking into consideration to find a way to actuate pneumatically both Z and R since I already have compressed air in the system. I am thinking at a closed loop system: actuator, sensor for displacement and a mechanical brake.Does anybody know if some pick-n-place machine manufacturer uses such techical solution?

author: Kjelt
author_rank: Super Contributor
timestamp: June 22, 2022, 09:34:05 pm
content: These p&p heads from the 90s did use pneumatics for the Z placement for parts upto 0402 but the whole idea is that there is some flexibility in the Z movement of the head (springs).It does give some kick when it hit the board so you should have theboard also able to flex a bit otherwise already placed parts might jump. For rotation they use a small motor with quadrature encoder.https://www.eevblog.com/forum/projects/tear-down-of-an-assembleonphilips-pp-head/msg1287990/#msg1287990The more modern machines with precision placement seem to have linear actuators like these:https://www.eevblog.com/forum/projects/mystery-pp-part-found-need-help-identifying-purpose/msg1398879/#msg1398879

author: MR
author_rank: Regular Contributor
timestamp: June 23, 2022, 09:50:11 am
content: Last time I had a look at some Juki machines they use ground ballscrews for the vertical actuator.Some other machines (also commercial ones) just use a spring loaded belt connected to the linear rail.And many chinese ones use a stepper to hit down the spring loaded nozzle