adafruit / Adafruit_nRF52_Arduino

Adafruit code for the Nordic nRF52 BLE SoC on Arduino
Other
623 stars 497 forks source link

Only single service connection between two boards? #660

Closed antonbrams closed 3 years ago

antonbrams commented 3 years ago

Hi, i've following configuration:

"ItsyBItsy on the Left" {

"Itsy Bitsy on the Right" {

i share same codebase between boards, because the [1] service has the same behaviour on both sides. Only the central behaviour is enabled with #ifdef on the left side. I want to send a file to the left one, and from the left transmit to the right itsybity. So if i enable on both boards a single service, everything works. The problem is, if i enable two [1] services at once, and try to connect with [2] central service to the right half. The left size refuses to connect to more than one service of the right board. They are just both quite, no errors, console outputs, etc...

Is it a limitation of the system, or is it a bug?

hathach commented 3 years ago

have you tried the dual role example which does something similar. https://github.com/adafruit/Adafruit_nRF52_Arduino/blob/master/libraries/Bluefruit52Lib/examples/DualRoles/dual_bleuart/dual_bleuart.ino

It is possible to have multiple connections in both peripheral and central at the same time. The only problem is the code can get a bit complicated and you have to understand all the API usage.

antonbrams commented 3 years ago

Thank you for your answer. I still can't get it to work. On the way of testing i've found out that my Itsy Bitsy on the left should have same addresses in peripheral and central, otherwise it will interfere with itself and receive sent data )... anyway i've implemented a single service and put all the characteristics in it... not an intended ble design but heck it works and i move on with my project... if somebody had the same issue, then say it aloud ) thank you for your time

hathach commented 3 years ago

There is more people in support forum to help you there. And you should start with stock example then modify it. BLE is complicated

jpconstantineau commented 3 years ago

@antonbrams For my BlueMicro_BLE firmware, I have implemented a custom service for communication between halves of a split keyboard. Unfortunately, not as two services. Have you tried connecting to standard services and not custom ones? For example one custom and the battery service? Or one custom and one Blueart?

antonbrams commented 3 years ago

@antonbrams For my BlueMicro_BLE firmware, I have implemented a custom service for communication between halves of a split keyboard. Unfortunately, not as two services. Have you tried connecting to standard services and not custom ones? For example one custom and the battery service? Or one custom and one Blueart?

ah no, had no time to experiment so much. Even if it would work, the custom services that i need so much will still be unconnected )

hathach commented 3 years ago

enable debug level to 2 (via menu) could help you to understand more what activities behind the scene, and error if any