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

Dealing with syncronization of multiple centrals and peripherals with no buttons

I have a scenario where I have multiple peripherals (nRF52) and multiple centrals (cell phone). The user is going to use only one central with only one peripheral together until the central notifies the work is done. Next time there may be a different combination. Another user with another central and peripheral may walk near, so it is important one peripheral doesnt start speaking to the wrong central (should not be a problem when two are paired?) The peripheral has no buttons but it has a display.

I see two options, but looking for input on better ones

option a)

All peripherals are always advertising, user picks the advertising peripheral with the corresponding name posted on a display attached to the peripheral. When the work is done, the central unpairs with the peripheral. Pro: Easy to set up without button, con: Unnecessary power consumption

option b)

All peripherals are in deep sleep. They are awoken and then paired with the central. When the work is done, central notifies peripheral and it goes back to deep sleep. Pro: Power consumption, con: Not so easy to set up

Questions:

  1. in option a), is the current consumption too high to have peripherals continously advertising when not in use? If we don't look at external components, what expectancy on battery will we have on a 3v coin cell battery?
  2. in option b), is it possible to wake the peripheral with no button?
  • Option a)
    The power consumption when advertising does not necessarily have to be that much, but it depends on the parameters you choose. Lets say you need to advertise 10 bytes of data and you can have an advertising interval of 2 seconds, the resulting power consumption will be 7.3µA in average. With a 240mAh CR 2032 coin cell battery it can then advertise for 3 years++.

    You can play with different advertising parameters here to see the average consumption: devzone.nordicsemi.com/.../

    Option b)
    If you put the peripheral in System OFF mode, you need some sort of user action to wake it up (GPIO, LPCOMP or NFC). In SysOFF the current consumption is 300nA.

    You can also leave the peripheral in System ON IDLE, which is basically when the CPU is sleeping but other peripherals can be active. You can turn on the RTC which can wake up the chip at given intervals. System ON IDLE with RTC running is consuming 1.9uA in average.

    I'm not sure what you mean with if it is possible to wake the chip up without any button. Something must trigger the wake up. So either it has to be user initiated or it must be waken up by a timer (RTC). Did you have any other solutions in mind on how to wake up the chip?

Related