Skip to content

Pre-Release v1.0.1-beta.3

Pre-release
Pre-release

Choose a tag to compare

@begeistert begeistert released this 25 Jun 15:54
fd0ea1f

Re-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, RunUntil a managed method/variable,
    and a native-checksum compatibility guard. A bundled NanoSymbols source generator
    (shipped as an analyzer, wired by a buildTransitive targets 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.TestKit is now BUSL-1.1 (was MIT).
  • Renamed the Wireless package RP2040.WirelessRP2040Sharp.Wireless for a
    consistent RP2040Sharp.* id prefix.
  • Renamed the solution RP2040.slnRP2040Sharp.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_ABORT no 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.3

Full changelog: https://github.com/PyMCU/RP2040Sharp/blob/master/CHANGELOG.md