Print failure detection
I am looking for some resources on how a print failure detection would work.
Supposedly the XYYZ printer has something like this.
My first idea was to think about maybe an opencv based software solution that could determine when a print has gone bad...
Has anyone researched this?
Here is one method.
if I print goes bad, the the object hits the the print head, for example if the print pops of the bed.
On a good print, nothing should bump the head.
Based on this fact, you could out a trip wire or limit switch around the print head. If it is triggered, you know that you have a print failure.
@cristian.s the xyyz printer? I run a steerable networked camera with a web interface to monitor my prints, realtime in another room or place. OpenCV and automatic detection would need to see the print fail how? The knock over of a support and continuining printing in air, or the whole printer stop ?
Life is keeping interested and excited by knowledge and new things....
You need AI bot sitting near the printer, permanently watching the process and yelling "OMFG!" as soon as it fails. 😉
I think one of the low hanging fruit in that regard would be to monitor if the axis are actually where they are supposed to be.
Or in lieu of that, that the motors move where and how they are supposed to.
Maybe some kind of force sensor on the printhead mount, that senses forces on the head, outside of the expected.
Would certainly be cool. but on my MK2 I would already be happy with end-stop sensors 😛
When a print fails what do you want to prevent in priority?
For me the priority would be:
a) Damage to the MK2 resulting in down time while replacement parts are procured
- The pinda breaking on the failed print
- The print head get clogged with melted filament
- The belts stretching from the movement being stopped by the failed print
- The steppers burning out
- The bed getting bent
b) Time wasted
c) Material wasted
Focusing on preventing damage to the MK2, what things should never happen if a print is on track to complete w/o issues?
- Nothing should ever touch the pinda probe
- Nothing should ever touch the bottom air vent
So sensors, buttons, trip wires could be configure on the around the bottom air vent and/or pinda protector to engage the cancel button to prevent damage to the MK2. Canceling the print can also be done by wiring any of these so a Raspberry Pi w/ OctoPrint and triggering the filament run out which would let you resume printing the object if you get a false positive.
That is nasty ! 😮 My heart is always in my mouth when I check my prints in the morning, don't want to find that 😯 we need a simple print fail detection device and shut down.
Maybe something simple may be implemented, like 2 small laser on the right Z axis, and 2 kind of detector on the left, so that filament starting to stick to the nozzle will block the laser ray.
From the side, it would be schematized like that (the 2 red dot is where the laser should be positionned)
Of course position of the PINDA should be taken in account.
Sounds like a cool idea!
A clog detector.
I had a closer look this week-end.
Only one side could be used, the other side is hidden by the PINDA probe. And PINDA protector should be removed.
But it's really doable, holding a laser on one of the z-axis, and a photo resistor hidden in a small tube to protect from ambiant light, using a cheap arduino nano clone to detect the photo resistor.
The laser should be triggered by the arduino, so that it can start switch on and switch off the laser to calibrate the light detection, and providing the status of the detector on gpio pin on OctoPi box, using a plugin in the same way as a filament detector.
I think I'll try that once my electrostatic filter is finalized, or that my test prove it to be useless ^^ (so in several weeks at best)
How about the electric conductivity of molted plastic? Maybe it's different from solid plastic? Or a pressure switch around the extruder?
I'm seeing a lot of interesting ideas....
I'm speaking way over my head here, so forgive me if this makes no sense. But with Prusa being open source and easily updatable.
Prusa could introduce a pin on the Rambo board, that is expecting 0 volts (default) to run normally, but if it receives 3.3 or 5v automatically triggers 'pause' or 'emergency off'. That would go a long way to allowing folks to build their own solutions. Which would then make their way to thingiverse and the web and be perfected and then rolled into a future MK2 update.
Open source at it's best?
Well I'm a bit stuck, and project as work is getting crasy so I'm lacking time to go further.
I modelised the physical build and found that there is an exploitable area that allow blob detection, even with a PINDA protector.
I made a mock of project to simulate the laser detection and it works pretty well. I think that relying on a OctoPi plugin (probably this one: https://github.com/vitormhenrique/OctoPrint-Enclosure ) make the thing more versatile and adaptable to other printers, and I do not like much the idea of making a modification of the Prusa firmware, especially since it's active and changing on regular basis.
For now my detector is described there (ino and sketch file): https://github.com/ChrisP-Git/BlobDetector
I have a main issue for now:
How to design a support for the small led that is easy to print and sturdy enough to make the laser ray properly positionned ? If nybody want to try, I can provide the existing step file of the simulation.
I might be able to work on an AI application to detect failed prints from webcam feed, but i will need lots for pictures of failed prints from the webcam angle. and successful prints as well then i can train a model and run it off the raspbery pi along with octoprint or even a mobile app that would receive images from octopi over telegram and then analyze and report on prints if failed, giving the user the decision to terminate or keep it going, Just an idea