MiraLink 0.40
MiraLink Pico 2 W firmware 0.40
Developer: MaruChiwa
Release date: 2026-08-14
This directory contains the clean-room 0.40 manual-test candidate built for
Raspberry Pi Pico 2 W. No build or release command flashes a board
automatically.
What 0.40 changes
- A controller with a remembered Bluetooth key now reconnects passively. The
bridge no longer occupies BTstack's single HID-host connection slot with an
automatic outgoing connection while it is waiting for that controller. - Outgoing HID connections are limited to an active pairing window. The first
opens automatically only when no remembered key exists; later windows are
opened by the user.
Interlaced page scanning is enabled once the radio is ready, connectability
is rearmed after a closed connection, and the pairing window closes after the
first complete, strict-length, CRC-valid enhanced input report0x31. - Feature response
0x71remains readable until a later MiraLink command
report produces a success or error response. The USB reconnect intent is
still consumed only once, so a host can retry
receiving the acknowledgement without sending the command a second time. - The WebHID application serializes work through a cancellable per-device FIFO,
verifies the bridge withHELLObefore management commands, never retries an
ambiguous send, and limits transient receive recovery to rereading the same
response. - Controller polling now runs every 100 ms with bounded 250/500 ms backoff.
Explicit USB reconnect handling observes actual disappearance of the device
and does not resend the reconnect command when its acknowledgement is lost. - USB Audio remains disabled. No audio stream is implemented or validated;
the reported audio path is diagnostic/source-only.
Validation completed before packaging
npm run checkpassed; application unit tests passed109/109.npm audit --audit-level=lowreported 0 known vulnerabilities.- Desktop Playwright automation passed
15/15scenarios. - The final application build contains 29 files totaling 313,178 bytes; all
28/28checked source-to-distribution files match. - The Pico 2 W Release cross-build passed with Pico SDK
2.3.0. - ARM-target syntax-only core tests passed. The Windows native core-test
executable was deliberately not run during this0.40pass. - Picotool identifies MiraLink
0.40,pico2_w, RP2350 ARM Secure,
rp2350-arm-s, SDK2.3.0, Release build, binary range
0x10000000..0x100ac9e4; extra security is not enabled. - Packaged sizes and SHA-256 values match the frozen build outputs and are
recorded inSHA256SUMS.txt.
Artifacts
| File | Bytes | SHA-256 |
|---|---|---|
miralink_pico_firmware.uf2 |
1,414,656 | A3BB4FF3A67D9EB293D8499033D0FADFA2BCD59365A711B60C9D8754A7DBA677 |
miralink_pico_firmware.elf |
4,508,868 | 52D685219DC146793F79318CF0806D5FF7E6E9CD14FB15C1EDBD3C2F5A4BA16A |
miralink_pico_firmware.bin |
707,044 | 2EB04518B8B9E2CA11B961C00DAA6CC46E3F8C1501B6DC1865C9B17AB1D39B53 |
miralink_pico_firmware.hex |
1,988,810 | 8B1F1EFC48688D0AFB3770C7946395D858E85AFEA26E72CD6CB288A82B4ADA52 |
Hardware boundary
Firmware 0.40 has not been flashed or tested on real hardware. Version
0.38 exposed working buttons/sticks in joy.cpl and completed a material
configuration commit. Version 0.39 paired and delivered a live quick-test
sample to Controller Lab, diagnostics and configuration read, but a controller
powered off afterward did not reconnect without pairing again. Version 0.40
addresses that failure in source and passes the software checks above; those
results are not proof that radio reconnection works on the physical bridge.
Audio streaming is also absent.
Manual test plan
- Preserve the current Diagnostics and Journals, enter BOOTSEL mode on a Pico
2 W, and copy onlymiralink_pico_firmware.uf2to theRPI-RP2volume. - Confirm one Windows controller, firmware
0.40, successful pairing if
required, live buttons/sticks, and responsive Controller Lab input. - Power the controller off, then press PS. It must reconnect through the
remembered key without reopening pairing. Repeat this cycle 20 times, then
repeat after rebooting the Pico. - Test abrupt controller power loss and an out-of-range/in-range cycle. Check
that the bridge becomes connectable again and that no duplicate controller
appears. - Run Controller Lab plus configuration reads and Diagnostics for 30–60
minutes. Record any persistentFailed to write/receive the feature report
sequence and judge whether the 100 ms polling remains smooth. - Exercise the explicit USB reconnect once with a normal acknowledgement and
once while the acknowledgement read is interrupted. There must be at most
one re-enumeration and no duplicate command execution. - If any reconnect fails, do not erase the remembered key automatically.
Preserve the full log and note the exact LED, Windows-device and Pico state
before manually pairing again.
DS5Dongle baseline
| Indicator | DS5Dongle v0.7.2-hotfix | MiraLink 0.39 observed | MiraLink 0.40 candidate |
|---|---|---|---|
| Functional coverage before proof penalty | 100% | 76% | 76% |
| Weighted proven score | 100% | 54.4% | 54.4% |
| UF2 relative size, not a quality score | 100% | 92.8% | 92.7% |
The 0.40 score remains unchanged until the manual test plan supplies new
hardware evidence.