Onomondo SoftSIM low power optimization.

Hello,

We are working with Onomondo in integrating their software SIM. We have it working and sending and receiving data, but am having some issues figuring out what is causing the higher power consumption. 

It is not a hardware issue as using the DK and our own hardware with our previous software SIM firmware (Telekom nuSIM) operates in deep sleep.


Build Steps I used to replicate this based on the softsim_static_profile example using SDK and toolchain 2.9.1 change…

CONFIG_SOFTSIM_STATIC_PROFILE=* to a valid profile

Set the following in proj.conf to n to disable serial

CONFIG_SERIAL=n
CONFIG_AT_HOST_LIBRARY=n

There seems to be a constant event happening every 1.27s that wakes the CPU and ends up with the average power only getting down to 500uA.

We are aiming to have around 5uA with this setup with our other firmware. I can see that is correct and matches what we had seen on the other device in the sleep periods between those 1.27s second spikes. So I assume it is going properly to sleep in low power mode.

Here is an example serial output from when the serial is enabled.

*** Booting nRF Connect SDK v2.9.1-60d0d6c8d42d ***
*** Using Zephyr OS v3.7.99-ca954a6216c9 ***
[00:00:00.310,913] <inf> softsim_sample: SoftSIM sample started.
[00:00:00.595,825] <inf> softsim_sample: Waiting for LTE connect event.

+CEREG: 2,"05D4","019B1815",7
[00:00:08.407,379] <inf> softsim_sample: LTE cell changed: Cell ID: 26941461, Tracking area: 1492
+CSCON: 1
[00:00:08.646,423] <inf> softsim_sample: RRC mode: Connected

+CEREG: 5,"05D4","019B1815",7,,,"11100000","11100000"
[00:00:15.618,438] <inf> softsim_sample: Network registration status: Connected - roaming
[00:00:15.618,530] <inf> softsim_sample: LTE connected!

[00:00:15.624,328] <inf> softsim_sample: PSM parameter update: TAU: 3240, Active time: -1
+CSCON: 0
[00:00:28.146,301] <inf> softsim_sample: RRC mode: Idle

Interestingly also disabling CONFIG_UART_INTERRUPT_DRIVEN increases the background idle power consumption to 1mA.


We have checked with Onomondo, and they have been able to replicate and note that 1.27s is one of the shorter DRX cycles, but not sure why it enters that.

I have attached a few PPK files to look at as well, ours and Onomondo’s replicated one. I tried disabling some parts of the code to find out what is causing this. Any insights on where to look would be helpful.

ppk2.zip

Related