Reduce power consumption from network core

My company is working on a project that uses the nRF53 that needs to wirelessly send out data roughly every 3ms (via ESB). We are now at the point where power needs to be optimized.

There seems to be promise in cutting back power in the nRF53's network core (see attached screenshots). When sending, our current draw is about 2mA, with about 1.6ms each time used to send the data out. From simply disabling the network core 1 time during runtime (by using nrf_reset_network_force_off()) and keeping it off, we see it is drawing about 1mA for 0.9ms each time. So roughly speaking, it looks like 2mA - 1mA = 1mA on average is used to keep the network core operating, and the time spent executing code in network core each time is 1.6ms - 0.9ms = 0.7ms.

  • Sending normally (network core on)
  • Sending with network core off

One method we tried is to turn off network core after each time data is sent, and turn it back on before the next data. However, that is presenting with timing problems. It is also being addressed in a separate ticket/forum-post.

For this ticket, I would like suggestions for what other methods that can be used (related to the network core) in order to cut back on power and bring the average as close to that 1mA as possible. For example, ways to put the network core to a lighter sleep that allows faster wakeup? ESB options that lower current draw? Configuration options exclusive to network core that could be drawing unneeded current? I'm open to whatever suggestions come to mind. Thank you in advance!

For context, my setup is using a Windows 10 machine, nRF5340DK, PPK2, NCS v2.5.0.

Related