Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The future of this repo... new ESP MCU's cannot be supported. #685

Open
h2zero opened this issue Jun 15, 2024 · 4 comments
Open

The future of this repo... new ESP MCU's cannot be supported. #685

h2zero opened this issue Jun 15, 2024 · 4 comments

Comments

@h2zero
Copy link
Owner

h2zero commented Jun 15, 2024

My apologies to all, I cannot find a workaround for the upstream changes that have affected this repo's ability to work with arduino-esp32 core and the new C6/H2/C2 MCU's. The issue I created espressif/arduino-esp32#9835 has been relegated to a discussion, where there is essentially no visibility, so I have now closed it 😞.

This marks the end of my support for NimBLE on the esp32 platform for Arduino, I will continue to maintain this as best as I can for the chips that can use it, the latest Espressif devices and future one will not be supported here, unless I can find a way to get around the roadblocks.

I suggest to you all... plead actually... move on from Arduino, it's great to start from, but you can do better. Use IDF directly and esp-nimble-cpp with Arduino as a component if you want to use the work here, as I will always be able to support this via wrapping the underlying NimBLE stack. Better yet use PlatformIO with idf and arduino and link esp-nimble-cpp as a lib_dep :) I'll make some instruction for this in the near term.

Thank you all for the incredible support, I've put in thousands of hours to make this work and it always puts a big smile on my face to see people recommending/using and submitting issues to this repo.

@h2zero h2zero pinned this issue Jun 15, 2024
@h2zero h2zero changed the title The future of this repo... new espressif MCU's cannot be supported. The future of this repo... new Espressif MCU's cannot be supported. Jun 15, 2024
@h2zero h2zero changed the title The future of this repo... new Espressif MCU's cannot be supported. The future of this repo... new Esp MCU's cannot be supported. Jun 15, 2024
@h2zero h2zero changed the title The future of this repo... new Esp MCU's cannot be supported. The future of this repo... new ESP MCU's cannot be supported. Jun 15, 2024
frankcohen added a commit to frankcohen/ReflectionsOS that referenced this issue Aug 6, 2024
Removed NimBLE-Arduino as it is no longer going to be supported on ESP32 CPUs. See h2zero/NimBLE-Arduino#685. Implemented BLE device-to-device communication using JSON encoded data. Later I will put the message handling code into BLEMessaging.cpp and .h. Inveigle starts a CatsPlay experience based on RSSI distance values from BLE.cpp. BLE now runs a server and client on the device - same for a nearby device.  Inveigle uses  BLE to see if it received a Pounce from another cat. CatsPlay experience SetUp determines the heading to the other device and plays 1 of 8 videos where the cat looks to the other cat. Run will let the user make a TOF gesture to send a Pounce method to the other device, and making no gestures after 10 seconds runs TearDown to show the cat video ending the play. In a future update BLE shares the local RTC time between devices. If one device has valid time them the other one uses the same. I'm doing this just in case the device is not tracking GPS satellites, nor using NTP over Wifi, so the watch wearer doesn't have to set the time.
@afpineda
Copy link
Contributor

afpineda commented Aug 8, 2024

My apologies to all, I cannot find a workaround for the upstream changes that have affected this repo's ability to work with arduino-esp32 core and the new C6/H2/C2 MCU's. The issue I created espressif/arduino-esp32#9835 has been relegated to a discussion, where there is essentially no visibility, so I have now closed it 😞.

Sorry to hear that.

This marks the end of my support for NimBLE on the esp32 platform for Arduino, I will continue to maintain this as best as I can for the chips that can use it, the latest Espressif devices and future one will not be supported here, unless I can find a way to get around the roadblocks.

Maybe I'm a bit suspicious. Espressif dropped BlueDroid in favor of Nimble in the ESP32-S3. Now they have their own NimBLE-Arduino implementation in ESP-Arduino which, by the way, does not work properly (at least, for me). Their implementation "features" the same bug I fixed here some time ago. I moved to the ESP32 platform because of a blocking bug in the Arduino Nano that never got attention. If Espressif does the same thing, I will quit home-made projects.

I suggest to you all... plead actually... move on from Arduino, it's great to start from, but you can do better. Use IDF directly and esp-nimble-cpp with Arduino as a component if you want to use the work here, as I will always be able to support this via wrapping the underlying NimBLE stack. Better yet use PlatformIO with idf and arduino and link esp-nimble-cpp as a lib_dep :) I'll make some instruction for this in the near term.

This is not an option for me. Let me explain. I have no problem to work with ESP-IDF, but the average DIY enthusiast will never touch a home-made project if such a tool is involved. I need to keep my projects accesible to a wide audience, which includes non-IT people.

Thank you all for the incredible support, I've put in thousands of hours to make this work and it always puts a big smile on my face to see people recommending/using and submitting issues to this repo.

We are in debpt with you. Thanks for your hard work.

Permit me to forecast. If Espressif tampers with the most widely used Bluetooth library for Arduino, their sales will not go very far.

@h2zero
Copy link
Owner Author

h2zero commented Aug 10, 2024

Thank you @afpineda for your support! I'm incredibly grateful to all of you for the support and contributions.

@lyusupov
Copy link

lyusupov commented Aug 10, 2024

For anyone who may consider it useful

I've built ArduinoBLE recently for ESP32-C6 target and Arduino Core 3.0.4. It needs to apply a minor patch: arduino-libraries/ArduinoBLE#364

My use case (HM-10 compatible BLE UART) boots and works nicely on ESP32-C6 afterwards.
The same app can work with

  • Bluedroid - all the ESP32-XX with exception of S2
  • NimBLE - ESP32, ESP32-C3 and ESP32-S3 only (Arduino Core 2.x).

Positive effect of using ArduinoBLE as a replacement for Bluedroid with ESP32-C6 and Arduino Core 3.0.4 is saving approx. 450 Kbytes of flash memory space and approx. 40 Kbytes of RAM.

@troglodisme
Copy link

For anyone who may consider it useful

I've built ArduinoBLE recently for ESP32-C6 target and Arduino Core 3.0.4. It needs to apply a minor patch: arduino-libraries/ArduinoBLE#364

My use case (HM-10 compatible BLE UART) boots and works nicely on ESP32-C6 afterwards. The same app can work with

  • Bluedroid - all the ESP32-XX with exception of S2
  • NimBLE - ESP32, ESP32-C3 and ESP32-S3 only (Arduino Core 2.x).

Positive effect of using ArduinoBLE as a replacement for Bluedroid with ESP32-C6 and Arduino Core 3.0.4 is saving approx. 450 Kbytes of flash memory space and approx. 40 Kbytes of RAM.

@lyusupov I am very interested. Did you test NimBLE on ESP32-C6 BLE without using the HM-10?
I have managed to build ArduinoBLE applying your suggested patch, but not sure how to modify NimBLE to make it work.

Could you please help me in the process? If you are available, please let me know how I can get in touch. Thanks

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

No branches or pull requests

4 participants