-
-
Notifications
You must be signed in to change notification settings - Fork 19.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate Signal from Optical Sensor to Track Filament Movement #1558
Comments
Hi @rf1k-mjh11 (please, tell us your name, it is strange talking to nicks like alsdfjasldfm) Don't mind your English, it is pretty good and your message is clear. I'm thinking about this idea.. But I don't like to use scrap parts, I mean, parts from a broken mouse. First we need to know how to source the sensor. Do you have more specs about the sensor?? A datasheet and a place to source one is welcome. Cheers. Alex. |
The ADNS2610 / ADNS2620 was an option. Data sheet: |
hmm i like the idea too, but it can be more simple... i picture the slotted wheel from a mouse with ball... attach such a wheel to a roller with a hobbed section... and then a pinch roller on the other side... almost like an extruder then a simple opto unit that sends ir light from one side and ir sensitive transistor on the other side... hope everyone gets the picture |
Bo, There is a fellow in the /RF1000.de/ forum who has a similar approach Your approach would also work off of the idler bearing. Just attach the Mike On 03/05/2015 17:20, Bo Herrmannsen wrote:
|
Alex, Sorry about the nik, it's one nik I use for all my 3D printer-related I've gotten some response from others (Repetier, etc.). And a Lars But again, I'm not an electronics guy, nor very good at programming (I Maybe it would all boil down to a solution using a separate processing Thanks for spending the time on the idea, Mike On 03/04/2015 16:42, alexborro wrote:
|
I did a test here with my Microsoft Mouse and it could "sense" the filament But I don't like USB communication. I will try to source a cheap chinese Cheers. Alex. 2015-03-05 13:20 GMT-03:00 Bo Herrmannsen notifications@github.com:
"Não é o mais forte da espécie que sobrevive, nem o mais inteligente. É Alex Borro |
@rf1k-mjh11 Are you aware of the filament monitors using encoders like this one? http://www.toybuilderlabs.com/products/tunells-3d-printer-filament-monitor-for-makerbots |
@whosawhatsis https://github.com/whosawhatsis, This looks a lot like the solution a fellow is using at RF1000.de (Link Since I'm not electronics savvy, nor a programming genius, but just a Mike On 03/06/2015 0:07, whosawhatsis wrote:
|
That one uses a self-contained encoder like this one: https://www.sparkfun.com/products/10982 I believe it has a small microcontroller that just watches for the filament to stop moving for X seconds, and pulls a digital pin high to alert the printer if that happens. No integration with the information of what the extruder's trying to do. |
A simple implementation could be to count the Steps on E in a variable and subtract the increments reported by a sensor from that value. This way the variable should always have a value around 0. once the value increases above a certain limit we know that an error has occurred. As configuration Items this would need the Limit for alarm and a Increment to Step ratio for calibration. |
A simple continuous potentiometer articulated by the extruder idler might be another cheap alternative, assuming it can be pretty frictionless. |
I realized some time ago, that there may not be a reason to actually process/read the gcodes passing through to the printer. Could one just simply sense the current going to the extruder stepper? When stationary, current is constant. When it is (or should be) moving, the current pulses. One should be able to pick this pulsing up, without a direct electrical connection, and compare it to a signal from the optical sensor. That is, whenever there is a pulsed current on a stepper lead, a movement signal should be expected. I know you can pick up very strong currents, without actually being in the loop/circuit, just by sensing the field the current generates. BTW, I came up with several single-piece chip solutions for the sensor. Only one that I found has a PS/2 protocol, the others USB. But I'm sure there are more around. I have the data sheets on the chips I listed, but don't know how to upload here. Mike |
BTW, I bought a Fujitsu mouse for €4.99, took it apart and looked at the chip. That is how I 'discovered' the others on the web. |
Mike, stepper motors don't work like that.. You cannot use the current And I will look the datasheet of the chips you figure out. Cheers Alex.
|
Alex, I know that the motor is always receiving current, even when it is Actually, I guess what I'm talking about now is, again, more of a Have a nice Sunday, Mike
|
Scott, Wouldn't a continuous potentiometer go from Mike
|
@rf1k-mjh11 A very large change can be easily software-corrected. The software takes note of the highest resistance value read and uses it as a threshold. You also need to pick some value over which a move must be considered to be going the other way. The calculation works something like:
|
i think the rot. encoder mentioned by whosawhatsis would be the way to go... easy to get and loads of examples on how to use it... if it makes to much friction is of course important... |
closing... we recently agreed that support from hardware should come from makers of the hardware and not us |
Hi, I know this has been quite a while since this feature has been closed, but after seeing it on the new craftbot I figured it was quite a useful feature to have. I found this link on thingiverse : https://www.thingiverse.com/thing:3071723 |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
4 similar comments
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
I've started passing my idea around to Firmware & host software programmers.
The optical motion sensor in a generic mouse has a resolution of 800-1000dpi. It can pick up the movement of the filament forwards and backwards. (Better to track the movement of the idler bearing/pressure bearing to avoid filament color/transparency issues).
If the firmware were to compare the extruder feed commands with signals returned by the sensor, several error conditions could be acted upon in time:
If this idea were implemented in the firmware, the firmware would need to process the output signal (sent via USB) from the (mouse) sensor and compare it to the recently sent GCodes.
With sufficient resolution it may even be possible to use the signal as a feedback loop to regulate temperature during high speed printing - the higher the print speed, the higher the pressure in the hot end, and the higher the slip rate will be (despite the hobbed bolt!!). I think you will see slip rates between 0-8%, despite thinking the hobbed bolt acts like a gear (just like a car tire - as soon as there is some elasticity in the system, you will get slip). So if the firmware registers a higher slip rate, it could increase the temperature slightly to compensate.
I'm not a programmer or good with electronics. I'm just providing an idea. I've also plugged it to the Repetier-Host people, since it would also be possible to handle this through the host while printing.
If the idea is unclear and you'd like it in German, drop me a line & I'll do it in German - kein Problem.
mjh11
The text was updated successfully, but these errors were encountered: