prusa3d / Prusa-Firmware

Firmware for Original Prusa i3 3D printer by PrusaResearch
GNU General Public License v3.0
2.02k stars 1.05k forks source link

[BUG] FW 3.14.0 on i3 Mk3 - Filament sensor settings reset after every start of printer #4808

Open cordilon opened 1 day ago

cordilon commented 1 day ago

Printer model

MK3

MMU model

No-MMU

Firmware versions

3.14.0 for Bondtech Extruder

Upgrades and modifications

official Bondtech Extruder upgrade, Sunon 4010 fan for hotend, Misumi linear rods

Printing from...

SD Card

Describe the bug

since upgrading from firmware 3.13.0 to 3.14.0, the setting for filament sensor on/off gets reset to "on" with every start of the printer. I'm not using the filament sensor, so this is really annoying and I have to turn it off every time, so the menu options to manually load/unload filament become available.

EDIT: After a factory reset and some testing, this issue seems to be related to connecting the filament sensor. The issue only seems to occur when it's disconnected, which was the case for me, since I'm not using it at all. I forgot to mention it under "modifications", since I'm so used to it.

How to reproduce

Expected behavior

settings for filament sensor should persist after turning printer off and on again.

Files

https://github.com/user-attachments/assets/e6d5680d-c489-4a1f-a6fb-00a9b36b7ef1

3d-gussner commented 23 hours ago

@cordilon I just tried to reproduce your issue on the MK404 SIM using the Prusa_MK3 with Prusa and Bondtech firmware. I can't reproduce your issue in both versions the FSensor stays OFF after booting.

Please try to factory reset the printer.

As I see that you have multiple Sheets SmoPLAdefined I would suggest to backup and restore the sheets settings. See M850 Connect to printer with a serial terminal Send

M850 S0 ; Get Sheet 0 values
M850 S1 ; Get Sheet 1 values
M850 S2 ; Get Sheet 2 values
M850 S3 ; Get Sheet 3 values
M850 S4 ; Get Sheet 4 values
M850 S5 ; Get Sheet 5 values
M850 S6 ; Get Sheet 6 values
M850 S7 ; Get Sheet 7 values

Copy/note the reported values for each sheet to later set them again.

In case you want also to Backup/Restore your Filament Statistics you can use the D3 code. The D3 gcode is CASE sensitive and with some serial terminal or host software they may corrupt/overwrite the EEPROM. For example Pronterface and OctoPrint auto uppercase terminal inputs. More information about the EEPROM

To backup Statistics

D3 Ax0ff1 C4 ; Read EEPROM_FILAMENTUSED
D3 Ax0fed C4 ; Read EEPROM_TOTALTIME

Copy note the results and you can later restore these values. AGAIN D3 is case sensitive and the Address need to start with Ax and NOT AX as the uppercase X is used to write values.

Example: Sending D3 Ax0ff1 C4 with 0.42 m Filament used the output is

D3 - Read/Write EEPROM
000ff1  2a 00 00 00

To restore the 0.42m used filament after a factory reset you need to send D3 Ax0ff1 X2a000000 The values behind the writing X must be hex and always a factor of 2 numbers/characters. When the length is uneven the firmware will overwrite the EEPROM and only recovery option is a factory reset.

cordilon commented 16 hours ago

Hi @3d-gussner and thanks for the suggestions. A full factory reset however did NOT fix the issue. Since I'm not using the filament sensor, it wasn't even installed on my printer, but to pass the self check, I temporarily installed it. After that, the settings for filament sensor on/off were saved correctly and stayed the same after a restart of the printer. Only when I unplugged the filament sensor, it stopped working again! As I said, it was working with the sensor unplugged in the previous firmware version, so there must have been some internal changes. Can you reproduce that with the simulation software? I'd do it myself, but the usage seems wildly complicated.

EDIT: sorry I closed and re-opened the issue, I'm not very familiar with github.

3d-gussner commented 15 hours ago

@cordilon Thanks for the update. I can't find anything in the changes from 3.13.3 to 3.14.0 which could explain that the PAT9125 FSensor is activated again. Few questions: You have MK3 or a MK3S with the Bondtech extruder? Which Bontech extruder do you have? Which Bontech firmware did you install?

Differences between the MK3 vs MK3S are:

Which filament sensor did you connect temporary? PAT9125 or IR Sensor

As the MK3 PAT9125 sensor is an I2C device and the IR senors an analog device I could imagine that the firmware doesn't like that the I2C module isn't connected. A quick look doesn't show any changes to the I2C, so it is just an idea.

As you don't have a filament sensor connected I would suggest that you flash the Bondtech MK3S firmware to eliminate potential issues with the I2C communication.

Also a "floating" cable without any connection can cause some issues on serial communication ports.

As an example for floating cables causing issues is when you have the MMU cable connected to the EINSY board but NOT to the MMU, this can cause unexpected issues on the printer.

Can you reproduce that with the simulation software?

This would need some changes in the MK404 SIM, which I will not try to do.

cordilon commented 14 hours ago

Hi @3d-gussner and thanks again for the quick reply. I have a Prusa i3 Mk3 from 2018. I have the official "Prusa I3 MK2.5-MK3 Extruder upgrade" installed [ https://www.bondtech.se/product/prusa-i3-mk2-5-mk3-extruder-upgrade/ ]. Seems to be based on BMG extruder, but since it is specifically designed to fit the old carriage and E3D hotend, it doesn't have any other name. I installed the 3.14.0 firmware from the Bondtech website [ https://github.com/BondtechAB/Bondtech_Prusa_i3/raw/master/Firmware/3.14.0/FW3140-Build8370-Bondtech-MK3-EINSy10a-E3Dv6full.zip ] and I always pay extra attention not to accidentally use the Mk3S version. Here are photos of the filament sensor I have, seems to be the PAT9125. Prusa_Mk3_filament_sensor_back_540p Prusa_Mk3_filament_sensor_front_540p

I would suggest that you flash the Bondtech MK3S firmware to eliminate potential issues with the I2C communication.

Wouldn't it cause other problems to flash Mk3S firmware onto a Mk3?

Also a "floating" cable without any connection can cause some issues on serial communication ports.

For the last couple of years I had the whole sensor plus cable uninstalled and it was working fine.

3d-gussner commented 12 hours ago

Wouldn't it cause other problems to flash Mk3S firmware onto a Mk3?

Not if you DON'T connect the PAT9125 MK3 Sensor. A disconnected MK3S IR Sensor shouldn't cause any issues. I just unplugged my IR sensor and the Support -> Sensor shows Fil. sensor 0 and Support -> Voltages IR : 5.0V

For the last couple of years I had the whole sensor plus cable uninstalled and it was working fine.

I can't find any changes that may have changed the behavior. Sorry. I don't know what else it can be. The printer "should" have the PAT9125 sensor connected to avoid these kind of issues. There have been improvements regarding the MMU which depends on the filament sensor and there might be the issue you are having.

As the MK3 is so old I doubt that I can spend more time to investigate this issue with a disconnected PAT9125. Sorry.

I just run the MK404 SIM with the IR sensor "not" responding and ran the Wizard after a factory reset.

So I can even more suggest that you flash the MK3S firmware and disable the FSensor.

I am surprised that the Bondtech MK3 had NO PAT9125 solution at the time. How can you have a 3D printer without a filament runout sensor?

Alternative would be to get https://support.bondtech.se/Guide/03.%20Sensor%20Add-On%20for%20MK3s/30.html and get https://www.prusa3d.com/product/ir-filament-sensor/ + https://www.prusa3d.com/product/ir-filament-sensor-einsy-cable/ + https://www.prusa3d.com/product/set-of-magnets-mk2-5s-mk3-s/

cordilon commented 9 hours ago

Ok, I'll keep flashing Mk3S firmware in mind as an option. For now I'll probably leave the old filament sensor dangling out of the electronics box. At the moment I also don't see the point paying 20€ and printing new parts for a feature that I don't really use. I always calculate the needed amount of filament before a print and make sure it's available. The filament sensor is like parking sensors on a car to me: It's a neat safety feature, but optional if you know what you're doing. I'd just downgrade to 3.13.0 again, but the latest version actually has some features I want to use.