1 2 Previous Next 25 Replies Latest reply on May 1, 2017 1:09 PM by mattl_01

    Reduce BLE power consumption

    RoDe_1773541

      I'm using the BCM4343WWCD_EVB with WICKED SDK 3.5.2 and when I enable the bluetooth stack the power consumption doesn't drop below 9mA.  Calling wiced_platform_mcu_enable_powersave doesn't have any effect.  Is there a way to reduce the power consumption?  I'm going to be running this device off of batteries and 9mA is very high. 

       

      Thanks,

       

      -Rob

        • 1. Re: Reduce BLE power consumption

          What are you enabling on the BT stack? What mode are you using and what profiles and features?

           

          The power consumption and management will depend on these aspects.

          • 2. Re: Reduce BLE power consumption
            RoDe_1773541

            nasac_2167841

            I'm just using the stock ble_hello_sensor snip.

            • 3. Re: Reduce BLE power consumption
              AxLi_1746341

              nsankar wrote:

               

              What are you enabling on the BT stack? What mode are you using and what profiles and features?

               

              The power consumption and management will depend on these aspects.

              Hi nasac_2167841,

              I think the point is "Calling wiced_platform_mcu_enable_powersave doesn't have any effect."

              A similar report here:

              https://community.broadcom.com/thread/6886

              • 4. Re: Reduce BLE power consumption

                Power consumption for the solution is a combination of MCU, WLAN and BT

                 

                So just calling MCU powersave would not automatically save power. MCU powersave is working

                 

                But in order for MCU powersave to be effective both WLAN and BT device components and software components have to cooperate

                 

                And in this the mode in which the WLAN and BT are being used is important

                 

                For example if the WLAN is being used as softAP - then calling MCU powersave to enable MCU powersave will do not much because the networking thread will be active most of the time and will keep the RTOS from putting the MCU to sleep mode

                 

                Same with the BLE stack. Hence my question on the use-case is relevant and this issue doesn't have anything to do specifically with the MCU powersave API

                 

                Having said that we will take a look at why enabling the BT/BLE stack does not allow the system to go to sleep more effectively to save power.

                1 of 1 people found this helpful
                • 5. Re: Reduce BLE power consumption
                  dast_1961951

                  Also quite interested in enabling MCU deep sleep while the BLE part is advertising or connected.  I'm not sure if I've got it right that the WAKE lines on the BLE parts are provided with this in mind.   Seems like a pretty important issue with designing BLE devices as MCU power consumption can be a couple orders of magnitude larger than BLE power consumption.

                   

                  Any progress in enabling the MCU powersave in this realm?

                  • 6. Re: Reduce BLE power consumption

                    Hi nsankar,

                    Any process in BLE powersave consumption?

                    I got a Avnet BCM4343W IoT Starter Kit. Can you provide any examples or docs to reduce BLE power consumption? I try many ways to reduce BLE power consumption, but always large than 10mA!

                    Hope for your help!!

                    • 7. Re: Reduce BLE power consumption
                      AndrewY_86

                      RoDe_1773541

                      Just a recommendation, try calling wiced_platform_mcu_enable_powersave both before and after wiced_bt_stack_init.

                       

                        Boot --- wiced_platform_mcu_enable_powersave -- bt_stack_init -- wiced_platform_mcu_enable_powersave

                      ~8.4mA                        ~1mA                                         ~8.9mA                ~1.2mA

                       

                      Let me know if you observe the same results

                       

                      PeFe_666001 DavidW_16 dast_1961951

                      1 of 1 people found this helpful
                      • 8. Re: Reduce BLE power consumption
                        RoDe_1773541

                        AndrewY_86

                         

                        I've tried that and the Bluetooth stack becomes unstable.

                         

                        -Rob

                        • 9. Re: Reduce BLE power consumption
                          dast_1961951

                          I'll try this but like implied here, this seems to be circumventing the

                          power save lock system in place.  the lock is behind held by the BLE stack

                          for a reason.

                           

                          I'm currently getting back to basics trying to get the RTC wake up on the

                          stm32f412 to work.  when enabling the rtc, compiles failed so not sure when

                          this was last tested.

                          • 10. Re: Reduce BLE power consumption
                            dast_1961951

                            For STM32F4xx:

                             

                            Another barrier to very low power consumption.

                             

                            the use of the following line in powersave prevents the clock from turning off in stop mode.  This ensures you can still use JTAG to your device, but the clocks remain running which will consume several mA.

                             

                            DBGMCU->CR |= 0x03; /* Enable debug in stop mode */

                             

                            removing this will allow the clock to halt.  ***CAREFUL*** if you program a MCU that immediately goes to deep sleep it will be very difficult to program after that.

                            1 of 1 people found this helpful
                            • 11. Re: Reduce BLE power consumption
                              dast_1961951

                              Still, when BLE threads are enabled, powersave mode does not occur.

                               

                              I've checked my BT_HOST_WAKE signal on the MCU GPIO, and it seems to be asserted.  Added an edge trigger and it does not change.  So I'm not sure what is causing this but we are now hitting a strong dead end on this issue.

                               

                              We will continue to investigate on the 94343WWCD1 board as well.

                               

                              My check of the BLE library seems to reveal some wake type functions, but it's not really feasible to understand how they work and troubleshoot this issue further.

                               

                              nm -l bluetooth_low_energy.ThreadX.NetX_Duo.ARM_CM4.release.a |grep wake

                              00000001 T hcill_wake_up_bb

                              00000001 t hcilp_start_bt_wake_idle_time

                              00000001 T bte_hcisu_lp_wakeup_host

                               

                              So, as it stands, BLE (versus bluetooth) does reduce the wireless current a good bit, but with the MCU unable to sleep, this is a no go for most systems where BLE is required - "wearable" type scenarios.   And this issue has been known and outstanding for 6 months.   I hope Cypress is assigning a very high priority to this issue - as it will result in a lot of folks looking to design wearables going elsewhere.

                               

                              MichaelF_56

                              • 12. Re: Reduce BLE power consumption

                                Hi aky,

                                I try it, but can't get the same results.

                                I found that the F411 can't enter into sleep mode when use BLE.If I only run blinky, F411 can enter into sleep mode.

                                • 13. Re: Reduce BLE power consumption
                                  dast_1961951

                                  Some further notes I have found in investigating this:

                                   

                                  *  It doesn't appear that the BLE stack reads the HOST_WAKE signal at all.  it seems to read CTS from BLE device.

                                  *  BLE stack appears to have a hard-coded timer that runs all the time.  It wakes every 100 ms and probably reads CTS and handles some timing (advertisement rate changes).  Having a hard-coded timer like this is another issue in trying to maximize sleep sequences.  *  BLE stack blocks deep sleep because it's always stuck in the BLE UART wiced_uart_receive_bytes() call, which disables powersave.

                                   

                                  Quite a few high-level architecture issues that give one the idea that the BLE stack as not designed for such lower power.

                                   

                                  Looking forward to some insight as to when/if deep sleeping will be supported here.

                                  • 14. Re: Reduce BLE power consumption
                                    mattl_01

                                    dast_1961951

                                    I'm told that there is an issue with the Bluetooth stack and the UART driver.

                                    Further, I'm told that the Bluetooth stack problem was fixed in 4.1.  Has anyone on this thread tried 4.1?

                                    I'm checking the status of the UART fix.

                                     

                                    Thanks,

                                    --Matt

                                    2 of 2 people found this helpful
                                    1 2 Previous Next