Documentation
Alerts
Your conditions, your logic and your sound. The largest part of the app.
Most wheel apps give you one checkbox: beep when PWM goes above this number. Here that checkbox is replaced by a section where you build the warning yourself.
It has three parts: the alerts, the condition templates and the sound patterns.
Conditions#
A condition is a reading, a comparison and a threshold. The readings available are speed, PWM, battery voltage, average cell voltage, cell spread, battery current, phase current, power, charge level, controller temperature, MOSFET temperature, motor temperature, battery temperature, pitch and roll angles, trip distance and total distance.
The list shows what your wheel can actually measure, not everything at once. No Begode carries a probe inside the pack, for instance, so battery temperature will not be on its list. A metric the wheel does not report is marked as such in the editor, and a condition on it never fires: a missing reading is not zero degrees.
Battery temperature means the hottest battery reading the wheel reports. On a wheel with several packs that is the highest of them; on a wheel with a single probe it is that probe. This is deliberate: a battery alert is an overheat warning, and the coldest pack cannot raise one.
Two more fields are the point of the whole thing:
- Reset value. The alert stops at a value below the one that set it off, not at the same one. Without that, a warning chatters while the reading hovers on the threshold.
- Minimum duration. The condition has to hold for a set time before the alert fires. A brief spike over a bump does not raise an alarm.
The threshold and both of those fields are adjusted with minus and plus, and the value itself can be tapped and typed — a stepper on a step of 5 will never land on 87. A comma is accepted the same as a dot, and the hold is typed in seconds. A value outside sensible limits is refused and reverts to the previous one.
"GPS speed" is available like any other reading, so an alert on the gap between it and the wheel's own speed is built the same way as any other. Remember that it stops firing when the signal is lost — that is not a fault but a refusal to judge on data that is not there.
- Repeat every N. The condition rearms every so many units of the reading, without waiting for it to fall back past the reset value. Without it, "trip over one kilometre" fires once per ride: distance never falls, so the condition stays met to the end. With a step of one kilometre you hear the first, the second, the third. The step counts in the direction of the comparison, so "battery below fifty, every ten" walks down: 50, 40, 30. The editor shows the marks the rule will fire at right under the number.
One alert can hold several conditions, combined as "all of them" or "any of them". For example: speed above forty and PWM above eighty.
A condition can be saved as a template and reused in other alerts.
How an alert fires#
Three kinds:
- One shot. Once, when the conditions are met. It rearms when the reading has gone past the reset value, or after a timeout.
- Repeating. Repeats on a set interval while the conditions hold.
- Accelerating. The beep speeds up as the reading approaches the dangerous end: from occasional beeps at the lower threshold to merging into one continuous tone at the upper one — both the merge point and the curve shape are yours to pick. Pitch climbs along with the rate: the editor sets a multiplier for how far the pattern's frequency rises by the upper end. Ease off and the beep slows back down and drops in pitch again.
The accelerating kind exists for PWM. You do not hear "exceeded", you hear how close the edge is. The preview button in the editor plays the whole curve for this kind, from the threshold to the merged tone, rather than one pass of the pattern.
Voice#
An alert can speak instead of beeping. The editor has a "How it signals" switch: sound or voice. Pick voice and the app says the reading and its value through the system speech engine: "Speed 60", "Battery 10", "Trip 5".
A spoken alert always fires once. There is no repeating or accelerating voice: a phrase that repeats stops being a message, and a phrase has nothing to speed up. To hear a reading more than once per ride, give its condition a "repeat every N" step.
The phrase can be rewritten. It starts filled in from the reading, and the unit is not
spoken: you wrote the rule and know what your speed is measured in, while "sixty kilometres
per hour" takes twice as long to say as "sixty" — at 60 km/h that is fifteen extra metres of
road. If you do want the unit, insert {unit}: the word agrees with the number on its own, so
you get "1 kilometer" rather than "1 kilometers".
Under the phrase field there is a "how it will sound" line — the whole sentence with its number filled in, and an estimate of how long it takes to say. It is there so you can compare variants: a long phrase finishes speaking after the situation has already changed.
Voice needs the rule to have one top-level condition. With two branches joined by "any of them" there is no telling which one fired, and the phrase would name the wrong thing — the voice switch is unavailable there, and the editor says why. "All of them" is no obstacle: when the group holds, all of its conditions are true at once.
Speech never overlaps a beep. If an alarm is sounding when the rule fires, the phrase waits for it to stop; if an alarm starts mid-phrase, the phrase is cut. A waiting phrase is re-checked and rebuilt from fresh data before it speaks: "Speed 80" does not survive you braking to forty and is never said at all, while "Battery 10" that waited out a long alarm comes out as "Battery 8".
Voice announcements are switched off entirely by one toggle in the alerts manager; beeps stay. The voice is the system's own: if the phone has no voice for your language, the editor says so and offers to open the speech settings. Spoken rules are not sent to the watch — a buzz means "something is wrong", and "Trip 5" is not "wrong".
Priority#
Every alert has a priority: critical, high, medium or background. When several fire at once you hear the one that matters, not all of them at the same time. On Android that is literal: one voice at a time. While the highest-priority alert is sounding, the rest stay fully silent — no taking turns, no beeps stacking on top of each other — and show only on screen.
Scope#
An alert is either global or bound to one specific wheel. The second is what you want when you own several wheels with different safe limits.
Sound#
The sound is built step by step in an editor of its own. Each step has a frequency, a duration, a pause after it, a volume and a waveform:
- sine, a soft beep;
- square, a hard alarm;
- sawtooth, the most aggressive;
- triangle, neutral.
The finished pattern can be previewed right in the editor and saved to a library for reuse in other alerts.
The familiar PWM alarm is built from this same editor — it is just an alert with the highest priority of all. It ships enabled in the default set and is edited in the manager along with every other one: its threshold lives there, and so do its conditions, priority and beep pattern. The separate settings card with a slider is gone — it edited exactly this alert, and one threshold configured in two places told two different stories about itself. There is no separate sound path for PWM either: "only the one that matters sounds" applies to it exactly like to your own alerts. Updating from an older version carries its threshold, frequency range and merge-into-tone point over automatically, nothing to reconfigure.
Alarm sounds mix over music without changing its volume by default. The "Duck music during alarms" switch — shared by every alert — stays on the first settings screen next to the way into the manager, off by default. When enabled, music ducks once for the whole alarm and returns afterwards instead of pumping between adjacent beeps.
Commands to the wheel#
An alert can do more than beep: it can send a command to the wheel. Lower a limit, turn on the light.
This does not work everywhere, and it is deliberately fenced in:
- only on wheels that accept settings at all;
- only when the alert is bound to a specific wheel rather than global;
- only after you confirm a warning that changing settings while riding is dangerous.
Treat it as a sharp tool.