Skip to content

Documentation

Rides, maps and sharing

What gets recorded, what the charts show, and how to get the data back out.

While the wheel is connected and you are moving, the app writes the ride into your phone's storage. None of it leaves the device.

Ride history#

There are two ways in: from the wheel scanner — before you connect — and from the menu on the dashboard, under "Ride history". The second one is the one that matters: you spend the whole ride on the dashboard, and that is where comparing it with the last one comes up.

Every ride is a card with a thumbnail of its route: you recognise the shape of a track faster than you read a date. The card's headline is the distance; next to it sits a coloured dot if an alert threshold was crossed during the ride. The dot carries the same severity band as the dashboard instruments.

At the top, a summary for the month: kilometres, time moving, ride count and top speed. Rides are grouped by day, each day with its own total. Records shorter than three hundred metres — a connection in the car park, moving the wheel around — are folded into a single line and stay out of the way; tap it to unfold them. Diagnostic sessions show their StR field and sample counts rather than zeroes for speed.

Search at the top matches the wheel name and the date. Several rides can be selected with a long press, then deleted at once or merged into one.

Merging rides#

One ride often lands in the history as several pieces: the wheel ran out and you swapped the battery, the phone lost the connection at a traffic light, you stopped at a shop and the app was closed. Select those pieces in selection mode and choose Merge.

Telemetry and track move into the earliest of the selected rides, the rest disappear from the list. The distance adds up even if the wheel's trip counter reset between the pieces; battery used is measured from the start of the first piece to the end of the last. The gap between the pieces is not marked anywhere — from then on it is an ordinary ride, with its map, its share card and its exports.

Only rides recorded on the same wheel can be merged, only consecutive ones, and only finished ones: the ride being recorded right now is left alone. If an unselected ride sits between the selected ones, the app refuses — it would otherwise end up inside the merged ride, leaving two overlapping stretches in the history. Delete the ride in between and the merge becomes possible. Merging cannot be undone.

A single ride#

The track coloured by speed, six totals — top and average speed, peak PWM, battery used, consumption per kilometre and the odometer after the ride — the profile of the chosen readings, and a list of readings with their "minimum · average · maximum". Tapping a summary row opens the full chart of that reading; tapping the track opens the map.

The slider under the charts sets the viewing window: a five-hour ride in full is one solid block, while inside a window every acceleration is visible. The window is shared between the ride screen and the charts screen: go into the charts and come back, and it is still where you left it.

The "Metrics" button opens the full list of readings recorded during the ride, with sparklines — the shape of the curve is visible before you open anything. The chart icon on a row adds the reading to the charts screen and takes it off again. The charts are not limited to speed and PWM: any recorded reading can go onto a track.

Charts#

By default the readings are stacked as separate tracks, each with its own scale and its own labels. Overlaying them on one axis stays as the second mode: it is the right one for readings of the same nature. The cursor runs through every track at once, and each track's header shows its value at that point. Alert thresholds are drawn in the same strokes as on the dashboard.

  • Pinch to zoom, centred where your fingers are.
  • Drag with two fingers to pan the zoomed window.
  • Where the recording stopped — a lost connection, the pause between the pieces of a merged ride — the line breaks rather than running straight across the emptiness. The map track and the elevation profile do the same: the straight line between pieces counts as neither distance ridden nor height climbed.
Ride history on Android: search, the totals for the period, rides by day with a route outline
Android. Rides are grouped by day, each with its route outline and a severity dot.
Ride history on iPhone: the monthly total, rides by day, a route outline and a severity dot
iPhone. The same list: a monthly total, days, and outlines.
Ride charts on Android: speed, PWM and voltage as tracks sharing one cursor
Android. Tracks with their own scales, one shared cursor, and the viewport below.
A single ride on iPhone: the track coloured by speed and six totals
iPhone. A single ride: the track coloured by speed, and the totals.
Ride charts on iPhone: speed, PWM and voltage as tracks with their own scales
iPhone. Tracks with their own scales and one shared time axis.

Route recording and the map#

Turn on route recording and the app logs your position while a ride is active. Afterwards the route can be viewed on the map. The app also builds an elevation profile from the track.

Route recording needs permission for precise location. Without it everything else works as usual, there is simply no track.

The map answers "where was it hot", not "where did I go". The base map is deliberately dimmed: on a screen for going through a ride, the track is the only bright thing on it.

Where the base map comes from#

The tiles come from CARTO, and since 2026 they are served against a key: without one the server returns the same picture with "API KEY REQUIRED" written across every square. It answers as if nothing were wrong, so the app checks the base map itself — once an hour it downloads one deliberately empty square and weighs it. A marked one is almost twenty times heavier than a clean one.

If the probe finds the notice, the map moves to its fallback — Esri Gray Canvas, just as dimmed and also free. It has its own zoom ceiling of z16: it is not detailed any closer, and the map stops honestly at that limit rather than showing you nothing.

Settings, Map & GPS lets you pick the base map by hand: Auto, CARTO or Esri. "Auto" is the probe described above; the other two overrule it.

Who moves the map#

Zoom with a pinch, or with the "+" and "−" buttons in the corner of the map. Below them sits "fit track", which brings the camera back so the whole route fits on the screen.

On its own the map frames the track exactly once — when the track first appears. After that it is yours: the route keeps growing during a ride, but the camera stays where your hand left it and never jumps back. That button brings it back to the track.

The track is coloured by a reading#

The track carries a reading by colour, and that colour reads exactly the way the dashboard reads: the hue tells you which reading it is, and the saturation tells you how loaded the stretch was. Quiet stretches sink into the ground, loaded ones lift off it.

The colour scale is stretched over the ride itself. The reason is plain: the limit is your threshold — say 62 km/h — while a town ride runs at 20–44, that is, in the middle third of the scale. Stretched over the ride, it shows the difference between "ambling" and "pressing on" where you actually rode. One consequence is worth knowing: colours are comparable within a ride, but not between rides. "It was hotter here than there" — yes; "this ride was hotter than the last one" — that is what the history and the charts are for.

A perfectly flat recording — standing in traffic — is not stretched: it has no shape, and blowing noise up to the full scale would be drawing the weather instead of the riding.

The threshold itself stays put. Where the reading went past it, the track switches to the colour of the severity — the same one a tile's border uses on the dashboard to report a breach. Red on the track means exactly one thing: your threshold fired. It never means "fast": with no speed alert set, the quickest stretch of the ride comes out bright, not red.

Breaks in the recording break the track rather than running a straight line across the emptiness: between the pieces of a merged ride the wheel was somewhere unknown. And where the position was logged but no telemetry arrived at that moment, the route stays visible as a dark thread — without colour, but without a hole either.

What one point of the track stands for#

The track is laid out by the seconds of the ride, not by satellite fixes. The difference shows most where the sky is poor: fixes arrive every couple of seconds, and under bridges or between buildings once every hundred metres — a stretch like that used to be a single colour all the way through, because the instrument had no point inside it at all. Now it has as many as the seconds you spent riding it.

They are placed by the wheel's odometer rather than spread evenly over time. The odometer does not depend on the sky and knows how far you had gone by each second, so where you braked the points sit closer together. A place on the map and a moment in the recording finally mean the same thing: what you tapped is what you are shown. Wheels that do not report distance behave exactly as before — laid out by time.

The colour of each point is the worst of its second, not the value at its exact mark. Telemetry is written many times a second, and a PWM dip lasting a third of one used to fall between points and colour nothing. That is why the readout line says "in that second": what stands under it is that second's peak — the very one the stretch is coloured with.

The second reading — by thickness#

One line cannot carry two hues: the hue is the name of the reading. So the track carries a second reading by thickness instead: a quiet stretch is a thin strand, a loaded one is a line at full width. Speed by colour and PWM by thickness answer two questions at once without painting the route twice.

Thickness takes its load from its own scale, stretched over the same ride — and at the limit the core covers the casing completely.

Marks#

  • Start is a ring, finish is a filled dot. Both are always there, and between them you can see which way the ride ran.
  • The peak of every chosen reading gets a mark of its own, with the value next to it: the peak for everything that grows towards danger, the minimum for charge and voltages. The reading that colours the track is labelled with the word "Peak" and a large number; the others get a number with its unit in their own hue. The labels carry no plates, so they do not cover the thing you opened the map for, and they spread out so as not to sit on top of each other. Where a label finds no room, the ring stays — the number is in the lane under the map anyway.

The lanes under the map#

Under the map sits the same track, straightened out along the distance ridden: one lane per chosen reading, all on one axis and under one cursor. That shows what a folded route cannot: where PWM jumped while the speed stayed calm, where the motor kept heating longer than the climb lasted.

What a reading does is visible from how its lane is drawn: a colour fill means it colours the track, height bars mean it thickens the track, a thin fill means it is not drawn on the map at all — but its peak is marked and its shape is here. The name is on the left, the value on the right: at the cursor when you have one, the extreme for the ride when you do not.

The lanes do three jobs the map cannot.

  • It is the legend. A coloured squiggle on a map cannot have one. Straightened out, it reads at a glance: which colour is calm, which is dense, and in what order they came during the ride.
  • It is what you drag. Hitting a folded track with a finger is painful; running along the ribbon is not. The cursor on the ribbon and the point on the map are the same place, and either one can lead. Both pick the spot under your finger rather than the nearest satellite fix: fixes land every couple of seconds, some twenty metres apart, and the readings come from the ride recording — which runs independently of the sky and is there even where no fix is. A tap that misses the track clears the selection.
  • It shows every breach at once. On the map they hide behind the folds of the route; on the lane they stand in a row as notches along the top edge. How many times a threshold fired during the ride, and where, takes one look.

Below the lanes runs the distance axis: zero, halfway, total kilometres. The line above them holds the two leading readings — the one colouring the track and the one thickening it — plus the time and the distance ridden at the chosen point.

Choosing the readings#

A row of chips at the bottom of the screen lists the readings recorded during this ride. A chip has four states, and a tap walks the reading around the circle:

  1. off — tap, and it appears as a lane under the map;
  2. lane — tap again, and it colours the track;
  3. colour — tap again, and it moves to thickness while the previous one takes the colour;
  4. thickness — tap again, and it switches off.

No more than four readings at a time: a fifth lane takes height away from the map, and the eye compares four curves anyway, not six. At the ceiling the free chips dim — tapping a dimmed one puts it in place of the last lane.

Speed by colour and PWM by thickness are the defaults. The choice is remembered between visits to the screen, but it does not carry from one ride to the next: it belongs to whatever you are looking into right now.

Ride card#

Any ride can be turned into an image to send to friends. The card carries the route, the date, distance, ride time, top and average speed, peak PWM and battery used.

Most of it is adjustable: theme, accent colour, colouring the track by a reading of your choice, and which tiles appear. Tapping a tile swaps it for another reading from the same ride.

A ride card on the dark theme: the route on a map, distance, top and average speed, peak PWM, battery used and an elevation profile
Dark theme.
The same card on the light theme, with the track coloured by PWM and a scale
Light theme, track coloured by PWM. The card follows the language of the app.

How much space it takes#

You decide how detailed the recording is.

  • Recording rate: every frame, or every second, third and so on. The app shows how many snapshots and roughly how many megabytes that works out to per hour of riding.
  • Retention: starting a new ride evicts rides older than the period you choose. While there are no new rides, nothing is touched.

Frames that set a new record for the ride in speed, PWM or current are always written, whatever rate you picked. Otherwise a sparse recording would drop exactly the moments people open the charts for.

Export and import#

  • Every ride, telemetry sample and route point exports to a single spreadsheet file and imports back. This is how you move history to a new phone, or between Android and iPhone.
  • Importing does not create duplicates: rides and samples are matched on stable keys.
  • A single ride's track exports as GPX, which third-party maps and sports apps understand.
  • A single ride also exports in WheelLog's format — "Export Wheellog". That is the spreadsheet file euc.world imports and the ride analyses riders pass around expect, carrying both the telemetry and the route. A ride recorded without location access exports too; its coordinate columns simply come out empty.
  • A single ride also exports in the app's own format — "LoEUC archive". GPX drops the telemetry, WheelLog drops everything its columns have no room for; this archive is what our own import reads, so the ride moves to another phone whole, along with the summary the charge forecast is built from. On Android the same archive exports the rides you have ticked — "Export selected" in selection mode.
  • Export and import show a progress window: how many rides of how many have moved. It can be cancelled. Cancelling stops at a ride boundary, so the history only ever holds whole rides — never a half of one. Importing the same file again brings the rest across; it creates no duplicates.

Dump player#

The app can record the raw conversation with the wheel and then replay it as a live ride, with seeking and fast-forward. The dashboard, the charts and the alerts behave exactly as they would with a real wheel, and nothing is written to the ride database.

This is the main tool when something about a wheel needs explaining or a new model needs support: send me the recording and I see exactly what your app saw.