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

NRF52811 help regarding power saving/sleep mode

Hey. I am new to this forum and new to programming BLE chips. I have ordered my first dev board and cant wait to get my hands on it. I have been reading a lot for the coupe of last days and there are very important things that I need to understand about this module before I proceed with my project.

The project requirements:

1. Sending data over to the server every 12hrs using GSM. The GSM module uses USART to talk between CPU and the GSM module. Since the BLE chip has one USART port available, I believe that should not be a problem right? The usart is probably used to flash the device but I can connect some external USART device to it?

2. Device will require to monitor some sensors. Ideally this needs to happen even while the device is in deep sleep mode to save as much energy as possible. I am slightly concerned whether when in power saving mode, any of the peripherals will be enabled such as SPI / I2C? If not, I guess my only option is to use a very low power sensor that is capable of generating an interrupt. I can then use that interrupt to wake up bluetooth module to do something. Am I right?

3. Device needs to be as low power as possible. My major concern is advertising. Since the device will be in sleep mode most of the time to save as much current. It also needs to be able to advertise and accept incoming connection. The user may want to connect to the device at any time and monitor real time status of the device through the android app or simmilar. 

I have read multiple other simmilar threads about the advertising and sleep mode, and from what I understand that is not possible, but could not find any alternative suggestions? Can someone confrim whether is possible to wait for incoming BLE connection/advertising while saving power? What is the most convenient approach to do so?

I really appreciate any help! Thanks in advance

Parents
  • Hi,

     1)

    The GSM module uses USART to talk between CPU and the GSM module.

    When you say CPU, I assume you mean the nRF52 device ?

    Also, if you are looking for a low-power LTE-M/NB-IoT modem, then I recommend checking out our nRF9160.

    Since the BLE chip has one USART port available, I believe that should not be a problem right?

     Correct, that should not be an issue. The nRF52811 has 1 UART(E). If you need more, then you can upgrade to the nRF52833 or the nRF52840, that have 2 UART(E).

    The usart is probably used to flash the device but I can connect some external USART device to it?

     With a debugger(e.g. Segger Jlink) you can flash the device using the SWD interface. If you need to do a DFU(device firmware update), then our SDK provides you with a bootloader that supports multiple transport layers, e.g. Bluetooth or serial(UART, or USB CDC ACM if you select a nRF5 device with built-in USB). And yes, you can connect the UART(E) to an external device/UART.

    2)

    You can read about the different system power modes at this link.

    I am slightly concerned whether when in power saving mode, any of the peripherals will be enabled such as SPI / I2C?

     In System OFF mode, they will be disabled (since the system’s core functionality is powered down in this mode).In System ON mode, you turn these serial peripherals ON or OFF as you want.

    3)

    It's a ultra low-power radio, depending on how your configuration is, you can do connectable adverting and still get average power consumption well below 10µA. With a long advertising interval, and low tx power configuration, you can even get it down to ~3 µA. Please have a look at our Online Power Profiler for BLE at this link.

  • Thanks a lot for the response. That was very helpful understanding more about the funcionality of your device. Also, I would like to ask one more question if possible:

    1. For my application, I have mentioned that I need to be able to connect to the bluetooth at any time and also monitor some other sensors. I guess that would mean that the System OFF mode is not possible here? The most viable choice would be System ON working in low power sub system mode? 

    Also, could you explain me a little bit about long advertising. If I select long adveretising such as 5 seconds intervals, would that mean that if I check on my mobile phone nearby bluetooth devices, I would see the device appearing and dissapearing or 5 seconds? If so, how will I be able to reliably connect to it? Im not fully understanding it yet.

    Thanks in advance

Reply
  • Thanks a lot for the response. That was very helpful understanding more about the funcionality of your device. Also, I would like to ask one more question if possible:

    1. For my application, I have mentioned that I need to be able to connect to the bluetooth at any time and also monitor some other sensors. I guess that would mean that the System OFF mode is not possible here? The most viable choice would be System ON working in low power sub system mode? 

    Also, could you explain me a little bit about long advertising. If I select long adveretising such as 5 seconds intervals, would that mean that if I check on my mobile phone nearby bluetooth devices, I would see the device appearing and dissapearing or 5 seconds? If so, how will I be able to reliably connect to it? Im not fully understanding it yet.

    Thanks in advance

Children
  • zazas321 said:
    I guess that would mean that the System OFF mode is not possible here?

     Correct.

    zazas321 said:
    The most viable choice would be System ON working in low power sub system mode? 

     Correct.

    zazas321 said:
    I would see the device appearing and dissapearing or 5 seconds?

     Correct.

    zazas321 said:
    If so, how will I be able to reliably connect to it?

    You will be able to connect to it, but it will take longer time to discover and connect to it, since it only advertises every 5 seconds. It's a trade-off .You can easily test this yourself, take for example the ble_app_blinky example in the nRF5 SDK, set the advertising interval to 5 seconds, and try connecting to it using your phone with the nRF Connect for mobile app.

Related