Firmware bug: Infinite change filament loop?

Came across a bug this weekend on our TAZ6 and wanted to report it in case it hasn’t been observed by others yet (searched but didn’t see anything).

I was mid-print and wanted to change the filament, so I went in the menu to Tune->Change Filament. After a couple seconds the nozzle did as expected and moved out of the way of the part, retracted the material, and I changed the filament… but the screen remained on the menu (i.e. it didn’t ask me to press the button when ready) and when I had everything switched over and clicked the scroll wheel, it restarted the print and immediately re-requested a filament change.

I was then stuck in an infinite filament change loop where I needed to click the button to continue, which then triggered the TAZ6 to change the filament again (no matter where or how I clicked it in the printer’s menu system). That print was toast, and I restated the printer and was able to print it successfully later, but super annoying and something that should be caught for the next firmware upgrade if possible.

I’m not entirely sure what caused it, but my guess is some sort of race condition where the printer was in the middle of something else when I requested the filament change and so two things were competing and something got out of sync with the printer’s state. I did also adjust the print head temp (via Tune->Nozzle) shortly before requesting the filament change, so perhaps that’s something to double check in case that’s part of the issue.

Otherwise, we’ve been loving our TAZ6. Thanks to the Lulzbot team for making such a great printer!

I have come across this same issue on my Taz6. I use octoprint with a filament sensor connected.
I couldnt figure out why the printer stayed in the filament change loop. I thought it was the debounce of the sensor or the way the filament pause got triggered by the octoprint pluggin. But like you I eventually cancelled the print.

I upgraded the firmware on my delta to marlin 1.1.6 and experienced the same issue. Then on cr-10 too. But since all my printers have octoprint and same sensor, I thought it was something on my end.

Now I’m leaning towards a problem in the firmware if your not even using octoprint or a filament sensor. I suspect something is wrong in the filament change code itself.

I did find a similar issue caused by the filament sensor being on the wrong pin for the cr10 in the default ramps pin config (with the 10s board) as well as a missing if that was fixed in the 1.1.6-bugfix branch that will likely resolve the issue. For your cr10, if its the s board change the pin under the pins_ramps.h from 4 to 2.

For the taz firmware, if the sensor isnt in use you could get around it by inverting the pin logic, so low means there is filament, then any bug with it will just assume you do have filament there.

Thanks ninja, for the response.

My CR-10s4 has the newer motherboard. It came with filament sensor already configured and running correctly. I’m not using Octoprint’s filament sensor pluggin with it, its got the filament sensor from the factory hard wired to the motherboard. Only started having this issue when I upgraded the firmware myself to marlin 1.1.6. I’ll double check if have the correct pin assigned.

I do like your logic about inverting the logic of the sensor, I’ll try that on my printers that didnt come with a filament sensor. The filament reloaded plugin has a option to make the device normally open or normally closed.

I’m wondering if the OP is even using a filament sensor at all. If he’s just using m600 in his gcode or the LCD to change filaments mid print, if so that would suggest a firmware issue. Also wonder what firmware he has on his Taz6, that would help.

A little late on the reply, but in case you’re still working to track down the filament change bug…

I’m using a TAZ6 (no modifications or extra sensors) with latest firmware version When I encountered the issue, I did everything via the LCD/knob interface directly on the printer (printing stand-alone from SD card, no additional control via USB).