A noter que le firmware 2.3.0 permet de gérer la fin de fil par un détecteur.
Ce serait bien de regarder de ce coté, il est possible que cette fonction soit plus élaborée qu'une simple pause.
....
Je viens de regarder la commande c'est M600 soit une pause...
Par contre il permet aussi d'ajuster automatiquement l'extrusion au diamètre du fil.
Il y a donc une suite à découvrir avec un futur sensor
....
Je viens de trouver ici
http://objectswithintelligence.weebly.com/store.html
Ce détecteur donne une tension directement proportionnelle avec le diamètre du fil.
S'il est validé dans le firmware, le diamètre s'affiche à l'écran LCD et l'extrusion est multipliée par un facteur pour compenser le manque ou le trop de PLA.
Bien entendu dans le firmware on règle la distance entre le détecteur et l'extrudeur afin de rester synchrone.
Une tension trop faible suppose qu'il n'y a plus de fil pourrait entrainer une pause.
Le montage est ici
http://www.thingiverse.com/thing:454584
Le code dans configuration.h
Code : Tout sélectionner
**********************************************************************\
* Support for a filament diameter sensor
* Also allows adjustment of diameter at print time (vs at slicing)
* Single extruder only at this point (extruder 0)
*
* Motherboards
* 34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector
* 81 - Printrboard - Uses Analog input 2 on the Exp1 connector (version B,C,D,E)
* 301 - Rambo - uses Analog input 3
* Note may require analog pins to be defined for different motherboards
**********************************************************************/
// Uncomment below to enable
//#define FILAMENT_SENSOR
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
#define MEASURED_UPPER_LIMIT 3.30 //upper limit factor used for sensor reading validation in mm
#define MEASURED_LOWER_LIMIT 1.90 //lower limit factor for sensor reading validation in mm
#define MAX_MEASUREMENT_DELAY 20 //delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM and lower number saves RAM)
//defines used in the code
#define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA //set measured to nominal initially
//When using an LCD, uncomment the line below to display the Filament sensor data on the last line instead of status. Status will appear for 5 sec.
//#define FILAMENT_LCD_DISPLAY
// Uncomment for defining a filament runout sensor to check the existence of filament
//#define FILAMENT_RUNOUT_SENSOR
#ifdef FILAMENT_RUNOUT_SENSOR
const bool FIL_RUNOUT_INVERTING = false; // Should be uncommented and true or false should assigned
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600"
#endif // FILAMENT_RUNOUT_SENSOR
Dans la seconde partie du code on trouve un switch pour détecter la présence du fil.
Bon, c'est du précis mais le fil étant de plus en plus constant dans sa fabrication, ca rend le système moins pertinent.