...
Hey this is an old thread, but I have done exactly the thing you are asking... in fact I found this post while searching for the treadmill controller and wanted to leave some info for the next person:
The comms interface for the controller isn't straight PWM, it uses RS-485. Here is a link to my writeup: https://elliotmade.com/2020/06/26/treadmill-controller-reverse-engineering/
I didn't completely reverse the protocol, but I figured out enough to run it. I never found any official documentation (not surprising), but also did not expect to. I left an arduino sketch there as well that can start/stop and control the speed. Couple other notes:
- The controller gets mad without the encoder plugged in
- If you don't send it a packet within a few seconds of booting, it also gets mad
- It also requires continuous communication or it will stop (for safety). When stopped or at a steady state, you should continually send the same packet
- The speed commands have to be ramped up. You can't go from 0-4000 in one step, rather you have to send some intermediate speeds as it accelerates (safety?)
- Don't have to ramp down, just send a slower speed and it will coast until it reaches it
- I'm an amateur at such things, so what I did is probably super dangerous... so watch out! (mine is on a belt grinder now, dangerous by design)
Cheers
...