FROM INSTALLER TO FIRST RIDE
Wattsoever has no public release yet — these pages describe the app as it will ship. Sections marked PLANNED cover features that arrive after the first builds.
FOUR MINUTES TO YOUR FIRST RIDE.
PROFILE
Create a rider profile: name, weight, FTP (estimate if unsure — the guided ramp test can propose an update), optionally LTHR. No e-mail, no password. Multiple riders share one machine by just clicking their profile.
CONNECT
Wake the trainer (spin the pedals), open Devices and scan. After the first connection, the app attempts to reconnect trainer and HR sensor automatically. Passive green/grey indicators show connection status. Close other training apps before riding.
WORKOUT OR ROUTE
Search 28 built-in workouts or filter by TSS, intensity and duration. Open Workout Info, then Route Select to choose from visual route cards with a top-down route and elevation profile before Start. A new GPX import normally fetches Mapzen elevation data through OpenTopoData; the resulting profile is processed and stored locally.
RIDE
Press start. ERG holds the target watts and ignores gears; in SIM you shift like outside. Pause, bias and skip live in the cockpit. Every ride lands automatically in your history as a FIT file.
CHOOSE, ADAPT, THEN RIDE.
FIND A SESSION
The library contains 28 built-in workouts. Search by name or description, or filter by duration, TSS and intensity factor. Ramp tests have no fixed TSS or intensity prediction.
MAKE IT YOURS
Create a workout, or duplicate and edit one for your profile. Arrange steps and repeated intervals with power targets and optional target cadence. Timed coach notes appear during the ride.
PICK A ROUTE
Open Workout Info, choose Route Select, inspect route cards with elevation profiles and top-down route drawings, then Start. The route supplies the visual road and GPS track while the workout sets ERG targets.
Ride seated, stop when you cannot continue, then review the automatic FTP estimate and cooldown. The estimate depends on a valid effort and is not a guaranteed measurement.
DETAILS
Read the short instructions before starting. The warm-up can be skipped. The focused cockpit marks the start and end of the test without route views.
BUILT FOR BLE FTMS TRAINERS.
Wattsoever controls trainers via FTMS (Fitness Machine Service) over Bluetooth. Support depends on the trainer's actual FTMS behavior and firmware.
The connection and ride logic has been tested with simulated devices. A physical Wahoo KICKR has not yet been validated for this build.
Heart rate comes from any standard BLE strap (Polar, Garmin, Wahoo, …). Cadence is read from the trainer.
EVERY KNOB, EXPLAINED.
TRAINER DIFFICULTY
On route rides, 100 % makes a 10 % climb feel like 10 %. At 50 %, it feels like 5 %. Lower it if you want an easier gear on steep climbs. Your speed and distance still use the real slope and your power. This setting does not affect ERG workouts.
WORKOUT INTENSITY
Every workout target is stored as %FTP, so a new FTP rescales your whole library automatically. The intensity default in your profile sets the starting bias of every workout; during the ride the DIFF −5 % / +5 % buttons adjust it live — on a rough day, finishing at 95 % beats quitting at 100 %.
SPEED & RIDER PHYSICS
The speed a trainer reports depends on the gear you happen to be in — it means nothing, so it is never used. Wattsoever computes real-world speed from your power against gravity, rolling resistance and air drag, using your profile's weight, bike + kit weight, CdA and Crr. Downhill you coast and accelerate at 0 W just like outside — the trainer just can't push your legs (no motor), so descents feel light.
CUES & UNITS
Audio cues beep a 3-2-1 countdown before the next segment so you never miss an interval start. Units switch between metric and imperial. Both live in your profile — every rider on the machine keeps their own preferences, including trainer difficulty and intensity default.
OPEN FORMATS IN. OPEN FORMATS OUT.
WORKOUTS
Choose from 28 included workouts, create one or edit your own copy. Power targets use %FTP and adapt when your profile FTP changes. ZWO/MRC file import is not available in the current app.
ROUTES IN
From Komoot, Strava, RideWithGPS or any planner. Elevations come from a global terrain dataset (Mapzen, via opentopodata.org) and are smoothed before the ride.
RIDES OUT
Every ride is written second-by-second to a local database and a standard FIT file — importable everywhere, with NP, IF and TSS computed for you.
WHAT HAPPENS TO YOUR GPX
No black box — this is the exact import pipeline:
READ & DISCARD
Every track point is read; the elevations inside the GPX are discarded — planners mix elevation sources of wildly varying quality, so all routes are rebuilt from one consistent source.
RESAMPLE
The track is resampled to an even 5 m grid along the route — one consistent spacing for everything that follows.
FRESH ELEVATIONS
Fresh elevations come from the Mapzen terrain dataset (via opentopodata.org), sampled every 20 m — the data is ~30 m resolution — and interpolated back onto the 5 m grid.
SMOOTH
A Gaussian filter (σ 100 m) smooths the profile. Deliberate: raw terrain data is noisy — a mere ±2 m error over 30 m would swing the grade by ±7 %, resistance would jump every second and total climb would be massively overestimated. On a flat 82 km ride the raw data sums to 1,205 m of phantom climbing; smoothed, it is 256 m (the barometric recording: 246 m).
GRADES
Grades are derived per 5 m from the smoothed profile and clamped to ±25 % — this gradient coloring is what you see on the route profile.
STORE
Total climb and min/max elevation come from the smoothed profile; a rise counts once it exceeds 3 m, so leftover ripples add nothing. The same rule drives the climbed/remaining meters while you ride. The route and its profile are stored locally for riding without internet; map imagery is not bundled with the import.
Total climb is checked against published figures for classic climbs (Alpe d'Huez, Mont Ventoux, Tourmalet, Galibier, Stelvio) and the 227 km Ötztaler Radmarathon: all within ±3 %. Your planner's number can still differ a little, since every tool uses its own terrain data and filter. Routes imported with an older app version are recalculated automatically the next time the app starts online; the route itself stays the same. The trainer only ever receives the grade, scaled by your difficulty setting.
ONE DARK MAP. YOUR OWN SOURCES ON TOP.
The ride view draws a dark vector map made for the cockpit: OpenFreeMap tiles (© OpenMapTiles, data © OpenStreetMap contributors) with relief and contour lines from Mapzen terrain. The app loads only the map tiles it shows and keeps them on your computer; it never downloads map areas in advance. 3D buildings appear with FLAT ground and the BIRD camera, because on 3D terrain they would float above slopes.
CUSTOM MAP SOURCES
Want satellite imagery or another map style? Add a raster tile service under Settings → MAPS: a name, the https tile URL with {z}/{x}/{y} and your key, and the credit line the provider requires. The app loads these tiles directly from the provider and does not cache them. It is your account, so the provider's terms and limits apply. Use only sources whose terms allow this kind of use.
PROVIDERS WITH OWN-KEY ACCESS
- Esri ArcGIS Location Platform — World Imagery with your own key; the free tier pauses instead of billing.
- MapTiler Cloud — satellite and map styles, free plan for non-commercial use.
- Stadia Maps — map styles, free plan for non-commercial use.
- Thunderforest — cycling and outdoor map styles, free hobby plan.
Plans and terms change — check them yourself before adding a source. Wattsoever is not affiliated with these providers.
SAVE THE ROUTE. KEEP RIDING.
A successful GPX import saves the route and elevation profile locally, so a route ride or workout on that route can continue without internet. A new import normally needs an online elevation query and caches the terrain along the route. The map is available offline in 2D wherever you have viewed it before; the app never downloads map areas in advance. If the connection or required tiles are missing during a ride, the app switches to a tile-free 2D drawing of the route. Custom map sources always need internet.
YOUR ACCOUNTS. YOUR CONNECTION.
There is no Wattsoever server between you and these services — you sign in to the real strava.com and komoot.com in an assisted window inside the app; the session stays on your machine. Finished rides upload to Strava as FIT, Komoot routes export as GPX and land straight in your library. Both integrations are optional — without them everything simply stays local.
HOW IT WILL WORK
- Strava: sign in once in the assisted window; after a ride, the FIT is handed to the upload page. Subscribers can optionally use their own API app for auto-upload and route import.
- Komoot: sign in once; pick a tour, the official GPX export is intercepted and imported directly.
EVERY BROWSER ON YOUR WI-FI IS A COCKPIT.
Phone and tablet displays over your Wi-Fi are planned. For now, use the app window or a browser on the same computer. A future local-network mode would show the same live cockpit on other devices without sending ride data to a Wattsoever server.
WHEN SOMETHING DOESN'T CONNECT.
Trainer doesn't show up in the scan
Spin the pedals to wake it. Close Zwift, the Wahoo app and other training apps. Remove the trainer from your OS Bluetooth settings if you ever paired it there. On Ubuntu, check the bluetooth group (see the Linux notes).
Connection drops mid-ride
Wattsoever reconnects automatically and re-sends the target. Frequent dropouts usually mean a weak Bluetooth adapter or a phone still holding a connection — move the computer closer, close other apps.
Resistance doesn't change
Another app grabbed control — the last writer wins. Close it, then reconnect in Wattsoever. In ERG mode gradient is ignored by design; switch to SIM for route resistance.
macOS: scan finds nothing at all
The Bluetooth permission was declined. System Settings → Privacy & Security → Bluetooth → allow Wattsoever, then restart the app.
Elevation looks wrong on a route
GPX elevation from planners is often noisy — Wattsoever replaces it with terrain-model data and smooths it. Bridges and tunnels can still confuse any terrain model; total ascent may differ slightly from your planner.