The thing is, running a simulation is a pretty inefficient way to do this. Until relatively recently, most printers lacked the computational bandwidth to run a simulation in parallel with active control (my ender 3 back in 2018 didn’t even have the capacity to enable all features if you wanted a leveling probe). Even now, you wouldn’t want to run this on the same hardware that’s actually controlling the machine, since the simulation would delay its ability to send control signals in real time. That’s why Klipper uses a secondary control board, it offloads the extra computation to ensure the primary controller only has to compute the bare minimum to operate with as minimal a delay as possible.
Also, a parallel simulation just isn’t necessarily the most efficient way to catch issues. Thermal control accuracy has been a focus in the printing community at least since Anet A8 printers were burning down people’s homes, and we’re pretty good at preventing thermal runway these days.
On the motor side, the accuracy issues are largely a result of an open loop control system- The steppers have no way of telling the controller that they moved the correct amount. Thus, a simulation wouldn’t help with positional accuracy since the board has no idea if a motor misses a step anyway. There are some mitigating tools like stallguard for load sending, but it’s not really the same thing.
Adding encoders to your steppers, or buying stepper motors with built in encoders, can help a lot but it’s not a cheap solution. It can also be a bit bulky, so packaging them a printer not designed for them can be tricky.
The thing is, running a simulation is a pretty inefficient way to do this. Until relatively recently, most printers lacked the computational bandwidth to run a simulation in parallel with active control (my ender 3 back in 2018 didn’t even have the capacity to enable all features if you wanted a leveling probe). Even now, you wouldn’t want to run this on the same hardware that’s actually controlling the machine, since the simulation would delay its ability to send control signals in real time. That’s why Klipper uses a secondary control board, it offloads the extra computation to ensure the primary controller only has to compute the bare minimum to operate with as minimal a delay as possible.
Also, a parallel simulation just isn’t necessarily the most efficient way to catch issues. Thermal control accuracy has been a focus in the printing community at least since Anet A8 printers were burning down people’s homes, and we’re pretty good at preventing thermal runway these days.
On the motor side, the accuracy issues are largely a result of an open loop control system- The steppers have no way of telling the controller that they moved the correct amount. Thus, a simulation wouldn’t help with positional accuracy since the board has no idea if a motor misses a step anyway. There are some mitigating tools like stallguard for load sending, but it’s not really the same thing.
Adding encoders to your steppers, or buying stepper motors with built in encoders, can help a lot but it’s not a cheap solution. It can also be a bit bulky, so packaging them a printer not designed for them can be tricky.