This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nrf52832 talks to a laptop running v4.2 BT, but not v5

Folks,

I have a dev board PCA10040, which is running, I think, soft device s132. Additional load file is:

components/softdevice/s132/hex/s132_nrf52_6.1.1_softdevice.hex

I have written a BLE program with Qt on a laptop running v4.0 and v4.2 Bluetooth and had it talking and playing nicely with the nrf. However, having just got an LG Gram 17 which has BT5.0, I can no longer properly communicate with the nrf. It [Qt program] recognises the nrf, but it only reads two services not the three it actually has and the handles it reads back for my custom service is different from what I read back with older devices (including Light Blue sniffer software on my Android phone (which also runs v4.2 BT)).

Does something need to be set up differently to communicate with BT5 devices? I was under the impression I was running BT 5 code which was backwards compatible with BT4.x. Do I have that wrong?

I thought that maybe this:

    ble_version_t p_version;
    uint8_t vn;
    sd_ble_version_get( &p_version);
    vn = p_version.version_number; 

Would tell me what version I'm running, but gives valuue nothing like what I expected. ie vn is 9 and subversion b7!

I appreciate that it might be an issue with the Qt program, but I wanted to check I wasn't doing something wrong at the Nordic end.

Many thanks. Slight smile

  • Yes, BLE 5 should be backwards-compatible with 4.

    Does the nRF Connect Desktop work correctly on this new computer?

  • I didn't even know this existed. I've been Googling LE scanner for Linux and got nowt, so many thanks for that!

    Am about to try it. :)

  • You're on Linux? I have no idea about that!

    On Windows, you just install it in the normal way.

  • Yeah, Linux actually plays much nicer than Windows with LE.

    I'd never come across this method of installing before, but it's cool. You just need to make it executable and it, er, executes.

    Program installs  but does bot all unfortunately. Hit start scan and nothing happens.

    My Qt program works a lot better than this one, it sees my nrf device and connects, it just doesn't see all the services. I'm still not sure whether I'm running true LE5 software on the nrf or not. That's the big question to start with. It could be an issue with the Qt program with some slight difference between LE4.2 and 5.

    Thanks for the replies and help, much appreciated.

  • All BLE 5.0 devices are backwards compatible with 4.2 devices.

    When a BLE link is established the central and peripheral devices will query each other with a Feature Request. Each device will then tell the other device exactly what part of the BLE spec it is capable of adhering to, f.ex. 2mbps PHY or Extended MTUs. 
    Our SoftDevices will then make sure not to use a feature that is not supported by both ends of the link. 
    This leads me to believe that the issue is in the LG device or the Qt program. 


    The BLE program in nRF Connect For Desktop requires an nRF52DK attached to the computer to act as a BLE modem, as I understand it you want to use the native BT+wifi multi-modem of your PC and in that case, nRF Connect is not really suited.

    I do suggest you capture a sniffer trace of your BLE communication as this will help immensely in debugging BLE problems like this.
    See nRF Sniffer User Guide v2.1.

Related