How it works
Scan, tap, logged. The rest derives itself.
Mostly Charged owns what a charger cannot see: which pack is which across the whole fleet, how each one is trending over months, and when a pack has earned retirement. Here is the whole flow, start to finish.
Set up your fleet
Add a pack in under 30 seconds. A nickname, cell count, and capacity are all that is required.
- Required: nickname, cell count (e.g. 6S), and mAh. Chemistry, brand, purchase date, and a per-pack retirement-cycle target are all optional.
- Buy in matched sets? Duplicate a pack 4x (or 6x) to create the whole set at once.
Print and stick a label
Every pack gets a permanent QR (or Code128) label that encodes a short local code — never a URL, never personal data.
- Print Avery-style sticker sheets on any home printer, or share a single label straight into your Brother or Niimbot app.
- The 6-character code prints as readable text too, so you can type it in as a fallback when a scuffed sticker will not scan.
- Durability tip the app surfaces: laminated tape or a strip of clear packing tape survives heat, sweat, and velcro friction.
Scan at the field
Point the camera at a sticker and the pack opens instantly. No typing, no scrolling a list.
- Scanning runs entirely on-device; camera frames are processed in memory and are never saved or sent anywhere.
- No camera access, or a damaged label? Type the short code instead — same result.
Log any event in two taps
Scan, tap the action, done. The tap commits immediately with a timestamp — details are always optional and never stand between you and flying.
- Five actions: Charged (full or storage), Flew, Crashed or Puffed, Capacity test, and Retire.
- Add details when you have them: mAh recharged, resting voltage, IR per cell, flight time and style, a crash photo. Fields pre-fill from last time, so even the detailed path is about one tap plus a number.
- The confirmation lingers about 10 seconds (any touch pauses it), and any event can be edited or deleted afterward.
Read the health it derives for you
Trends come from what you log — computed, never typed. The charger shows one pack today; the app shows every pack over months.
- IR sparkline — the internal-resistance creep that is the real "retire it" signal, and nobody else shows it well.
- True capacity — populated only by the occasional capacity test, the one honest capacity-fade reading.
- Depth-of-discharge history and cycle count against your retirement threshold.
- Status is derived — healthy, needs storage charge, retire soon, or retired — and always shown with a label, never color alone.
Guardrails that catch abuse as it happens
Two watchdogs do the nagging a charger cannot.
- Over-discharge guard: the moment you enter a landing voltage or recharge, it judges how deep that flight went — Good, Hard on it, or Over-discharged — and counts repeat offenders toward retirement.
- It prefers clean resting voltage and ignores mAh on storage charges, so it never cries wolf on a pre-flight top-up.
- Storage watchdog: any pack left at full charge past your threshold (about 3 days) is flagged before it puffs — and one batch action storage-charges the whole pile after a session.
Your data stays yours
Fully on-device. No account, no cloud, no ads, no analytics — the app does not even request network access.
- Back up the whole fleet — packs, events, crash photos, settings — to a single file you control, and restore it with an explicit Merge or Replace.
- CSV export for the spreadsheet crowd. A malformed import is rejected with a reason and zero writes.
- Delete the app and it is gone. We never had a copy to lose.
That is the whole app.
No flight logs to fill in, no account to make, no cloud to trust. Just the fast path between your charger and the sky.