Issue of BLE low power

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
huangj
Level 4
Level 4
Welcome! 25 replies posted 10 replies posted

Hi,

I have few question of Bluetooth LE low power. I can use lower connection interval and broadcast interval in slave side, and it can reduce the RF times of use. Did the MCU will went to the low power mode like pause or sleep mode without setting(For example: init =>send adv =>sleep =>wake up and send adv =>sleep....). I have try change my broadcast parameter(high duration:1s/30s; low duration:5s/300s). But the MCU isn't went to low power mode.

I have already read this thread: Sleep Deep_Sleep Explanation and Techniques

I have a question in Q&A:

>No, when advertising or in connection, the device will not go into deep sleep. However, it will go into other low power modes like sleep and pause based on the connection/ADV interval and other activities.  => I need set the module to sleep mode??  Or the stack will went to the sleep mode??

Jack

0 Likes
1 Solution
huangj
Level 4
Level 4
Welcome! 25 replies posted 10 replies posted

Hi boont,

I found the answers of two questions.

Q1:Because I change the fine timer interval,so the pulse is RF active and fine timer.

Q2:I connect the hello sensor with the smart phone + nRF connect APP,and I got error code "8". I also add "emconinfo_getDiscReason()" to connection down callback,and the result is "8". So I change the crystal warm up time to 5000 in mandatory.cgs. The hello sensor work fine with hello client and smart phone.

Jack,

View solution in original post

5 Replies
huangj
Level 4
Level 4
Welcome! 25 replies posted 10 replies posted

Hi ,

I set the broadcast interval to 1s/30s(high duration), and the connection interval is set to (1600 slot-min & 1600 slot-max). I upload the hello sensor to my custom board(BCM20737S). I measure the power consumption with my custom board. I got the power consumption with my custom board. But the power consumption is still high.

1.Broadcast mode: send adv(~20mA)

                               idle (~3.6mA)

2.Connect with my smart phone: Connection event(~26mA)

                                                     idle(~3.6mA)

So the Wiced firmware will not automatically go to SLEEP mode when the chip is idle. As I know the BLE will sleep when the chip isn't in the connection event.I already try the deep sleep mode,but the module will disconnect with the master. Any suggestion about reduce the power consumption when the chip is idle(not deep sleep)? I hope the power consumption can reduce to 20~60 uA when the module is in connected mode.

Jack

0 Likes
BoonT_56
Employee
Employee
500 likes received 250 likes received 100 likes received

You may try out the attachment included in the below thread. It basically put the hello_sensor to sleep after 30s, then do your power measurements. And it is reasonable to say that the best power saving mode would be to enter deep sleep with link off.

BCM20736S Sleep Example Firmware

0 Likes

Hi boont,

Thanks for your help. I have test the sleep example firmware with hello_client. I have few question after test.

1. Question of broadcast mode

Power on the hello_sensor =>high interval(send adv in each 20ms for 10 second long) => switch to low interval after 10 sec[my_APP_advertisement_stopped callback =>bleprofile_Discoverable(LOW_UNDIRECTED_DISCOVERABLE, my_APP_hostinfo.bdaddr ]=> Low duration(send adv in each 640ms for 20 second long). This is my understanding after reading code.

   I check this on the oscilloscope.The hello_sensor  will send adv in each 10~15 sec after 30 sec(10 sec high interval + 20 sec low interval).

   Did the hello_sensor set to other broadcast interval after 30 sec ?

廣播.jpg

2. Question of connection mode

   The hello_sensor will disconnect with the hell_client after few connection events. So the hello_client must be connect to hello_sensor again. Is it possible stay connect in low power mode?

斷線.jpg

Jack,

0 Likes
huangj
Level 4
Level 4
Welcome! 25 replies posted 10 replies posted

Hi boont,

I found the answers of two questions.

Q1:Because I change the fine timer interval,so the pulse is RF active and fine timer.

Q2:I connect the hello sensor with the smart phone + nRF connect APP,and I got error code "8". I also add "emconinfo_getDiscReason()" to connection down callback,and the result is "8". So I change the crystal warm up time to 5000 in mandatory.cgs. The hello sensor work fine with hello client and smart phone.

Jack,

BoonT_56
Employee
Employee
500 likes received 250 likes received 100 likes received

This thread verifies that your device is indeed sleeping deeply.

How to enter HIDOFF? How to detect if the request is not honored?

0 Likes