Client storyApps

An Android App for Device Setup and Monitoring, Built Alongside the Firmware

A client's installers were setting up devices with a laptop and serial cable. I built an Android app that provisions devices over Bluetooth, configures Wi-Fi and shows live status, working hand in hand with the firmware.

~2 min~setup per device, from ~20
BLEto Wi-Fi provisioning
1team for app and firmware
Client
IoT device maker (under NDA)
Users
Field installers and end customers
Built
Android app plus matching firmware
Features
Provisioning, configuration, live monitoring, updates

The problem

Every device installation needed a technician with a laptop, a USB-serial cable and a text file of commands. It took around twenty minutes per device, mistakes were common, and end customers could not change settings without calling support.

How I solved it

  1. Secure pairing

    The device advertises over Bluetooth Low Energy. The app connects and establishes an encrypted session before any settings are exchanged.

  2. Wi-Fi setup

    The app scans for nearby networks, sends credentials securely and confirms the device has connected.

  3. Configuration and monitoring

    Settings, live readings and device health are shown in a simple interface, for installers and customers.

  4. Updates from the phone

    Firmware updates can be pushed from the app as well as over the network.

  5. Built with the firmware

    I designed the BLE services and the app together, so there is one protocol document and no mismatch between the two.

What the client got

Results

  • Setup time cut from about twenty minutes to about two.
  • Installers and customers can configure devices without a laptop.
  • Fewer support calls and fewer installation mistakes.
  • An app and firmware that were designed as one product.
Related guideBuilding a BLE or Wi-Fi Provisioning App for Your IoT Device
Nikhil Robinson

Embedded systems consultant at TechProgeny, Bengaluru. 7+ years and 29+ shipped products across firmware, embedded Linux, edge AI, apps and IoT servers.