BLE_API wrapper library for STMicroelectronics' BlueNRG Bluetooth Low Energy expansion board shield (Component)
Dependents: Nucleo_Zumo_BLE_IDB04A1 contest_IOT5 contest_IOT6 contest_IOT_10 ... more
Fork of X_NUCLEO_IDB0XA1 by
Arduino Connector Compatibility Warning
X-NUCLEO-IDB04A1 and X-NUCLEO-IDB05A1 are Arduino compatible with an exception: instead of using pin D13
for the SPI clock, they use pin D3
.
The default configuration for this library is having the SPI clock on pin D3
.
To be fully Arduino compatible, X-NUCLEO-IDB04A1 and X-NUCLEO-IDB05A1 need a small HW patch.
For X-NUCLEO-IDB04A1 this patch consists in removing zero resistor R10
and instead soldering zero resistor R11
.
For X-NUCLEO-IDB05A1 this patch consists in removing zero resistor R4
and instead soldering zero resistor R6
.
In case you patch your board, then you also have to configure this library to use pin D13
to drive the SPI clock (see macro IDB0XA1_D13_PATCH
in file x_nucleo_idb0xa1_targets.h
).
If you use pin D13
for the SPI clock, please be aware that on STM32 Nucleo boards you may not drive the LED, otherwise you will get a conflict: the LED on STM32 Nucleo boards is connected to pin D13
.
Referring to the current list of tested platforms (see X-NUCLEO-IDB04A1 and X-NUCLEO-IDB05A1 pages), the patch is required by ST-Nucleo-F103RB; ST-Nucleo-F302R8; ST-Nucleo-F411RE; and ST-Nucleo-F446RE.
Diff: source/BlueNRGGap.cpp
- Revision:
- 189:30fa96fa8ec4
- Parent:
- 187:2e517d3ddd71
- Child:
- 191:d22cc4715b0c
- Child:
- 201:a9bc2e8b01d7
--- a/source/BlueNRGGap.cpp Fri Nov 20 12:14:47 2015 +0100 +++ b/source/BlueNRGGap.cpp Fri Nov 20 15:13:14 2015 +0100 @@ -134,13 +134,15 @@ } case GapAdvertisingData::INCOMPLETE_LIST_16BIT_SERVICE_IDS: /**< Incomplete list of 16-bit Service IDs */ case GapAdvertisingData::COMPLETE_LIST_16BIT_SERVICE_IDS: /**< Complete list of 16-bit Service IDs */ + case GapAdvertisingData::INCOMPLETE_LIST_128BIT_SERVICE_IDS: /**< Incomplete list of 128-bit Service IDs */ + case GapAdvertisingData::COMPLETE_LIST_128BIT_SERVICE_IDS: /**< Complete list of 128-bit Service IDs */ { - PRINTF("Advertising type: INCOMPLETE_LIST_16BIT_SERVICE_IDS/COMPLETE_LIST_16BIT_SERVICE_IDS\n\r"); + PRINTF("Advertising type: INCOMPLETE_LIST SERVICE_IDS/COMPLETE_LIST SERVICE_IDS\n\r"); uint8_t buffSize = *loadPtr.getUnitAtIndex(index).getLenPtr()-1; // The total lenght should include the Data Type Value if(buffSize>UUID_BUFFER_SIZE-1) { - return BLE_ERROR_PARAM_OUT_OF_RANGE; + return BLE_ERROR_INVALID_PARAM; } servUuidlength = buffSize+1; // +1 to include the Data Type Value @@ -149,7 +151,7 @@ PRINTF("servUuidlength=%d servUuidData[0]=%d buffSize=%d\n\r", servUuidlength, servUuidData[0], buffSize); // Save the Service UUID list just after the Data Type Value field memcpy(servUuidData+1, loadPtr.getUnitAtIndex(index).getDataPtr(), buffSize); - +#ifdef DEBUG for(unsigned i=0; i<servUuidlength; i++) { PRINTF("servUuidData[%d] = 0x%x\n\r", i, servUuidData[i]); } @@ -157,7 +159,7 @@ for(unsigned i=0; i<buffSize; i++) { PRINTF("loadPtr.getUnitAtIndex(index).getDataPtr()[%d] = 0x%x\n\r", i, loadPtr.getUnitAtIndex(index).getDataPtr()[i]); } - +#endif /* DEBUG */ break; } case GapAdvertisingData::INCOMPLETE_LIST_32BIT_SERVICE_IDS: /**< Incomplete list of 32-bit Service IDs (not relevant for Bluetooth 4.0) */ @@ -170,16 +172,6 @@ PRINTF("Advertising type: COMPLETE_LIST_32BIT_SERVICE_IDS\n\r"); return BLE_ERROR_NOT_IMPLEMENTED; } - case GapAdvertisingData::INCOMPLETE_LIST_128BIT_SERVICE_IDS: /**< Incomplete list of 128-bit Service IDs */ - { - PRINTF("Advertising type: INCOMPLETE_LIST_128BIT_SERVICE_IDS\n\r"); - return BLE_ERROR_NOT_IMPLEMENTED; - } - case GapAdvertisingData::COMPLETE_LIST_128BIT_SERVICE_IDS: /**< Complete list of 128-bit Service IDs */ - { - PRINTF("Advertising type: COMPLETE_LIST_128BIT_SERVICE_IDS\n\r"); - return BLE_ERROR_NOT_IMPLEMENTED; - } case GapAdvertisingData::SHORTENED_LOCAL_NAME: /**< Shortened Local Name */ { break;