cancel
Showing results for 
Search instead for 
Did you mean: 

How to turn off bluetooth radio?

G5658
Associate II

My application only needs to send data once every few minutes during which time i can save power by turning off the radio. I don't see any examples that do it, they don't even have a deinit function.

1 ACCEPTED SOLUTION

Accepted Solutions
Christophe Arnal
ST Employee

​Hello,

As long as the radio does not either receive or transmit, the CPU2 subsystem is in its lower low power mode possible and you have nothing to do. Any attempts to "deinit" will not save any power.

However, if you are in a "connected" use case and your application may not have any data to be exchanged for a long time, you may just disconnect from the remote and reconnect when needed.

Keep in mind that the procedure to "connect" a remote takes some time and some negociations with the remote so this should be done only in case you are not transmitting for a long time, otherwise you will lose all benefits due to the "reconnect" procedure.

There is no real recommendation that could be done, you will have to make your own experiment depending on your application and check the result on the power consumption. Either you :

  • Keep connected with long interval and you send data only when you internal cache is full
  • You disconnect, wait for your cache to be full and reconnect.

Regards.

View solution in original post

3 REPLIES 3
Christophe Arnal
ST Employee

​Hello,

The STM32WB is a dual core product and the application running on the CPU1 should be implemented in the same way as this would have been done for any STM32 single core product. The only exception is that there are some semaphores to check when entering/exiting low power mode on CPU1 to not collide with the CPU2 when the system clock needs to be reconfigured.

That means that you have nothing to do to control the low power mode of the CPU2. The CPU2 subsystem enters on its own the lowest low power mode possible between radio event.

Any attemps to "deinit" the radio bewteen event will not save any power.

Regards.

G5658
Associate II

I was thinking of buffering up data in RAM and then push it out once full. If i only need to use the radio once every few minutes or so wouldn't it save power by turning off the radio and only turning it on when needed. With an Android phone as master i could not use a connection interval higher than 799 nor does it accept a slave latency. Every minute it will end up making 60 connections but if i turned off radio, i could save all that power.

Christophe Arnal
ST Employee

​Hello,

As long as the radio does not either receive or transmit, the CPU2 subsystem is in its lower low power mode possible and you have nothing to do. Any attempts to "deinit" will not save any power.

However, if you are in a "connected" use case and your application may not have any data to be exchanged for a long time, you may just disconnect from the remote and reconnect when needed.

Keep in mind that the procedure to "connect" a remote takes some time and some negociations with the remote so this should be done only in case you are not transmitting for a long time, otherwise you will lose all benefits due to the "reconnect" procedure.

There is no real recommendation that could be done, you will have to make your own experiment depending on your application and check the result on the power consumption. Either you :

  • Keep connected with long interval and you send data only when you internal cache is full
  • You disconnect, wait for your cache to be full and reconnect.

Regards.