Treadmill motor controller interfacing with Arduino - Page 1
Forum section: electronics / beginners

author: sairfan1
author_rank: Frequent Contributor
timestamp: July 10, 2020, 03:43:24 pm
content: I have Horizon Treadmill CT7.1 when it was working good after turning on it gives a long beep and gets ready, but suddenly it broke, and after turning on it gives two beeps and get kind of halt while displaying all LEDs in ON state.I understand that it looks like more dashboard related fault and it could not communicate with motor controller (or something like that) and gives something like error code as two beepsI thought to check if motor controller is still working i can interface an Arduino to it, so that i can drive the motor, while googling around I was not able to find motor controller interfacing pin definition or any schematicIt sounds me like its interface must be simple, like i need to find those point where i can send PWM signals, where i can read motor pulse etc. I want to know how can i find those points on PCB as its not labeled well, attached are some images of motor controller, refer to image Treadmill_front.jpg there are two red boxes i draw on the picture these points are labeled with RPM and Counter other than these two i could not find any clue. Motor Controller board model# MLH0910PC and its driving DC90 Volts 20Am motor, i can also see a MCU on motor controller its R5F212KPlease help me with ideas how can i understand motor controller interfacing and test if its in working condition and the next step to interface it with ArduinoI found some pin info here but its not same as my modelhttps://electro-medical.blogspot.com/2015/05/horizon-fitness-treadmill-fault.html

author: QuebecTech
author_rank: Newbie
timestamp: July 12, 2020, 01:04:16 am
content: Try contacting Johnson Controls for possible replacement parts and troubleshooting instructions.https://www.johnsoncontrols.com/services-and-support/replacement-parts-and-supplies

author: sairfan1
author_rank: Frequent Contributor
timestamp: July 13, 2020, 02:27:21 pm
content: Is there any chance to find out points in the circuit to apply PWM to drive the motor, or understand the interface jack? I was not able to find schematic, is there any chance to find such document?in fact replacement parts are too expensive like $150 at least for motor controller, but if i buy such treadmill from local classified it could be around $200

author: mjkuwp
author_rank: Unknown
timestamp: July 14, 2020, 02:30:13 am
content: work backward from the FET (on the heatsink). there should be a big diode and a big FET for the drive. the Gate of the FET will be driven by ..something and you can work back from that to the micro. at some point you could insert your own PWM signal. I don't know if a standard Arduino can do PWM sufficiently fast.is your main goal to learn? or to have a treadmill?Treadmills of this level are very often available for cheap or free from people who have changed their minds, joined a health club, etc.oh, and this is not Johnson Controls - that's a different company : )

author: elliotmade
author_rank: Newbie
timestamp: October 26, 2021, 11:23:24 pm
content: 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 inIf you don't send it a packet within a few seconds of booting, it also gets madIt also requires continuous communication or it will stop (for safety). When stopped or at a steady state, you should continually send the same packetThe 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 itI'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!

author: sairfan1
author_rank: Frequent Contributor
timestamp: October 29, 2021, 07:39:10 pm
content: Hi thanks for sharing I gave it a quick look and it looks wonderful work, for sure I will take some time go through it in detail to learn, its a great job.