Pre-Release v1.0.1-beta.3
Pre-releaseRe-cut of 1.0.1-beta.2, which only partially published. This release ships the full
BUSL-1.1 package set with a clean licensing and naming model, plus the CYW43439
wireless stack, a second bootrom revision, and a nanoFramework integration-test harness.
No breaking changes — the public API remains stable under
Semantic Versioning. Everything from
v1.0.1-beta.1 still
applies.
🔒 Licensing
Only the RP2040Sharp emulator core stays MIT. Every other package —
RP2040Sharp.TestKit, RP2040Sharp.Wireless, and RP2040Sharp.TestKit.NanoFramework —
is BUSL-1.1, shipped as a license file with a generous Additional Use Grant:
- Free for individuals and for personal, hobby, educational, academic-research,
evaluation, and open-source use. - Commercial Use — using the packages in enterprise CI/CD (automated build/test
pipelines run by or for a for-profit organization) or in products/services that
generate revenue — requires a separate commercial license. - Change Date 2030-06-25 (4 years): on that date the BUSL packages convert to MIT.
✨ Added
RP2040Sharp.Wireless(BUSL-1.1) — firmware-agnostic CYW43439 Wi-Fi + Bluetooth LE
virtualization for the Raspberry Pi Pico W: the gSPI bus (bit-banged through PIO), the
SDIO backplane and firmware download, the WHD/SDPCM control + Ethernet data plane, and
the BT HCI shared-bus transport. Unmodified firmware (pico-sdk, MicroPython,
CircuitPython) runs in STA and SoftAP modes against a virtual access point; BLE
advertises/scans/connects and relays GATT between virtual devices.RP2040Sharp.TestKit.NanoFramework(BUSL-1.1) — boot a deployed .NET nanoFramework
app on the emulator and assert against it from xUnit: native-function-by-symbol runs,
managed static and instance fields read by name,RunUntila managed method/variable,
and a native-checksum compatibility guard. A bundled NanoSymbols source generator
(shipped as an analyzer, wired by abuildTransitivetargets file) emits a
strongly-typed symbols class for the app's methods and static fields.- B2 bootrom + revision selection, PIO FIFO probe, and an emulator strict mode
that surfaces silent accuracy gaps.
🔧 Changed
RP2040Sharp.TestKitis now BUSL-1.1 (was MIT).- Renamed the Wireless package
RP2040.Wireless→RP2040Sharp.Wirelessfor a
consistentRP2040Sharp.*id prefix. - Renamed the solution
RP2040.sln→RP2040Sharp.sln. - BUSL packages ship the license as a file (
LICENSE-BUSL.txt) instead of an SPDX
expression, which nuget.org does not accept for BUSL-1.1.
🐛 Fixed
- SSI direct-command flash RX so the bootrom/CLR flash-access path works.
- PIO RESET gating for PIO blocks.
- USB CDC OUT delivery moved to a push model;
EP_ABORTno longer drops deferred
completions.
⚠️ Note on 1.0.1-beta.2
1.0.1-beta.2 published only partially and is yanked/superseded by this release. Use
1.0.1-beta.3.
📦 Packages
# MIT core
dotnet add package RP2040Sharp --version 1.0.1-beta.3
# BUSL-1.1
dotnet add package RP2040Sharp.TestKit --version 1.0.1-beta.3
dotnet add package RP2040Sharp.Wireless --version 1.0.1-beta.3
dotnet add package RP2040Sharp.TestKit.NanoFramework --version 1.0.1-beta.3Full changelog: https://github.com/PyMCU/RP2040Sharp/blob/master/CHANGELOG.md