Help ignoring or skipping job error once feeder is depleted and resume autonomously to next feeder.

99 views
Skip to first unread message

Fern528

unread,
Jul 25, 2025, 11:49:13 PMJul 25
to OpenPnP
Hello All,

I got everything working using the advance loose part feeder. However, once the feeders are depleted, the job stops. Prompts the user "No parts found." disables the current feeder and waits for the user to click ok, then the job has to be resumed manually by the user from the job tab. The job resumes jumping to the next loose part feeder.  
I need it to automatically resume once any feeder is depleted. 

I am asking if there is a way to skip the job error "no parts found" entirely. then my machine would be autonomous able to pick an entire tray of parts. Asking if there is a software workaround before I teardown the toolhead again to relocate the camera.

Ideally a custom advance loose feeder with multiple tray locations to search once a location is depleted would be perfect! I understand this is a hard ask for someone to dedicate time to develop such a feature. I am willing to learn how to just need to be pointed in the correct direction what to learn to accomplish it. 

This is an unusual use case where a feeder only has at most 4 to 6 parts. Relocating the camera farther away will definitely minimize the job error prompt occurrences currently about 80 times. Relocation of the camera should significantly drop this number goal would be 10 or less. However higher the camera less detail to capture the tiny fiducials on the parts I am picking.

some more info:
tray size: 350x150
largest part size: 8x3 mm. Camera can be moved much higher for this part
smallest part size: 2x1 mm. May not be able to see this part's orientation within the feed pipeline at the higher camera position. 


Camera vision above a selected feeder
CAMERA AT SELECTED FEEDER LOCATION.PNG

Job running finding a loose part, orientates, picks, then places. 
JOB RUNNING GREAT BEFORE DEPLETING FEEDER.PNG

The bane of my existence if this prompt did not stop the job, my machine would be autonomous!
JOB ERROR.PNG

Example of the tray with boxes highlighting different loose part feeder's locations. boxes are bigger than actual camera FOV at the moment. Relocation of the camera should make bigger search areas.
LOOSE PARTS ON TRAY WITH RED BOXES HIGHLIGHTING FEEDER LOCATIONS IN OPENPNP.png


Link to a quick video demo of the workflow just threw a few pieces to record actual job I pack as many as I can into the feeder camera view. I ran a whole job, and it took 1 hour to load 612 parts. more than half of the time was just clicking ok to clear the job error and then resuming the job.


Any help or guidance is appreciated.

- Fernando

Toby Dickenson

unread,
Jul 26, 2025, 6:00:25 AMJul 26
to ope...@googlegroups.com
Hi Fernando,

I don't use the loose parts feeder, but I expect you can do this using the "defer" error handling policy. You can set that per-placement, or, in the current test build, per job. Search for "defer" on this page:


--
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/32b53f04-29d7-478e-aa71-0940fefca11en%40googlegroups.com.

Fernando Corona

unread,
Jul 26, 2025, 10:17:54 AMJul 26
to ope...@googlegroups.com
Thanks for the response Toby. I tried looking for the bell icon on the latest version of OpenPnP running just the virtual machine. I did not see the bell icon anywhere on the job panel. 

Per the user manual error handling bell should be by the stop job button. Reviewing the video I posted this bell icon is not present as well. Also running latest openpnp version. 

Does an older version of OpenPnP have error handling? If not how do I set up error handling? I can test on my laptop running the virtual machine. 




Thanks for your help.

- Fernando


Toby Dickenson

unread,
Jul 27, 2025, 5:49:25 AMJul 27
to ope...@googlegroups.com
What version are you using? The "bell" job-level defer errors control is the test branch.


Fernando Corona

unread,
Jul 27, 2025, 10:18:44 AMJul 27
to ope...@googlegroups.com
Thanks Toby will download the test branch and try it. 

I was using the regular download from the download page. 


- Fernando


tonyl...@gmail.com

unread,
Jul 27, 2025, 11:30:48 AMJul 27
to OpenPnP
Even with earlier builds, you can still set the error handling for all placements to defer. Just select any placement (either on the Boards tab or on the Job tab), Ctrl-A to select all placements, and then right click and select Set Error Handling->Defer

Fernando Corona

unread,
Jul 27, 2025, 11:42:28 AMJul 27
to ope...@googlegroups.com
Toby,

Thanks for taking the time to explain. I will test all this out tomorrow when I have acces to the machine. I definitely want to try the defer on the job. I believe this is exactly what I need. 

I don't think defer on the placements would help me. The job error no parts found in the feeder is the issue not the placements. I definitely do not want to be skipping placement positions. 

- Fernando


You received this message because you are subscribed to a topic in the Google Groups "OpenPnP" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/openpnp/0nDky6LO0qw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to openpnp+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/openpnp/7ac6f493-e524-4e1b-a927-df2f21bd4efen%40googlegroups.com.

Jan

unread,
Jul 28, 2025, 10:22:03 AMJul 28
to ope...@googlegroups.com
Hi Fernando!
At present there is no option to disabled just "no part found" errors.
(Wouldn't be to difficult to add this option...) You can however,
provide more then one feeder feeding the same part so that the job can
continue using a different feeder or you can ignore all errors from
selective or all placements. Please be aware that this might also ignore
common errors like button vision problems.

Jan

On 26.07.2025 05:49, Fern528 wrote:
> Hello All,
>
> I got everything working using the advance loose part feeder. However,
> once the feeders are depleted, the job stops. Prompts the user "No parts
> found." disables the current feeder and waits for the user to click ok,
> then the job has to be resumed manually by the user from the job tab.
> The job resumes jumping to the next loose part feeder.
> I need it to automatically resume once any feeder is depleted.
>
> *I am asking if there is a way to skip the job error "no parts found"
> entirely. then my machine would be autonomous able to pick an entire
> tray of parts. *Asking if there is a software workaround before I
> teardown the toolhead again to relocate the camera.
> *
> *
> *Ideally a custom advance loose feeder with multiple tray locations to
> search once a location is depleted would be perfect! *I understand this
> is a hard ask for someone to dedicate time to develop such a feature. I
> am willing to learn how to just need to be pointed in the correct
> direction what to learn to accomplish it.
>
> This is an unusual use case where a feeder only has at most 4 to 6
> parts. Relocating the camera farther away will definitely minimize the
> job error prompt occurrences currently about 80 times. Relocation of the
> camera should significantly drop this number goal would be 10 or less.
> However higher the camera less detail to capture the tiny fiducials on
> the parts I am picking.
>
> some more info:
> tray size: 350x150
> largest part size: 8x3 mm. Camera can be moved much higher for this part
> smallest part size: 2x1 mm. May not be able to see this part's
> orientation within the feed pipeline at the higher camera position.
>
>
> Camera vision above a selected feeder
> CAMERA AT SELECTED FEEDER LOCATION.PNG
>
> Job running finding a loose part, orientates, picks, then places.
> JOB RUNNING GREAT BEFORE DEPLETING FEEDER.PNG
>
> The bane of my existence if this prompt did not stop the job, my machine
> would be autonomous!
> JOB ERROR.PNG
>
> Example of the tray with boxes highlighting different loose part
> feeder's locations. boxes are bigger than actual camera FOV at the
> moment. Relocation of the camera should make bigger search areas.
> LOOSE PARTS ON TRAY WITH RED BOXES HIGHLIGHTING FEEDER LOCATIONS IN
> OPENPNP.png
>
>
> Link to a quick video demo of the workflow just threw a few pieces to
> record actual job I pack as many as I can into the feeder camera view. I
> ran a whole job*,* and it took 1 hour to load 612 parts. more than half
> of the time was just clicking ok to clear the job error and then
> resuming the job.
>
> https://youtu.be/NA5Syh0lkMs <https://youtu.be/NA5Syh0lkMs>
>
> Any help or guidance is appreciated.
>
> - 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
> <mailto:openpnp+u...@googlegroups.com>.
> To view this discussion visit https://groups.google.com/d/msgid/
> openpnp/32b53f04-29d7-478e-aa71-0940fefca11en%40googlegroups.com
> <https://groups.google.com/d/msgid/openpnp/32b53f04-29d7-478e-
> aa71-0940fefca11en%40googlegroups.com?utm_medium=email&utm_source=footer>.

Fern528

unread,
Oct 21, 2025, 11:24:46 PM (11 days ago) Oct 21
to OpenPnP
Deferring errors on the job works BUT when a feeder location is depleted the defer skips the current placements leaves it unchecked and jumps to the next placement and uses the next feeder available. This becomes a chore to babysit the machine once it has got to 80% of the board populated with so much skipped placements. it goes back one at a time to fill in the skipped placements. I understand job defer affects the placements which explains why it is skipping then moving the next. Can anyone think of a solution without modifying source code?

Ideally, I could have an advanceloosepartfeeder that can update its location once it fails to find parts instead of prompting the user "no parts found." this requires source code modification from my understanding. 

I was able to make a script to enable all the 80+ AdvanceLoosePartFeeders I made once the job is done and ready for the next board. making the script and seeing the events folder in the scripts directory made me hopeful that I could make a script based on events like job start, error "no parts found, and job completed. to update the advanceloosepartfeeder's location then enable the feeder to continue the placements never skipping any placements. I tried reading into event scripts more but not sure if scripts can run automatically during a job run? 

Any help is appreciated as of now my machine is deemed not fit for production because of the need to babysit it. 

Toby Dickenson

unread,
Oct 22, 2025, 5:32:10 AM (10 days ago) Oct 22
to ope...@googlegroups.com
Hi, there are some recent changes to improve this. Please see the recent thread on this group titled "Some new changes in test branch".

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/2cdba630-33dc-4fbb-b244-148b43dac8ebn%40googlegroups.com.

Fernando Corona

unread,
Oct 22, 2025, 10:48:21 AM (10 days ago) Oct 22
to ope...@googlegroups.com
Hello Toby,

How can I download to test? Reading through the thread I saw no link or mention which test branch this is? Apologies for the beginner question but when you or any other contributors make changes is a test branch released? Or the github test branch is where the change is implemented? If so how do you install it onto a PC to test it?

Thanks for the help and the work you are doing. Let me know if you need any testing done to assist in your dev of these features. 

Thanks 
Fernando 

Mike Menci

unread,
Oct 22, 2025, 10:54:13 AM (10 days ago) Oct 22
to ope...@googlegroups.com
Test version is not for “a beginner “ use regular last version for your operating system here; https://openpnp.org/downloads/

Magic by IPhone 📲 

Dne 22. okt. 2025 ob 16:48 je oseba Fernando Corona <fernando...@gmail.com> zapisala:



vespaman

unread,
Oct 22, 2025, 11:01:39 AM (10 days ago) Oct 22
to OpenPnP
Hi Fernando,


If you visit the Download page for OpenPnP, there's a link at the bottom that will take you to the test branch. It is the same installation as the regular.
While not often the case, it is a test version, so there is a higher chance of fresh issues, and sometimes you cannot go back to the regular version.
So if you decide to use it, you probably want to make a copy of your configuration files in ~.openpnp2/ before starting the test version, should you want to go back to the regular version.

Skärmbild_20251022_165641.png

  - Micael

Fernando Corona

unread,
Oct 22, 2025, 11:03:22 AM (10 days ago) Oct 22
to ope...@googlegroups.com
I understand I've been using the test branch with error Deferring. 

I meant the question I asked was a beginner question. Not sure how to test Toby's latest test version. He did not mention which test branch it is. There's multiple in the test branch download archive. Or do I simply use the test branch main download page?

Fernando Corona

unread,
Oct 22, 2025, 11:05:05 AM (10 days ago) Oct 22
to ope...@googlegroups.com
Hello Vespaman,

Do I use the main test branch download or goto archives? Thanks for your help. 

- Fernando


Toby Dickenson

unread,
Oct 22, 2025, 11:26:17 AM (10 days ago) Oct 22
to ope...@googlegroups.com
Hi Fernando,

This page gives you a simple download link to the latest test release. Sometimes when a user reports a problem then a developer makes a fix, it is this link that will let them download the build with the specific fix to their specific problem. But otherwise downloading from this link can be a lottery, in the sense that you dont know exactly what you are going to get.

This page lists every test build. The last update was a week ago and there are no posts on this mailing list about someone reporting that the test branch is broken, so a reasonable person might make a risk-based judgement that that specific build is pretty safe. There were two builds on that day. From git I can see that the first was the new feature addressing the problem you described, and the second an update describing it in the change log.

Toby


Fernando Corona

unread,
Oct 22, 2025, 11:37:23 AM (10 days ago) Oct 22
to ope...@googlegroups.com
Perfect thanks Toby! Will test when I have access to my machine later today.


- Fernando


Fern528

unread,
Oct 22, 2025, 4:15:39 PM (10 days ago) Oct 22
to OpenPnP
Toby,

Can you explain a bit about the feeder faulting and window size? for the advance loose part feeder, I see it is now scanning a range around the original feeder location GREAT AWESOME!! but how do I set it up properly? I found the feeder faulting and window size under the machine setup tab. Per your code it is defaulting to 3, and 6. what does this mean?  6 mm, 6 moves? i watched my machine and using the DRO it moves 10 mm in a grid like motion while scanning for parts now. Before it used to just error now its scanning. Not sure if the window size is related or not.  

   from github:

    protected int feederFaultLimit = 3;

   
    protected int feederFaultWindowSize = 6;

Toby Dickenson

unread,
Oct 22, 2025, 6:21:14 PM (10 days ago) Oct 22
to ope...@googlegroups.com
Hi Fernando,
 
Can you explain a bit about the feeder faulting and window size?

That is the default configuration for how feeders get disabled when they are misbehaving. Feeders are disabled if their parts fail vision check (or other errors) in 3 out of 6 consecutive cycles. This applies to all feeders, not just the loose parts feeder, and indeed there have been no changes to how the loose parts feeder works.

You previously asked about retries for failed placements.... This version does retries, and shutting down misbehaving feeders is a necessary complementary change to avoid having too many retries wasting too many parts into the discard bin. You can read more about the rationale here.

 Toby

Fern528

unread,
Oct 22, 2025, 7:45:12 PM (10 days ago) Oct 22
to OpenPnP
After watching the machine more I realized it is simply running more optimized!!! Thanks, Toby, for all the hard work! the pick from closet feeder that's great! Also, the job no longer skips placements as much like before, now it simply goes to the next feeder and continues the placements. does the faulting mark the feeder it tried as faulted, then moves on now? still need to read more into what you sent earlier to understand it better.  

Question I do have is if I set the faulting to 0 and the window to 0 what would happen? I did that and it ran great with the condition that I feed easy to detect parts for the vision nothing upside down. which is ideal but time consuming to manually flip all the loose parts up. 

I will review the links you shared more thoroughly to try to understand the behavior more. thanks for all the help so far. 

- Fernando 

Toby Dickenson

unread,
Oct 23, 2025, 4:15:12 AM (10 days ago) Oct 23
to ope...@googlegroups.com
On Thu, 23 Oct 2025 at 00:45, Fern528 <fernando...@gmail.com> wrote:
After watching the machine more I realized it is simply running more optimized!!!

Yes, changes early in the 2.5 development cycle make the job planner optimiser quite a bit better at selecting combinations of placements to handle at the same time on machines with more than one nozzle.
 
Thanks, Toby, for all the hard work! the pick from closet feeder that's great!

That is useful feedback, thank you.
 
Also, the job no longer skips placements as much like before, now it simply goes to the next feeder and continues the placements. does the faulting mark the feeder it tried as faulted, then moves on now? still need to read more into what you sent earlier to understand it better.  

Yes, the goal here is to keep the machine running. A stopped machine is unproductive.

On the feeders tab you can see each fault, and see the feeder getting disabled after too many faults.

The retry following a failed placement does not necessarily happen immediately. The placement goes back into the pool of pending placements, and the job planner optimiser treats it the same as any other pending placement. The retry might happen immediately, or it might do other placements first.
 
Question I do have is if I set the faulting to 0 and the window to 0 what would happen? I did that and it ran great with the condition that I feed easy to detect parts for the vision nothing upside down. which is ideal but time consuming to manually flip all the loose parts up. 

That will disable the feeder on the first occasion there is an alignment vision error (or any other error for which the feeder and its parts take the blame).

Unfortunately I dont really understand the loose parts feeder, so cant help with the details of how that interacts with these changes.
 

Jan

unread,
Oct 23, 2025, 4:45:08 AM (9 days ago) Oct 23
to ope...@googlegroups.com
Hi Toby!

On 23.10.2025 10:14, Toby Dickenson wrote:
> On Thu, 23 Oct 2025 at 00:45, Fern528 <fernando...@gmail.com
[...]> *Question I do have is if I set the faulting to 0 and the
window to
> 0 what would happen?* I did that and it ran great with the condition
> that I feed easy to detect parts for the vision nothing upside down.
> which is ideal but time consuming to manually flip all the loose
> parts up.
>
>
> That will disable the feeder on the first occasion there is an alignment
> vision error (or any other error for which the feeder and its parts take
> the blame).
>
Isn't that different from the behavior in other situations? Usually 0
means disabled, like for jerk or timeout settings. I'd prefer that 0
means disabled here too and 1 disable on first error. IMHO that would
not distort your new feature while preserving the UX.

Jan

Toby Dickenson

unread,
Oct 23, 2025, 5:17:16 AM (9 days ago) Oct 23
to ope...@googlegroups.com
Hi Jan,
 
Isn't that different from the behavior in other situations? Usually 0
means disabled, like for jerk or timeout settings. I'd prefer that 0
means disabled here too and 1 disable on first error. IMHO that would
not distort your new feature while preserving the UX.

That makes sense to me. I shall change it
 

Reply all
Reply to author
Forward
0 new messages