Skip to content

feat(rp): honor Arduino-Pico Bluetooth stack menu #1262

Description

@zackees

Context

FastLED #3832 requires an RP2350W BLE GATT transport. Arduino-Pico 4.5.3 exposes the required btstack and CYW43 support only through its Bluetooth stack menu. For
pipico2w, �oards.txt maps ipbtstack=ipv4btcble to libipv4-bt.a plus -DENABLE_CLASSIC=1 -DENABLE_BLE=1.

fbuild's RP orchestrator loads board menu properties and applies libpicowdefs, but
p_support_objects() always links libipv4.a. It also does not fold RP environment �uild_flags into its compiler configuration. Consequently fbuild cannot select the core Bluetooth archive required for a legitimate RP2350W BLE build.

Proposal

Honor the board's ipbtstack menu selection for RP Arduino-Pico builds. Resolve the selected �uild.libpicow archive and matching �uild.libpicowdefs from board properties, use that archive in support link inputs, and preserve the default IPv4 selection for existing projects.

Acceptance criteria

  • Add a focused RED test using an RP Pico W fixture with �oard_build.ipbtstack = ipv4btcble; it must initially show the Bluetooth archive/defines are not selected.
  • Make the test GREEN: build inputs include libipv4-bt.a, ENABLE_CLASSIC=1, and ENABLE_BLE=1.
  • Keep the default RP network selection on libipv4.a unchanged.
  • Produce an RP2350W build whose compile database/link inputs demonstrate the selected Bluetooth variant.
  • Run the focused fbuild test and relevant RP build regression tests.

Related issues

FastLED/FastLED#3832 and FastLED/FastLED#3861.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions