From 3e79880814284ee5c673c3b3450734a673a8da43 Mon Sep 17 00:00:00 2001 From: Michael Harper Date: Tue, 29 Jan 2019 17:10:25 -0800 Subject: [PATCH] DO NOT MERGE: Supports setting PHY for extended range Adds `setPhy`/`getPhy` for setting PHY. On nRF52840, allows setting PHY to `BLE_GAP_PHY_CODED` to support extended range. This work compiles but is not yet field-tested. --- libraries/Bluefruit52Lib/src/bluefruit.cpp | 37 +++++++++++++++++++++- libraries/Bluefruit52Lib/src/bluefruit.h | 4 +++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/libraries/Bluefruit52Lib/src/bluefruit.cpp b/libraries/Bluefruit52Lib/src/bluefruit.cpp index 81eff5002..8135052e1 100644 --- a/libraries/Bluefruit52Lib/src/bluefruit.cpp +++ b/libraries/Bluefruit52Lib/src/bluefruit.cpp @@ -254,7 +254,7 @@ err_t AdafruitBluefruit::begin(uint8_t prph_count, uint8_t central_count) .accuracy = NRF_CLOCK_LF_ACCURACY_20_PPM }; #elif defined( USE_LFRC ) - nrf_clock_lf_cfg_t clock_cfg = + nrf_clock_lf_cfg_t clock_cfg = { // LXRC .source = NRF_CLOCK_LF_SRC_RC, @@ -538,6 +538,41 @@ uint16_t AdafruitBluefruit::getApperance(void) return appear; } +bool AdafruitBluefruit::setPhy(int8_t phy) +{ +#if defined(NRF52832_XXAA) +int8_t const accepted[] = { BLE_GAP_PHY_AUTO, BLE_GAP_PHY_1MBPS, BLE_GAP_PHY_2MBPS }; +#elif defined( NRF52840_XXAA) +int8_t const accepted[] = { BLE_GAP_PHY_AUTO, BLE_GAP_PHY_1MBPS, BLE_GAP_PHY_2MBPS, + BLE_GAP_PHY_CODED }; +#endif + + // Check if phy is valid value + uint32_t i; + for (i=0; i