Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Googling: https://www.google.com/search?q=Horizon+CT7.1+treadmill+rs485&oq=Horizon+CT7.1+treadmill+rs485&aqs=chrome..69i57j33i160l2.6684j0j7&sourceid=chrome&ie=UTF-8

From https://www.eevblog.com/forum/beginners/treadmill-motor-controller-interfacing-with-arduino/?PHPSESSID=3mcu5kkmeatp7vb9bjn525v3c4

...

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

...