-
Notifications
You must be signed in to change notification settings - Fork 716
Using BLE for Heart Rate Monitors, newer belts don't work #837
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
Comments
Hi, |
Hi chegewara Thank you for your input. Unfortunately that did not compile. //Erik error message: bool connect(BLEAddress address, esp_ble_addr_type_t type = BLE_ADDR_TYPE_PUBLIC); // Connect to the remote BLE Server exit status 1 |
Sorry, i didnt remember that enum value: |
pClient->connect(pAddress,(esp_ble_addr_type_t)1) compiles nicely, but I'm not at the lab right now, I will test it in a few hours, thanks. But I didn't get why? what is BLE_ADDR_TYPE_RANDOM and what difference does it do? |
It just tells what kind of address should expect. esp-idf stack is evaluating and some options and/or functionalities are introduced, so ive been trying to follow it. |
It works.! Thank you Chegewara. I have tested several pulse belts, and for some the line "pClient->connect(pAddress);" work well and for others the line "pClient->connect(pAddress, (esp_ble_addr_type_t)1);" works I see no difference on using but neither is generic for the four different HRM devices I've tested. But for all practical purposes it works, and I am gratefull. //Erik |
|
I wonder if any of you can help. I've got the Polar H9 and with the code it finds the service, and connects, and then crashes due to a stack overflow error.
Backtrace:0x40093ed3:0x3ffd6a500x40092004:0x3ffd6a90 0x40091fb6:0xa5a5a5a5 |<-CORRUPTED any idea how I could fix this? And sorry for posting on this old link. Any help would be appreciated.. |
You have problem with your code. |
I wonder if any of you can help. I've got the Polar H9 and with the code it finds the service, and connects, and then crashes due to a stack overflow error.
Backtrace:0x40093ed3:0x3ffd6a500x40092004:0x3ffd6a90 0x40091fb6:0xa5a5a5a5 |<-CORRUPTED any idea how I could fix this? And sorry for posting on this old link. Any help would be appreciated..
sadly it happens a bit random. I'll do my best to have a closer look at it later this weekend! |
I am now in the same situation as me-chiel. I would appreciate it if you could tell me how to improve this problem.
|
I was having the same issue as @me-chiel and @imaimai17468 with Polar H10. I switched from arduino to platfrom.io and it just magically worked. |
As it turns out platformio uses outdated arduino-esp32 1.0, the issue happens when you use 2.0.0+ version of the library. |
Oh that’s interesting! Will try this out asap! Thank you so much for this tip.
I wonder if we can make it work with the newer version someday
… On 25 Dec 2021, at 23:16, FIXMBR ***@***.***> wrote:
As it turns out platformio uses outdated arduino-esp32 1.0, the issue happens when you use 2.0.0+ version of the library.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you were mentioned.
|
Just wanted to say thank you for this, this fixed the issue for me. |
Hi Neil.
First of all thank you for your library and the subsequent work you've been putting in it.
I've been using your library together with the ESP32 and a 64x32 RGB LED matrices to show my Heart rate while I work out. The idea is based on a sketch by Andreas Spiess, which I use as a test/benchmark file.
I've been using it toghter with a Polar H7 pulse belt and everything has been working like a charm, so far.
Now I've gotten two new puls pelts, the Polar H10 and the Wahoo Tickr.
Both of them show the same GATT with the Service UUID 0x180D and CharUUID 0x2A37
Neither connects to the ESP32, that is, they get to the "- Created client" step, but not the "- Connected to server" which is given by these lines of code:
BLEClient* pClient = BLEDevice::createClient();
Serial.println(" - Created client");
// Connect to the remove BLE Server.
pClient->connect(pAddress);
Serial.println(" - Connected to server");
I've tried changing the CharUUID in case the sensor had 0x2A38 or 0x2A39 instead for what ever reason, but nothing helps.
I can find both belts on my Iphone SE, and connect to them via apps like the Wahoo Fitness app, Polar Beat and Endomondo.
I can also see them via the nRF Connect app and verify that the serviceUUID infact is 0x180D
The common denominator for these belt are that they have some sort of extra capacity, primarily memory function
My questions are:
What is the difference which prohibits me from connecting the ESP32 to the pulse belt?
Which measures could be taken to make the BLE connection work in order for the belts to connect to the ESP32?
Best Regards
Erik
bluetooth_andreass_spiess.zip
The text was updated successfully, but these errors were encountered: