Treadmill Project

I know there have been a few on here from a basic search, but I need advice and some guidance for controlling a treadmill with an Arduino. I should also specify that I will not completely replace the control board that came with it, but I will have a secondary controller until my project is complete.

I first need to find out which Arduino board I need to use.

Second, I would like to control a treadmill board via PWM signals which I understand to be a timespan of 51ms. I have never programmed an Arduino before, so this is an interesting first step and I welcome the challenge. Some people have suggested using 555 ic’s but I do not know how to go about that with an Arduino.

How can I write the code and program the Arduino to send the PWM to the Motor Board to control speed?

Also, does anyone know how to copy signals from the original device and implement them into the arduino?


Edit to add:

** The project is going well, since I have not been getting any responses I’ve just been updating it for any other hobbyist that may be able to use what I’ve learned for their projects. I have succesfully controlled the treadmill now with a PWM signal using TimerOne.h - you can find it in the arduino playground downloads

You can use Arduino Board itself. Please Desciribe Image Properly. Ur Using ANy motor Driver To interface B/w Arduino Board and Motor. If yes Pin specifications. and voltage levels.

The motor driver board attached in the picture with the first post is the board. I have not been able to pull the schematics for it online, the one in white is one that I found that resembled the board in a google image search.

The white pins are:

1) S/W - Which i am assuming is the safety swithc which is either open or closed. 2) Down - This is the down for Incline motor 3) Up - Up for incline motor 4) VCC - Commons??* 5) Fast - from the upper controller to motor - Increases speed of motor. 6) Slow - Decreases speed of motor 7) GND? Unknown 8) SPD Unknown 9) SPD Unknown 10) VR-1 Unknown 11) VR-2 Unknown 12) VR-3 Unknown

The black and white schematics show that the PWM signals is sent between 0-5volts and the signal interval is 51ms.

The motor itself is 90v 30amp rating.

Other than that I do not have much information. I was assuming that the 0-5 volt information was enough. What other information is needed to make a conclusion? Also I was more curious as to which Arduino would allow me to send multiple PWM signals. I am curious if the 2 (SPD?) buttons from above have anything to do with speed and/or if they are the additional speed switches as there are 2 on the upper control board. I have called the company and spoken with them, they do not have schematics that they offer. Is there any other way to find out?


removed pic from original post because of its irrelevance.

What i need to figure out is how to control the Speed pins on the board pictured using arduino. 0-5 Volt, Square Wave PWM Signal at 51ms Interval.

I have used treadmill motors and drivers in the pasts. every one used a 5k pot as the speed control. do you have a data sheet for the ALT-6330 driver board?

I found a reference on the Alatech site about dual pwm for speed control. could not find an actual data sheet.

need more information on the pulse requirements.

I have done google searches as well as part searchers for the ALT 6330 board, I have not found anything.

I also contacted SOLE fitness who uses the board (also Spirit fitness), and they claimed they didnt have such information when i spoke with both sales and the technicians. Not sure if they dont want people to take trade secrets or what? The board is very similar to the MG5220 and 28 something that controls other treadmills.

There is another board in the console that sends a signal to the motor driver board, so unfortunately that complicates it. If I could control the motor alone I would, however not sure how difficult it would be to control a motor with an arduino and not blow my computers circuits considering the motor is 90v 30amp. (I know I would have to create a secondary board).

What type of information is needed? I cant make any calls today because they are not open, but hopefully I will find something. I believe I will be purchasing my first Arduino today so hopefully soon I will be out of theoretical, to practical and experimental mode.

This project has been a bit overwhelming, but worth it in the end, I have learned a lot about electronics, soldering, etc. Hopefully I will be designing my own boards soon.

the ALT-6330 appears to be supplied by alatech technology

sales info :

It would seem that you need to intercept the existing controller signals. easy to do, an opto can receive them and output a 5v signal that can then be send to another opto that controls a transistor. this way everything between the opto's is board level voltage and everything outboard is powered by the system.

a relay could be used to either pass those signals, or allow you to inject your own signals.

If I were making this interface board, I would have the Arduino be able to decipher the PWM so you can duplicate it. send it back out as one means of control.

an o-scope would be very useful to determine the signal. since it appears they are saying that all of their boards work the same way, you may find someone as deciphered the signals on a different board. or, there may be notes on the controller board output to this driver board.

I will mention that many speed controls accept a varying voltage from 0 to 5 volts. For those types of controllers, if you want to go half speed, you provide 2.5volts on the signal line.

So, my question is if you are certain that your signal is a PWM signal that jumps from 0 to 5 volts? If not, then it may be that you need to send it a varying voltage to vary the speed.


Thank you Dave and Cad,

Dave, I've been looking into the Optos, and I agree that it would be the best idea for protecting the computers end.

Also, I checked out the Alatec website and found some good stuff but I guess at my entry level electronics know-how I am overwhelmed with this stuff.

Which Arduino should I get for this project at this stage in order to dechipher the voltages and pwm signals? It sounds like reading those might be difficult to do? Also I have priced Oscilloscopes... I feel like Id be paying for a high quality audio system without the amazing sound quality lol. I saw some cheap versions for 140$ I am interested in that, but at those point I have to find out how the treadmill is sending out the signal and I think to do that I need the Arduino.

CadCoke, I am not For sure that my pwm signal for the motor control specifically is 0-5. It could be for the incline, I had assumped they were both similar in operation. I have to do some testing. Any recommendations on which arduino to get in order to intercept the signals?

I was thinking the Uno R3 would be ok but the Mega looks tempting. I dont think I will need that many pwm signals either.

Any Arduino can read an analog signal, or analyze a PWM signal (provided the frequency is not too high). Though, you would need a voltage divider (i.e. two resistors) to cut the voltage down if necessary.

By the way,I have seen some mentions of using an Arduino as an oscilloscope. Though, I imagine unless there is a bunch of hardware added, you would need to have prior knowledge that the voltages on the signal is withing the ratings for the Arduino.


I have priced Oscilloscopes… l. I saw some cheap versions for 140$

$140… yeah, let me save you $140…

these are software programs that use your sound card input to display the frequency. since frequency is a word for how often something happens… and your pulse is how often something happens…

google free o-scope to see what is available for your platform. (not everyone uses Linux)

that helps part of the equation…

I just bought 2 Uno R3’s.

Thanks for the heads up.

I dont use Linux, but I need to learn how. I have an older computer that will do what I need it to with the sound card and I can probably put Linux on it tomorrow.

Later in the project I am gonna post videos of the progress. I’ve seen people with questions and answers and once they get the answers they do not follow up on t he project. Want to help out whoever is interested.

Thanks Dave and Cad

free o-scope versions for windows, linux and mac. no need to load a platform you are not familiar with. using something other than your main box is a VERY good idea.

get some opto's 90% of what is available will work, you will have to look to find one too slow.

find a part, get the data sheet and check the propegation delay. needs to be faster than 100ns. determine resistor values needed and get some resistors. get some LED's as well. you should be able to put one opto to receive the signal, and another to output from the first one. and have the LED connected in between to blink at whatever rate the PWM is. series led for sizing the resistor

I am downloading Linux anyways because sometimes folks i know only need a basic computer and I've seen tutorials for setting the theme to look like windows 7 etc and this would be a great time to start learning it. I have done computer repair and rebuilds for 12 years, its about time I get my head back in the game. Thank you for the advice. I will probably try these programs on an old laptop and once i feel more comfortable I might put this linux program on a Pentium 4 that just doesnt seem to perform anymore. I am interested to see how it does with linux.

As far as the Optos, been looking at some on Amazon. I am gonna get them once I do a bit more research on how I am gonna set it all up.

Do you think this program will work? Also checking out this one - .

Thanks for the input. Going to continue to look more into this. Bought a dummies book for backup :blush:

Latest Update:

Bought the 2 Arduinos, they are still on the way due to the weather in Atlanta, whereabouts I live.

Have been watching videos and learning about the sound-card oscilloscope, and I think I get the jist of it. Bought some 3.5mm jacks today. I think by the end of this coming week I should be able to have learned enough to control the board.

Got the Boards today

Ran the Volt/Ohmeter on the pins and found that they are pushing 1 volt on all of the active pins.

  • That makes me think that its possible all of the signals might be pwm.

I bought the the 3.5 mm audio jacks, but none of them have come in. I want to find a way to connect a wire to the wire being used and run the signal in my stereo/audio. To do the oscilloscope trick. At 1Volt, what is the risk of frying my audio circuits? What I am hoping that I will find it the Square wave pattern going in speed but it also has 4 different speed labels on the boards. Does anyone have any ideas on what the extra ones could be or how to diagnose it?

  • SPD Up
  • SPD Down
  • SPD - ST-IN (Maybe Start Switch In)
  • SPD - SPD

Or any clue what the VR’s might go to?

I have contacted the company but they have yet to answer.

typically VR-1,2 and 3 would be your 5 or 10k speed pot

just wire in a 10k pot. most time VR-2 will be the wiper.

as a note, treadmill controllers typically require that the speed pot be turned off or to minimum speed when the power is applied. you cannot just start them as speed.

often there is a fixed ramp speed. so it will take x seconds to get to full speed.

looks like VR-1 is 5v and VR-3 is ground. that means the wiper of your pot would go to VR-2 to control the speed.

very interested to know how that works out.

bty, if you motor has blue wires they are most likely to a temperature sensor. they open the circuit when the motor gets too hot.

figure the board is running about 120 to 140 volts AC
and 90 volts DC.

so, if you are concerned about your audio jack, select a resistor to start testing with based on those values.

figure your audio jack could handle about 0.1ma for your calculations.

better to start out too safe.

maybe even use an LED instead while you are getting things set up.

I repair fitness equipment for a living, so please allow me pass on what I know. (which is not much). During POST of the display pcb it sends an enable to the motor controller to activate the motor run relay but does not send a motor pwm signal. The controller reports to the display pcb the motor current and if it see a large amount the controller goes into "fold-back current limit". Fold-back current limit is done by the motor controller, but some display can do it also. This is to keep a shorted mosfet from throwing the user into the wall. So I would guess that one pin must be the relay enable signal. Also I would guess that the controller "talks" to the display. I say this because some display pcb's allow me to view DC buss voltage, fold-back current status and RPM (better displays yield more info). I am sure that the RPM signal from the reed switch is passed through the motor controller and up to the display pcb. The lift motor is almost always controlled by a simple "up" "down" signal, but if the lift motor has a pot on it, that too will be passed up to the display. FYI, I work for both Spirit and Sole doing warranty repairs and they don't tell us anything either. PS: Don't take anything I said as fact, just opinion.

Thank you for the info Dave and Jgum.

I have not updated lately because I have been trying to learn C++ and C# programming for the software side.

I did try connecting a wire via exposing the speed wire and splicing it with resistance to the Audio in. There was a lot of noise/interference to say the least and I did not see any form of a square wave which leads me to think that the wire is the enable motor signal.

Today I was doing research on building my own board, but Jgum, when you mention the Mosfet protection... that can be very important as these failsafes protect the user. The last thing I want is a custom board breaking peoples backs, bones, and pride.

I still have not received my 3.5mm Jacks and I have avoided taking the jacks off of my beloved electronics, but I found an old CD Player that I might try to use. Is there any particular way to set this up? When I clip the wire using an alligator clip and run it to the 3.5 mm jack, is there anything that I need to do about the ground? Considering that I would only have the 1 wire?

Dave, I would not know where to begin to calculating the right resistor size. You are right, that it has about 120 Volts AC, but if i remember correctly, everything on the board becomes DC after the rectifier that we installed which is rated at 1000 Volts and 35amps. (We installed it after troubleshooting the ohms on the board and found that the rectifier went bad).

With Jgum's input would you still recommend installing a Potentiometer to try to control it? I have not purchased one yet. I was thinking about buying this ( and then using my second Arduino to control it.

All of this info is still overwhelming, but i am trying to hang on in hopes of learning this stuff hands on.