I was testing the energy consumption for different energy modes when the device is configured as a Mesh Node. To do this, I simply added the line .sleep.flags = SLEEP_FLAGS_DEEP_SLEEP_ENABLE in to the gecko_configuration struct of the mesh_switch example. I disabled the LCD to get a better sense and then measured the energy consumption for deep sleep mode. However, I have seen that the average current is still around 9.75 mA. I am not connected to a device and I am not sending or receiving anything so I think no interrupt is raised during the test on application level.
I think I am doing something wrong because apparently there is not much difference between EM1 and EM2, for the example application at least. Is it because the Mesh Stack is constantly doing some bluetooth tasks? If so, how can I make the mesh nodes more energy efficient. I think 9.75mA is too high for a blutooth device.
A follow up question is whether I can use EM4-Hibernate for a mesh node or not. Is there anyway to implement something like a synchronized sleeping for the mesh nodes so that the nodes sleep and wake up together somehow?
All answers are appreciated,
Edit: Ok, so something happened which just baffled me. After a while the current consumption reduced to ~100uA level, which is awesome. As far as I can tell, the system operates on 10mA level when a message is to be sent, stays there for a while, depending on some probably user-configurable data (perhaps?), goes to 100uA level and waits for the next data sending/receiving task? Is this correct? If so, where can I learn more about this, and maybe modify it for my own project?
the current Bluetooth mesh stack (1.1.0 beta) does not include support for lower power nodes. In Bluetooth mesh, a low power (LP) node always requires a friend node that is caching the messages addressed for the LP node while the LP node is sleeping. The LP node will wake up periodically and poll the friend node to check if there are some buffered messages. Friend and low power nodes are not supported in this version of the stack.
Setting the SLEEP_FLAGS_DEEP_SLEEP_ENABLE flag does not have any effect, because the node is scanning for advertising packets all the time. In scanning mode (RX active all the time) the current consumption is around 10mA as you have measured.
The sudden drop of current consumption is not a feature designed into the node, it is not expected behavior. In fact, we are currently investigating an issue with the mesh stack that causes the radio to turn off after the node has been running for a while.
So in that case, there is no way to have a mesh node device operating on less than 10mA, is that correct? Is there any possible solution to reduce this power consumption?
I have noticed that the mesh devices do not forget their network even when they are disconnected from power and started up (i.e. power reset). Is there a way to utilize this to reduce the average current consumption? If I know that the system will not transmit any messages during a period, can I put the device in an energy mode in which the mesh stack cannot operate for instance?
Lastly, when do you plan to support friend and low power nodes?
With the current Bluetooth mesh SDK (1.1.0 beta) there is no way to reduce the node current to less than ~10mA.
As you noted, the network and application keys are not lost even if you power-cycle the node. If you know that there will be no messages targeted for your node then in principle you can turn it off (or enter low power mode such as EM2 or EM4). However, in real mesh network you would have some periodic maintenance operations such as network key refresh that needs to be applied to all nodes. Therefore shutting down individual nodes without having a friend node associacted with them is kind of an ugly hack.
>>Lastly, when do you plan to support friend and low power nodes?
We don't share roadmap details like this on the public forum.
The current version is Bluetooth mesh SDK 1.2. Are now this low power modes available or another solution to reduce the current?
is there anything new about the power consumption of a "normal" mesh node (relay or edge)?
I also have the problem, that the power consumption of 10mA is very high, and i need to reduce the current.
A friend / low power node connection is not a possibility for me.
Are you planning to reduce the power consumption in the near future? Because for me a 10mA current is not low energy any more.