Go Down

Topic: Use BLE in Central Mode on arduino 101 (Read 9540 times) previous topic - next topic

cedric_grimault

Hello

I want to use BLE in Central Mode on arduino 101.
I want to realize communication between two arduino 101. (master to peripheral).
I did not find any example in Central Mode.

can you help me.

Thanks

facchinm

Hi,
as reported here , at the moment the library only handles peripheral mode.

apexee

According to this the IC handling BLE on the Curie module is the Nordic Semiconductor NRF51822, which incorporates "soft device" binaries to implement roles. If it is loaded with the S110 soft device, then the module will be unable to support anything other than peripheral/broadcast roles unless the soft device can be changed through an available interface on the Arduino. The S120, conversely, supports only central/observer roles. The S130 soft device is by far the most flexible, allowing for any of peripheral/central/broadcast/observer roles.

Any ideas on which one is currently loaded, and/or whether that will be adjustable in the future?

facchinm

I don't know which SoftDevice is loaded but I believe it's somehow "custom" and untouchable (at the moment).
But with the RTOS/Quark part being open-sourced in March it will surely become possible to flash the nRF :)

cedric_grimault

Thank you for this information.

Do you know where I can find for the information of the firmware version?

Thanks

cedric_grimault

In my system I am obliged to have a central.

Can you suggest me Arduino board, or Arduino compatible modules that can do the bleCentral ?
I'm interested also sample code.

thanks

apexee

I don't know which SoftDevice is loaded but I believe it's somehow "custom" and untouchable (at the moment).
But with the RTOS/Quark part being open-sourced in March it will surely become possible to flash the nRF :)
Thanks for the response. Here's hoping that things stay on schedule! Until then, I'm sure I can find plenty to keep me busy with peripheral mode :)

bootchk

Is there any update on this topic?

I was just quickly reading the released Arduino 101 firmware source.  Its not obvious that it describes a flash of what Nordic calls a SoftwareDevice (in flavors S110, S120, S130), which are software stacks (of less to more functionality, i.e.  from peripheral role only to multirole functionality) for Bluetooth, that at least on Nordics branded SoC modules seems to run on an ARM processor included on the Nordic brand chip.  (The SoftwareDevice might be a proprietary binary only available from Nordic?)

Its not clear to me exactly what Intel has included on the Curie.  It might be design intellectual property that Intel has manufactured into the Curie or it might be a wafer from Nordic that Intel has wire bonded into their module.  Does it include an ARM processor, or only the radio transceiver?  What is the interface? (Could the interface just be a serial device UART between the Quark and the Nordic?)

Maybe you can flash the SoftwareDevice into the flash on the Nordic part of the Curie, using JTAG?  But no help is provided in the documentation for the Arduino 101 firmware upload?

Also, just because the Arduino BLE library only supports peripheral role, it doesn't mean the Nordic software stack doesn't support more.  That is, maybe the library doesn't wrap all the functions that the Nordic stack supports.  That is, the Nordic doesn't need to be flashed, the libraries just need to be augmented.

If only peripheral mode is supported, that is very limiting.  That means you must use another system as a central to talk to your Curie peripheral devices, and you can't do thing like mesh networks with just the Curie.

Maybe I just need to keep reading, but some high-level documentation would be nice.


bootchk

See

https://github.com/01org/corelibs-arduino101/tree/master/system/libarc32_arduino101/framework/include/services/ble/ble_service_gattc_api.h

That seems to define an API for a library that runs on the ARC and interfaces to BLE (through unspecified means.)

It seems to have functions that let you implement clients of services, i.e. a "central" or "scanner" of services.  (the "c" in "gattc" seems to mean client.  The arduino library already calls the "....gatts..." for "server" functions.)

So it seems like one could augment the Arduino library to wrap the ...arc32... library and thus implement a central (or an observer that didn't actually connect to any services.)

rmandich

Has anyone been able to make the above code run on their Arduino 101? I have been unable to run the GATTC function to run and get an error stating that the BLE_services.h cannot be found. Any ideas on how to fix this?

q2dg

I think it should better open a github issue to answer these questions.

Zimbu

...
If only peripheral mode is supported, that is very limiting.  That means you must use another system as a central to talk to your Curie peripheral devices, and you can't do thing like mesh networks with just the Curie.

...


Linksprite BLE 4.0 shield (based on HM-10) can act as central and also as peripheral. See my post here.

ashhark91

Any updates on this.? I am not able to compile the code for arduino 101

wikit

In my system I am obliged to have a central.

Can you suggest me Arduino board, or Arduino compatible modules that can do the bleCentral ?
I'm interested also sample code.

thanks

I have developed a Nrf based device to connect arduino101 into the Ble network. Not sure whether this could fix your system issue.

Try to take a look at https://hackaday.io/project/16355-wikitide-program-arduino-101-visually

I am going to share all source code on github

wikit

Has anyone been able to make the above code run on their Arduino 101? I have been unable to run the GATTC function to run and get an error stating that the BLE_services.h cannot be found. Any ideas on how to fix this?
Could you share me your code? Most likely the notification is not enabled

Go Up