← spotrobotics.app GitHub Privacy Policy
SW102 firmware logo SW102 Firmware
Custom firmware - Bafang SW102 display

Your Bafang SW102 display, completely reprogrammed.

Open-source firmware that replaces the stock SW102 firmware entirely - a redesigned cockpit, a full settings menu, and Bluetooth OTA updates, built from scratch for genuine Bafang mid-drive controllers (BBS01/BBS02/BBSHD/M400/M420/M620).

nRF51822 · Free & open source · Bluetooth OTA updates
SW102 display running the custom firmware, showing the cockpit screen
Real hardware

Running on an actual SW102 display.

SW102 boot screen showing the firmware name and version

Boot screen

SW102 cockpit screen with speed, power, assist level, trip and range

Cockpit

SW102 settings menu with the selection marker

Menu (selection)

SW102 top-level settings menu

Menu (top level)

Cockpit

Everything a factory display shows - redesigned.

SW102 cockpit screen close-up
Settings menu

A full menu, built from scratch.

SW102 settings menu close-up
Under the hood

Built for genuine Bafang controllers.

UART
Native Bafang protocol

Speaks the standard Bafang display UART protocol directly - no intermediate box, no adapter.

OTA
Bluetooth updates

Update the firmware over Bluetooth after the first flash - no need to open the display again.

%
Accurate battery %

Optional Precise mode computes the battery percentage locally from the display's own measured voltage, for controllers whose own reporting runs inaccurate.

km
Range estimator

A real energy-use model blends your riding history with your current style into a live range estimate - not a static number.

GPL
Open source

Built on top of the community anszom/SW102_LCD fork, itself GPL-3.0 licensed.

SIM
Terminal emulator

A Rust-based emulator compiles and runs the real firmware C code on a PC, for testing layout and logic without hardware.

MCU
nRF51822

Runs on the display's existing Nordic nRF51822 BLE SoC - no hardware modification needed.

FW
Compatible controllers

BBS01/BBS01B, BBS02/BBS02B, BBSHD, M400, M420, M620/G510 Ultra - the standard Bafang display protocol family.

Nothing leaves the display.

This is firmware, not an app - it has no internet connection of any kind. It talks to the motor controller over a wired UART cable, and to a phone over Bluetooth only for firmware updates (DFU) - nothing is ever sent anywhere online.

No internet connectivity, ever
No account, no analytics, no tracking
Bluetooth used only for firmware updates
Riding data stays on the display itself
nRF51822 | Free & open source | BBS01 · BBS02 · BBSHD · M400 · M420 · M620

Get the firmware.

Free and open source, for genuine Bafang mid-drive controllers. Source, install instructions, and releases on GitHub.