Filament sensor not working with SimplyPrint or OctoPrint
In this article, we'll explain why the filament sensor that is attached to your printer, may not work when you're printing via SimplyPrint or OctoPrint.
This article only applies for OctoPrint-powered setups
When SimplyPrint and OctoPrint connect to your printer, we're at the mercy of the firmware on your printer - and sometimes, the firmware might not recognize that it's indeed printing when being fed a print via the serial port when using SimplyPrint and OctoPrint.
This means that the firmware on your printer may not activate the filament sensor during a print via the SimplyPrint platform, and thereby not trigger the pause sequence on filament run out.
Another possibility is that it is enabled and does detect the filament having run out, but it may not send the right pause command that OctoPrint supports, and OctoPrint will then keep printing, as it doesn't understand that the printer wished to stop the print.
There are a few ways you can get around this issue, luckily!
Flash the latest firmware on your printer
Often times, your printer may use an old and outdated firmware version, where this issue may be fixed.
What's important in the firmware version, is that it needs to understand that when it's being fed a print via the serial port, it should be treated the same way as when printing via SD card. Furthermore, it needs host action commands enabled in the firmware (which is a simple "yes / no" setting). More on that here.
We sadly can't guide you on how to flash the firmware, as it differs very much from printer to printer (both where to find the firmware and how to perform the firmware upgrade).
We recommend Googling "[name of printer] flash firmware", where it's very likely that you'll find a step-by-step guide or YouTube video on how to do it!
Use an external filament sensor
Another possible fix is to use an external filament sensor, which will often times be connected to the Raspberry Pi rather than the printer itself, which enables OctoPrint to pick it up.
An example of this is the BIGTREETECH SmartFilamentSensor, but there are other options out there as well.
For this to work with OctoPrint you must use a Filament Sensor plugin such as the Smart-Filament-Sensor plugin.
Moving the filament sensor to the Raspberry Pi
Some filament sensors you may be able to plug out of your printer main board, and plug into the Raspberry Pi instead.
Plugging the filament sensor into the Raspberry Pi's GPIO pins will allow a filament sensor plugin such as the Smart-Filament-Sensor plugin plugin for OctoPrint.
Exactly how to do this isn't something we're able to guide you on how to do here at SimplyPrint, as it differs very much from printer to printer and sensor to sensor - but if you've got a engineering mindset, or may be able to find someone online who has succeeded in doing this for the same printer that you've got, it may be a good solution!
This article only applies for OctoPrint-powered setups
Why it doesn't work
When SimplyPrint and OctoPrint connect to your printer, we're at the mercy of the firmware on your printer - and sometimes, the firmware might not recognize that it's indeed printing when being fed a print via the serial port when using SimplyPrint and OctoPrint.
This means that the firmware on your printer may not activate the filament sensor during a print via the SimplyPrint platform, and thereby not trigger the pause sequence on filament run out.
Another possibility is that it is enabled and does detect the filament having run out, but it may not send the right pause command that OctoPrint supports, and OctoPrint will then keep printing, as it doesn't understand that the printer wished to stop the print.
Possible fixes
There are a few ways you can get around this issue, luckily!
Flash the latest firmware on your printer
Often times, your printer may use an old and outdated firmware version, where this issue may be fixed.
What's important in the firmware version, is that it needs to understand that when it's being fed a print via the serial port, it should be treated the same way as when printing via SD card. Furthermore, it needs host action commands enabled in the firmware (which is a simple "yes / no" setting). More on that here.
We sadly can't guide you on how to flash the firmware, as it differs very much from printer to printer (both where to find the firmware and how to perform the firmware upgrade).
We recommend Googling "[name of printer] flash firmware", where it's very likely that you'll find a step-by-step guide or YouTube video on how to do it!
Use an external filament sensor
Another possible fix is to use an external filament sensor, which will often times be connected to the Raspberry Pi rather than the printer itself, which enables OctoPrint to pick it up.
An example of this is the BIGTREETECH SmartFilamentSensor, but there are other options out there as well.
For this to work with OctoPrint you must use a Filament Sensor plugin such as the Smart-Filament-Sensor plugin.
Moving the filament sensor to the Raspberry Pi
Some filament sensors you may be able to plug out of your printer main board, and plug into the Raspberry Pi instead.
Plugging the filament sensor into the Raspberry Pi's GPIO pins will allow a filament sensor plugin such as the Smart-Filament-Sensor plugin plugin for OctoPrint.
Exactly how to do this isn't something we're able to guide you on how to do here at SimplyPrint, as it differs very much from printer to printer and sensor to sensor - but if you've got a engineering mindset, or may be able to find someone online who has succeeded in doing this for the same printer that you've got, it may be a good solution!
Updated on: 31/10/2023
Thank you!