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.
Revision 210:08c4c85ca679, committed 2016-01-14
- Comitter:
- Andrea Palmieri
- Date:
- Thu Jan 14 10:50:59 2016 +0100
- Parent:
- 208:0ed200002250
- Child:
- 211:5a6929d36db2
- Commit message:
- Update Address types according to ARMmbed/ble v2.5.0
Signed-off-by: Andrea Palmieri <andrea.palmieri@st.com>
Changed in this revision
--- a/module.json Tue Dec 15 12:23:30 2015 +0100 +++ b/module.json Thu Jan 14 10:50:59 2016 +0100 @@ -32,6 +32,6 @@ ], "dependencies": { "mbed-drivers": ">=0.11.3", - "ble": "^2.1.12" + "ble": "^2.5.0" } }
--- a/source/BlueNRGGap.cpp Tue Dec 15 12:23:30 2015 +0100 +++ b/source/BlueNRGGap.cpp Thu Jan 14 10:50:59 2016 +0100 @@ -706,7 +706,7 @@ /**************************************************************************/ ble_error_t BlueNRGGap::setAddress(AddressType_t type, const Address_t address) { - if (type > ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE) { + if (type > BLEProtocol::AddressType::RANDOM_PRIVATE_NON_RESOLVABLE) { return BLE_ERROR_PARAM_OUT_OF_RANGE; }
--- a/source/platform/btle.cpp Tue Dec 15 12:23:30 2015 +0100 +++ b/source/platform/btle.cpp Thu Jan 14 10:50:59 2016 +0100 @@ -87,7 +87,7 @@ uint8_t bnrg_expansion_board = IDB04A1; /* at startup, suppose the X-NUCLEO-IDB04A1 is used */ Gap::Address_t bleAddr; -Gap::AddressType_t addr_type = Gap::ADDR_TYPE_PUBLIC; +Gap::AddressType_t addr_type = BLEProtocol::AddressType::PUBLIC; /**************************************************************************/ /*! @@ -149,7 +149,7 @@ } else { const Gap::Address_t BLE_address_BE = {0xFD,0x66,0x05,0x13,0xBE,0xBA}; - BlueNRGGap::getInstance().setAddress(Gap::ADDR_TYPE_PUBLIC, BLE_address_BE); + BlueNRGGap::getInstance().setAddress(BLEProtocol::AddressType::PUBLIC, BLE_address_BE); ret = aci_hal_write_config_data(CONFIG_DATA_PUBADDR_OFFSET, CONFIG_DATA_PUBADDR_LEN, @@ -337,7 +337,7 @@ case EVT_LE_CONN_COMPLETE: { PRINTF("EVT_LE_CONN_COMPLETE\n"); - Gap::AddressType_t peerAddrType = Gap::ADDR_TYPE_PUBLIC; + Gap::AddressType_t peerAddrType = BLEProtocol::AddressType::PUBLIC; Gap::Role_t role; evt_le_connection_complete *cc = (evt_le_connection_complete *)evt->data; @@ -347,16 +347,16 @@ BlueNRGGap::getInstance().getPreferredConnectionParams(&connectionParams); switch (cc->peer_bdaddr_type) { case PUBLIC_ADDR: - peerAddrType = Gap::ADDR_TYPE_PUBLIC; + peerAddrType = BLEProtocol::AddressType::PUBLIC; break; case STATIC_RANDOM_ADDR: - peerAddrType = Gap::ADDR_TYPE_RANDOM_STATIC; + peerAddrType = BLEProtocol::AddressType::RANDOM_STATIC; break; case RESOLVABLE_PRIVATE_ADDR: - peerAddrType = Gap::ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE; + peerAddrType = BLEProtocol::AddressType::RANDOM_PRIVATE_RESOLVABLE; break; case NON_RESOLVABLE_PRIVATE_ADDR: - peerAddrType = Gap::ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE; + peerAddrType = BLEProtocol::AddressType::RANDOM_PRIVATE_NON_RESOLVABLE; break; } //PRINTF("EVT_LE_CONN_COMPLETE LL role=%d\n", cc->role);
--- a/x-nucleo-idb0xa1/BlueNRGGap.h Tue Dec 15 12:23:30 2015 +0100 +++ b/x-nucleo-idb0xa1/BlueNRGGap.h Thu Jan 14 10:50:59 2016 +0100 @@ -178,7 +178,7 @@ BlueNRGGap() { m_connectionHandle = BLE_CONN_HANDLE_INVALID; - addr_type = Gap::ADDR_TYPE_PUBLIC; + addr_type = BLEProtocol::AddressType::PUBLIC; isSetAddress = false; btle_reinited = false; DeviceName = NULL;