MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.03k stars 19.13k forks source link

[BUG] M306 T produces negative responsiveness value #27181

Open Drzet opened 3 weeks ago

Drzet commented 3 weeks ago

Did you test the latest bugfix-2.1.x code?

Yes, and the problem still exists.

Bug Description

Having installed a new, original E3D Revo 12v hotend I ran M306 and got the below values:

:Recv: MPC Autotune finished! Put the constants below into Configuration.h Recv: MPC_BLOCK_HEAT_CAPACITY 9.36 Recv: **MPC_SENSOR_RESPONSIVENESS -0.9229** Recv: MPC_AMBIENT_XFER_COEFF 0.0525 Recv: MPC_AMBIENT_XFER_COEFF_FAN255 0.0884

The negative responsiveness value led to a thermal runaway issue until I realized what was happening and removed the minus sign.

Bug Timeline

With a new E3D Revo.

Expected behavior

Normal values

Actual behavior

Recv: MPC_SENSOR_RESPONSIVENESS -0.9229

Steps to Reproduce

T1 (it's a dual system) M306 T

Version of Marlin Firmware

2.1.2.3

Printer model

Custom coreXY Hypercube

Electronics

SKR 3

LCD/Controller

BTT-12864

Other add-ons

No response

Bed Leveling

UBL Bilinear mesh

Your Slicer

Prusa Slicer

Host Software

OctoPrint

Don't forget to include

Additional information & file uploads

Marlin.zip

rondlh commented 1 week ago

Do you have a ceramic hotend heater, if so this could be related to #27223

Did you correctly define the MPC_HEATER_POWER?

define MPC_HEATER_POWER { 40.0f, 40.0f }

You have defined 2 different types of thermistors for the hotends, make sure it's correct.

define TEMP_SENSOR_0 1010

define TEMP_SENSOR_1 5

Drzet commented 1 week ago

Do you have a ceramic hotend heater

It's e3d Revo, I believe it's ceramic.

Did you correctly define the MPC_HEATER_POWER?

40W, as per published e3d specs

You have defined 2 different types of thermistors

Yes, the other hotend is the old V6 with pt1000

rondlh commented 13 hours ago

Do you have a ceramic hotend heater

It's e3d Revo, I believe it's ceramic.

Did you correctly define the MPC_HEATER_POWER?

40W, as per published e3d specs

You have defined 2 different types of thermistors

Yes, the other hotend is the old V6 with pt1000

OK, good to know. Here you can see the heater characteristics: https://e3d-beta.myshopify.com/pages/heatercore-range-datasheet graph-1679392483249

I think you should look at the orange line, which shows that if you print at 225 degrees C, that the power goes down to about 28W, you could try that number instead of the 40W.

Drzet commented 8 hours ago

here's the result @28W Recv: MPC Autotune finished! Put the constants below into Configuration.h Recv: MPC_BLOCK_HEAT_CAPACITY 7.49 Recv: MPC_SENSOR_RESPONSIVENESS -1.6147 Recv: MPC_AMBIENT_XFER_COEFF 0.0376 Recv: MPC_AMBIENT_XFER_COEFF_FAN255 0.0699

rondlh commented 17 minutes ago

All numbers reported seem reasonable, except this minus sign. Are you sure the thermistor type is correct? Do the readings at room temperature make sense? (Should be about within 1 or 2 degrees of what your bed is reporting).

I'm not sure how you set the new heater power, best way to test is just to issue a M306 P28 before the M306 T. If you change the value in the configuration.h, the new value will not be used immediately... Run an M306 without parameters to see the currently active MPC values.