0

nRF 52840 express pairing
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

nRF 52840 express pairing

by natebc on Thu May 13, 2021 6:50 pm

Hi, I've been looking at the example sketches for paring using the express as a central to connect to a peripheral. In the example, it connects to a device that is advertising the BLEUart service. Can I only connect to devices that are advertising the BLEUart service? Would it be possible to pair to a tile like device similar to how my phone would pair to one?

natebc
 
Posts: 8
Joined: Wed May 12, 2021 2:21 pm

Re: nRF 52840 express pairing

by adafruit_support_mike on Fri May 14, 2021 2:18 am

The Arduino library comes with a folder of example sketches, one of which configures the nRF52840 as a central device:

https://github.com/adafruit/Adafruit_nR ... b/examples

natebc wrote:Can I only connect to devices that are advertising the BLEUart service?

No, there's no limit on peripherals it can see. Pairing is the same for all BLE peripherals.

adafruit_support_mike
 
Posts: 62788
Joined: Thu Feb 11, 2010 2:51 pm

Re: nRF 52840 express pairing

by natebc on Fri May 14, 2021 12:13 pm

Thank you, I just wanted to make sure there was no limitation. It appears my peripheral device is Bluetooth 4.2 and it seems like I can pair as long as I'm not using any of the Bluetooth 5 features (2x range, 4x speed, LE advertising extension). I can get the Itsy to connect to the peripheral but I can't get past the conn->requestPairing(); The peripheral ends up disconnecting from the Itsy after some time. I'm trying to see if I can change the settings of the central to make sure it's not using any of the Bluetooth 5 features but I'm not seeing anything in the library that indicates how to do that quite yet.

But maybe it is already set to the correct PHY "_phy = BLE_GAP_PHY_1MBPS; "

Code: Select all | TOGGLE FULL SIZE
BLEConnection::BLEConnection(uint16_t conn_hdl, ble_gap_evt_connected_t const* evt_connected, uint8_t hvn_qsize, uint8_t wrcmd_qsize)
{
  _conn_hdl = conn_hdl;
  _connected = true;

  _mtu = BLE_GATT_ATT_MTU_DEFAULT;
  _data_length = BLE_GATT_ATT_MTU_DEFAULT + 4; // 27

  _phy = BLE_GAP_PHY_1MBPS;

  _conn_interval = evt_connected->conn_params.max_conn_interval;
  _slave_latency = evt_connected->conn_params.slave_latency;
  _sup_timeout = evt_connected->conn_params.conn_sup_timeout;
  _peer_addr = evt_connected->peer_addr;
  _role = evt_connected->role;

  _hvn_sem   = xSemaphoreCreateCounting(hvn_qsize, hvn_qsize);
  _wrcmd_sem = xSemaphoreCreateCounting(wrcmd_qsize, wrcmd_qsize);

  _sec_mode.sm = _sec_mode.lv = 1; // default to open

  _bonded = false;
  _hvc_sem = NULL;
  _hvc_received = false;

  _ediv = 0xFFFF;
}

natebc
 
Posts: 8
Joined: Wed May 12, 2021 2:21 pm

Re: nRF 52840 express pairing

by adafruit_support_mike on Fri May 14, 2021 9:31 pm

As far as I know, the nRF52840 predates BT-5.0, so there's nothing to disable. It doesn't know the additional features exist.

adafruit_support_mike
 
Posts: 62788
Joined: Thu Feb 11, 2010 2:51 pm

Re: nRF 52840 express pairing

by natebc on Sat May 15, 2021 12:17 am

https://www.nordicsemi.com/Products/Low ... s/nRF52840

Maybe i'm misunderstanding

"The nRF52840 is fully multiprotocol capable with full protocol concurrency. It has protocol support for Bluetooth 5, Bluetooth mesh, Thread, Zigbee, 802.15.4, ANT and 2.4 GHz proprietary stacks."

natebc
 
Posts: 8
Joined: Wed May 12, 2021 2:21 pm

Re: nRF 52840 express pairing

by natebc on Sat May 15, 2021 9:33 am

I should also say this is a non-Nordic device. https://www.amazon.com/dp/B07WWSZRVL?ps ... ct_details
from what I can tell, I'll need to use some sort of BLE sniffer to monitor how this makes a successful connection to my phone and try to emulate that.

natebc
 
Posts: 8
Joined: Wed May 12, 2021 2:21 pm

Re: nRF 52840 express pairing

by adafruit_support_mike on Sat May 15, 2021 6:40 pm

natebc wrote:The nRF52840 is fully multiprotocol capable with full protocol concurrency. It has protocol support for Bluetooth 5, Bluetooth mesh, Thread, Zigbee, 802.15.4, ANT and 2.4 GHz proprietary stacks."

Hmm.. either they updated the description, or I’m getting my history wrong. IIRC, BT-5 was still a work in progress when we started carrying the nRF52840. I’ll have to read the current dox to see where things stand now.

A strong third option is marketing-speak. The BT Working Group is notoriously loose about its definitions.. ‘High Speed Bluetooth’ is really WiFi whose connection is negotiated with a BT transaction.

natebc wrote:from what I can tell, I'll need to use some sort of BLE sniffer to monitor how this makes a successful connection to my phone and try to emulate that.

Yeah, that’s a good idea. There’s plenty of room for variation.

We do have a couple of BLE sniffers if you’re interested:

https://www.adafruit.com/?q=ble+sniffer&sort=BestMatch

and the tutorial explains the limits and capabilities:

https://learn.adafruit.com/introducing- ... le-sniffer

adafruit_support_mike
 
Posts: 62788
Joined: Thu Feb 11, 2010 2:51 pm

Please be positive and constructive with your questions and comments.