SKR V1.3 Filament Runout Sensor


Adding a filament runout sensor to the SKR V1.3 is a quick and simple process. Despite its simple appearance a filament runout sensor is a useful add-on for any 3D printer. Filament sensors may vary in how they detect when there is no longer any filament running through, however they all do the same job.

Installing Sensor to SKR V1.3

When it comes to installing your filament runout sensor on the SKR V1.3, we need to ensure that the wiring on the cable from the sensor matches that on the mainboard.

Running bottom to top the end-stop connectors on the SKR’s V1.3 wiring layout is in the order below.

SIGNALGROUNDVOLTAGE

You may need to re-wire the connector, simply push the pins down on the rear of the connector to remove the wires and rewire accordingly.

To make life easier we are going to be utilising a spare axis connector on the board. Furthermore it does not matter what end-stop input you use. However, the example in this guide will be using the Z_MAX_PIN.

Marlin Configuration

Configuration.h

In Marlin 2 head over to the configuration.h and search for:

//#define FILAMENT_RUNOUT_SENSOR.

When we need to enable an option in Marlin, we need to remove the forward slashes (//) at the very start of the line.

//#define FILAMENT_RUNOUT_SENSOR //Disabled
#define FILAMENT_RUNOUT_SENSOR //Enabled

Your configuration in Marlin 2 should now resemble below.

#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define NUM_RUNOUT_SENSORS 1
#define FIL_RUNOUT_INVERTING false
#define FIL_RUNOUT_PULLUP
//#define FIL_RUNOUT_PULLDOWN
#define FILAMENT_RUNOUT_SCRIPT “M600”
//#define FILAMENT_RUNOUT_DISTANCE_MM 25
#ifdef FILAMENT_RUNOUT_DISTANCE_MM
//#define FILAMENT_MOTION_SENSOR
#endif
#endif

The options themselves are quite self explanatory with Marlins notes to guide you.

In the above example, the notes have been removed to make it easier to follow along. Whilst we are setting up, keep the settings to the same as above until the filament sensor is working. Afterwards you are free to tweak away.

pins_BIGTREE_SKR_V1.3.h

Next order of business is to set the filament runout pin in pins_BIGTREE_SKR_V1.3.h. If you are using a different axis input, change the FIL_RUNOUT_PIN to that pin number.

ifndef FIL_RUNOUT_PIN
define FIL_RUNOUT_PIN P1_24 //Z_MAX_PIN
endif

I have copied the list of end-stop pins below for ease in explanation. However it should be at the top of pins_BIGTREE_SKR_V1.3.h, as it is part of the configurations on pins for the SKR V1.3.

X_MIN_PIN P1_29
//X_MAX_PIN P1_28
Y_MIN_PIN P1_27
//Y_MAX_PIN P1_26
Z_MIN_PIN P1_25
Z_MAX_PIN P1_24 //FIL_RUNOUT_PIN

At this point we have told the SKR V1.3 that we have a Filament Runout Sensor, and where the board will receive the signal from.

The only thing left todo is to tell the SKR V1.3 via Marlin, what we want the printer todo when the filament runs out.

This is where the ADVANCED_PAUSE_FEATURE comes into play and It is needed in order for Marlin to compile. In the Configuration_adv.h file, search for //#define ADVANCED_PAUSE_FEATURE

Configuration_adv.h

Enable the advanced pause feature by removing the forward slashes //

//#define ADVANCED_PAUSE_FEATURE
define ADVANCED_PAUSE_FEATURE

The ADVANCED_PAUSE_FEATURE has a lot of options that can be enabled and disabled for not only personal preferences but the best settings to suit your printer.

Similarly like the FILAMENT_RUNOUT_SENSOR it is best to leave as default until the sensor is working correctly. Once operational you can tweak these settings to suit your needs.

All Finished!

Use a spare strip of filament and feed it through the filament runout sensor. Start a print, and then pull the strip out of filament sensor.

All being well the printer will have paused and if this was not a test, you would then load a new spool of filament.


© 2019 Copyright - All Rights Reserved.