Smart filament sensor for Orbiter v2
This is the
new smart filament sensor for the Orbiter v2 extruder!
The main
features are:
Designed to
run under Klipper but, not limited to.
Simple direct
connection to the Orbitool USB toolboard of Orbiter v2.
This is a brand-new sensor design, much improved compared to the previous sensor version.
The first big change is the filament tangle detection functionality. Tangled filament is one of the most common causes of print failures. When the filament is tangled on the spool, the force required to pull the filament into the extruder increases; this triggers the detection sensor and consequently runs a Klipper macro to pause the printing and inform the user about the issue. The detection is activated when filament the pulling force is increased over 1.5–2 kilograms of force for more than one second. The wear of PTFE tube can also trigger tangle detection due to the high friction force.
Warning!!! The tangle detection can be falsely triggered by high friction in a long PTFE tube, hard-turning big filament spools, or high printer acceleration with an improperly secured PTFE tube.
The second big
change is signal filtering and plausibility checking by the onboard microcontroller. Klipper
native filament sensor support is not the best way to filter out all kinds of fake
detections and debouncing of the input signals. To improve this, this sensor is
equipped with a small, eight-bit microcontroller just for that job, plus it controls the RGB input light based on the sensor state in a much nicer way than is
possible with Klipper macros.
Last but not least, a push-fit collet clip for better PTFE tube locking with an RGB illuminated ring around, which indicates the filament sensor/extruder status:
1 Design details
The design consists of an MJF printed housing, O2 sensor coupling, tangle ring, a small spring light ring, collet clip and the electronic PCB board, as shown in the figure.
The filament sensing uses a new end stop switch with longer lever movement; this helps avoid fake runout detections during fast accelerations. The sensor is pressed by the filament using a small 5.5mm steel ball. The main reason for it
is to take the friction away from the sensor switch lever. The filament cannot destroy the steel ball due to friction, but it would grind down the plastic lever of the sensor in a short time.
Tangle detection works by pressing down the tangle ring, which engages the tangle detection switch. The tangle ring is pushed upward by the small spring.
When the force in the PTFE tube overcomes the spring force (which is approximately two kilograms), the detection switch is engaged, and a signal is sent to Klipper.
For this mechanism to work properly, the PTFE tube must be secured at the filament entry side as well.
The PCB is fixed from the bottom side of the sensor by a PCB retainer and a screw.
This makes sure the PCB has no play and sits tight.
Sensor schematic details:
The sensor consists of two end stop switches, one for filament and the second for tangle detection, and a tact switch for filament unload button. These signals are fed into a small microcontroller (ATtiny412) which primary function is signal debouncing filtering and conditioning. The micro also drives the two RGB LEDs, which illuminate the sensor input ring based on the filament presence and sensor state. The board is protected against reverse power supply connections and short circuits at the sensor output signals.
Smart sensor pinout:
The sensor interface signals to the Klipper tool board are the same as for the previous sensor. The connector has four signals: GND, 3.3V (optional 5V), filament sense (FS) and unload/tangle (FTU) signals. The tangle and unload signals are multiplexed together to form a single signal, and the differentiation is done in the Klipper macro. When the printer is in the print state, the signal is considered filament tangle detection, and when it is not printing, it is considered the filament unload command.
2 Klipper configuration
Connect the FS (filament sensor signal) pin and the FTU (filament tangle and unload signal) to spare digital inputs of your main board. The best is to use pins from spare pin headers or unused expander board connections. Supply the sensor board with +3.3V (optional 5V) and GND.
Upload the sensor configuration file, Orbiter2_smartSensor.cfg to your configuration files as shown in the next picture:
Edit the pin configuration for the gcode button [gcode_button filament_unload] and type in the pin name to which the tangle / unload sensor signal is connected.
Edit
the pin configuration for the filament sensor config section [filament_switch_sensor
O2_sensor] and type in the pin name to which the filament sensor signal is
connected.
*Note
the default pin names in the config file are from the Orbiter 2 USB tool-board
defaults.
Include the sensor configuration file into the printer.cfg as follows:
In the [extruder] section, the minimum extruding temperature must be configured! The macro is not working with cold extrusion enabled (extruder minimum temperature set to 0°C). Klipper sets this parameter by default to 170°C, my recommendation is to change that to 180°C.
Sensor macro parameters can be configured by changing the variables in _SENSOR_VARIABLES macro at the beginning of the file. You may enable or disable some functions by setting them to true or false. The last important thing to configure is the printhead parking position. By default, it parks it in the left front corner, but you may edit and park it where you want.
If you want to use the PAUSE and RESUME macros from the sensor configuration file you must delete them in case you already have them defined in the printer.cfg.
The config file includes PAUSE and RESUME macros. If you use your own macros please delete the ones from the end of the sensor configuration file.
Restart Klipper & enjoy!
3 Sensor assembly procedure
Assembly video will come soon!
4 Downloadable
All downloadable files are stored on the sensor Github repository. You can find them here: