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

Power consumption fine tuning

Hi everyone, Well, our device is based on NRF 51822 CFAC MCU. It’s an ibeacon based device which advertises and receives data frequently, and writes data into flash memory.
We have some power consumption issues. We need to achieve at least 200 days of autonomous device working from cr 2032 battery, so in fact you need to achieve 1 mah/24 hours energy consumption. And the main question is how to switch NRF to low power mode periodically?

Parents
  • Hi Sergey

    Generally speaking, if you need to exchange data, advertising and scanning are power hungry operations, simply because devices are not synchronized. Being connected consumes far less power, simply because both the receiving and the sending device know when transmission and reception will take place.

    If you would describe your scenario in more detail, I could give better advise.

    Update 19.4.2016

    Thanks for the explanation of your scenario. Ill share some thoughts.

    Current consumption when advertising and scanning is generally a balance between the advertiser and the scanner. In order to ensure responsiveness of two devices, the advertiser must advertise frequently, or the scanner must scan frequently. You generally put the advertiser on the power constrained device and let the scanner be on the device that has a larger battery (typically the phone) or is plugged in. As I understand your scenario, each device will need to be both advertiser and scanner, but that scenario is not very good in terms of current consumption for power constrained devices.

    If you do not need high resolution /timing accuracy, then you could set relatively long advertising interval and relatively long scanning interval, in order to save power.

    If you are not aware of it, there is an example code for the beacon kit, the beacon Firmware 1.1.1 which can be detected by IOS by setting the Manufacturing ID to 0x004C. This example is connectable, and you can connect to the beacon, modify its RSSI settings, the major and minor values, and so forth. You could experience with this example if you think it fits your scenario.

    An idea is to make each device be scannable but not connectable. This means that when advertising packet is received by the scanner, the scanner can send a scan request to the advertiser, asking for more information. The advertiser will then send a scan response packet to the scanner. The application on the advertising device can be notified when a scan request is received and the notification can contain RSSI information. This way, both the advertiser and the scanner can be aware of each others presence.

    If you only need to know if a device is present, but do not need to know how many devices are present, then making a connection could be an option, monitor the RSSI value while in a connection, and when the RSSI gets low, disconnect and start advertising. If you would need to monitor when multiple devices are present, then I would assume you need both advertising and scanning on each device.

Reply
  • Hi Sergey

    Generally speaking, if you need to exchange data, advertising and scanning are power hungry operations, simply because devices are not synchronized. Being connected consumes far less power, simply because both the receiving and the sending device know when transmission and reception will take place.

    If you would describe your scenario in more detail, I could give better advise.

    Update 19.4.2016

    Thanks for the explanation of your scenario. Ill share some thoughts.

    Current consumption when advertising and scanning is generally a balance between the advertiser and the scanner. In order to ensure responsiveness of two devices, the advertiser must advertise frequently, or the scanner must scan frequently. You generally put the advertiser on the power constrained device and let the scanner be on the device that has a larger battery (typically the phone) or is plugged in. As I understand your scenario, each device will need to be both advertiser and scanner, but that scenario is not very good in terms of current consumption for power constrained devices.

    If you do not need high resolution /timing accuracy, then you could set relatively long advertising interval and relatively long scanning interval, in order to save power.

    If you are not aware of it, there is an example code for the beacon kit, the beacon Firmware 1.1.1 which can be detected by IOS by setting the Manufacturing ID to 0x004C. This example is connectable, and you can connect to the beacon, modify its RSSI settings, the major and minor values, and so forth. You could experience with this example if you think it fits your scenario.

    An idea is to make each device be scannable but not connectable. This means that when advertising packet is received by the scanner, the scanner can send a scan request to the advertiser, asking for more information. The advertiser will then send a scan response packet to the scanner. The application on the advertising device can be notified when a scan request is received and the notification can contain RSSI information. This way, both the advertiser and the scanner can be aware of each others presence.

    If you only need to know if a device is present, but do not need to know how many devices are present, then making a connection could be an option, monitor the RSSI value while in a connection, and when the RSSI gets low, disconnect and start advertising. If you would need to monitor when multiple devices are present, then I would assume you need both advertising and scanning on each device.

Children
  • HI Stefan, We are working on special device – it counts time. Let’s say time tracker. So how it works:

    • Turn on.

    • Set identification name

    • Set time

    After this steps you are ready to go. When your tracker is in the range of other trackers approx. 5 meters, it measures time been spend together and writes to the flash. Each tracker is configured as Ibeacon and BLE device, it changes this states time to time.
    Why we need it to be configured like Ibeacon? – Because only ibeacon can wake up ios & android devices if they are in standby mode. Why we need it be configured like BLE device? - Because in ibeacon mode it’s impossible to scan data.

Related