mirror of https://github.com/ARMmbed/mbed-os.git
125 lines
4.1 KiB
Markdown
125 lines
4.1 KiB
Markdown
# BlueNRG_MS
|
|
|
|
BLE API wrapper Library for BlueNRG (Bluetooth Low Energy)
|
|
|
|
Maybe a simple table like this could help:
|
|
|
|
|Name|Type|Bluetooth compliance|Status|Used in shields & boards|Link|
|
|
|-----------|----------|-----|-|-|-|
|
|
|SPBTLE-RF |Module |v4.1 |Not recommended for new designs |X-NUCLEO-IDB05A1, DISCO-L475VG-IOT01A, DISCO-L562QE | https://www.st.com/en/wireless-transceivers-mcus-and-modules/spbtle-rf.html |
|
|
|BlueNRG-M0 |Module |v4.2 |Active (included in ST's Longevity Program) |No | https://www.st.com/en/wireless-transceivers-mcus-and-modules/bluenrg-m0.html |
|
|
|BlueNRG-MS |Processor |v4.2 |Active (included in ST's Longevity Program) |X-NUCLEO-IDB05A2 (coming soon) | https://www.st.com/en/wireless-transceivers-mcus-and-modules/bluenrg-ms.html |
|
|
|
|
|
|
It uses ARM Cordio stack instead of the ST BlueNRG stack.
|
|
|
|
## History
|
|
|
|
- deprecated ST BLE port: https://github.com/ARMmbed/ble-x-nucleo-idb0xa1
|
|
- deprecated X-NUCLEO-IDB05A1 BlueNRG : https://github.com/ARMmbed/cordio-ble-x-nucleo-idb0xa1
|
|
|
|
|
|
## Boards
|
|
|
|
### X-NUCLEO-IDB05A1
|
|
|
|
Bluetooth Low Energy Nucleo Expansion Board:
|
|
|
|
https://developer.mbed.org/components/X-NUCLEO-IDB05A1-Bluetooth-Low-Energy/
|
|
|
|
### DISCO-L475VG-IOT01A
|
|
|
|
STM32L4 Discovery kit IoT node, low-power wireless, Bluetooth V4.1 module (SPBTLE-RF)
|
|
|
|
https://os.mbed.com/platforms/ST-Discovery-L475E-IOT01A/
|
|
|
|
|
|
### DISCO-L562QE
|
|
|
|
STM32L562E-DK Discovery kit with Bluetooth V4.1 low energy module and Arm Cortex-M33 with TrustZone
|
|
|
|
https://os.mbed.com/platforms/ST-Discovery-L562QE/
|
|
|
|
|
|
## Driver configuration
|
|
|
|
In order to use the BlueNRG-MS module together with other targets,
|
|
you may need to override default settings in your local `mbed_app.json` file
|
|
|
|
### ST-DISCO boards
|
|
|
|
Default settings for `DISCO-L475VG-IOT01A` and `DISCO-L562QE` are configured
|
|
|
|
### Arduino Connector Compatibility Warning
|
|
|
|
Default Arduino connection is using:
|
|
|
|
```
|
|
"SPI_MOSI": "D11",
|
|
"SPI_MISO": "D12",
|
|
"SPI_nCS": "A1",
|
|
"SPI_RESET": "D7",
|
|
"SPI_IRQ": "A0",
|
|
"SPI_SCK": "D3",
|
|
"valid-public-bd-address": false
|
|
```
|
|
|
|
X-NUCLEO-IDB05A1 is Arduino compatible with an exception: instead of using pin **D13** for the SPI clock, pin **D3** is used.
|
|
The default configuration for this library is having the SPI clock on pin **D3**.
|
|
|
|
To be fully Arduino compatible, X-NUCLEO-IDB05A1 needs a small HW patch.
|
|
|
|
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.
|
|
To this aim you need to update your local mbed_app.json file with:
|
|
|
|
```
|
|
"target_overrides": {
|
|
"XXXX": {
|
|
"bluenrg_ms.SPI_SCK": "D13"
|
|
},
|
|
```
|
|
|
|
If you use pin **D13** for the SPI clock, please be aware that on some 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-IDB05A1](https://developer.mbed.org/components/X-NUCLEO-IDB05A1-Bluetooth-Low-Energy/) page),
|
|
the patch is required for
|
|
- [ST-Nucleo-F103RB](https://developer.mbed.org/platforms/ST-Nucleo-F103RB/)
|
|
- [ST-Nucleo-F411RE](https://developer.mbed.org/platforms/ST-Nucleo-F411RE/)
|
|
- [ST-Nucleo-F446RE](https://developer.mbed.org/platforms/ST-Nucleo-F446RE/)
|
|
- [FRDM-K64F](https://developer.mbed.org/platforms/FRDM-K64F/)
|
|
|
|
### Target Configuration
|
|
|
|
To use that library, the target requires some extra configuration in the application `mbed_app.json`. In the `target_overides` section:
|
|
|
|
* BLE feature has to be enabled
|
|
|
|
```json
|
|
"target.features_add": ["BLE"]
|
|
```
|
|
|
|
* BlueNRG module has to be enabled
|
|
|
|
```json
|
|
"target.components_add": ["BlueNRG_MS"]
|
|
```
|
|
|
|
* Extra labels have to be defined to include the cordio stack and this library:
|
|
|
|
```json
|
|
"target.extra_labels_add": ["CORDIO"]
|
|
```
|
|
|
|
As an example, the target overide section for the `NUCLEO_F401RE` would be:
|
|
|
|
```json
|
|
"NUCLEO_F401RE": {
|
|
"target.features_add": ["BLE"],
|
|
"target.components_add": ["BlueNRG_MS"],
|
|
"target.extra_labels_add": ["CORDIO"]
|
|
}
|
|
```
|