What is this?
This is a smartphone, with a Raspberry Pi Zero at its heart. It's open-source*, Linux-powered and you can make one yourself for 50$!
*except some parts, replacing which would make it crazy expensive
Because it has so many uses, the idea sems to be obvious and yet there isn't a project like that. Moreover, I've been studying the topic for a couple of years now and this project is meant to be useful to other people as well - so I have a chance of commercializing it (while still keeping it open-source).
What can it be used for?
- Calling and SMS - this is the first functionality to be implemented, and will be considered crucial in the development.
- All the basic apps - alarm clock, calendar, calculator, phonebook, file browser, web browser and music player.
- Your own apps - SDK will be provided and it will be developer-friendly. The laand I'll personally expect, if not at least aid with, social media apps - for a good start, since those are the apps people spend most time in.
- Running Linux software - since it's a computer after all, you can run ARM compatible (thus, almost all) Linux programs on it. A Raspberry Pi can give you a desktop with a monitor, keyboard and a mouse? This phone can, too! You like to use SSH, like me? It's going to be available!
- Pentesting - lots of fun, a nice hobby for many and well-paying work for some, this phone can do it too.
- Security and privacy - one of the features that isn't typically provided but can mean anything from something simply bringing peace of mind to a matter of life and death.
- Experimenting - there'll be a sensor port available for connecting anything you think could add useful functions to your phone. Want to wake up when the sun rises? Add a light sensor! An additional display for notifications? Easy, connect and write code! A Geiger counter? Can have it, too!
- Front panel (used as a Pi Zero shield giving it WiFi and screen&buttons for using pyLCI)
- A prototype I'm using to see how thin it can be made
- The current prototype I'm using for development, with a powerbank hotglued on the side for portability
- Pi Zero for scale
But why X/Y/Z choice was made?
There are so many questions about project choices that I have a separate page for them and will be happy to add answers as your questions come in!
What OS is used?
It uses Raspbian Linux, which is currently based on Debian Jessie. This is because it can be tailored to suit our purpose very easily, and will still be /upgradable in the future - this project doesn't need a separate distribution since that's prone to obsolescence and is a maintenance nightmare (but I do plan on providing ready-to-go SD card images if the demand is there).
As for the user interface (controlling screen and buttons) - it's written in Python. I'll be using pyLCI as a base, but it's clear for me it needs a rewrite to have all the capabilities a decent mobile phone UI should, and developing a good UI is one of the main goals of this project.
pyLCI used for a management/configuration interface while the software is still being developed
How smart is it planned to be?
As it's Linux-based and can support all the programming languages typically used with Linux, I expect many original ideas for apps from all kinds of people. I myself will be working on a set of apps for productivity and healthcare - making it a great helper in everyday tasks and goals, instead of a distraction that we typically perceive smartphones as.
What are the privacy/security features you're talking about?
It's Linux, and the apps running on it are open-source (therefore more likely to be secure and not privacy-invading). If you don't like a feature because it's a privacy/security concern, you can just disable it. If an app you're using has any unwanted code, you can just remove it. It doesn't depend on any butt^W cloud services - not if you don't want it to be. Since, again, it's Linux, it's got many security-related software available, and you can install it - be it a firewall, I2P/Tor node or a secure messenger of your choice.
As a bonus, the software is meant to allow you to fully utilise all the features the hardware supports - including some manufacturers don't usually include in software but surprisingly helpful. For example, you can use modem-specific commands - that allow you to detect GSM jamming, fake GSM base stations and intentionally weakened GSM encryption (I know SIM800 has the first and provides data to help with the second, for a start).
Together with the powerbank I'm using till I can get a pouch battery that's large enough
How is it different from all those open-source phones available?
It's the only phone you can assemble by getting all the parts yourself (for less than 50$), not using any rare parts (everything's available on eBay) or fine-pitch soldering (typical pin spacing is good old 2.54) You can even breadboard this phone if you're dedicated enough. This is possible because of all those cheap and great Chinese modules, wonders of mass-production economy and smart design choices while picking components.
More importantly, this phone won't be left with outdated OS if the phone's development will stop. Since it runs stock Raspbian (with mods), it can also be updated the same way you'd update your Raspberry Pi, and you can easily do it yourself. That means you won't be left with unsecure versions of software that'd make your phone insecure or buggy - which is a feature almost none of phones listed currently have, and I'm not even talking about Android phones.
Again, for scale
How come all the parts are easily available and are so cheap?
- Pi Zero - easy to get despite people on Internet still telling otherwise (I got 5 by now). Let's say it's 5$ and 5$ for shipping.
- SIM800 modules - available in large quantities from eBay, 5$.
- ESP8266-12E used for WiFi (as per RPi-WiFi project) - 2$ from eBay
- Two-layer PCBs (two 4x10cm boards, one 4x6cm board) - can be ordered from your favourite fab or whatever people on Internet give good reviews about.
- ATMega328P - can be desoldered from an Arduino Pro Mini that's typically 2$ on eBay, and it comes with a bootloader already! If you don't have a heat gun, you can just buy a bare chip and burn a bootloader to it using a programmer.
- LCD screen - 5$ on eBay. Besides, a project like this can use other screen breakouts with similar characteristics (such as the ubiquitous Nokia displays) - it's just a matter of writing a driver, which is easier than it sounds, and the front board accepts different display pinouts.
- Battery - you can use cell phone batteries, pouch and 18650 cells.
- TP4056 battery charger - modules are available from eBay, 1$.
- Buttons for keypad - 2$ from eBay (there are 3 types used, but you can omit one).
- 2.54 headers (both dual-row and single-row) - dirt cheap. Won't be more than 0.50$ to have enough to assemble the phone.
That's 27$, not including the battery and PCB. PCBs are cheap from usual 10PCB places (like DirtyPCBs) if you do group buys, alternatively, there's @oshpark and similar board houses that have good prices. Batteries can be taken from mobile phones, or you can get a battery for one of popular Samsung phones and use it, for example. In total, it should be 50$ or slightly more.
Also, price falls quickly if you're assembling one or two more phones for your friend, too - eBay sellers can make discounts when you buy more than XX$ or "make an offer", and PCBs are cheaper (you won't get less than 3 pcs of PCBs in any of usual board houses, so you have to pay extra even if you need only one board - you'll still get two more)
Currently the back PCB with GSM modem etc. is just a custom-made protoboard, which is exactly what you want when you're not yet sure what are the coomponent placement and connections necessary
How do I assemble it?
You'll need a soldering iron, with a fine tip and enough power to heat up ground pins, which is an issue for Pi Zero (25-30W should be sufficient). You'll also need clippers to clip 2.54 headers to make them shorter - they are used for board interconnects, and in some places they're a little too long for that. Lead solder and a soldering station will make assembly much easier.
A heat gun will help - in the current revision, there's an ATMega328P on the board that's used for keypad reading. It's convenient to solder chips like this using a heat gun, and if you're getting it from an Arduino Pro Mini, you'll definitely need it.