Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
evilC opened this issue May 24, 2023 · 2 comments
Open

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

evilC opened this issue May 24, 2023 · 2 comments

Comments

@evilC
Copy link

evilC commented May 24, 2023

🐞 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.

@747lulu747
Copy link
Contributor

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.

@evilC
Copy link
Author

evilC commented Jul 5, 2023

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. MarlinFirmware/Marlin#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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants