Update your LumiFur Controller
Connect to a running LumiFur MatrixPortal S3 over Web Bluetooth, load a compatible ESP32-S3 OTA .bin, and flash it with guarded progress feedback.
Before you flash
This page is for Adafruit MatrixPortal S3 / ESP32-S3 LumiFur controllers. It uses BLE OTA app-image updates, not USB ROM flashing or UF2 drag/drop.
Requirements
Start from a stable setup
- Use Chrome or Edge with Web Bluetooth enabled.
- Power the LumiFur Controller from a stable source and keep it nearby.
- Pair when prompted, then confirm the passkey on the controller display.
- Use a MatrixPortal S3 .bin release asset whose filename includes mps3 or matrixportal-s3.
- Keep this page open until the controller reports completion.
Latest firmware
Controller v2.0.1
Dec 16, 2025Refined BLE services, release automation, and web updater tooling.
MatrixPortal S3 compatibility
Target
Adafruit MatrixPortal S3 only: ESP32-S3, 8 MB flash, 2 MB PSRAM. Do not use MatrixPortal M4, ESP32-S2, or generic ESP32 builds.
Flashing path
This page sends an OTA application .bin to the running LumiFur firmware over encrypted BLE. It does not erase full flash or write bootloader, partition-table, filesystem, or ROM offsets.
Recovery
If LumiFur BLE is missing, use USB recovery tools: hold BOOT/DFU, press Reset, then release BOOT/DFU. TinyUF2 drag/drop works only if TinyUF2 is installed; CircuitPython or ROM bootloader devices may not expose a UF2 drive.
Guided update flow
Each phase has a distinct state so failures are easier to understand and retry.
Detect device
Find a controller advertising the LumiFur BLE service.
Check version
Read device metadata when the firmware exposes it.
Load firmware
Validate a local .bin or fetch a GitHub release asset.
Flash
Stream firmware chunks over the encrypted OTA characteristic.
Verify
Wait for the controller to validate and accept the image.
Complete
The controller accepted the image and will reboot.
Step 1
Connect and check device
Select the LumiFur Controller BLE service. The updater will then read version metadata if the connected firmware exposes it.
Step 2
Load firmware
Use a GitHub release asset for the safest path, or choose a local .bin when testing your own build.
Local file
Choose a MatrixPortal S3 LumiFur OTA application binary.
Select a firmware .bin file first.
GitHub release
Pull a MatrixPortal S3 .bin asset from the latest controller release.
No Adafruit MatrixPortal S3 .bin firmware assets were found in the latest release.
Step 3
Flash firmware
Start only when the MatrixPortal S3 is connected over LumiFur BLE and a valid OTA app image is loaded.
This browser does not support Web Bluetooth.
Failure
Web Bluetooth is not available
This updater needs Web Bluetooth, which is available in Chrome or Edge on supported desktop and Android devices.
Open the updater in Chrome or Edge, then try again.
Live status
Update status
- Workflow
- Needs attention
- Connection
- Unsupported browser
- Device
- Not connected
- Installed
- Not checked
- Latest
- v2.0.1
- Firmware
- No file selected
- Source
- Not selected
- Size
- Not available
Waiting to start.
Need help? Ensure the running LumiFur firmware advertises the 01931c44-3867-7740-9867-c822cb7df308 service and move closer if the connection is unstable.
Activity log
Web Bluetooth is not available: This updater needs Web Bluetooth, which is available in Chrome or Edge on supported desktop and Android devices.
Safety checklist
Keep updates reliable
- The update button stays disabled until a controller and valid firmware are ready.
- Navigation and tab closing are blocked while flashing is active.
- If flashing fails, power cycle the controller before retrying; use BOOT/DFU + Reset only for USB recovery tools, not this BLE OTA path.
- Only flash firmware from the LumiFur Controller repository or a MatrixPortal S3 build you trust.