OpenAthlete
AGPLv3 endurance training platform: EU-oriented hosting, transparent CTL/ATL/TSB logic in code, self-hosting, and full export. Built in Grenoble.
翻譯準備中
尚未偵測到更新。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.