There are several different sources of placement error in a pick and place system, and the LumenPnP is no different. Fortunately, most of these issues only need to be addressed once, and so once you’ve successfully placed components on your FTP, you’ll have done the vast majority of the setup work needed to fine-tune your machine. After that, populating new PCBs on your LumenPnP will simply be a matter of setting up the board and feeder locations.
Hopefully, you’ll see a pattern to the placement errors on your machine. If that’s the case, look at the list of Symptoms and narrow down the possible causes so that you only have to check some of the Solutions.
2 - Root Causes and Solutions
Root Causes and Solutions
If the toolhead has crashed and one of the axis has skipped steps, it’s likely there will be a placement offset. Try jogging to your homing fiducial and see if the camera is centered on it (Found under
Machine Setup -> Heads -> ReferenceHead H1 and clicking on the “Jog camera to position” button next to the Homing Fiducal coordinates). If not, it’s likely that the machine has skipped steps. Rehome the machine to solve this issue. You can set soft limits in the
Machine Setup > Axes menus.
If the offset of the nozzle tip to the top camera is set incorrectly, the machine will place parts slightly offset from where they should be and may not pick them up correctly. Redo the Nozzle Offset Calibration to solve this issue. You may also tweak the values manually in OpenPnP under
Machine Setup -> Heads -> ReferenceHead H1 -> Nozzles -> ReferenceNozzle N1 -> Offset Wizard -> Nozzle head offsets.
Bad Fiducial Scan
It’s possible that when OpenPnP scans for the fiducials on your PCB, it actually found a bright section of silkscreen or another pad, and that shifted all the placements on your board. Rerun your fiducial scan and check to see if OpenPnP is correctly finding the fiducial. Instructions for tuning a vision pipeline for fiducials can be found here.
Incorrect Feeder Z Position
Picking can sometimes fail if the nozzle is either too far away from the part, or too close. Jog your nozzle tip about 1mm above a part in your feeder, and turn on the PV actuator to activate the vacuum. Now, slowly jog the Z axis down 0.1mm until you see the part jump onto the tip, and hear the pump strain against the vacuum. Jog one final 0.1mm down after this, and set your feeder Z position to your current Z position.
Paste In Nozzle Tip
Sometimes the nozzle tip may dip into a bit of solder paste on your PCB. This can cause a blockage and prevent a part from being picked correctly. If you’re finding that parts refuse to stick to your nozzle, try checking the nozzle tip for a blockage and clear it out with some small gauge wire, or some pressurized air.
Pick Dwell Time Too Short
If OpenPnP does not give the machine enough time to pull a proper vacuum and grab the part before moving the nozzle tip away from the pick location, the part can fail to pick. Try increasing the pick dwell time for the nozzle tip you’re using under
Machine Setup -> Nozzle Tips -> ReferenceNozzleTip N__ -> Dwell Times -> Pick Dwell Time
Place Dwell Time Too Short
If OpenPnP does not give the machine enough time to release the vacuum and drop the part onto the board before moving the nozzle tip away from the place location, the part can fail to place. Try increasing the place dwell time for the nozzle tip you’re using under
Machine Setup -> Nozzle Tips -> ReferenceNozzleTip N__ -> Dwell Times -> Place Dwell Time
Board Z Height Incorrect
If the Board Z Height is set too high, the nozzle will not press the part firmly into the solder paste which helps it stay in place. Try tuning your board’s Z position by bring it down in 0.1mm increments and testing placements between each tweak to see if parts are being pushed into the paste more firmly.
Brass Nozzle Holder Loose
If not tightened into the motor properly, sometimes the brass nozzle holder can come loose and cause incorrect placements. Ensure that your nozzle holder is tightened into the hollow shaft stepper motor tightly.
Check the pulleys attached to each motor for play. While the machine is powered and homed, try pushing or pulling on the X, Y, and Z axes. If the axis can be moved by hand back and forth without causing the motor to skip steps, then the pulley on that axis probably needs to be tightened down onto the motor shaft.
- Power off the LumenPnP
- Loosen the belt tension for the axis you’re working on
- Remove the motor from its mount
- Check that the pulley is fully secured
- Tighten the grub screws holding the pulley on the motor shaft
- Reinstall the motor
- Re-tighten the timing belt
- Power on the LumenPnP
- Home the machine
- Make sure that the play in that axis is gone.
If the nozzle or camera is failing to repeatably move to the same position, it’s likely that one of your timing belts do not have sufficient tension. Check the belt tensioner arms on the X and both Y axis and ensure they’re tight, and difficult to pull away from the machine any further.
USB Hub Overload
Some computers' internal USB controllers are unable to process a webcam feed from both webcams through the same USB port. If you are unable to get both webcams to appear in OpenPnP, try unplugging one from the motherboard and plugging it directly into your computer. For more information about this, check out the camera testing section of the assembly instructions.
Camera Drop-Down Selected
If you’re finding that trying to manually jog the Z axis of your machine does not work, check the drop-down in the “Machine Controls” section of the UI underneath the cameras, and select the Nozzle instead of the Camera. This should allow you to jog your Z axis.
Bottom Vision Error
If the bottom vision pipeline for your part is not set up correctly, it might find the outline of the part to be larger, smaller, or offset from what it actually is, causing an incorrect placement. The homing fiducial vision calibration is helpful for seeing how to tune a vision pipeline, but also check out OpenPnP’s bottom vision wiki page to help tune your pipeline.
Check Vacuum Pump
- Press down on the quick connect coupler P
- Pull out the plastic tubing from your tool head.
- Turn on the vacuum pump
- Turn on the valve
- Put your finger over the end of the tubing
- If you can’t feel suction:
- You may have a leak in the tubing
- You may have wired your pump or valve incorrectly
- Your valve or pump may be damaged, check the noises they make
Check Board Rotation
- Re-run the board fiducials
- Check various placement locations by moving the camera over them to make sure they’re set correctly.
- If the placement locations are NOT lining up with the reticle in the camera feed:
- Adjust your board fiducial pipeline,
- Or manually set your board’s location and position with “set board location with multiple placements” icon button.
- If the placement locations DO line up with the reticle in the camera feed:
- Check your nozzle offset
- Check your part identification vision pipeline
- (unlikely) Check for backlash and other mechanical issues with your motion system.
Check for something obstructing your end stops or triggering them early
Check Staging Plate
If your staging plate comes loose, all of your locations defined in OpenPnP will start to be incorrect. Your machine may fail to home because it won’t be able to find the homing fiducial. And it’ll have trouble consistently picking components from the feeder. And it will probably place components in the wrong place on the PCB.
- Tighten all four screws holding the staging plate in place
- Reset your homing fiducial location
- Reset your feeder locations
- Reset your board location
Check mm to Pixel Calibration
Redo the steps in mm/pixel Calibration
Check fisheye calibration
Redo the steps in Camera Fisheye Calibration
Check Board Location
Go to the list of placements and position the top camera over a few of them. If they’re all offset a little bit, your board location is probably incorrect. Redo Finding the FTP Board Location
3 - Diagnostic Routines
If you’re having trouble picking and placing components but are having a hard time narrowing down the list of possibilities for what could be going wrong, this list of routines might help you find the culprit. The idea is to have you follow simple test steps to show the problem in limited situations so you have fewer possible root causes to check and solve.
Motion System Check
The LumenPnP uses a lot of different offsets and calibrations for using its cameras to make precise movements. This test ignores those, and only tests the physical motion system of the machine.
- Jog the machine until the top camera is positioned somewhere recognizable, such as over a feeder. This will be your starting point.
- Next, pick another recognizable location as a target destination. For example, pick one of the component locations on your board.
- Make sure that neither of the locations you picked require that you click a button in OpenPnP that uses the cameras to find fiducial markers. We want to avoid that during this test.
- Move the machine back and forth between these two locations at least 5 times. Note which axes move: X, Y, and or Z.
If the machine correctly travels repeatably to these two locations each time, then your motion system is likely healthy. The test has succeeded.
If the machine does NOT correctly travel to these two locations repeatably, then something is wrong with your motion system. Check the following:
- Check the X, Y, Z axis belt tension
- Check the X, Y, Z axis motor pulleys to make sure they’re not loose
- Check the stepper motors to make sure they’re not overheating
- Check that the top camera isn’t loose
- Check that the staging plate isn’t loose
- Check that the tool head isn’t crashing to reach one of the jog locations
Incorrect tool head offsets will cause pick and place operations to fail. This test tunes the tool head offset directly without any use of computer vision or the cameras themselves. It is recommended to run the Motion System Check first before this test to rule out motion system repeatability issues first.
- Load one of your tray feeders
- Position the camera over the feeder location
- Switch to positioning the nozzle over the feeder location
- Look at the nozzle and see if it’s position is in line with what you saw on the camera feed in step 2
- If not, adjust the toolhead offset by
0.05mm at a time.
- Repeat from step 2 until the nozzle location is consistent with what you could see from the camera.