STM32 Field Programmer

An Android phone that replaces a PC as an STM32 production programmer — native C++ over USB-OTG.

CategoryEmbedded & Hardware
Timeline2024 — 2026
ContextSLIS Solutions · Under NDA
StatusProduction tooling · Play-ready

■ Built under NDA — described at the level the client has published.

Phone → ST-Link → STM32 architecture
100+STM32 chip variants supported
~12klines of C ported to Android
0PCs needed in the field

The product

Factory and field technicians normally need a laptop, an ST-Link and desktop tooling to flash firmware. This app turns any Android phone into the entire toolchain: plug an ST-Link probe into the phone over USB-OTG and flash, erase, verify and configure STM32 microcontrollers on the spot.

I ported the native stlink C library to Android with the NDK — including a custom USB backend that bridges Android's managed USB stack into native code — and wrapped it in a one-tap Jetpack Compose UI designed for technicians, not engineers. A companion secure-packaging system lets vendors ship encrypted, signed firmware that only licensed devices can install.

Built under NDA for an industrial client — implementation details are summarised at the level the client has published.

Under the hood

THE ENGINEERING

  • 01

    Native stlink + libusb cross-compiled for Android via CMake/NDK — real systems work, not a wrapper

  • 02

    Android forbids raw USB from native code — solved by handing the managed USB file descriptor down through a minimal JNI surface

  • 03

    Supports flash read/erase/write, option bytes and scripted multi-step flashing recipes across the STM32 catalogue

  • 04

    Secure firmware distribution: AES-256 payloads, RSA-wrapped session keys, vendor-signed packages with a desktop packaging tool

  • 05

    Human-readable log narration — raw probe traffic translated into plain-language steps for technicians

Next case study

PulseFleet