Does PID Tuning work on SM2?


I tried to tune my PID but it doesn’t work.
Can someone tell me if it’s user problem or not ?

I tried as well, but it doesn’t seem to work. Connected via USB and set the command M303 E-1 S60 U1 but it kept saying heating error or something like that. It kept providing error codes so I just turned off the machine. Hope the Snapmaker staff can shed some light on this.

Haven´t tried pid-tuning yet.- There was no need.

xchrisd, your post made sense, but it still didn’t work. Per Isaac11 and Joel, I got a bunch of “Error:Heating faijled, system stopped! Heater_ID: 0” errors on the console. I am still VERY interested in doing a PID Tuning check, just to get my prints as absolutely perfect as possible. Does anyone have any insight?

I found this discussion on github. I am still unsure if PID Tuning was solved. I would appreciate some insight from someone who is MUCH better at this than I am.

You can manually tune with M301. You cannot M303. The developers are working on it, as you found. But M303 is not implemented, you can git blame M303.cpp: Snapmaker2-Controller/Marlin/src/gcode/temperature/M303.cpp at main · Snapmaker/Snapmaker2-Controller · GitHub

Nothing has changed in the last couple years.



PID settings is activated in SM2 Firmware. You can read this code base

Is it possible to recompile the firmware with this enabled and otherwise be current with the firmware as shipped? Insofar as I know, the current firmware as shipped is not currently on github. It’s disingenuous to point out that people can recompile an old piece of software that does not have current features, especially when the GPL license for Marlin requires Snapmaker to publish source code for all binaries that it ships.

@Edwin, the controller PID configuration.h is irrelevant as the PID control is done inside the module firmware.

The controller only controls the bed and it does not use PID control, it uses bang-bang control.

@eh9 My understanding is the current firmware release is based on the following code: Release v4.2.1 · Snapmaker/Snapmaker2-Controller · GitHub

1 Like

I looked in the code, and there’s no mention I can see that this version of the code on github is used in any particular published binary. The version designator that is present is buried in the Marlin version; it’s apparent this is what they’re updating from the comments. This is the version number of the controller firmware; it’s not the version of the full binary distribution.

#define SHORT_BUILD_VERSION “SM2-4.2.1”

Absent a definitive statement from Snapmaker, it’s a wish and a guess to figure out how all the versions tie together. It’s a deficiency in Snapmaker’s publication process; they’re still not doing everything right. I don’t see a github project, for example, that packages and builds a binary distribution and, in particular, pulls particular versions of the various code bases into a complete binary. Such a project would have all the relevant versions in one place. To my knowledge, that information has not been authoritatively published in that way or any other way.

Snapmaker ought to take to heart the goals of Reproducible Builds and provide assurance to their community that the published binaries are indeed derived from the source code they publish.