Ну кол-во зубов неправильно считать, нужно вроде через диаметр
ты же считаешь полный оборот в градусах 360, в радианах цифра другая, в зубцах цифра иная. 360/16 или 360/20, а у мотора шаг 1.8 градуса например, это 360/1.8
Я с пидами разок на крутил... Пот колебания были 8° погрешность. 🤔
В Марлин через меню прям тыкаете PID Autotune и задаете температуру нужную. Он сам прогоняет цикл с холодного до заданного и потом там же в меню появляются настройки, которые надо переписывать сразу себе в конфиг на будущее.
Единственная сложность была в том, что не сразу захотелись найденные настройки применятся с перепрошивкой системы. И еепром чистил, и дефолтные применял. Потом только с 3 раза firmware.bin записался как надо в память платы и стало все харачо