I'm attempting building a smart phone out of a Raspberry Pi 3. I don't care to be locked into Apple's iOS or Google's Android. I also don't care to root a phone (thus exploiting a vulnerability) in order to fully use it. I want a general purpose computer that can be used as a phone. So. I figure I'll try to make one.
This post will establish the Design Goals of this project. I'll use subsequent Project Journals to document progress. Once certain benchmarks are made, I'll release a prototype specification document along with an alpha version of the operating system.
This is a living document. So I might come back and tweak things. Once certain benchmarks have been made, I'll move this to a proper wiki.
We'll see how it goes!
High Level - I'm building a Free and Open Sourced Software and Hardware (FOSSH) smart phone. It'll be fully unlocked with root access to the operating system accessible via secured means.
The hardware will be modular and based on various Single Board Computers (SBCs). While the Raspberry Pi is not fully open sourced by default, I'll be focusing on it for the prototype as there is such a large community and set of documentation around it. Later, I'll look to other boards, such as the BeagleBoard lineup or the Pine/Rock64's.
The operating system will be based on Linux general purpose operating systems configured towards a small touchscreen, such as Ubuntu Touch or KDE Plasma Mobile. I'm steering away from Google's Android Open Source Project (AOSP) or derivatives (such as Replicant).
The Apps will be apps already built for Linux systems, such as Ubuntu Touch and KDE Plasma Mobile apps. I don't intend to program the apps myself or create a specific ecosystem just for this phone, rather I intend to integrate other projects into this phone.
The following Design Goals will govern the direction of this project.
- Off The Shelf (OTS) Hardware
- No custom made Printed Circuit Boards (PCBs).
- Readily available via online purchasing.
- Hardware is currently maintained and manufactured at scale by vendors.
- Open Sourced Hardware
- Ideally, all hardware will be open sourced.
- A default build of the Raspberry Pi will be used initially due to community and documentation resources.
- Long term goals are to move to a fully open source SBCs.
- Considerations: There is currently no open sourced baseband solutions available. So full open source hardware is not currently achievable. If this changes, focus will be on integrating an open sourced baseband into the build.
- Modular Hardware Design Principals
- Long term goal is to have support for various SBCs.
- Build should support adding and subtracting various hardware elements such as GPS, camera, batteries, microphones, speakers, physical keyboards, etc.
- Support various 3D Printed and Injection Molded cases.
- Support hard switches to turn on and off certain elements such as camera, microphone, battery, etc.
- General Purpose Linux Operating System
- Port a separate operating system, such as Ubuntu Touch (
notnow UBPorts) or KDE Plamsa Mobile, if possible.
- If not possible, build as much off of the officially supported Raspbian distro and add dependencies for Ubuntu Touch or KDE Plasma Mobile Apps where required.
- System should allow root access via secured means (e.g. sudo).
- Port a separate operating system, such as Ubuntu Touch (
- A separate App ecosystem should be supported, such as Ubuntu Touch or KDE Plasma Mobile Apps.
- There should be no app ecosystem specific to this project. This project should integrate other ecosystems into it.
- Phone will connect to 4G / LTE Cellular Network utilizing cellular baseband and third party cellular network provider SIM card.
- Phone will make calls over 4G / LTE network utilizing a third party cellular network provider SIM card and phone number.
- Phone will make SMS text messages over 4G / LTE network utilizing a third party cellular network provider SIM card and phone number.
- Phone will have WiFi and Bluetooth capabilities.
- Completed:Benchmark 1 - Show proof of concept by creating a WiFi tablet.
- Apps are hardloaded onto system.
- Configuration is around a 5" touchscreen.
- Benchmark 2 - Connect WiFi tablet to 4G / LTE baseband and send / receive data over 4G / LTE network.
- Benchmark 3 - Send SMS and make Voice Calls over 4G / LTE network utilizing command line applications.
- Benchmark 4 - Send SMS and make Voice Calls over 4G / LTE network utilizing apps.
- Benchmark 5 - Release prototype specifications and alpha version of operating system.
- Benchmark 6 - Polish and build towards beta release.
- I have a full time job and a family with small children. I do not have much time to devote to this project, but it is a priority of mine. I currently budget about 8 hours a week over the weekend to this project.
- I am a hacker. I am not a developer. I'm good at breaking things. I'm not good at building things. I'll have to learn as I go.
- I don't know how to do online official collaboration very well. I download stuff off of github (git clone ftw) but I'm not sure how to how to merge commits and push / pull or something yet. I'll learn.
- I do not have to be the person who does this first. As long as the design goals are met, I'll integrate what others have done into this project. I'm doing this as there isn't a current viable solution available and similar projects don't quite meet my design goals. If you want to take some or all of this and run with it, I'll delegate, integrate, and congratulate!
- If you'd like to contribute, let me know! The best way to get in touch with me is via Mastodon or Twitter (See the about page).
- If you are in the Dallas / Ft Worth area, let me know. We can meet up physically and hack out things. There are currently 2 or 3 of us working like this during our personal time.
- I'm currently trying to get a 4G / LTE baseband working with the Raspberry Pi. I specifically need to get voice and SMS calls working. If you figure out how to do this, let me know! I'll integrate it into this project and give you all the kudos and e-fame I can!
- I don't currently have enough people working on this to build out collaboration tools (Slack, Git, Wiki, etc.). If there is enough interest and participation, I will absolutely build this out and formalize the process.
- Donations: I don't currently have a means of accepting donations. I may build out a Liberapay if there is interest. Right now I have all the hardware I need. If this project grows and there becomes a way to utilize donations, I'll implement a means of accepting and tracking them.