STM32 Field Programmer
An Android phone that replaces a PC as an STM32 production programmer — native C++ over USB-OTG.
■ Built under NDA — described at the level the client has published.
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 →