Repository navigation
v0.9.0-apps.alpha.17
Pre-release
Pre-release
·
30 commits
to apps
since this release
What's Changed
Breaking changes
- Reorganize into directory-based entrypoints for tree shaking. Connection types and factory functions are now imported from subpath exports (
@microbit/microbit-connection/usb,/bluetooth,/radio-bridge,/universal-hex) instead of the package root. (#96, 7eab3cc) - Replace enums with as-const objects and union types.
ConnectionStatus,BoardVersion, and all other enums are nowas constobjects with companion union types, following modern TypeScript conventions. Values are PascalCase (e.g.ConnectionStatus.ConnectednotConnectionStatus.CONNECTED). (709e9eb) - Replace EventTarget with custom typed event system.
TypedEventTargetreplaces DOMEventTarget. Listeners receive event data directly instead of wrapped in event classes. Event classes likeConnectionStatusEvent,AccelerometerDataEvent,ButtonEvent, andFlashEventare removed. (#105) - Throw DeviceError when not connected. Methods like
getBoardVersion()andgetDeviceId()now throwDeviceErrorinstead of returningundefined. (#104) - Move serialWrite to USB-specific interfaces.
serialWriteis no longer part of the sharedDeviceConnectioninterface, reflecting that serial is USB-only. (#107) - Clean up public API surface.
BoardIdremoved from public exports (internal-only),loggingmade optional in radio bridge options,BoardId.idmade readonly. (e037c2b)
New features
- Pause USB connection on tab switch instead of disconnecting. When a browser tab becomes hidden, the USB connection enters a new
Pausedstate rather than fully disconnecting. Serial output is preserved across tab switches. The behavior is opt-out viapauseOnHidden. (#102, edc7274) - Saturate DAPLink CDC buffers before flash to prevent serial data loss. Pushes NUL bytes through the target UART before flashing to prevent DAPLink's shared ring buffer from corrupting flash data. (d239473)
- This is experimental and we'll try this for some time on the apps branch before releasing.
- Improve serial data handling around flash. Better coordination of serial start/stop during the flash lifecycle. (9829707)
Between the serial fixes this should mean no lost output after flash and no garbage output from the previous program.
Bug fixes and minor changes
- Add missing V2 init packet hash. Adds DFU integrity check for V2 board (#93)
- Reinstate "uBit" BLE name prefix support. Restores filtering for devices advertising with the "uBit" prefix. (#95)
- Remove ChromeOS 105 WebUSB workaround. Drops a workaround for a long-fixed Chrome OS bug. (cffcb03)
- Document post-flash connection state differences between USB and Bluetooth. (#106)
- Document radio bridge as experimental/limited. (#108)
- Update README for all recent API changes. (dbd14c2)
Internal improvements
- Hardware test runner. Added a human-in-the-loop test runner for on-device testing. (bcc6a86)
- Inline CMSIS-DAP protocol handling, removing dapjs dependency (#110)
- Reorganize USB code with a layer split for CMSIS-DAP. Clearer separation between high-level USB connection logic and low-level DAP operations. (dd0007d)
- Fix partial flash retry by reinitializing SWD. Resolves reliability issues when partial flashing needs to retry. (3596992)
- Error handling and logging review. Consolidated error handling across USB and Bluetooth paths. (8c4ffa9)
- Workaround for bad response issue. Mitigates a timing-related CMSIS-DAP response mismatch. (#77)
Full Changelog: v0.9.0-apps.alpha.16...HEAD