SnapmakerController-IDEX icon indicating copy to clipboard operation
SnapmakerController-IDEX copied to clipboard

Bug: PID Hotend PID setting not possible on a per-extruder basis

Open evilC opened this issue 2 years ago • 2 comments
trafficstars

🐞 bug report

Affected Version(s)

All

Is this a regression? (optional)

No

To Reproduce

Modify PID settings for E0

Send: M301 E0 P15.24 I0.96 D60.28
Recv: echo: p:15.24 i:0.96 d:60.28
Recv: ok

Modify PID settings for E1

Send: M301 E1 P15.56 I0.99 D60.95
Recv: echo: p:15.56 i:0.99 d:60.95
Recv: ok

Save to EEPROM

Send: M500
Recv: echo:Settings Stored (734 bytes; crc 22982)
Recv: ok

Exception or Error (optional)

Retreive settings

Send: M503
[...]
Recv: echo:  M301 P15.56 I0.99 D60.95
Recv: echo:  M301 P15.56 I0.99 D60.95

(Note same values listed twice)

Expected behavior

Response should be something like:

Recv: echo:  M301 E0 P15.24 I0.96 D60.28
Recv: echo:  M301 E1 P15.56 I0.99 D60.95

I spoke to someone in Marlin Discord channel about this and we think this is an underlying issue in the version of Marlin used, and not a result of any modifications that Snapmaker has done.

evilC avatar May 24 '23 14:05 evilC

Hi evilC, thank for your proposal. Current version do not enable PID_PARAMS_PER_HOTEND featrue. We will consider adding this feature in the next version.

747lulu747 avatar May 26 '23 02:05 747lulu747

Hi evilC, thank for your proposal. Current version do not enable PID_PARAMS_PER_HOTEND featrue. We will consider adding this feature in the next version.

It looks like that without this feature enabled, the PIDs for the right extruder are just fundamentally broken, it's not just using the same PIDs as the left extruder. https://github.com/MarlinFirmware/Marlin/issues/24644

When PID_PARAMS_PER_HOTEND is disabled, the PID constants that are supposed to be shared between all extruders will only work for the first extruder. For any other extruders, the PID algorithm receives zero for all constants. This causes PID mode to always output a power of zero, resulting in the temperature oscillating around the PID_FUNCTIONAL_RANGE threshold as if it were a bang-bang controller.

evilC avatar Jul 05 '23 15:07 evilC