Single/same feeder location for all components?

95 views
Skip to first unread message

sanatan Rajagopalan

unread,
Feb 4, 2026, 9:41:04 PM (2 days ago) Feb 4
to OpenPnP
Hello,

I am trying to manually feed parts at a fixed location inside a known circle. Is there a way to create a feeder that can be assigned for all parts? It will be great if using vision, the nozzle position is adjusted automatically to pick parts in the circle?

The objective is that for prototypes, and when feeders are not fully setup, you can manually step through each part placement. For example:

1) Camera position already looking at the circle.
2) Manually place the part in the circle. Using tweezers for example. 
3) Camera tries to find the part in the circle, checks size based on the part being placed.
4) Picks up the part using the right nozzle. 
5) Places the part on the board.
6) Go back to step 1 looking at the same circle. 

Regards,
Sanatan 

Fernando Corona

unread,
Feb 4, 2026, 11:56:16 PM (2 days ago) Feb 4
to ope...@googlegroups.com
Are you tying to pick the same type of part or a mix of parts. Expecting the vision to identify what parts are there? 

Seems like the loose part feeders would work for you. If you are picking the same type of part repeatedly and supplying it manually when it runs out. 

I use the advanceloosepartfeeder on the fly like this all the time to demo or test if we can run different part types. Usually put a few parts at a specific location. 

The loose part feeders in openpnp use vision to find parts at a specific feeder location you set manually once. You can use either the referenceloosepartfeeder or advanceloosepartfeeder. 

The referenceloosepartfeeder will look for simple shape you define in the pipeline settings. I have used this feeder for simple rectangular parts no orientation needed. 

The advanceloosepartfeeder has two vision pipelines one for training a reference image and one for the actual feeding. I believe this one would suit your needs. You train a sample part then the feed will pick any that match the sample reference. One perk of the advanceloosepartfeeder is orientation of the part can be determined and it works very well. 


This YouTube channel was the reason I explored openpnp for loose part feeding. 



- Fernando


--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/openpnp/41857b27-cb13-4d82-ba5c-c44d6a7f374an%40googlegroups.com.

Toby Dickenson

unread,
Feb 5, 2026, 5:47:59 AM (yesterday) Feb 5
to ope...@googlegroups.com
Since we have some Loose Parts Feeder experts in this thread, can I
ask if there is anyone who could volunteer to update the
documentation? Either to update the wiki direct, or to write some
words that could be pasted into the wiki?

The openpnp wiki has documentation about Advanced Loose Part Feeder,
but there are some gaps:

https://github.com/openpnp/openpnp/wiki/AdvancedLoosePartFeeder

There is no documentation for Reference Loose Part Feeder, and these
two are not mentioned at all on the feeder summary page:

https://github.com/openpnp/openpnp/wiki/Setup-and-Calibration_Feeders
> To view this discussion visit https://groups.google.com/d/msgid/openpnp/CAEqVWH0x6s09b4RiffJ5J%2B9mcwbvuSALsEUSeeRd1oU2jggkZg%40mail.gmail.com.

sanatan Rajagopalan

unread,
Feb 5, 2026, 10:52:03 PM (yesterday) Feb 5
to OpenPnP
Hi Fernando,

Thanks for your email. I saw your video, its pretty good.
However, what i am trying to do is use a single feeder that picks up all different components, 0404,0603,sot23 etc from the same location and places it ad different location as specified in the job.
I will be stepping through to allow some time to place the new component in the circle. I have put an illustration below to explain more.
Screenshot 2026-02-05 214749.png


Jonathan Oxer

unread,
Feb 5, 2026, 11:16:56 PM (yesterday) Feb 5
to ope...@googlegroups.com
Hi Sanatan,

The more you describe this, the more it feels like you're trying to solve the wrong problem. You've described the way you want it to work, so my question is why do you want it that way in the first place? What limitation are you trying to overcome?

The end result of what you want could be done in a couple of ways. You could simply define multiple feeders with the same pick location, and pause the job after each placement to allow you to put the next part there. Or you could use external scripting.

However, what you're doing is largely undermining the entire point of PnP, which is predictability and repeatability. You're adding a human-error factor into the process. Why is having a single common pickup location important to you?

Cheers

Jon

Harjit Singh

unread,
11:30 AM (12 hours ago) 11:30 AM
to ope...@googlegroups.com
There are two topics here: 

1. Is this a good idea? 
2. How to do it, regardless if it is considered a good idea or not. 

I can totally see the value behind it. I would like to make one or two boards every few months that have twenty or so unique parts. 

I dunt want to setup feeders. 

I just want to dump the parts from the strips in some area, and let the machine do it's magic. 

For this use case, it might not be faster than setting up the feeders but it might be easier, and make the system more approachable because it is less complexity.



Thomas Heil

unread,
8:03 PM (4 hours ago) 8:03 PM
to OpenPnP

I can certainly imagine this working for sample PCBs. For example, you could get the exact SMDs for the project from Mouser. You place them individually on a carrier and label it, for example, with r0603-1k. The carrier is illuminated on pnp from below, so no bottom camera is needed. The process starts via OCR recognition. Meanwhile, a second carrier position can be prepared, which is then used alternately.

Fernando Corona

unread,
9:05 PM (3 hours ago) 9:05 PM
to ope...@googlegroups.com
I have a lot of experience with the advanceloosepartfeeder at this point. You can make advanceloosepartfeeders for each type of part set the same feeder location for all of them. Openpnp will automatically populate the board using the different feeders. Openpnp will prompt you when there are no more parts that is when you can load more parts in the tray location. I have tested this functionallity for fun once it works. This is the only way I know how to accomplish this with the current feeders available in openpnp. I strongly suggest you try this method.   

I understand the want for a single feeder but there is no such multi-part advanceloosepartfeeder. Setting up the advanceloosepartfeeders for each part type is very small time investment to accomplish your goal. 

The alternative would be you write your own feeder code for a multi-part advanceloosepartfeeder. Which if you do, that would be awesome! I looked under the hood of openpnp and I have no idea how it works. Also there are no guides how to edit the source code of openpnp, rebuild the code, etc. 

I gave up coding my own feeder as I am not a software developer. I compromised and learned just enough java script and python to make scripts to generate advanceloosefeeder clones at different locations but with the same vision feed pipelines. To achieve my tray scanning goal. Thanks Devs for the error defer function and the pick location optimizing sorting. 

Feel free to ask more questions how to setup the advanceloosepartfeeders. I do not have a personal machine to make tutorial videos. Hopefully some day I will have space and budget. 

- Fernando


Reply all
Reply to author
Forward
0 new messages