|
1 | 1 | # Adafruit nRF52 Arduino Core Changelog |
2 | 2 |
|
| 3 | +## 0.20.0 |
| 4 | + |
| 5 | +This version implement comprehensive pairing with LESC and Legacy using dynamic & staic Passkey. |
| 6 | + |
| 7 | +- Support static passkey (Legacy only) |
| 8 | +- Support LESC on nRF52840 using hardware-accelerated ARM CryptoCell CC310 provided by [Adafruit_nRFCypto](https://github.com/adafruit/Adafruit_nRFCrypto), therefore nRFCrypto library must be installed |
| 9 | +- Rework bonding mechanism to use IRK for peer finding. It is advisable to run `clearbonds` example to clean up bond files of previous version |
| 10 | + |
| 11 | +### BLESecurity |
| 12 | + |
| 13 | +A new class BLESecurity (access with Bluefruit.Security) is added to handle security and pairing. |
| 14 | + |
| 15 | +- **setPIN()** to set static passkey, this will force to use Legacy Pairing |
| 16 | +- **setIOCaps()** to congiure IO capacities |
| 17 | +- **setMITM()** to enable/disable Man in The Middle protection (passkey), it is auto-enabled when using passkey |
| 18 | +- **setPairPasskeyCallback()** to register callback for displaying pairing passkey to user |
| 19 | +- **setPairCompleteCallback()** to register callback for the result of pairing procedure (succeeded or failed) |
| 20 | +- **setSecuredCallback()** to register callback which invoked when connection is secured. This happens after he pairing procedure is complete, or we re-connect with preivously bonded peer device |
| 21 | + |
| 22 | +### Other Changes |
| 23 | + |
| 24 | +**BLECentral** |
| 25 | + |
| 26 | +- will automatically use stored Long Term Key to secure connection if paired/bonded with device previously |
| 27 | + |
| 28 | +**Bluefruit** |
| 29 | + |
| 30 | +- Bluefruit::requestPairing() is removed, please use the BLEConnection::requestPairing() instead |
| 31 | +- Bluefruit::connPaired() is removed, please use BLEConnection::secure() instead |
| 32 | +- Default Device name is USB_PRODUCT if available e.g CLUE, Circuit Playground Bluefruit, Feather nRF52840 Express etc ... |
| 33 | + |
| 34 | +**BLEService** |
| 35 | + |
| 36 | +- Added setPermission() |
| 37 | + |
| 38 | +**BLEConnection** |
| 39 | + |
| 40 | +- BLEConnection::requestPairing() is now non-blocking, it will return right after sending request to peer device. Previously it is blocked until the pairing process is complete. |
| 41 | +- Added BLEConnection::secured() to check if the connection is secured/encrypted |
| 42 | +- Added BLEConnection::bonded() to check if we store Longterm Key with current peer |
| 43 | +- Removed BLEConnection:paried(), user should either use secured() or bonded() depending on the context |
| 44 | +- If bonded, getPeerAddr() will return peer public address instead of random address. |
| 45 | + |
| 46 | +**New Example Sketches** |
| 47 | + |
| 48 | +- **pairing_pin** to use static PIN for peripheral role |
| 49 | +- **pairing_passkey** to use dyanmic Passkey for pairing. On Arcada compatible device such as `CLUE` or `Circuit Playground Bluefruit`, TFT display will also be used to display passkey. |
| 50 | +- **cental_pairing** similar to pairing_passkey but for nRF running central role |
| 51 | +- **ancs_arcada** for displaying ancs on arcada such CLUE and/or CPB. |
| 52 | + |
3 | 53 | ## 0.19.0 - 2020.03.12 |
4 | 54 |
|
5 | 55 | - Add BLECharacteristic::isFixedLen() |
|
0 commit comments