Summer of Pinephone: Week 14

This week I wrote an smsd which talks to atd and simply writes incoming texts to a file, whose name is the number of the sender.

At this point, besides fleshing out SMS, the only thing left for a usable system is reasonable power management. When carrying a phone around, there are certain expectations that you have in this regard:

There are a few exceptions to these rules:

So it appears that there are two distinct types of sleep that must be handled:

To help implement this behavior, I wrote a program called sleepd. sleepd decides when the phone should go to into either type of sleep. All programs that need to deal with sleep will have to talk to it. sleepd exposes a unix socket interface, over which it can be sent commands. A program can send a request to "lock" the phone awake (shallow or deep), unlock it, or set a timeout to a shallow sleep. If a program is in a shallow sleep, and no deep sleep locks are present, the phone will automatically go into a deep sleep. The next step is testing and integrating it with the rest of the system.

Regardless of my progress this week, next Sunday I will post the final installment of this series as my summer break comes to an end. Next week, I will also put up a webpage for the project and give it a proper name, because I think it's almost theoretically functional enough to use. I'd like to show off what it is currently capable of, and see if other people are interested in helping develop the system further.

Speaking of, if you are interested in helping me develop this system further and have a Pinephone, please send me an email! There are many trivial features that are missing in both the telephony stack and GUI system, and likely many trivial bugs that can easily be found and squashed as well.