26

Re: Filament Measuring Device

dubbsd wrote:

instead of the filament dragging on the contact I wonder if you could use bearing on one side and this Dial indicator roller on the other to contact the filament.

http://imageserver.grainger.com/is/image/Grainger/4CER8_AS01?$productdetail$

Yeah that seems like a much simpler solution.  You could probably get away with just a ball or half circle tip if the filament is running through a v-groove, although that makes zeroing more interesting (might want a 1.75mm gage pin).  Indicators put out the same output and have a natural pressure from gravity. 

There is already some existing software that takes that output through a com port although your solution might be cheaper in the end.

27

Re: Filament Measuring Device

Ian
that roller is from starret and is $40
but this is what gave me the idea. to bad it isn't digital.
http://shop.mapra.co.uk/ekmps/shops/mapratechnik/images/kafer-dial-thickness-gauge-j-50-r-with-roller-contact-points-reading-0.01-mm-116-p[ekm]300x289[ekm].jpg

http://shop.mapra.co.uk/kafer-dial-thic … -116-p.asp

Ultimaker S3.

28

Re: Filament Measuring Device

$250?!

I'm in the wrong business.

29

Re: Filament Measuring Device

Now dubbsd, what is the source of your roller?

I have a inexpensive digital dial indicator if I had a couple of those rollers, I assume they would be non resistive (ball bearing), I could make up a digital reader rather easily.

Ralph

30

Re: Filament Measuring Device

jesse wrote:

Thanks Tim.  Actually one thing was wrong.  The GND on the digital gauge needed to be connected to GND on the arduino.

The system is up and running, it does about 1-2 measurements per second.



Here's a test program for checking the wiring to the arduino.

int pin;

void setup(){
  pin = 22;
  Serial.begin(9600); 
  pinMode(pin, INPUT);
}

void loop(){
  Serial.print("PIN ");
  Serial.print(pin);
  Serial.print(" is ");

  if (digitalRead(pin) == LOW)
    Serial.write("LOW");
  else
    Serial.write("HIGH");
  Serial.write("\n");   
  delay(1000);
}

This is the sketch to read the digital thickness gauge (or a digital caliper)

int i;
int sign;
long value;
float result;
int clockpin = 22;  
int datapin = 23;
unsigned long tempmicros;

void setup() {
  Serial.begin(9600);
  pinMode(clockpin, INPUT);
  pinMode(datapin, INPUT);
}

void loop () {
  while (digitalRead(clockpin)==HIGH) {} //if clock is LOW wait until it turns to HIGH
  tempmicros=micros();
  while (digitalRead(clockpin)==LOW) {} //wait for the end of the HIGH pulse
  if ((micros()-tempmicros)>500) { //if the HIGH pulse was longer than 500 micros we are at the start of a new bit sequence
    decode(); //decode the bit sequence
  }
}

void decode() {
  sign=1;
  value=0;

  for (i=0;i<23;i++) {
    while (digitalRead(clockpin)==HIGH) { } //wait until clock returns to HIGH- the first bit is not needed
    while (digitalRead(clockpin)==LOW) {} //wait until clock returns to LOW

    if (digitalRead(datapin)==LOW) {

      if (i<20) {
        value|= 1<<i;
      }

      if (i==20) {
        sign=-1;
      }

    }
    
  }

  result=(value*sign)/100.00;    
  Serial.println(result,2); //print result with 2 decimals
  delay(1000);
}

Is this implemented in any 3D printer FirmWare? like Sprinter or Marlin so it can be used to adjust the extruder feedrate/extrusion multiplier on the fly when printing?

31

Re: Filament Measuring Device

RoTorIT wrote:

Is this implemented in any 3D printer FirmWare? like Sprinter or Marlin so it can be used to adjust the extruder feedrate/extrusion multiplier on the fly when printing?


No that I know of. 

It could be implemented by reading from a separate arduino and using a program/macro to control the flow rate in Rep-Host.

32

Re: Filament Measuring Device

jesse wrote:
RoTorIT wrote:

Is this implemented in any 3D printer FirmWare? like Sprinter or Marlin so it can be used to adjust the extruder feedrate/extrusion multiplier on the fly when printing?


No that I know of. 

It could be implemented by reading from a separate arduino and using a program/macro to control the flow rate in Rep-Host.


Flowrate and feedrate can be adjusted by Gcode commands in marlin and probably other setups. I forget the commands, but google "octoprint adjust flowrate" and you might find a thread that highlights the proper gcode command (Octoprint doesn't have a built in flowrate adjuster, but you can send Gcode commands via octoprint to do it manually)

33 (edited by RoTorIT 2014-05-29 22:55:25)

Re: Filament Measuring Device

Tomek wrote:
jesse wrote:
RoTorIT wrote:

Is this implemented in any 3D printer FirmWare? like Sprinter or Marlin so it can be used to adjust the extruder feedrate/extrusion multiplier on the fly when printing?


No that I know of. 

It could be implemented by reading from a separate arduino and using a program/macro to control the flow rate in Rep-Host.


Flowrate and feedrate can be adjusted by Gcode commands in marlin and probably other setups. I forget the commands, but google "octoprint adjust flowrate" and you might find a thread that highlights the proper gcode command (Octoprint doesn't have a built in flowrate adjuster, but you can send Gcode commands via octoprint to do it manually)


Yes i can see that opportunity but i think it would be a lot more awesome if it was connected to the same Arduino as the printer and implemented in the FW.
An extra Arduino, extra USB and extra software seem a bit overkill just for this.
FW implementation would also make it possible to be used when printing with standalone printer (like from SD card) if needed.
Couldn't it for example be used to edit the extruder steps/mm setting on the fly or something? without going trough the computer?
Is that possible?
maybe something like
If serial print = 3.00  M92 E 138.00+0
If serial print = 2.80  M92 E 138.00+15(or + whatever needed to make it extrude fast enough)
If serial print = 3.20 M92 E 138.00-15  (or - whatever needed to make it extrude slow enough)

Yes.. I`m not a programmer but i guess you understand what i mean.. :-)

34

Re: Filament Measuring Device

Hows the x/y kit coming along? i'd be intrested in the diy kit if everything goes well with it, would it be 2x capable for dual extruder? don't see why not but im not the expert.

35

Re: Filament Measuring Device

Hi everyone, i didn't find a bc548, i use a 548B
May be because of the 548B ? i don't have same result on arduino console.

is it possible ?

36

Re: Filament Measuring Device

IanJohnson wrote:

If you put together my spring loaded caliper from Thingiverse, it is important to get the bearings as absolutely parallel as possible.  Making it from aluminum would be ideal, but for printing use a high fill and don't accept any warping.  Take care to keep everything flat when gluing the parts to the jaws if you don't screw them in.  I tried to use screws, but I accidentally got one of the jaws too hot with the drill and hardened it.

If the bearings are at a little bit of an angle, either from construction or bending, the measurement will be a little different depending on where the filament is, side-to-side.  When you are looking for .01mm accuracy, it doesn't take much to throw it off.  For best results use a little bit of PTFE tube to guide the filament as close as possible to the bearings and another to pick it up on the other side.  I also found that the reading was more accurate if I opened the caliper, ran the filament through, and then let it close.  If you let the filament push the bearings apart by itself as you feed it through, something will bend a little bit before it slides and the measurement will be maybe .04mm short.

Hi Ian,
I just bought a Filastruder and want to make a filament measuring device like you did in the following link:
https://www.youtube.com/watch?v=gWbeLA8bW94
Can you please send me more details about it? Maybe something I need to buy or some instructions.
Thank you so much!
Nan