Problems transfering image file to BLE device from app on iPhone

Hi there! Our app developer are experiencing some difficulties with Bluetooth LE and image/file transfer on iOS. The device (our product) uses the NRF52840 chip. Any help on the subject are highly appreciated! (It’s a key part of the product we’re making) Here’s the wording from the developer:

«Does anyone know how to properly send an uncompressed bitmap image from an iPhone to a low energy bluetooth device? We are trying to do this but for some reason most of the data packets that get sent are lost when we send withoutResponse. It works withResponse but this takes way too long so it’s a bad user experience»

From my understanding the withoutResponse (it worked when using the devkit as the sender) sends the image file in less than 10 seconds. When using withResponse on IOS it takes 1.5 minutes (which in our case is highly undesirable).

Thanks!

Thomas R.

Parents
  • Hi Thomas

    It is quite strange that the data is getting lost. The Bluetooth link layer should ensure that all packets go through, whether you send with or without response. 

    Are you saying it works fine to use withoutResponse when sending from a devkit, and that you get the higher speed without any data getting lost?

    If that is the case it doesn't seem like the issue is on the peripheral side. I wouldn't expect iOS to drop packets either, but possibly there is something wrong on the app side. 
    I will check with the app developers if there is some risk of overloading the buffers on the iOS side, possibly some care has to be taken in the app not to send data too fast. 

    To investigate you could always capture a Bluetooth sniffer trace, using the nRF Sniffer for instance. Then you should see pretty clearly where the data is getting lost.  

    Best regards
    Torbjørn

Reply
  • Hi Thomas

    It is quite strange that the data is getting lost. The Bluetooth link layer should ensure that all packets go through, whether you send with or without response. 

    Are you saying it works fine to use withoutResponse when sending from a devkit, and that you get the higher speed without any data getting lost?

    If that is the case it doesn't seem like the issue is on the peripheral side. I wouldn't expect iOS to drop packets either, but possibly there is something wrong on the app side. 
    I will check with the app developers if there is some risk of overloading the buffers on the iOS side, possibly some care has to be taken in the app not to send data too fast. 

    To investigate you could always capture a Bluetooth sniffer trace, using the nRF Sniffer for instance. Then you should see pretty clearly where the data is getting lost.  

    Best regards
    Torbjørn

Children
Related