9 years, 8 months ago.

This cannot connect to nRF Toolbox

On the BLE_Health_Thermometer_blog:

I can make it connect with nRF Master control but NOT with nRF Toolbox. I noticed that the advertising flags is limited to BREDR_NOT_SUPPORTED but does not involved LE_GENERAL_DISCOVERABLE or LE_LIMITED_DISCOVERABLE.

Thus no PC neither phones can't see this device. (I think this is the reason)

I tried to include LE_GENERAL_DISCOVERABLE but did not succeed in the way the advertising is formated. I get always compiling error for the type. Maybe I am not an expert with C++ and probably failed rewriting the code?

Anyone has a clue on this?

How can we modified the line: "advData.addFlags(GapAdvertisingData::BREDR_NOT_SUPPORTED);"

in: "advData.addFlags(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE);"

Thanks if someone could help. jean-marc

Question relating to:

Since no one answer:

I have a solution.

I can already suspect that the BLE_API_Native seems to be limitated compare to the BLE_API regarding the advertising.

All example compiled with BLE_API show connect and bond correctly.

I also received a keyfob from Texas that I did not program and can be seen in any media.

Beside this below is my solution:

I made some change to GapAdvertisingData.h (which I hate but could not find a better solution) and in the GapAdvertisingData.cpp

The compiler did not like the type Flags and wanted an uint_8.

I am not a C++ super expert so it took me some time to understand the problem.

in the file GapAdvertisingData.h made the following changes:

line cancelled-> ble_error_t addFlags(Flags flag = LE_GENERAL_DISCOVERABLE);

replaced by this line -> ble_error_t addFlags(uint8_t flag = LE_GENERAL_DISCOVERABLE);

then in the main{} modified this line:

line canceled -> advData.addFlags(GapAdvertisingData::BREDR_NOT_SUPPORTED);

replaced by the line below->

advData.addFlags(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE);

Need the following change also in GapAdvertisingData.cpp

ble_error_t GapAdvertisingData::addFlags(uint8_t flag) {

return addData(GapAdvertisingData::FLAGS, (uint8_t*)&flag, 1);

}

Basically the declaration uint_8 let us change the flags and make it discoverable.

Even if it was set by default it was not advertising it as such.

Finally I could make this work with the nRFToolbox and can see it from my PC and Phones WP and Android.

I suspect this to be a "soft" bug, but if someone could add some comment?

Jean-Marc

posted by jean-marc jobin 10 Apr 2015

1 Answer

9 years, 8 months ago.

Answer is above, sorry i did not use this forum correctly.


Assigned to jean-marc jobin 9 years, 8 months ago.

This means that the question has been accepted and is being worked on.