Mobile application / Battery companion app

iOS and Android companion app for LiFePO4 RV batteries with a Bluetooth BMSCode review, UX refinement, native app rebuild and ongoing maintenance (from 2024)

Rebuilding a Bluetooth companion app for RV lithium batteries

SuperVolt supplies LiFePO4 batteries for motorhomes and other RV systems. Its battery packs include a Bluetooth-enabled battery management system (BMS), and the product line was evolving with new hardware interfaces planned. The companion app is part of what owners get with the battery.

The existing app read state of charge, voltage and temperature from the BMS over Bluetooth LE, but it ran on a legacy, tightly coupled code base and its interface did not match how RV owners use it. SuperVolt needed a refreshed UI, new features such as a firmware-update flow, and an app foundation that could keep pace with new battery capabilities.

Two phones running the SuperVolt app, one with voltage, current, temperature, capacity and an 80% charge gauge, the other with battery details and cell voltages, in front of a translucent battery illustration.
SuperVolt app screens showing overall charge, battery details and per-cell voltages, shown beside an illustrated battery.
Product
iOS and Android companion app for LiFePO4 RV batteries with a Bluetooth BMS
Buyer
Device makers whose product ships with a Bluetooth companion app that has outgrown its original code base
Engagement
Code review, UX refinement, native app rebuild and ongoing maintenance (from 2024)
Indeema scope
Code review and estimate, R&D and user flows, UX/UI refinement, Native iOS and Android app, QA and maintenance

The product need

What had to become possible

The existing app read state of charge, voltage and temperature from the BMS over Bluetooth LE, but it ran on a legacy, tightly coupled code base and its interface did not match how RV owners use it. SuperVolt needed a refreshed UI, new features such as a firmware-update flow, and an app foundation that could keep pace with new battery capabilities.

Ownership, made clear

Where the work started and what Indeema owned

Starting system

Battery and BMS

LiFePO4 battery packs with a third-party BMS and connectivity module, sourced from an OEM. The battery, BMS and its firmware are not Indeema's work.

Legacy companion app

A mobile app that connected to the BMS over Bluetooth and showed core status, built on a tightly coupled code base.

Initial redesign

SuperVolt provided an initial app design that still needed UX refinement.

Indeema owned

Code review and estimate

Review the existing app to check whether new features could be built on its architecture, estimate effort and recommend an approach.

R&D and user flows

Turn the feature and UI scope into concrete user flows, including firmware update, based on target users and usage contexts.

UX/UI refinement

Refine the client's initial design around the primary user groups and where and how they use the app.

Native iOS and Android app

Implement a new app from scratch in Swift and Kotlin, with BLE communication to the battery's BMS.

QA and maintenance

Test the app and keep adding support for new battery capabilities as the third-party BMS firmware evolves.

Worked with

Bluetooth LE to the BMS

The app acts as BLE central and GATT client and exchanges data with the GATT server exposed by the battery's connectivity module.

OEM BMS firmware

The app depends on the behavior of third-party BMS firmware, which changes over time and is only partly documented.

Product constraints

What made the engineering difficult

  1. 01

    Incomplete OEM documentation

    Vendor documentation for the BMS firmware and hardware was incomplete, which left expected device behavior and interfaces uncertain. Indeema reverse-engineered the behavior, arranged calls with the OEM, validated the firmware in practice and reported discrepancies so the documentation matched real behavior.

  2. 02

    New iOS versions, older batteries

    The app had to support current iOS versions while continuing to work with batteries already in the field.

  3. 03

    A code base that resisted change

    The legacy app's tightly coupled structure made it hard to add the requested features safely.

Engineering judgement

Decisions that shaped the product

Rebuild rather than extend

After a focused code review, Indeema concluded that extending the legacy architecture would be impractical and more expensive than rebuilding, and implemented the app from scratch.

Isolate legacy battery logic

Logic for older batteries was encapsulated in isolated modules so it could be updated in a targeted way without reworking the rest of the app.

Separate UI, network and BLE layers

The app is structured into UI, network and BLE view-model layers, keeping Bluetooth communication separate from presentation.

Design from usage context

UI changes were driven by who uses the app and where, rather than by the original screen layout.

Delivered product capability

What the product can do

  1. 01

    Battery status over Bluetooth

    View voltage, current, temperature, total and remaining capacity, charge level and per-cell voltages.

  2. 02

    Multiple batteries

    Review details for more than one connected battery in a setup.

  3. 03

    Rebuilt iOS and Android apps

    New native apps in Swift and Kotlin with a refined, user-friendly interface.

  4. 04

    Foundation for new device features

    A structure that accepts new battery capabilities as the BMS firmware evolves, supported through ongoing feature updates.

Product change

What changed for the product team

SuperVolt's battery line gained a rebuilt companion app with a clearer interface and a code base that can take new features. Support for new BMS firmware capabilities continues to be added in later releases.

For a hardware company whose companion app depends on third-party firmware, the case shows how to decide between extending and rebuilding, how to work around incomplete OEM documentation, and how to keep older devices supported while the app moves forward.

  • Delivered new iOS and Android companion apps built from scratch with a refined UI.
  • Established an app structure that receives continuing feature updates as the battery firmware evolves.

Product evidence

A closer look at the product

Diagram of a mobile app with UI, Network and BLE View Model layers linked through BLE Central/GATT Client and BLE Peripheral/GATT Server to a smart battery containing a connectivity module, BMS and cells.
App-to-battery architecture: UI, network and BLE layers in the app communicate over Bluetooth LE with the battery's connectivity module and BMS.

Technology, in context

Swift · Kotlin · Bluetooth Low Energy · GATT

A comparable product problem?

SuperVolt battery companion app

Bring the product context, the system that already exists and the engineering decision you need to make.

Discuss a comparable challenge