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

nRF52840 Dongle using Gazell or ShockBurst

Hi,

I have a nRF52840 DK and a nRF52840 Dongle. I want to test to send binary data from one to each other using Bluetooth 5 or Nordic proprietary protocols. Are there any examples for all of those?

Thanks,

Gabriel

Parents
  • Hi

    There are plenty of examples for the nRF52840 DK, but not so much for the dongle. The two use the same chip, but you have less buttons and LED's on the dongle and no built in Segger chip for virtual comport and debugging. 

    The natural examples for sending binary data over Bluetooth would be the ble_app_uart and ble_app_uart_c examples. One sets up the proprietary UART service as a server, and the other one as a client, which means they will work together. 

    For ESB you have the esb_ptx and esb_prx examples, and for Gazell you have the gzll_ack_payload example, which provides a similar simple RF link between two nodes. 

    All of these examples will require some work to adapt to the nRF52840 dongle, since they only support the nRF52840 DK out of the box. 

    In other words dongle support doesn't have to be a factor in your choice of protocol. 

    Best regards
    Torbjørn

  • Hi Torbjørn,

    Should I program dongle with Keli as well? I am not able to do it.

    What are the differences between Bluetooth 5, ESB and Gazell?

    Thanks,

    Gabriel

  • Hi Gabriel

    To program the dongle directly from Keil you need to connect a debugger to the dongle, as the dongle doesn't contain it's own Segger programming chip. 

    To do this you would need to solder a header to P1 on the dongle, and connect the dongle to your nRF52840 DK using a 10-pin programming cable. 

    Alternatively you can use the bootloader in the dongle to flash it, but you won't be able to do this directly from Keil. Instead you need to use something like the nRF Programmer app in nRF Connect for Desktop to flash the dongle through the bootloader. 

    This works fine if you just want to test a working application, but it is not well suited for extended development where you need to change the app all the time. Debugging is not possible either. 

    ESB is the simplest of the three protocols, and just adds a small layer on top of the radio peripheral. Basically ESB defines a standard packet format, implements a simple ACK mechanism that allow you to automatically ACK any transmitted packet, and retransmit the packet if the ACK is lost.
    Because of its simplicity ESB is a very light weight protocol, and can be used to create more complex protocols if you have experience with RF protocol development. 

    Gazell is built on top of ESB, and adds frequency jumping and packet timing to the protocol, so that you can synchronize two devices and have them switch frequencies to avoid interference. Gazell also has a module for device pairing and security, called GZP. 

    Bluetooth 5 looks quite similar to ESB on the lower level, but adds a lot of complexity on top. BT5 standardizes the packet format, adds complex bonding and security functions, frequency jumping (like Gazell) and much more. 
    The key differentiator for BT5 is obviously the compatibility with thousands of phones, tablets and PC's. 

    The main drawback of BT5 is that the stack is quite large (in terms of flash consumption), and that you need to pay a license to the Bluetooth SIG to be allowed to use the BT stack in a final product. 

    Best regards
    Torbjørn

  • Hi Torbjørn,

    In terms of range and data rate, what are the differences between those 3?

    Also, how many concurrent connection would be able a gateway to have on each protocol?

    Thanks,

    Gabriel

  • Hi

    In terms of data rate ESB is the best, allowing about 85% of the on-air bitrate (so up to around 1.7Mbps at 2Mbps on air bitrate). 

    Bluetooth 5 goes up to about 1400kbps in the 2M mode. 

    The current Gazell implementation is not very optimized for throughput, and maxes out at ~200kbps bidirectionally (so 400 total if you count TX and RX). 

    Range wise all the protocols are very similar, but Bluetooth 5 allows you to use the long range mode in the nRF52840 for about 2 times additional range. Technically you could use the long range mode in ESB or Gazell also, but currently we don't support this. 

    Bluetooth maxes out at 20 concurrent connections from one device. 

    ESB and Gazell has no maximum upper limit, but you have to do some work on the application side to manage a lot of links. If you need more than 20 links then ESB is probably the best option, and you would have to design a custom synchronization scheme to manage all the different devices. 

    Best regards
    Torbjørn

Reply
  • Hi

    In terms of data rate ESB is the best, allowing about 85% of the on-air bitrate (so up to around 1.7Mbps at 2Mbps on air bitrate). 

    Bluetooth 5 goes up to about 1400kbps in the 2M mode. 

    The current Gazell implementation is not very optimized for throughput, and maxes out at ~200kbps bidirectionally (so 400 total if you count TX and RX). 

    Range wise all the protocols are very similar, but Bluetooth 5 allows you to use the long range mode in the nRF52840 for about 2 times additional range. Technically you could use the long range mode in ESB or Gazell also, but currently we don't support this. 

    Bluetooth maxes out at 20 concurrent connections from one device. 

    ESB and Gazell has no maximum upper limit, but you have to do some work on the application side to manage a lot of links. If you need more than 20 links then ESB is probably the best option, and you would have to design a custom synchronization scheme to manage all the different devices. 

    Best regards
    Torbjørn

Children
No Data
Related