Skip to content

[BLE] Fix esp32dev-ble-idf: bump esp-nimble-cpp 2.1.1 -> 2.5.0 - #2361

Merged
1technophile merged 1 commit into
developmentfrom
fix/esp-nimble-cpp-registry-pin
Aug 23, 2026
Merged

[BLE] Fix esp32dev-ble-idf: bump esp-nimble-cpp 2.1.1 -> 2.5.0#2361
1technophile merged 1 commit into
developmentfrom
fix/esp-nimble-cpp-registry-pin

Conversation

@1technophile

Copy link
Copy Markdown
Owner

Problem

Every build of esp32dev-ble-idf fails at dependency resolution, before any compilation:

Library Manager: Installing h2zero/esp-nimble-cpp @ 2.1.1
UnknownPackageError: Could not find the package with 'h2zero/esp-nimble-cpp @ 2.1.1' requirements

esp-nimble-cpp 2.1.1 no longer exists in either source:

  • the PlatformIO registry has pruned it — it now serves only 2.3.2, 2.3.4, 2.4.0, 2.5.0;
  • the upstream 2.1.1 git tag was deleted too (tags now start at 2.2.1), so pinning that tag by URL would not help either.

This is unrelated to any particular PR — it breaks development and every open PR that builds this environment.

Fix

Pin 2.5.0, which is the same NimBLE version the Arduino ESP32 environments already use (libraries.ble = NimBLE-Arduino/archive/2.5.0.zip), so both frameworks stay on one NimBLE codebase.

The dependency is referenced by GitHub archive URL rather than by registry version, matching the style used for the other BLE dependency and making it immune to future registry pruning.

NimBLEOta@0.2.0 is unaffected: still present in the registry, with no declared dependencies.

Verification

Built locally — no source changes required. blufi.cpp, the only ESP-IDF-exclusive file and the one place the newer API had not previously been exercised, compiles without warnings:

|-- esp-nimble-cpp @ 2.5.0
|-- NimBLEOta @ 0.2.0
...
RAM:   19.5% (used 63968 bytes from 327680 bytes)
Flash: 86.6% (used 1703247 bytes from 1966080 bytes)
esp32dev-ble-idf  SUCCESS  00:04:58

🤖 Generated with Claude Code

esp-nimble-cpp 2.1.1 no longer exists: the PlatformIO registry pruned it
(2.3.2 is now the oldest available) and the upstream 2.1.1 git tag was
deleted as well. Dependency resolution therefore fails before any
compilation, breaking every build of esp32dev-ble-idf:

  UnknownPackageError: Could not find the package with
  'h2zero/esp-nimble-cpp @ 2.1.1' requirements

Pin 2.5.0, matching the NimBLE-Arduino 2.5.0 already used by the Arduino
ESP32 environments, and reference the GitHub archive rather than the
registry so future registry pruning cannot break the build again.

No source changes are needed: esp32dev-ble-idf builds clean with the
newer API, blufi.cpp included.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@1technophile
1technophile merged commit 47da455 into development Aug 23, 2026
213 of 215 checks passed
@1technophile
1technophile deleted the fix/esp-nimble-cpp-registry-pin branch August 23, 2026 22:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant