Login required to started new threads

Login required to post replies

Treadmill iFit "hack" / tweak
Hey! Just thought I'd share the result of my latest home-gym improvement project :)

Background
As a canadian, passing most of my winter training in my 'home gym', I like things to be convenient and efficient. Like puttin my fans for the trainer on wireless operated switches so I can turn them on/off without lieaving the bike, etc.

I like my treadmill - a NordickTrack 1750 w iFIT - but there’s a few annoyances; One is the control buttons: they have ZERO tactile feedback and they register half the time if I am lucky. Quite annoying. Also not sensitive, need to push hard, wait a second between pushes so I can’t “rapid fire”. This is a design thing, my panel was replaced under warranty a while back for other issues, same behavior.

Couple of years ago, I initially thought “no problem, I am just going to rewire my own switches in parallel”. Turns out cables are printed ribbon cables, can’t splice them (best I know). And soldering right on the control board was a “no go either”; Chip is miniature, I don’t’ have this level of soldering skills;

Not to mention, the treadmill is still under warranty, so I want to keep everything stock.

Also, I never understood why all treadmills do not come with at least a few user-configurable presets (speed at least). I know some treadmills have that, but it seems very rare and not on my tready.

Few weeks ago, I ran into a link here on ST (yay for ST!) pointing to page/tool to connect to the IP of any iFIT enabled treadmill, and control it through simple commands.
Sure enough, trying this guy’s code I could send commands to my treadmill – this opened possibilities!

PART 1 – Treadmill Control App
-----------------------------------------------
Wife works in IT, I enlisted one of her master programmer colleagues to create a custom app to my specifications/needs. I was working on my own thing in parallel but his turned out a lot more elegant than mine – both in aspect and efficiency. This is in the form of a html web page that you load in your browser, simply type in the IP of your treadmill on your WIFI, and you get full control of speed/incline of the treadmill from the web page.

I have my bike trainer computer in the other corner of the room, so I just use that to connect.

I also had him create 6 user presets: with one button click you can go to specific speed and/or incline conditions.
This is very useful when doing intervals, alternating between 2 or 3 speeds repeatedly with a single click; I guess 3 of them would have been enough, but at that point programming 3, 4 , 5 or 6 is about the same effort so why not 6.


The presets can easily be pre-edited in a config file. Maybe in the future we make it editable in the page directly.

More-over, a LEARN function was created so any presets can be re-assigned while running to the current condition.
So we can change the presets “on the fly” by pressing "LEARN" then the preset button we want to re-assign.

Finally, a critical feature, the web script is “listening” to keyboard key strokes, linked to each function, for 'remote control' without a mouse.
After all, I am running on the treadmill when using it, so a mouse is 'no go'.

Here's how the interface looks like. While it uses iFIT related features, it does NOT require an active membership (way too expensive).


I guess this is the most interesting part of this post; I had a few friends with other NordicTrack models try the tool, and it worked for them. I assume it would work also with iFIT enabled ProForm machines.

This really opens up possibilities. Like pre-programmed workouts, maybe course simulation, etc without the need for the expensive iFIT membership.

Part 2 Control Panel

----------------------------------------

Initially, I used a cheap wireless numeric keypad ($18) to test everything and use the App while running. No point in spending more time/money if the thing is not working or not stable. It showed that the control app worked well! But hitting the small keys precisely while running was not the ideal situation.


Then I moved to create a better suited panel. First, I took apart the wireless numeric keypad, re-engineered the connection matrix, then optimized my future key-mapping to use the smallest number of pins possible from the chip. Turns out I could handle the 11 switches I was planning to use (22 contacts) with only 7 pins on the mini-board.



Above, the "business end" of the thing is quite small (the chip). I followed all the electrical lines to re-engineer the pin combination of each key (matrix config). Felt like doing one of those Ratchet and Clank game puzzles. Below, results of the connection re-engineering of the numkey pad.



A little optimization work: finding out which pins were used the most, so I can perform all my functions using a minimal number of connections (wires). Turns out I could handle the 11 buttons (22 contacts) using only 7 pins on the chip (it had 15 pins). So I came up with new key mapping accordingly



Soldering the connections I will actually need...



A little sawing action to keep only the "business end" of the wireless numeric keypad



For the switched, I decided to use “arcade push buttons” (Sanwa) for many reasons: big easy targets to hit while running, very responsive, and I liked the look and choice of colors.

Using my "skills" at MS Word, I made my design/concept of a new control panel using these arcade switches.



Then from a piece of sheet metal found in the trash bin at work, made a new panel.

Final panel after fabrication. Carbon Fiber look (film) applied for good measure :) Each button presses just emulate a key press on a numeric keypad.

Everything is now installed, and working flawlessly!



Here's the final result:








And a video showing the buttons in actions...
https://vimeo.com/314293061

Conclusions
----------------------------------------

This was a fun project, with a bit of everything: programming, re-engineering, electronic, fabrication, etc.
No modifications or hacks (physical or software) were actually done to the treadmill itself, which is the beauty of the thing.
So nothing to affect the warranty. Maybe I just turned off the “auto-update” feature of the iFIT system to make sure they don’t disable this connection type in a software update.

Commands are now hyper-responsive and user presets will be very useful to me.

In the end, this might sound a bit overkill, but I had fun working on this and it will allow me to better enjoy my home treadmill runs.

If there are interest with people that have iFIT-compatible treadmill and would like the ability to program and force pre-programmed workouts, maybe we can convince my friend programmer to work on it :) The interest might be limited though as one would need a compatible treadmill and most likely an android device (I don't think my friend does IOS apps). I can see how it would also be great to do course simulation without iFIT subscription.


---------------------------------
T. Guertin / Spocket
Last edited by: spocket: Jan 30, 19 10:00

Edit Log:

  • Post edited by spocket (Cloudburst Summit) on Jan 30, 19 9:58
  • Post edited by spocket (Cloudburst Summit) on Jan 30, 19 10:00