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

Battery optimized BLE beacon receiver

Hi

I am working on a product where I need a battery optimized beacon receiver - the opposite of what yo normal see with a beacon device where it is the transmitter which is battery optimized.

Because it must be able to receive a beacon from a device at a distance of 500m my plan is to use the nRF52840 and long range BLE.

I got the DK kit, but need help to some good examples.

Which example from the SDK will be the best to make a fast prototype with a battery operated long range beacon receiver, which will wake up from deep sleep every 30s listen for an advertising packet and go in sleep again?

The beacon transmitter is power supplied and can send a beacon as often as possible.

How often can an advertising packet be sent so the receiver don't have to stay awake for long time?

Thanks in Advance :)

Parents
  • Hello,

    Sorry for the late reply.

    Well. There is no example doing exactly this, but a few remarks:

    Scanning is a much more power consuming action than advertising, so it will not be as power efficient as the beacon itself. The reason for this is that while advertising, the nRF will use the radio only a few ms every advertising interval, while scanning will use the radio continuously for however long you are scanning. You have two variables, scan_interval and scan_window. Scan window is the time the radio will scan per scan interval, so if these are set equal to each other, then it will use the radio 100% of the time, for as long as you are scanning.

    What I suggest that you do is to start with one of the examples from the SDK15.2.0\examples\ble_central\ folder, e.g. the ble_app_uart_c example.

    In the file nrf_ble_scan.c there is a function called nrf_ble_scan_on_adv_report() that will be called every time an advertisement is discovered. What this example does is check the UUID whether or not the advertising device has the Nordic UART Service UUID in the advertising pack, and then send a connection request if it does. But you can use this event to check the advertising packets.

    Best regards,

    Edvin

Reply
  • Hello,

    Sorry for the late reply.

    Well. There is no example doing exactly this, but a few remarks:

    Scanning is a much more power consuming action than advertising, so it will not be as power efficient as the beacon itself. The reason for this is that while advertising, the nRF will use the radio only a few ms every advertising interval, while scanning will use the radio continuously for however long you are scanning. You have two variables, scan_interval and scan_window. Scan window is the time the radio will scan per scan interval, so if these are set equal to each other, then it will use the radio 100% of the time, for as long as you are scanning.

    What I suggest that you do is to start with one of the examples from the SDK15.2.0\examples\ble_central\ folder, e.g. the ble_app_uart_c example.

    In the file nrf_ble_scan.c there is a function called nrf_ble_scan_on_adv_report() that will be called every time an advertisement is discovered. What this example does is check the UUID whether or not the advertising device has the Nordic UART Service UUID in the advertising pack, and then send a connection request if it does. But you can use this event to check the advertising packets.

    Best regards,

    Edvin

Children
No Data
Related