Hello,
People have been writing earlier in the forum about an X-axis offset, but I have not seen a solution to the problem. This is a long post (also my first) but I hope someone will read it and have some good ideas.
I have finally finished my Liteplacer build and have a small offset problem. When placing components there is about 0.5mm offset in the positive X direction. Measuring offset using the camera gives 0.3-0.6mm offset, mostly in the upper range. I guess some variation can depend on how loose the components are in the tapes. Some of the component tapes are mounted in the -X and some in the +Y direction on the table. This far I have only tested placing 0603 and SOT23-5.
I have repeated the calibration routines a couple of times and everything seems ok. The cameras and camera to nozzle values are adjusted according to instructions. I use the camera assisted “Place” method.
Figure 1. Liteplacer with component tapes and PCB.
When picking components from the -X oriented tapes the nozzle picks very precisely in the component centre (0603 capacitors). Also selecting a component on the Tape Position page -> Show Part gives that the components are found and centered according to the camera cross using the video processing. Still, -when placing the components they have an +X offset.
Figure 2. 100nF 0603 cap, “Show Part” on Tape Positions page.
Figure 3. 100nF cap placed on sticky tape.
From figure 3 it is clear that the capacitor is mounted with a +X offset compared to the measured location; this has been repeated a number of times with the same result. In figure 5 the placed capacitor is rotated 90 degrees compared to when picked. As said, the nozzle was well centered on the capacitor when picking from the tape.
Components in the +Y oriented tapes are also located well according to “show part” using the camera and video processing. The camera cross is centered on the component pocket. Still the components have a tendency off being a bit off on the nozzle when picked, se figure 5.
Figure 4. Resistor to be picked.
Figure 5. Resistor is not centered on nozzle after pickup.
Figure 6. Resistor placed on sticky tape.
In figure 6 the resistor is rotated 90 degrees compared to when picked. It has an +X offset and also a small -Y offset probably due to being picked off centre, se figure 5.
All components have a +X offset after being placed. It doesn’t matter if the component is placed with 0-, 45- or 90-degrees rotation compared to picked orientation it still has a +X offset. Selecting a component and going to the measured location on Run Job page always puts the camera hair cross in the component centre. Picking and placing behaves exactly the same with or without slack compensation enabled and the motors run fine.
The camera locations and camera to nozzle offset/distance is calibrated and checked and everything seems to be as supposed. Squareness correction is adjusted
All ideas for a solution are welcome.
Lars
X-axis offset
Re: X-axis offset
There are several calibration parameters that can affect this. There are also tools to find out what the issue might be. At first, it might be beneficial to disable nozzle runout (wobble) correction. You do that on Run Job page, "Don't use nozzle correction" checkbox. If your system doesn't have significant nozzle runout when you click "Test A" on Basic Setup page, you might leave that checked.
Mechanical:Mechanical:
Make sure your mechanical system is good. Make a couple of position bookmarks, perhaps with features that you can use the "Measure" function on "Setup Video Processing" page, and make sure that you can get back and forth with them repeatable and with good accuracy. The machine resolution is 0.0125mm and the video measurement system on simple shapes is half a pixel. Except for the homing mark, which by definition will be 0.0, 0.0, you won't get precisely over a spot, but your errors should be consistent,without much variation. There is a "Slack Compensation" feature on the "Basic Setup" page, which might help if needed. It makes the machine to approach target position always from same direction and same acceleration. Then:
Down camera to nozzle tip:
Set rotation to 0. On low right corner: "Probe Down" tries to put the nozzle down to the spot that is shown on the camera. If you don't get this correct, adjust the "Nozzle Nominal Offset" at "Setup Video Processing" page. If you do need runout correction, enable the correction and do the calibration: https://liteplacer.com/nozzles-calibration/. Check it with "Probe Down" and "Probe (n.c.)" buttons. These do the same, but the latter doesn't use the correction. You aim to acceptable results with all rotation values. If you need runout correction, you also need to keep the rotation on the program and the machine the same. There is no homing on rotation axis, but make a mark on the big pulley so that you can see the axis position. Make it a habit to look at the pulley before powering on the machine, and if the mark is not pointing to your zero location, turn the axis by hand. You can also jog the rotation to 0 and click "Set A=0" on "Basic Setup" page.
Up camera location:
The "Nozzle to up cam" button takers the nozzle above the up camera so, that when you click "Nozzle Down" on "Setup Video Processing" page, the nozzle should end on the center of up camera view. If you have runout calibration enabled, this should give same results with all rotation values.
Then there are board measurements and tape setup, but it seems you have these correct. Please note also, that the up camera assisted placement method uses only “Nozzle Nominal Offset” and “Up Camera X&Y” numbers when calculating the component position.
In your case, figure 5 indicates either camera offset or bad runout calibration.
I hope these help! If not, please come back with some diagnostics from the above test functions.
Mechanical:Mechanical:
Make sure your mechanical system is good. Make a couple of position bookmarks, perhaps with features that you can use the "Measure" function on "Setup Video Processing" page, and make sure that you can get back and forth with them repeatable and with good accuracy. The machine resolution is 0.0125mm and the video measurement system on simple shapes is half a pixel. Except for the homing mark, which by definition will be 0.0, 0.0, you won't get precisely over a spot, but your errors should be consistent,without much variation. There is a "Slack Compensation" feature on the "Basic Setup" page, which might help if needed. It makes the machine to approach target position always from same direction and same acceleration. Then:
Down camera to nozzle tip:
Set rotation to 0. On low right corner: "Probe Down" tries to put the nozzle down to the spot that is shown on the camera. If you don't get this correct, adjust the "Nozzle Nominal Offset" at "Setup Video Processing" page. If you do need runout correction, enable the correction and do the calibration: https://liteplacer.com/nozzles-calibration/. Check it with "Probe Down" and "Probe (n.c.)" buttons. These do the same, but the latter doesn't use the correction. You aim to acceptable results with all rotation values. If you need runout correction, you also need to keep the rotation on the program and the machine the same. There is no homing on rotation axis, but make a mark on the big pulley so that you can see the axis position. Make it a habit to look at the pulley before powering on the machine, and if the mark is not pointing to your zero location, turn the axis by hand. You can also jog the rotation to 0 and click "Set A=0" on "Basic Setup" page.
Up camera location:
The "Nozzle to up cam" button takers the nozzle above the up camera so, that when you click "Nozzle Down" on "Setup Video Processing" page, the nozzle should end on the center of up camera view. If you have runout calibration enabled, this should give same results with all rotation values.
Then there are board measurements and tape setup, but it seems you have these correct. Please note also, that the up camera assisted placement method uses only “Nozzle Nominal Offset” and “Up Camera X&Y” numbers when calculating the component position.
In your case, figure 5 indicates either camera offset or bad runout calibration.
I hope these help! If not, please come back with some diagnostics from the above test functions.
Re: X-axis offset
Hello again,
During the last days I have done some more testing and calibration, following Juha’s advice trying to make the LitePlacer behave as supposed.
The first test was to place a few targets on the table, five targets were used and three of them are still on the table as seen in figure 1 below.
Figure 1. Liteplacer table with targets.
The down looking camera was jogged exactly over the targets to find their coordinates. Using “go to absolute coordinates” from different directions for each target moved the camera spot on the target. The camera was spot on both with and without slack compensation, even after performing TinyG reset and homing the results were the same when moving to the targets. The “go to test” was repeated at least 50 times with good results so I think the X and Y axes work fine.
After recalibrating the down looking camera to nozzle offset according to instructions and then commanding “probe down” the nozzle can be a bit off target (about 0.1mm, maybe a little more). Adjusting the offset manually will give a more exact result. Both methods give the same result as before when trying to pick and place components. Some components are picked and placed ok, but most are picked off centre and placed with offset, as described in my previous post. The result is the same using or not using slack compensation and nozzle correction in different combinations.
Checking the mechanics gives that X, Y and Z moves smooth without any noticeable play or high friction. The PnP head A-axis have some play, mostly in the lower bearing it seems. The A-axis play gives more than 0.5mm movement on the nozzle when pushing/pulling gently on the pickup tube just below the lower bearing. I guess the flat spring pushing on the middle of the pickup tube is supposed to reduce the play when the machine is in use.
Using the up looking camera checking for nozzle wobble/runout gives that there is some wobble for all nozzles when rotating the A-axis, easiest to see on the two smallest ones. Carefully rotating only the nozzle by hand (not rotating A-axis) gives almost no visible wobble. Maybe the nozzle holder or pickup tube isn’t straight, it’s hard to see… Maybe a bent part combined with the pickup tube bearing play can give the pick and place offset. But, -the flat spring should take care of the play and nozzle calibration should fix the wobble, so the next step to cure the problem isn’t crystal clear.
All calibrations have been done several times and all mechanics, except for some play in the pickup tube and some nozzle wobble, seem to be ok.
The machine is not useful for building prototypes as it is. Maybe I must rebuild the PnP head with a new pickup tube, nozzle holder and lower bearing, maybe replace the nozzles? It feels like a mechanical problem, -but could it be some strange software issue?
Has anyone seen this kind of problem with the LitePlacer before?
As I said in the first post, all ideas are welcome.
Lars
During the last days I have done some more testing and calibration, following Juha’s advice trying to make the LitePlacer behave as supposed.
The first test was to place a few targets on the table, five targets were used and three of them are still on the table as seen in figure 1 below.
Figure 1. Liteplacer table with targets.
The down looking camera was jogged exactly over the targets to find their coordinates. Using “go to absolute coordinates” from different directions for each target moved the camera spot on the target. The camera was spot on both with and without slack compensation, even after performing TinyG reset and homing the results were the same when moving to the targets. The “go to test” was repeated at least 50 times with good results so I think the X and Y axes work fine.
After recalibrating the down looking camera to nozzle offset according to instructions and then commanding “probe down” the nozzle can be a bit off target (about 0.1mm, maybe a little more). Adjusting the offset manually will give a more exact result. Both methods give the same result as before when trying to pick and place components. Some components are picked and placed ok, but most are picked off centre and placed with offset, as described in my previous post. The result is the same using or not using slack compensation and nozzle correction in different combinations.
Checking the mechanics gives that X, Y and Z moves smooth without any noticeable play or high friction. The PnP head A-axis have some play, mostly in the lower bearing it seems. The A-axis play gives more than 0.5mm movement on the nozzle when pushing/pulling gently on the pickup tube just below the lower bearing. I guess the flat spring pushing on the middle of the pickup tube is supposed to reduce the play when the machine is in use.
Using the up looking camera checking for nozzle wobble/runout gives that there is some wobble for all nozzles when rotating the A-axis, easiest to see on the two smallest ones. Carefully rotating only the nozzle by hand (not rotating A-axis) gives almost no visible wobble. Maybe the nozzle holder or pickup tube isn’t straight, it’s hard to see… Maybe a bent part combined with the pickup tube bearing play can give the pick and place offset. But, -the flat spring should take care of the play and nozzle calibration should fix the wobble, so the next step to cure the problem isn’t crystal clear.
All calibrations have been done several times and all mechanics, except for some play in the pickup tube and some nozzle wobble, seem to be ok.
The machine is not useful for building prototypes as it is. Maybe I must rebuild the PnP head with a new pickup tube, nozzle holder and lower bearing, maybe replace the nozzles? It feels like a mechanical problem, -but could it be some strange software issue?
Has anyone seen this kind of problem with the LitePlacer before?
As I said in the first post, all ideas are welcome.
Lars
Re: X-axis offset
It does seem that the issues are either slack in the bearings and/or wobble on the nozzles.
Any slack in bearings is supposed to be taken off by the tension of the rotation belt in x direction and by the flat spring in y direction. There should not be much to begin with. You can check this by hand; you can feel even small slack. A faulty bearing is a possibility, of course. The mounting of the bearings and their alignment with each other has an effect also.
There is always some wobble, even if it can be insignificant. The thread in the end of the tube is not exactly parallel to the tube, although the machining tolerance is supposed to be very precise. I know some people don’t need to use runout (wobble) correction at all. If needed, it is important to note that there is no homing on A axis. The user needs to take care that the calibration is done with A starting at zero, and checked visually that a is zero at starting work, both on the machine and in the software. This is easy when you have a mark in the big pulley; also the software tries to keep zero at zero. We’ve gone through the means to diagnose any calibration issues on runout correction already.
Other than these, I can’t really give any significant new advice at this point with this information. We can try to go deeper into the runout calibration. I can also send you new hardware to rule out broken bearings, machining errors etc. For this, email me your shipping address.
Any slack in bearings is supposed to be taken off by the tension of the rotation belt in x direction and by the flat spring in y direction. There should not be much to begin with. You can check this by hand; you can feel even small slack. A faulty bearing is a possibility, of course. The mounting of the bearings and their alignment with each other has an effect also.
There is always some wobble, even if it can be insignificant. The thread in the end of the tube is not exactly parallel to the tube, although the machining tolerance is supposed to be very precise. I know some people don’t need to use runout (wobble) correction at all. If needed, it is important to note that there is no homing on A axis. The user needs to take care that the calibration is done with A starting at zero, and checked visually that a is zero at starting work, both on the machine and in the software. This is easy when you have a mark in the big pulley; also the software tries to keep zero at zero. We’ve gone through the means to diagnose any calibration issues on runout correction already.
Other than these, I can’t really give any significant new advice at this point with this information. We can try to go deeper into the runout calibration. I can also send you new hardware to rule out broken bearings, machining errors etc. For this, email me your shipping address.
Re: X-axis offset
I'm sorry I can't help the OP, but this is superb advice Juku. I've finally been able to tease out a precious few tenths of a millimetre out of my machine. What I realised after a read and a re-read:
- The "Don't use nozzle correction" checkbox is global - it doesn't just affect job runs, but even the "Pickup this" button. The "Probe (n.c.)" does the same without nozzle correction, and I finally see the value of it!
- The nozzle correction relies on the A axis 0° position being consistent nozzle to nozzle and run to run, which is why the advice about marking the 0° position on the pulley is important.
- I think the nozzle correction even applies in the 0° position! That's why setting the up cam location accurately is so important. The tip about how even "Nozzle to up cam" applies nozzle correction is very useful.
Re: X-axis offset
> I think the nozzle correction even applies in the 0° position!
Yes, it does. This is the only way to tackle nozzle to nozzle inconsistency, if any.
> The nozzle correction relies on the A axis 0° position being consistent nozzle to nozzle and run to run, which is why the advice about marking the 0° position on the pulley is important.
Also correct. Now when you write it that way, it wouldn't be a bad idea to mark 0 to the nozzles also. on the other hand, although I haven't measured it, it seems that the nozzles are pretty good, so this might be an overkill - but doesn't cost anything.
Yes, it does. This is the only way to tackle nozzle to nozzle inconsistency, if any.
> The nozzle correction relies on the A axis 0° position being consistent nozzle to nozzle and run to run, which is why the advice about marking the 0° position on the pulley is important.
Also correct. Now when you write it that way, it wouldn't be a bad idea to mark 0 to the nozzles also. on the other hand, although I haven't measured it, it seems that the nozzles are pretty good, so this might be an overkill - but doesn't cost anything.