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

Is it possible to run gazelle Host and BLE concurrently?

Hi everyone, 

I have a device which can be a gzll host or BLE, depends on what software inside, and it is based on 51822. And now, I would like to combine this two function in to a new hardware which is based on 52832. I have searched some solution on DevZone and almost all I can find is BLE + gzll device, and based on nrf51. So I am wondering if it is implementable, if so how could I implement this kind of application

Can anyone please help me with this question

Parents
  • Hi Johnson, 

    Do you need to have both protocol concurrently ? Or it's ok to disconnect and switch between them ?

    It's easier if you have gazel device + BLE concurrently than to have Gazel host + BLE. The reason is that the host has more timing requirement than the device. The way we have now with the concurrent BLE Gazel example is that we reinitialize Gazel device whenever we have a timeslot from the softdevice. This is OK for Gazel device but not the best for Gazel host as it will make all Gazell devices connected to it to be unsync (for example with the channel hopping).

    In short, it's possible to have Gazel host + BLE concurrently but it will affect the Gazel performance significantly if the BLE activity is more frequent. 

  • Hi Hung Bui,

    I need both protocol concurrently, which connected to the smartphone and gazel device at the same time.

    Following is what I'd like to do:

    first of all, i'd like to wait for the signal from smartphone and gazel devices without disconnect to each of them, and then

    1.when there is some signal from smartphone do the thing what smartphone ask to do,

    2.when there is some signal from the gazel device to the thing what the device ask to do,

    is that possible to implement without disconnection?

    Thanks,

    Johnson

  • Hi Johnson, 

    As mentioned, when using Gazel Host at the same time with BLE, you may run into issue that Gazel host need to restart every time it gets the timeslot from the softdevice and this may result in packet loss and longer sync time. 
    Is gazel obligated , can you use something else, such as Enhanced Shock Burst ? 

    Our Gazel expert is still on vacation, i will double check with him if there is any solution when he is back next week.  

  • Hi Hung Bui,

    The result which you mentioned is not so good for my application.

    I will consider about what you had suggested.

    Also, I can wait for the expert if there is any solution that he can provide. 

    Thanks for your reply

    Johnson

  • Hi Johnson

    I will take over this case since I have done more work with Gazell in the past. 

    I don't really have much more to provide unfortunately. 

    We don't have any examples showing how to do concurrent Gazell host and BLE. As Hung mentioned it is quite easy to do one or the other and switch back and forth, but running both at the same time is much more complicated. 

    The Gazell host needs to switch the RF channel at a constant rate, set by the Gazell RX period, and this has to happen independently of any BLE activity. The Gazell device can operate much more asynchronously, and as such it is easier to implement inside the timeslot API.

    Best regards
    Torbjørn

Reply
  • Hi Johnson

    I will take over this case since I have done more work with Gazell in the past. 

    I don't really have much more to provide unfortunately. 

    We don't have any examples showing how to do concurrent Gazell host and BLE. As Hung mentioned it is quite easy to do one or the other and switch back and forth, but running both at the same time is much more complicated. 

    The Gazell host needs to switch the RF channel at a constant rate, set by the Gazell RX period, and this has to happen independently of any BLE activity. The Gazell device can operate much more asynchronously, and as such it is easier to implement inside the timeslot API.

    Best regards
    Torbjørn

Children
  • Hi Torbjørn

    After few weeks, my requirement has been changed

    Gzll Host and BLE will wait for the data from the smartphone/Gzlldevice at the same time
    after recieve the data no matter it's from smartphone/Gzlldevice, the other protocal will be disabled
    until the data stop sending from smartphone/Gzlldevice, and my device start to wait for the data again

    how's this kind of application, is it easier to implement?

  • Hi 

    The application you describe should be easier to run reliably, without much packet loss. If you can run Gazell host and BLE side by side without sending much data, and then switch off one of them when you start to receive packets, you should ensure good RF performance. 

    In terms of implementation it is not much easier unfortunately. You will still have to implement the Gazell host running on top of the timeslot API from scratch, since we don't have any examples showing you how to do this. 

    I am also not sure how well suited the current Gazell library is to running through timeslots in host mode, as this has not been properly tested. 
    Since Gazell is provided as a library only it is not possible to change the low level behavior of Gazell to make it more suitable to use in timeslots. 

    Best regards
    Torbjørn

  • Hi Torbjørn

    OK, seem I have lot of work to do 
    by the way, which example would you suggest me to do this application?

    "multiprotocal/ble_app_gzll" and add timeslot  or
    "ble_peripheral/ble_app_uart" and ad timeslot and gzll or other example?

    Adding gzll to ble_peripheral/ble_app_uart isn't going well to me.

    hope you can give me some suggestions.

    thanks

    Johnson

  • Hi Johnson

    I believe the multiprotocol/ble_app_gzll example would be the best place to start. 

    Then all the right files will be included, and the main change is to add timeslots and to try running the two protocols semi concurrently. 

    I will have to do some investigation on my end to see if running a Gazell host in a timeslot is at all possible. 

    If this can't be done then the only option is to use the ESB stack, and implement Gazell on top of ESB. 

    Best regards
    Torbjørn

  • Hi Torbjørn

    I have done the ble part of my application  - adding nus service into "multiprotocal/ble_app_gzll" and it work fine now

    but how do i change it from gazell device to gazell host?

    it seems it's not so easy to do it only if i import nrf_gzp.c, nrf_gzp_host.c, and nrf_gzp_host_nrf5x.c to the project, but after import the c files it will shows the error message when i try to download it to the demo board. see this question.

    Or in you opinion, how should i do for it of the gazell part?

Related