BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2 或任何藍牙控制器,搭配 MyWhoosh、Rouvy、Zwift 等。iOS、Android、Windows、macOS 均可免費試用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证A console for the NordicTrack Commercial 1250 that replaces iFit and drives the motor directly.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A replacement console for the NordicTrack Commercial 1250 treadmill. It runs on the treadmill's own screen instead of iFit and drives the motor directly: speed, incline, start, pause and stop, with no subscription and no account.
treadmill-deck.tommymassaro.com is the project page, and /console runs the interface in a browser in demo mode.
It's a personal project, built for one treadmill. It may work on other iFit consoles of the same generation, but it hasn't been tried on any.
c1250-deck.html is the whole UI, in a full-screen WebView on the console. It uses
the Cabin design system's Lit finish (inlined), and also runs as a
plain web page (/console/, demo mode, or Bluetooth FTMS through QZ in Chrome).FitPro.java
speaks it, as worked out from the iFit app: the startup sequence, the security handshake, and the
read/write of speed, incline and workout mode. Belt.java runs it four times a second. USB permission
comes from iFit's own updater, which grants the board to any app that asks; iFit has to be stopped
first, since only one app can hold the board. Older consoles with iFit's separate GlassOS service are
driven over its local gRPC API instead (GlassOS.java).worker/index.js on Cloudflare Workers, data in KV): the project page, the web
console, and three parts behind a private key: the app's update channel, the Diagnostics report box,
and the run store that feeds Apple Fitness.| Path | What |
|---|---|
c1250-deck.html | The console UI (one file) |
android/ | The app: Java source, build and release scripts |
installer/ | Putting the app on a treadmill |
site/, tools/ | The project page; tools/make-site.mjs builds the web console into site/console/ |
worker/, wrangler.jsonc | The Cloudflare Worker |
bg/ | Home screen photos (Unsplash; credits in bg/CREDITS.md) |
Needs JDK 11+ and the Android SDK command-line tools with platform 33 and build-tools 35.0.0:
sdkmanager "platforms;android-33" "build-tools;35.0.0"
ANDROID_HOME=~/Library/Android/sdk bash android/build.sh
That gives android/c1250-deck.apk. Private settings come from a folder next to this repo,
../treadmill-deck-private (or DECK_PRIVATE=…):
secrets.env with DECK_KEY (the site key), DECK_SITE (your site), KS_PASS and
CLOUDFLARE_ACCOUNT_IDkeystore/c1250deck.jks, the signing keyWithout it, the build makes a throwaway signing key and leaves uploads and updates off. Keep your signing key safe: a console only takes updates signed with the key it was installed with.
See installer/README.txt. In short: unlock the console's Android settings (privileged mode), then
install the APK, either with installer/install.sh over ADB or by opening it in the console's browser.
In the app, Settings → Start on power-up makes it the treadmill's home screen.
bash android/release.sh 1.9.3 "What's new"
It bumps the version, builds, writes the APK and manifest to the private folder's releases/, and
publishes both to the update channel (Cloudflare KV; needs CLOUDFLARE_API_TOKEN). Consoles offer the
update within 6 hours, or straight away from Settings → Check for updates. Site changes deploy with
npx wrangler@4 deploy.
Each finished run goes to <site>/runs. An iPhone Shortcut picks up new ones and logs them:
<site>/runs/pending?k=<DECK_KEY>start, minutes, miles
and kcal; Log Workout (Running) with those as date, duration (min), calories (kcal) and
distance (mi); then Get Dictionary Value id and Get Contents of URL
<site>/runs/<id>/logged?k=<DECK_KEY>.If you also wear an Apple Watch, broadcast heart rate with an app like BlueHeart or HeartCast and turn off that app's own workout saving, or each run counts twice.
MIT (see LICENSE). The Home photos keep the Unsplash License, and the libraries their own.
The first motor client was adapted from
nordictrack-ifit-bypass by Matt Wissler
(MIT). OkHttp and Okio are Apache 2.0. Home photos from Unsplash (see bg/CREDITS.md).
C1250 Deck isn't affiliated with NordicTrack, iFit or ICON. Use it at your own risk: the console's STOP key and safety key always override the app, and should be within reach whenever the belt moves.