Menticol
Active Member
Hello everyone!
Before starting please excuse this terribly long post. The objective of my project is to control the speed and inclination of a treadmill using an external microcontroller, getting rid of the original control panel.
The OEM user control panel features a large LCD display, multiple buttons for speed and inclination, an audio amplifier, and a microcontroller that interprets the push button commands and connects the treadmill to a subscription service (yuuck!).
Under the hood, the treadmill includes a DC motor for the running belt, an AC motor for the inclination (connected to a three-wire sensor, which I believe is some type of potentiometer?), and the OEM motor control board. I plan to retain the OEM motor control board because it provides useful features like soft start, overcurrent protection, and other safeguards.
Initially, controlling the speed didn’t seem very complicated. Since the treadmill is on working condition, I thought a "man-in-the-middle"attack approach could give me a hint on how to control the board.
After watching a YouTube video where someone injected PWM signals directly into the board (of a similar make and model), I assumed that my OEM user panel worked similarly. My hypothesis also said that to increase or decrease the inclination, maybe more pulses were sent via the remaining cables to request a change in the inclination, and the motor control board would decide if the inclination change is possible or not (according to the relative position of the screw).
I also found the same PWM generator on Amazon. I don’t intend to use it in my project, but knowing its specifications could provide a good starting point.
The video wasn’t very clear about the exact pins that were used. To investigate further, I created a small breakout board and started probing the connections with an oscilloscope. It was only a matter of imitating the pulses sent by the OEM panel, right?
Weeeeeell.. No. To my dismay, what I observed on the oscilloscope made no sense. I identified two ground connections (G), a +3V line (S), and an +8V line (V). On the connection labeled P, where I expected to see the PWM signal, there was indeed a signal with a frequency between 16 kHz and 20 kHz. However, varying the treadmill speed had no effect on the frequency or duty cycle of this signal.
The other cables also transmitted a high frerquency signal that showed no change when I fiddled with the speed or inclination.
I thought the problem was noise, but the connections seems solid.
According to your experience, what is my mistake? Would you approach this project on a different way? I would really like to keep the original control board, due cost and safety reasons. I will really appreciate your opinion.
Before starting please excuse this terribly long post. The objective of my project is to control the speed and inclination of a treadmill using an external microcontroller, getting rid of the original control panel.
The OEM user control panel features a large LCD display, multiple buttons for speed and inclination, an audio amplifier, and a microcontroller that interprets the push button commands and connects the treadmill to a subscription service (yuuck!).
Under the hood, the treadmill includes a DC motor for the running belt, an AC motor for the inclination (connected to a three-wire sensor, which I believe is some type of potentiometer?), and the OEM motor control board. I plan to retain the OEM motor control board because it provides useful features like soft start, overcurrent protection, and other safeguards.
Initially, controlling the speed didn’t seem very complicated. Since the treadmill is on working condition, I thought a "man-in-the-middle"
After watching a YouTube video where someone injected PWM signals directly into the board (of a similar make and model), I assumed that my OEM user panel worked similarly. My hypothesis also said that to increase or decrease the inclination, maybe more pulses were sent via the remaining cables to request a change in the inclination, and the motor control board would decide if the inclination change is possible or not (according to the relative position of the screw).
I also found the same PWM generator on Amazon. I don’t intend to use it in my project, but knowing its specifications could provide a good starting point.
The video wasn’t very clear about the exact pins that were used. To investigate further, I created a small breakout board and started probing the connections with an oscilloscope. It was only a matter of imitating the pulses sent by the OEM panel, right?
Weeeeeell.. No. To my dismay, what I observed on the oscilloscope made no sense. I identified two ground connections (G), a +3V line (S), and an +8V line (V). On the connection labeled P, where I expected to see the PWM signal, there was indeed a signal with a frequency between 16 kHz and 20 kHz. However, varying the treadmill speed had no effect on the frequency or duty cycle of this signal.
The other cables also transmitted a high frerquency signal that showed no change when I fiddled with the speed or inclination.
I thought the problem was noise, but the connections seems solid.
According to your experience, what is my mistake? Would you approach this project on a different way? I would really like to keep the original control board, due cost and safety reasons. I will really appreciate your opinion.
Last edited: