Page 1 of 1

NimBLE port for ESP32

Posted: Tue Feb 19, 2019 12:45 pm
by jaracil

I'm working on NimBLE por for ESP32.

NimBLE is a complete BLE (Bluetooth Low Energy) lightweight and cleaner library.
It uses ~170K less program memory than bluedroid.

There is still a lot of work, but for now, the example compiles and works.

Any help is welcome :)

Re: NimBLE port for ESP32

Posted: Tue Feb 19, 2019 6:23 pm
by captain_morgan
Looks awesome! I'm just gearing up for a new project and will give this a spin for the BLE needs.

Re: NimBLE port for ESP32

Posted: Wed Feb 20, 2019 5:16 am
by ESP_Hrishi
Hi there,

Great to hear that you are working on NimBLE. As of now, we have an almost ready implementation of NimBLE stack ported onto ESP-IDF, along with a few sample examples. The features that are already tested are: Peripheral role (GATT Database Population, Advertisement, Handling Characteristic and Descriptor read/write, Notifications/Indications), Central role (Scanning, Discovery, Characteristic and Descriptor read/write, Subscription to Indications/Notifications) and BLE SMP. In this effort, we have also tried to make it cleaner and simpler by maintaining all the existing APIs of NimBLE along with a single ESP-NimBLE API for initialization.

Currently it is in the process of QA. It should be out on the Github soon.


Re: NimBLE port for ESP32

Posted: Wed Feb 20, 2019 7:40 am
by jaracil
Cool! I stop my nimble port waiting for your news.

Re: NimBLE port for ESP32

Posted: Wed Mar 13, 2019 6:14 am
by ESP_Hrishi
Hello All,

The NimBLE preview release is out on Github: ... le-preview

The sample examples can be found here: ... oth/nimble

Re: NimBLE port for ESP32

Posted: Thu Mar 14, 2019 5:43 pm
by captain_morgan
Super cool! nice work all around. I spend some time yesterday evening digging into this branch and the results are good!

First off, it's quite a bit easier to use than Bluedroid, I reduced my overall code by about half.

I was able to follow the heart rate example easily and within about 30 minutes had setup functional Battery Service.


Nice work, I look forward to this making it into mainline.

Re: NimBLE port for ESP32

Posted: Fri Mar 15, 2019 5:03 am
by ESP_Hrishi
Thanks for the report. Feel free to play around with the stack/examples and submit any feedback/issues.

Just FYI, if you didn't use this, NimBLE stack has the support for a few profiles ( ... t/services) and battery service is one of them.

You can directly call the API ble_svc_bas_init() from the example and you are done.

Re: NimBLE port for ESP32

Posted: Tue Mar 19, 2019 12:20 am
by captain_morgan
Yup, did see that and mostly what I used as my basis. Working on adding a couple more services and will report on any issues I have.

Re: NimBLE port for ESP32

Posted: Sat Mar 23, 2019 2:54 pm
by locustcox
Any idea if/when this will make it into mainline? The code size reductions would be fantastic.

Update: Sorry, didn’t notice that the dates on this topic we’re so recent. It makes me look extremely impatient! I’ve been playing around with some builds of NimBLE and have been impressed. You all did a fantastic job with the integration!