Releases: LeParfait271/MIRALINK
Release list
MiraLink 0.38 - Bluetooth bootstrap test candidate
MiraLink Pico 2 W firmware 0.38
Developer: MaruChiwa
Release date: 2026-08-14
This directory contains the clean-room 0.38 manual-test candidate built on
2026-08-14. No build or release command flashes a board automatically.
What 0.38 changes
- The one-root USB topology from
0.37is retained. Its manual Windows test
showed exactly oneDualSensecontroller child, but no buttons or sticks
reached Windows. - After the Bluetooth HID descriptor is available, MiraLink now performs a
bounded asynchronous Feature sequence0x05→0x09→0x20, followed by
a bounded neutral-output fallback if enhanced input has not started. - Minimal Bluetooth report
0x01proves liveness only. Only a complete,
strict-length, CRC-valid enhanced report0x31can mark the controller
connected, feed USB input and trust a provisional Bluetooth address. - A version-locked build overlay makes BTstack accept a new asynchronous HID
output only after the previous caller-owned buffer was consumed. The
official Pico SDK checkout is not modified. - Persistent configuration erase/program runs inside the Pico SDK flash-safe
executor. Deadlines use the 64-bit boot clock; radio-off clears stale input,
and failed CYW43 initialization leaves a safe USB diagnostic mode. - Sony-compatible VID/PID and reports remain experimental compatibility work,
without Sony certification, endorsement or affiliation. - USB audio remains disabled and source-only.
Validation completed before release
- Application syntax and all
98/98unit tests passed. npm auditreported no known dependency vulnerability at release time.- Browser automation passed
20/20scenarios (10 desktop, 10 mobile), including a
synthetic MiraLink bridge exchange, cold offline reload, keyboard tabs,
responsive layout and serious/critical accessibility checks. - The native MiraLink core test passed (
1/1) withlibc++.dlland
libunwind.dllcopied beside the test executable. - The Pico 2 W Release build passed with Pico SDK
2.3.0and Arm GNU15.2.1. - The generated build uses the SHA-locked BTstack overlay exactly once and does
not compile the originalhid_host.cin parallel. - Picotool identifies MiraLink
0.38,pico2_w, RP2350 ARM Secure,
rp2350-arm-s, SDK2.3.0; extra security is reported as not enabled. - Artifact sizes and SHA-256 hashes are recorded in
SHA256SUMS.txtand
docs/VALIDATION_0.38.md.
Hardware boundary and manual test
The 0.38 Bluetooth correction has not been flashed or validated on a real
Pico 2 W and DualSense. It is a software-validated test candidate, not proof
that pairing, input, output, reconnect or wake now work on hardware.
To test manually, enter BOOTSEL mode on a Pico 2 W and copy only
miralink_pico_firmware.uf2 to the RPI-RP2 volume. Confirm that Windows still
shows exactly one controller. In Chrome or Edge, connect the Pico through the
MiraLink site, run Diagnostics, open the pairing window, then put the DualSense
in pairing mode with Create + PS. Verify live buttons/sticks before testing
rumble, LEDs, triggers, reconnect and wake. Stop and report the exact
diagnostic summary if no enhanced input arrives.
DS5Dongle baseline
| Capability | DS5Dongle | MiraLink 0.37 observed | MiraLink 0.38 candidate |
|---|---|---|---|
| USB persona / host compatibility | 100% | 72% | 72% |
| Bluetooth pairing / reconnect | 100% | 25% | 45% |
| Input / motion / touch | 100% | 50% | 63% |
| Output / rumble / triggers | 100% | 48% | 48% |
| USB audio / HD haptics / microphone | 100% | 5% | 5% |
| Weighted proven score | 100% | 44.0% | 50.3% |
Raw source coverage remains 76%. The 0.38 UF2 is 92.7% of the
DS5Dongle reference size; size is not a quality score.
MiraLink 0.37 - Single-controller test candidate
MiraLink 0.37 — manual hardware-test candidate
This release supersedes 0.36, whose first Windows test exposed two Pico-owned DualSense children and did not establish a validated Bluetooth link.
Corrections
- exactly one top-level Gamepad Application collection; MiraLink Feature reports
0x70/0x71are nested below it; - compile-time HID topology checks prevent the duplicate Windows controller layout from returning;
- CYW43/BTstack now runs by explicit main-loop polling instead of competing background IRQ callbacks;
- a new Bluetooth address is trusted only after a valid DualSense input report;
- failed new keys are removed without deleting keys that existed before the attempt;
- stale HID-CID events are filtered and teardown retries are bounded outside BTstack callbacks.
Validation before publication
- application syntax/build and tests: 68/68 passed;
- native core test: 1/1 passed;
- Pico 2 W Release build: passed;
- picotool: MiraLink 0.37,
pico2_w, RP2350 ARM Secure, SDK 2.3.0; - UF2 SHA-256:
3FC7119F4513B2AE75CA4D57286C6C36F729C63D8C1ADF94DA3F2ABE1E5B9E30.
No board was flashed automatically. After manually copying the UF2 in BOOTSEL mode, first verify that joy.cpl shows exactly one controller before attempting pairing. Version 0.37 is not considered hardware-validated until that test, WebHID and real Bluetooth pairing succeed.
DS5Dongle v0.7.2-hotfix stays fixed at 100%. MiraLink 0.37 remains 76% raw coverage and 43% weighted proven coverage pending the physical retest (0.36 observed: 39%).
MiraLink 0.36 - SUPERSEDED (duplicate controller)
Warning
SUPERSEDED — do not continue hardware testing with 0.36. The first Windows flash exposed two Pico-owned DualSense entries, and Bluetooth pairing expired without a validated link. Use MiraLink 0.37, which corrects the single-controller topology and hardens pairing teardown.
MiraLink 0.36
Candidat de test matériel pour Raspberry Pi Pico 2 W. Cette version introduit une persona USB DualSense/Edge clean-room destinée à dépasser progressivement DS5Dongle, sans reprendre son code ni son binaire.
Principales évolutions
- identité USB compatible DualSense : Sony
054c:0ce6, ou054c:0df2en mode Edge ; - une seule interface HID avec collection Gamepad native et collection de gestion MiraLink ;
- endpoints HID IN/OUT 64 octets à 1 ms ;
- rapports d’entrée natifs, sorties compactes/Linux normalisées, vibrations, LED et route bornée pour gâchettes adaptatives ;
- Feature Reports requis par les pilotes hôtes et commandes WebHID MiraLink
0x70/0x71; - appairage Bluetooth initial automatique pendant cinq minutes, puis reconnexion mémorisée ;
- continuité du timestamp IMU, calibration nominale, D-pad neutre corrigé et réveil USB sur activité explicite uniquement.
Validation effectuée
- tests application : 68/68 ;
- tests cœur natifs : 1/1 ;
- build Release Pico 2 W réussi avec Pico SDK 2.3.0 ;
- descripteurs HID, tailles de rapports, métadonnées RP2350 et sommes SHA-256 contrôlés.
Limite importante
Ce firmware n’a pas encore été flashé ni validé avec un Pico 2 W et une DualSense réels. Il doit être considéré comme expérimental jusqu’aux essais Windows/Linux. L’audio, les haptics HD audio et le microphone USB restent désactivés. Cette compatibilité USB ne constitue ni un firmware Sony, ni une certification, ni une affiliation avec Sony.
Installation manuelle
Maintenir BOOTSEL en branchant le Pico 2 W, puis copier uniquement miralink_pico_firmware.uf2 sur le lecteur RPI-RP2. Vérifier au besoin le SHA-256 :
E0BCE0C6D4E0C531E9C334FC54348B143215E1A53BACEB83B20CD48EFB303284
MiraLink 1.6.0
MiraLink 1.6.0 is a local-manual test candidate for Raspberry Pi Pico 2 W.
Changes:
- Legacy DualSense Bluetooth PIN 0000 is accepted only during the explicit local pairing window or for an already known controller.
- MiraLink HID feature commands tolerate the report ID in either host callback form while retaining strict length checks.
- DualSense input, schema-2 state, bounded rumble, lightbar/player LEDs and microphone mute remain available as documented.
Validation:
- JavaScript tests: 60/60 passed.
- Native C++ tests: passed.
- Pico 2 W Release build and picotool UF2 inspection: passed.
- Physical Pico 2 W and DualSense validation: not performed; flash manually and do not treat this release as hardware-certified.
- Audio streaming and adaptive triggers remain explicitly unavailable.
The UF2 is manually installable. See the attached README and SHA256SUMS.txt.
MiraLink 1.1.0 - Pico 2 W test candidate
MiraLink 1.1.0
Firmware candidate for Raspberry Pi Pico 2 W / RP2350 ARM Secure.
Included
- DualSense Bluetooth inquiry and identity/name filtering during the explicit pairing window;
- validated Bluetooth input relay and structured local diagnostics;
- persistent configuration, bounded RAM logs, USB reconnect and confirmation-token recovery;
miralink_pico_firmware.uf2attached for manual testing;SHA256SUMS.txtattached for local verification.
Important limits
This is a test candidate, not a hardware-validated production release. No Pico 2 W or DualSense was connected during the build validation. Audio, battery, haptics, adaptive triggers and the production USB identity remain unavailable or unvalidated.
Do not flash automatically. Keep the previous known-good firmware, verify the SHA-256 locally, use BOOTSEL manually, and stop if USB enumeration or pairing does not behave as expected.
MiraLink 0.6.0 - DualSense bridge path
MiraLink 0.6.0 for Raspberry Pi Pico 2 W. Adds the local DualSense Bluetooth Classic HID input path, CRC-checked report 0x31, a confirmation-gated five-minute pairing window, and separate flash reservations for MiraLink configuration and BTstack link keys. This UF2 is a manual test candidate only: no Pico 2 W or DualSense was connected, no automatic flash is performed, and battery, audio, haptics and adaptive-trigger output are not claimed. SHA-256 is provided in SHA256SUMS.txt.
v0.2.0
Full Changelog: https://github.com/LeParfait271/MIRALINK/commits/Firmware-update