nRF Bluetooth sensor network communicating with Xbee3

I came across this in the literature:

The XBee acts as a BLE GATT server
and allows client devices, such as
a cellphone or a third-party BLE
device such as the Nordic nRF and
SiLabs BGM, to configure the XBee
or transfer data with the User Data
Relay frame using the XBee API BLE

and the features page says this:

Bluetooth® Low Energy for beaconing,
connecting to Bluetooth sensors and
local configuration using the Digi
XBee Mobile app

This is exactly what I’m trying to do: set up a few nRF52840 devices as a sensor network, having them all report to the XBee3-LTE-M module, and the XBee3 collates and forwards these messages on. I think I figured out how to do it but before I spend time developing the firmware I wanted to ask: since the Digi documentation nametions Nordic nRF in several places, has somebody already done this? I couldn’t find any open projects that seem to.

If someone knows how this works maybe you can check my thinking here. I don’t think the Xbee3 module can reach out to remote sensors, it is a GATT server but there are no corresponding GATT client functions. Therefore, for this to work, the nRF devices have to connect to the Xbee3. That’s not a bad way to do it, where the remote sensors push data to the XBee3. To do that, they need to:

  • Authenticate using the SRP protocol
  • Send API frames using 0x2D as the frame type, and indicate that the frames should be sent to micropython (destination=2).

The second part seems pretty easy, but the first part is harder. I found this library

that might do it, but it is in a section of documentation for the CC310 and I’m using an nRF52840.

Has anybody succeeded in doing this?

1 Like

“it is a GATT server but there are no corresponding GATT client functions”

This is incorrect - using MicroPython you can interact with other BLE devices (i.e. by acting as a GATT client). You can see a simplified example of that in our xbee-micropython GitHub repository here:

Documentation for the BLE APIs can be found here:

You are correct in thinking that you COULD have your nRF52840 sensor devices connect to the XBee 3 device, authenticate with the API service, and send relay frames to pass data to MicroPython. But if you have a MicroPython application running on the XBee 3 device in the first place, that application can just scan for the sensors and read the data itself.

1 Like

Oh okay, one of the reasons I didn’t know that was there is I’m on firmware 11410 which doesn’t have the digi ble library. I couldn’t upgrade without upgrading the cell firmware, so I ordered an XBIB-CU-TH board a few minutes ago. Once I receive that I should be able to upgrade everything and get the new features. Thanks for the pointer.

I’ve heard about something similar, but haven’t tried it yet, now I’m looking for real reviews to make a decision for self-use!

Yes it does work but you do need to have the firmware at a current level.