Battery life of L5

Hello,

I’m wondering why the L5 could stay only 14h when idle (everything off).
In this configuration, the phone should only wait on the GSM network for incoming message or call, and that’s it. I’ve a good old Nokia 302, and idle (it could receive call and SMS, but it stay on my table doing nothing), it could stay up for 5-7 days, with a battery of 1350mAh…
I understand that there is a full linux behind it, but idle should be idle…
I should be missing something, but I don’t get it.
The thing is that I can’t have a phone which die after 14hours doing nothing (when the battery is new, it should decrease as time advance…).

I will interested to hear something about it :slight_smile:

Thank !

3 Likes

We’ve been prioritizing run-time power management first as we’d rather the phone last a long time when you are actually using it. The Librem 5 doesn’t yet implement suspend at all (which is how other mobile devices get large standby times). So you can think of its idle run time like an idle laptop with a blank screen, but not suspended. Suspend is on the roadmap though and we will implement suspend at some point once we are done with our run-time optimizations.

13 Likes

Thanks for the reply :slight_smile:
I see ! that make definitely sens :slight_smile: Doing such phone is already so much work, and it look very nice !
Do you think is possible to make the phone to sleep with only the GSM chip waiting, with the ability to wake the phone when needed ?
Considering that a battery is also rather bad in term on carbon-footprint, I’m also a fan of saving it (by reducing cycles) and reduce the amount of spare to buy !
By the way, I would be interested to help developing the software to allows this functionality, for instance, even if I’ve never work on such project. Is it possible in any way ?

1 Like

The plan when we do implement suspend, is to have it wake up from triggers in the cellular modem like you would expect in other phones. If you’d like to contribute, we have a whole suite of projects at https://source.puri.sm but honestly I don’t know which specific projects would be best suited for your contribution (whether it’s the kernel or perhaps something else, I’m not sure). Maybe someone else here in the forum can point out some specific areas.

2 Likes

I will take a look to that, to find if I could help in whatever topic !
I leave the subject open for some moment if someone wish to guide me, but I will close afterward, because I got my answer.
Thanks and good we !

2 Likes

The problem is that the mainline Linux driver for the i.MX 8M currently doesn’t support suspend to RAM and we also need the BM818 modem to be able to wake up a suspended system.

First, read this to understand the problem: https://source.puri.sm/Librem5/community-wiki/-/wikis/Frequently-Asked-Questions#21-how-long-will-be-the-battery-life-of-the-librem-5-evergreen

If you know C and really want to help, then download the Linux kernel and learn how to make patches: https://kernelnewbies.org/KernelBuild

Also, get the code at: https://source.puri.sm/Librem5/linux-next

And download all the documentation on the i.MX 8M and their Linux kernel. (You need to register with NXP to get that.)

If you are serious, you probably want to join #community-librem-5:talk.puri.sm on Matrix, and talk to Guido Gunther. See: https://developer.puri.sm/Librem5/Contact/Community.html#matrix-chat-rooms
You should probably also talk to Lucas Stach at Pengutronix or one of the NXP developers who are doing most of the i.MX 8M driver development.

Good luck. You will need it.

6 Likes

I’m not sure if this is already answered somewhere, so please allow me.

It is possible to suspend Linux on the L5 like it a “normal” computer, but with the “problem” that it will not wake up upon some notification received, e.g. a text message, etc?

But will it wake up with the push on the power button or something like that (normally a push on a button on the keyboard)

yes, generic suspend to ram works on imx8 in mainline kernel however no triggers to wake (eg iphb-like wake timers, cellular events) and no polished periphery re-initialisation (eg something may not wake up properly or at all)

3 Likes

Make sense, thanks for details.

Thanks for the resources !

I’m experienced enough with C, that should not be an issue, but jumping in such repo seems difficult for me. I will give it a try, using the entry point you gave me. Also having the possibility to discuss with real people on chat should help !
At work I’m working on a robot using an I.MX6, that should help also !