Go Down

Topic: Treadmill Project (Read 23594 times) previous topic - next topic


Mar 10, 2014, 01:23 am Last Edit: Mar 10, 2014, 04:55 am by Rickmc3280 Reason: 1

looks like the whole speed control is two transistors and two mosfets controlled by one PWM signal.

How easy is it to damage that system trying to interpret the PWM frequency and wavelength patterns?

I bought some shielded cable today to go ahead and try the oscilloscope again on that wire. (that 60hz that I was getting I believe to be the power cord that the wire was near, which means I didnt really get any important data).  Can the arduino in anyway capture data from the Fast and Slow pins? I believe it to be data rather than a PWM signal because they both feed into pins on an IC which then outputs a signal to a LED --> then opto coupler --> Microcontroller --> PWM output to the motor via transistors NPN and PNP interaction with the mosfets.

My concern being if I damage the components that tell that motor what to do then I am screwed, where as If i try to interpret the data being sent to the 1'st microprocessor i have less of a chance hurting the components.

Is there a way to copy the 12F508 IC and decode the way and interprets and transmits data, or is my understanding of IC's flawed?  If yall were in my shoes, what would yall be checking or would yall go for the PWM signal?

I know that information is being sent from the Fast and Slow pins to the IC, and then they are sent to an LED and then to an opto, where it goes to a more complex microprocessor that then sends a PWM signal to the motor.  Also after analyzing where all the pins are going.  The only ones of interest are the Fast and Slow, the rest of them are jumpers essentially for plug ins on the board.  The other important ones being the Power and Ground.

The Slow is coming into GP5 which looks to be Oscillator 2
The Fast is coming into GP4 which looks to be Oscillator 1

The output is GP2 which is goes to opto --microcontroller then pwm output to transisitors and mosfets


FYI. I've started a treadmill project based on a Wifi Spark over here:

I'll be publishing code and schematics soon.


Jun 30, 2014, 11:42 am Last Edit: Jun 30, 2014, 12:04 pm by Rickmc3280 Reason: 1
I've had a great deal of success with this project so far and I've been working on a game based UI.

I've figured out how to control it manually (which means I still have to type it  in the terminal), and recently have been trying to figure out how to code it to send it through the UI.  This weekend I found a way to use the Serial in Unity3D to communicate to it.

I would also use shielded wire if I were you mate!  There have been too many complications from interference without it on my end.  

I would love to talk to you more about this.  Check your PM.  In the meantime here is my FB page to my project.



On my lunchbreak now, but wanted to update anyone who is interested in this.

I am using this library - https://www.pjrc.com/teensy/td_libs_TimerOne.html

I set the Frequency at 89hz based on my oscope readings
and I am using shielded cables to protect it from interference.

I took a PIC Holder and soldered onto it 8 Header pins or 2x4 pins which made it fit on to the socket more easliy so I can have my chip on the outside.  I then made a breadboard which held the chip and a secondary PIC holder to which I put pin 9 out of the arduino to.  I am using a switch to switch between devices which allows the old board to use the CHIP or if I flip the switch it turns off the Chips PWM output pin and uses the Arduinos pin 9. 

Using this I have successfully been able to type in a speed and the motor run at said speed. 

Now I am working on a user interface to control the device. 


I was wondering if you finnished your treadmill motor control project. I have the same board and was wondering how to go about controlling the driver board for the motor.



Dec 05, 2018, 08:17 pm Last Edit: Dec 05, 2018, 08:19 pm by hynni2
Hi i Have a board i want to control...can you provide info on what Pins you Connect  on The treadmill board And what do you push to each? Thanks and greetings from Finland.


Dec 26, 2018, 02:22 am Last Edit: Dec 26, 2018, 09:42 pm by darkenney
andrewmccluskey, hynni2,

12/25/18 - Ok, here's my treadmill project.......  The details may provide some insight - I have a Spirit Esprit ET-8 Treadmill, and the top board that runs the console is fried. The bottom board: https://www.amazon.com/Sole-Fitness-Controller-Transformer-Treadmill/dp/B07K5K1YK9 - that controls the belt speed and incline works just fine.

There's a 12 pin cable that runs from the lower board up to the upper board console. Coincidentally, and what I expect is fairly typical, the pin layout referenced in this thread above is *identical* to the pin layout of the 12 pin cable in my treadmill and may be similar or identical to what you have:

1 - S/W - 17 Volt
2 - Dwn -.086volt
3 - Up -.086 volt
4 - VCC - 18 Volt
5 - Fast - 5 Volt
6 - Slow 5 volt
7 - Grnd -.098
8 - Spd - 5 Volt
9 - Spd - 0 Volt
10 - Vr1 - 5 Volt
11 - Vr2 - 5 volt
12 - Vr 3 - 0 Volt

Now, to control the treadmill - jump 1 and 4 together for power. Then A) Make Break 5 and 7 over and over to increase speed in .1 mph increments. B) Make Break 6 and 7 over and over to decrease speed by .1 mph increments. C) Make 3 and 4 together to incline the treadmill. D) Make 2 and 4 to decline the treadmill.

I have put 4 push buttons on the treadmill console that perform those four A-D functions.

Now, I'm going to do that A-D with Arduino Uno along with adding additional functions. Instead of speed increments/decrement of .1 mph, I'll make that .5 mph. Also, will add 5 buttons to take speed right to 2, 4, 6, 8, 10 mph.  Will also add 7 segment leds to display speed and incline amount.

I'll post more as this progresses, but hopefully, there's something here you may be able to move forward with.

12/26/18 - One note from reading through the thread - a pot is *not* used for any of above. Just Make Break the circuit of pins 5-7 to increase speed, and Make Break the circuit of pins 6-7 to decrease speed. The intro arduino push button solution for that is pretty basic. Connect pins 1 and 4 to the magnetic emergency switch of the treadmill.

I believe that pins 8 and 9 are used for pwm speed control. In normal operation, this is how speed would be adjusted, and pins 5 and 6 would be used internally by treadmill to adjust speed in small increments when magnetic belt sensor reading does not match user selected speed. I will need to test in a day or so.



I have a Life Fitness treadmill motor (90v DC, 20AMP, 4000RPM, 2 HP, Continuous Duty) along with MC-60 control board. I am looking for ways to speed control this motor with Arduino. The control pins for this board seem to be different from Sole Fitness control board. In addition to exploring the interfacing of Arduino with MC-60 control board, I am also exploring building a programmable power supply to the motor so that I can replace the complex control board.

My ideas to replace the board are revolving around these options:
(a) AC power supply (US: 120V 60HZ) --> Bridge Rectifier + Capacitor (~ 100v-120v DC) --> High Current DC Relay Switch (to simulate Pulses via on/off) programmable with Arduino --> DC Motor

(b) AC power supply (US: 120V 60HZ) --> SCR + Digital Potentiometer programmable with Arduino --> Bridge Rectifier --> DC Motor

Are these ideas feasible? Are there any other ways to programmatically control a DC motor (treadmill motor or other DC motors which handle similar torque)?

Any information or help is appreciated.

Thanks in advance.

Go Up