dieki-n / Octoprint-Filament-Scale

48 stars 31 forks source link

filament jam detection #6

Closed mark-hahn closed 5 years ago

mark-hahn commented 5 years ago

I would think you could detect a jam by noting that the weight is not going down. I know it couldn't respond quickly and you probably couldn't resume the print, but it would be nice to detect this so you could restart the print. I often discover the jam hours later than when it happens.

mark-hahn commented 5 years ago

Also, a weight-gain could indicate a tangle. This might be fast enough to resume a print.

MarcusWolschon commented 5 years ago

I would rather use a second load cell for that: https://github.com/MarcusWolschon/UltimateFilamentSensor

The spool weight change would be too slow to react to it and save the print.

dieki-n commented 5 years ago

I'm in agreement, a rotary encoder or a second load cell seems like a much more elegant way to detect these kind of issues.

Marcus, you should look at using my version of the hx711 library in your project, i've reduced CPU load and eliminated the massive numpy dependency.

mark-hahn commented 5 years ago

I'm just lazy. Adding it to this plugin would be easy (for me :-), but jam detect isn't quite enough of a problem for me to add more hardware.

MarcusWolschon commented 5 years ago

Marcus, you should look at using my version of the hx711 library in your project, i've reduced CPU load and eliminated the massive numpy dependency.

Thanks. I'll look into it. On the mechanical side I've large issues with load cell creep since the cell is under constant load. (I usually don't change colours or materials.) So I actually haven't had it active in a while.

Probably the cell being too small when adding the leverage to the spool weight (2.2Kg spools) combined with the aluminium of the cell and the plastic deforming and of cause ambient temperature changes in the room.

MarcusWolschon commented 5 years ago

I'm just lazy. Adding it to this plugin would be easy (for me :-), but jam detect isn't quite enough of a problem for me to add more hardware.

An alarm when excessing load values come in 2 times in a row could work if the extruder pulls the filament spool down. Depending on how it's mounted

mark-hahn commented 5 years ago

I think the ideas I proposed are a no-go.

When the printer is idle and I use it as a normal scale it works great with accuracy around +- 1g with weight up to 1Kg. However, when printing, the tension from the extruder causes a heavier reading of +50g to +150g. And it can go from +50 to +150 in one reading.

Even after the printer stops it has a high reading of +50. This is from the remaining tension on the filament. If I do a retraction or raise the x-axis bar (CR-10) , I can dial the reading down. It takes about 30 mm of slack to get rid of all error.

My last print was 38 grams in 50 minutes. So the rate of change is less than 1g/min. That is miniscule compared to the variations when printing. Finding that signal in that noise is unthinkable.

I don't think it could be made to work if you had the filament exit sideways or you put it on a roller bearing. The situation is too dynamic.

I guess you could pause the print, retract 50mm, take a reading, extrude 50mm, and resume the print, That is getting quite silly.

Everyone knows you have to stand still when weighing yourself on a scale :-)

mark-hahn commented 5 years ago

On the other hand, one might be able to isolate the extruder from the roll with some mechanical device. I'm guessing the roll would have to be turned by a motor to always keep some slack. Some sensor would monitor the slack. There would be vibration but that could probably be filtered out. You can't filter out the tension from the extruder for obvious reasons.

MarcusWolschon commented 5 years ago

the roll would have to be turned by a motor to always keep some slack.

Bad idea. A roll must stay sligthly tighened or you'll get entanglement and knots.

mark-hahn commented 5 years ago

Just having fun with these ideas, but something that controlled the pull on the roll with a constant precise tension could have two benefits. It would reduce tangles and you could subtract that tension from the reading. It would be nice to also see the weight go down when printing which you can't do now.

Something on the mount would have to apply variable braking based on measured tension. Pads could squeeze the rim of the spool like disc brakes. The roll would have to be on smooth bearings, maybe even clamped.

There would need to be some kind of springy lever between the roll and the extruder to absorb the jerks. That same lever could be the feedback to the pads. The device could be mechanical-only and maybe even simple.

Maybe a cheap product?

mark-hahn commented 5 years ago

The product could also have some/all of the MarcusWolschon/UltimateFilamentSensor. For extra credit it could be in an enclosure with dessicant.

I'm thinking of total mfg cost of under $20 and maybe sell for up to $149.