Close
0%
0%

ZeroPhone - a Raspberry Pi smartphone

Pi Zero-based open-source mobile phone (that you can assemble for 50$ in parts)

Similar projects worth following
This is a mobile phone that is:

1) As open-source as possible *while also being cheap*
2) Easy to get parts for if you want to assemble one
3) Easy to assemble and repair
4) Free from apps with privacy concerns
5) Easy to write apps for

It costs about 50$ in parts, and all the parts are available on eBay. Most of the phone can be assembled with just a soldering iron. User interface is written using Python, it has an UI framework for easier app development - and it gets better every day.

A crowdfunded manufacturing run is expected in a month - subscribe to newsletter below!

Subscribe to the project newsletter - to get weekly news and be notified about crowdfunding!


Project description and FAQ

Read previous newsletter editions

  • Modern phones are getting more and more complicated and hardware-packed. Unfortunately, that means they're becoming less modifiable and repairable.
  • Phones are getting more and more integrated. Unfortunately, that means more and more possibilities for manufacturers to lock them down without allowing us to modify them.
  • More and more software&hardware is kept closed-sourced. That means it's harder to learn, experiment and customize your phone.

The factors I've listed (integration, complexity and closed-source) are necessary in the world we're living in, with all the advances in engineering, competition between companies, as well as laws in different countries.

However, what if we could have a phone free from those constraints?

We can. This is the reason ZeroPhone project was born.

Features:

  • Raspberry Pi Zero in a PCB sandwich
  • No proprietary connectors, hard-to-get parts or chips that are tricky to solder
  • All the specifications for making this phone yourself will be available
  • Python as the main language for developing apps (aiming to add other languages later)
  • UI toolkit making development quicker and easier
  • Numeric keypad, 1.3" 128x64 monochrome OLED screen (with screen header supporting other types of screens)
  • 2G modem for phone functions, can be replaced with a 3G modem
  • WiFi (using an ESP8266), HDMI and audio outputs, a free USB host port
  • GPIO expansion headers for customization
  • Tons of Pi Zero-related hacks that were discovered along the way, that I'll share with you as the project goes =)

zerophone_alpha_v1_0.zip.torrent

ZeroPhone SD card image for alpha prototypes - torrent (665MB)

x-bittorrent - 26.52 kB - 03/06/2017 at 03:38

Download

View file

  • Pi Zero W - first impression (designed in 2016?)

    Arsenijs03/07/2017 at 12:06 4 comments

    I got this beautiful board in the mail yesterday, put it in my pocket and forgot about it till I needed something from that pocket, about 20 hours later. Anti-static bags FTW, also, Zeros are small and this one is no exception.

    Zero W 1.1, Zero 1.3 and back board of ZeroPhone Beta

    This review is going to derive as much conclusions as possible from the PCB layout (comparing Zero W to a simple Zero), components, specs and datasheets - I don't even have enough components to assemble a Zero W-based ZeroPhone, never mind the time.

    First of all, a closer look of the front - comparing the Zero W and the usual Zero.

    Read more »

  • ZeroPhone - streaming to Youtube Live, Facebook or Twitch

    Arsenijs03/04/2017 at 01:00 0 comments

    I recently spent a weekend on a hackathon. It was organized by Garage48, an organization that makes hackathons, among other things. This hackathon was called "Hardware&Arts", naturally, it's hardware-centered, with a really small part of "arts" in it. I pitched an idea, assembled a small team interested in it - and we've made it in 48 hours! More importantly, it can work with ZeroPhone, too.

    %YOUTUBE_VIDEO_OF_OUR_PITCH%

    The idea is Streamo. It's a lifestreaming device, a camera and a microphone streaming your life to the Internet 24/7. It's not for the faint of heart, but I have a friend who believes it could be the next cool thing, and is willing to do whatever it takes. And, of course, it's Pi-powered (I've described it here earlier, it's #Twitch Your Life - a Raspberry Pi streamer device, but it's an old description).

    Read more »

  • Project state - testing beta hardware, CrowdSupply,

    Arsenijs02/26/2017 at 01:16 1 comment

      I've had about a week of a delay in the project - went to a hackathon, then did some work on the #ICeeData project, then fell ill for a couple of days. When I came back to my hackerspace, I got a note saying the back board shipment was waiting for me at the post office, and this was a powerful reminder about ZeroPhone. I went to the post office, received the boards and started assembling the next version of the hardware.

      It's not fully assembled yet - I need to get some more parts, but as soon as it's done, I'll test it, find bugs, make v1.0 of the boards and send them to the board house (should I get the blue soldermask option so that it goes well with the Chinese module PCB color?) That's for the "sending prototypes out" part. I wanted to do more of this in parallel, but now I see that this part of hardware prototyping can't be done in parallel. I need to get the boards, assemble a phone and then see if it works - only then I'll have boards I could send to reviewers.

      Tl;dr, current targets:

      1. Quick newsletter edition (it's been 20 days since the #3)
      2. Testing hardware
      3. Ordering parts for the prototypes
      4. SD card image (alpha testers)
      5. BOM (for crowdfunding)
      6. A big project video

  • Software: notes on beta software, part 1

    Arsenijs02/11/2017 at 17:23 0 comments

    February 11th:

    Software is one of the numerous tasks for today. First, I decided to implement a character input UI element - using the numpad. It won't be as fancy as it's supposed to be, but that's beta. However, there are absolutely crucial features, and all added together they form a bulk of the work.


    I decided to liberally spray the code with comments, as if whoever will be reading the code will be a Python beginner who has only interacted with the code but hasn't understood its workings yet. It goes against Clean Code, a book I respect and partially live by, but then - the code I'm writing is not for professional coders and there isn't a tightly-knit team of developers, and the code will be read much, much more often than it'll be modified. There's the problem of keeping the comments up to date, but, in general, commenting as the code flows might very likely become a contribution requirement, at least for the software core of the ZeroPhone project (I'm not going to dictate what external apps do, of course, as long as it's not in the core).

    Read more »

  • What about the apps?

    Arsenijs02/08/2017 at 18:12 10 comments

    "Apps" is a concept that has been with us for ages. I won't be talking about anything that Apple, Google or Microsoft might mean by "apps", I'll use it as "applications, software" because it's short, precise and gets the point across, as well as the most common usage at this point in time.

    ZeroPhone is not my first project of a portable, personal assistant, communicator device. Indeed, the listed qualities are what made smartphones so important in our lives. During all the previous projects I've worked on, I understood one important thing - in the end, it's all about software.

    Nowadays, software support makes or breaks a project, I won't get tired of repeating it because it's true and software really is so damn important. This project needs to have above average software coverage quality - I want to outline what "above average" means here, and what I'll be aiming for when planning my priorities for the project.


    Read more »

  • Hardware: alpha board testing jig

    Arsenijs02/08/2017 at 05:43 0 comments

    This project interests many people. Many people asked questions and gave suggestions, some went as far as to contribute. Those people are interested to help me with various aspects of the project, and most of them will need hardware. So, I had to learn to assemble, test and ship things =) Assembly is simple, shipping is, too. Let's talk about testing the boards.

    The boards go through e-test on the factory - to check for shorted or disconnected tracks. However, I still had to ship every board with an ATMega programmed, two traces cut and 5 magnet wires soldered to make new tracks. Furthermore, I literally emptied all my Arduino Pro Mini stash by this time and had to re-use ATMegas from Pro Mini boards harvested from my previous projects - some of them definitely had fried GPIOs, I just couldn't tell which ones. Also, same could be said about my ESP-12 module stash, I had to check every one I could harvest from somewhere, since I burned some of them - been recklessly driving motors and doing other horrible things with those.

    Solder, something to watch and lots of patience

    Read more »

  • Software: Tor control panel

    Arsenijs02/08/2017 at 04:55 3 comments

    TOR is a popular software that many people use for different purposes: anonymisation, .onion site access, changing IPs - anything goes. Today, I'm not going to show you anything that changes the world of privacy-related apps.

    I'll just show a simple Tor control panel that works as a ZeroPhone app. You can just select "Tor control" in the apps and get a menu to turn Tor on or off, see your external IP and request a new one, as well as see some stats and check your connectivity. Here, you can read the app's code.

    It's a simple but powerful demo of what ZeroPhone is capable of - something no usual phone can do. This app took 2 hours to write - including all the package installs, finding the right settings and Googling. Think about it - 2 hours of work for adding a Tor control panel to ZeroPhone UI.

    Read more »

  • Project state - back PCB finished; time for software!

    Arsenijs02/01/2017 at 04:44 2 comments

    Back PCB finished! It's the least pretty PCB of all them. I was hurrying to send it off because I need to make the next prototype. The layout was also pretty constrained - Pi Zero, expansion headers, MCP23017 and GSM modem sitting flush from one side, TP4056, USB port, DC-DC and RTC from another. Routing could have been done prettier, but overall it's still good and I reached most of my goals. All the PCB files, including Gerbers, are on GitHub now.

    Features planned but scrapped:

    • General-purpose high-power LED (maybe better left as a mod? Will see when I'll be routing the board next time)
    • Simple solution for hardware low-power shutdown - I need to consult some people about using TL431, I apparently didn't understand something about making a circuit that'd switch a MOSFET at 3V and have some hysteresis as well.
    • Bringing out MCP23017 GPIOs taken by the RGB LED on testpoints - just not enough board space. There are two more GPIOs on the MCP that are free, I just forgot to bring them out - that's a task for the next revision (along with refactoring the routing)

    Now, onto software goals. I aim to make the first revision of software limited, but polished. I think it makes sense to include the following features:

    Read more »

  • Why do we need Open-Source phones?

    Arsenijs01/28/2017 at 02:09 0 comments

    Most modern smartphones have FM receivers. Obvious? Not if you're from USA, since phone resellers disable FM receivers in software to make you spend more money on data. Now that I have your attention, I want you to know you can take action against it, and I encourage you to.

    This is an argument you can make in 10 seconds when somebody asks you about why you need an open-source phone. Just think how ubiquitous mobile phones have become in our life - and realize that the ones developing those phones are mostly big companies. Companies with their own interests, looking for new ways to get more money from you using the technology that's a requirement for everybody nowadays. Open-source technology has been solving problems like this for a very long time, so applying it to mobile phones seems like a logical solution. What can it solve for us, exactly?

    Read more »

  • Hardware: making the phone accessible and using Chinese breakouts

    Arsenijs01/26/2017 at 21:56 5 comments

      The phone has to be accessible, and by that I mean that the components should be easily sourceable. What are the criteria for this?

      Less obscure components. If there's somebody not able to get the DC-DC chip or specific inductor I'm using (say, shipping is more than the IC costs), I will try to do at least one of those things:

      1. make it optional to use (like I'm doing with the audio buffering on the new board)
      2. make footprints compatible with other more popular ICs/breakouts
      3. make it work some other way

      Boards should be easy to make. That means two-layer boards, using PCB design settings that are easy for board houses to make and using dimensions that are typical limits of board houses (also, encouraging pamelizing boards). While I'm not aiming to make the boards etchable at home (this task is high effort/small advantage for the project), I encourage anybody who needs this feature to try and make the boards suitable.

      Components should be easy to solder. No BGA, LGA or anything that needs a heat gun. Unless absolutely necessary, I'll avoid this like a plague. BGA and LGA are very nice technologies, but I'll leave them to people capable of actually soldering them right and having the right tools - and that's a pretty small number of people, if we look at who this phone is aimed for. Also, breakouts. If a screen has (x < 0.8mm) FPC pitch, needs 10 or more passives to operate, as well as a boost converter - I'll just pick the one with a breakout that has 8 pins, with everything already soldered and, hopefully, tested.

      Let's see some examples.


    Read more »

View all 16 project logs

Enjoy this project?

Share      

Discussions

alasdair wrote 6 days ago point

Really looking forward to your CrowdSupply campaign and the success of this.

Have you had a thought about a permissions system (if required), lets face it the permission system on *droid is bollocks?

Also are there (respected) hardware crypto modules (that are affordable) which could be incorporated - obviously not at the $50 mark you are aiming for?

  Are you sure? yes | no

adam.klotblixt wrote 03/08/2017 at 16:40 point

A very nice project, looking forward to see the future updates.

One feature I look forward to is WIFI-hotspot, so that this phone could be the ONLY data access point, and all my other commercial pads and smartphones talk through it, with the possibility to REALLY be sure what data comes through. A true portable router of sorts. 3G or better is of course nicer and surely in the path.

Please, make sure the phone audio can be recorded properly, ideally into separated stereo (left: caller, right:callee). Many smartphones are really bad at sound-mixing and audio-paths.

And I also see a great potential to be able to use ANY size battery for this phone! Imagine having a phone that has the potential to dock several size batteries. Mmm...

  Are you sure? yes | no

Arsenijs wrote 02/28/2017 at 17:30 point

I ordered two of those, expect my review in a week or two =)

  Are you sure? yes | no

Craig Hissett wrote 02/15/2017 at 13:17 point

Received my kit buddy - thank you so much!

As soon as my screen arrives I'll get this bad boy assembled and start having some fun!

:-)

  Are you sure? yes | no

Arsenijs wrote 02/15/2017 at 13:20 point

Nice! Thank you for notifying, I will get to preparing the SD card images tomorrow =)

You can actually assemble everything without the display - if you have some free time, the display can easily be soldered last.

  Are you sure? yes | no

Craig Hissett wrote 02/15/2017 at 13:33 point

Awesome sauce! Thanks mate!

  Are you sure? yes | no

kunstenaar wrote 02/15/2017 at 12:24 point

Just fyi:

https://blog.rosenzweig.io/blobless-linux-on-the-pi.html

Sounds we getting closer to 'bloblessness'... Have a good read. ;)

  Are you sure? yes | no

Arsenijs wrote 02/15/2017 at 15:45 point

It was a very educational read, indeed! Wondering if it'll ever get usable - maybe, with all the interest to both this and the ZeroPhone project, it will =)

  Are you sure? yes | no

Samurai wrote 02/13/2017 at 16:38 point

How long did it take for you to build this marvelous nerdy great thing?
I wonder if I wonna do the same...

  Are you sure? yes | no

Arsenijs wrote 02/14/2017 at 12:15 point

About two months of work since I've started it, and many more to come =) As for the "assembling it from the kit" - shouldn't take more than an evening of drinking beer&soldering.

  Are you sure? yes | no

kamathln wrote 02/13/2017 at 05:15 point

HI, 

I feel a couple of jog dials would be an awesome usabiity enhancement. Adjusting volumes, scrolling though menus, file lists etc., will be a breeze.

  Are you sure? yes | no

Arsenijs wrote 02/13/2017 at 09:58 point

Hi! I had a very early Sony-Ericsson phone with a side jog dial, it was awesome =) I won't be including that in the mass-produced version (they're hard to source), but it can be a keypad PCB mod (I've added 5 pins to the keypad PCB that have I2C, so would be very easy to implement jog dial readouts with a small MCU). Thank you for the idea!

  Are you sure? yes | no

Hacker404 wrote 02/13/2017 at 00:00 point

Hi, it's RÖB, you mentioned the new 4G/LTE modules on a HAD article. Thanks for the heads up. 

When I started my M2M / IoT project I just ordered some 2G modules from China as I didn't know 2G was being phased out here. 

I see you have used a SIM800, I have one in transit and I also have a SIM900 in a COMSAT 1.1 Arduino shield. 

These are three band. I know it's a long shot but is it at all possible to get these to use a 3G band for HTTP traffic. I wonder if they can be re-flashed, if someone has written the code.

  Are you sure? yes | no

Arsenijs wrote 02/13/2017 at 09:54 point

Hi! Nice to hear from you, was seeing your comments on the blog from time to time, didn't know you also had an .io page =)

So, 2G has disappeared in Australia? Or is it just some carriers and other will follow soon?

You think it'd be possible to make a 2G module firmware that'd make it work on 3G? I don't understand enough of 2G/3G/those modules' capabilities, but I do know that Simcom isn't helpful about SDKs (read: you're not getting any). To be fair, I don't have any first-hand experience with this and have only heard about it from my colleagues, but if that's true, making any kind of GSM module firmware fixes is going to be tricky for sure.

  Are you sure? yes | no

Hacker404 wrote 02/13/2017 at 10:23 point

We basically have three mobile carries here. One killed 2G on the first of January and from memory the other two will be killing 2G by mid year. 

From what I understand from the application notes for SIMCom modules, they have an embedded micro-controller that you run LUA code on. I assume the same micro handles the protocols and could (possibly) use the 3G band if it had the right code unless there was some hardware limitation that I am not aware of. I don't have enough data or the ability to reverse engineer the modules like the SIM900 or SIM800 to do this though. 

Obviously it's better for the company to sell new modules anyway so they wont be releasing a firmware update. 

Anyway - love this project and it good that there is so much interest. 

Some link about Australian mobiles - 

https://www.whistleout.com.au/MobilePhones/Guides/Will-my-phone-work-in-Australia-carrier-network-frequencies

http://whirlpool.net.au/wiki/Mobile_Phone_Frequencies

  Are you sure? yes | no

Samurai wrote 02/12/2017 at 11:15 point

A new cool thing!
Its freacking!
Does it have the potentiallity to be mass producted?

  Are you sure? yes | no

Arsenijs wrote 02/13/2017 at 09:59 point

Hi! Yes, I plan to crowdfund some mass-production, follow the updates, I'll tell more about it in a month =)

  Are you sure? yes | no

Samurai wrote 02/13/2017 at 16:35 point

Happy to hear that!
Sure! I follow the project eagerly. ^__^
I want to do smth like you did but with a little difference.
I wish you the best,my friend...

  Are you sure? yes | no

Reinhardt wrote 02/11/2017 at 10:44 point

Wow, that's great!

  Are you sure? yes | no

Krokofant wrote 01/27/2017 at 14:23 point

I've been pointed to this by the Linux Action Show podcast and I am really excited by the project.

I think I am not able to contribute at this stage, but I hope to get my hands on a revision 1.0 kit  when it's ready. 

If/when the base apps are materializing I would like to help with translation to german language if you can use that.

  Are you sure? yes | no

Arsenijs wrote 01/28/2017 at 00:52 point

Hi! I'm happy to hear you're willing to help (and Linux Action Show is awesome, I'm honored to see my project reviewed by these guys!). I'll ping you once I'll be making kits, and once more when I'll implement translation support in the phone's applications (basic apps will definitely materialize, it's just a question of "when" now, I'm laying the groundwork next week =) )

  Are you sure? yes | no

jackie wrote 01/27/2017 at 09:17 point

Could we possibly get a list of stuff that i set in stone and we can buy today if we want to build one later when everything is finished?

Thanks!

  Are you sure? yes | no

Arsenijs wrote 01/28/2017 at 00:12 point

Hi! This is my goal, I just need to make new PCBs and test them, then I absolutely can and will set stuff in stone =) I'll ping you when I'll have everything ready, would love to hear your feedback!

  Are you sure? yes | no

s.stevenson.1992 wrote 01/24/2017 at 23:41 point

Can you offer any advice for someone trying to make one out of salvaged parts? I have an old Alcatel gathering dust and it has the perfect form factor, comfortable keys and a tiny screen (which I am not entirely set on but I need to get it working first anyway).
I was hoping to build off your project and add the Zero4U USB hub and then get the case 3D printed locally from a modified version of the existing case.

  Are you sure? yes | no

Arsenijs wrote 01/26/2017 at 02:20 point

Hi! If you want to build off my project, check the GitHub repo - I'm going to soon release beta boards as soon as I release them, it'd be a great starting point (it is already). See the schematics, you can get insights into how it works, see what features you need and do not need and don't be shy to ask for advice =) The project is not even v1.0 yet, but there's already plenty to start from. As for more detailed advice, I'll go comment on your project now.

  Are you sure? yes | no

Ninjalicious wrote 01/18/2017 at 16:10 point

Love this project! Direly needed by hacker community, small cheap phones built on modular components!

  Are you sure? yes | no

Tisham Dhar wrote 01/17/2017 at 01:46 point

The ESP8266 sticking out on the side looks a bit odd. You may be better served in space by using the ESP8285 based module such as this: https://www.itead.cc/psf-a85.html which has a UFL connecter and can attach a big antenna for network scanning and such.

  Are you sure? yes | no

Arsenijs wrote 01/17/2017 at 02:36 point

It sticks out because I was designing it in a haste, it'll be fixed in the next revision. I see that ESP8285 does support SDIO but it's easier to source ESP8266-12E so I'll stick to that to make sure it's easy for anybody to assemble what I'm making =) After all, it's open-source so anybody can just mod a board, send them to a boardhouse and assemble their own phone. However, the base version has to be as accessible as possible - that includes using accessible ESPs instead of maybe more suitable ones. Anyway, hanks for the suggestion - I was wondering whether ESP8285 would support SDIO mode, and you made me check, it;s a good food for thought =)

  Are you sure? yes | no

Roy Dom wrote 01/16/2017 at 21:12 point

qwerty keyboard attachment maybe? 

  Are you sure? yes | no

Arsenijs wrote 01/17/2017 at 02:37 point

Yes, though I won't be focusing on that for now - working on a new board revision =)

  Are you sure? yes | no

Roy Dom wrote 01/17/2017 at 17:48 point

This would be amazing with ad hoc  on a small mesh network as a handheld messenger. free sms for a small team , like a next gen pager.

  Are you sure? yes | no

Arsenijs wrote 01/18/2017 at 15:09 point

Indeed - and it would be easy to make software for this! I'll think about an attachment like this, though I'll need to think about the ergonomics - the screen is small and not sideways. It's possible I'll make a Xbox ChatPad attachment - wrote Python drivers for it some time ago, should be easy enough =)

  Are you sure? yes | no

Arsenijs wrote 01/15/2017 at 11:11 point

@Drew DeVault Just so you know - the mounting and placement of components will change at least a couple of times even until I release a ready-working first revision, and I'm not 100% sure I won't need to make at least one fundamental change that could mess up a design. 

What I'm saying is - I absolutely can and want to send you a prototype, I appreciate the eagerness to help and the project would benefit from that massively. I'm just saying so you know to expect changes of requirements if you're to start at this point of development (and so other people interested know this). If you still want to start now, PM me here or email me (crimier at yandex ru) so we can work out the details.

  Are you sure? yes | no

Craig Hissett wrote 01/14/2017 at 09:01 point

I love this already. It's the perfect format for a portable, all-in-one pyLCI device - exactly what I'm after!

  Are you sure? yes | no

Arsenijs wrote 01/14/2017 at 09:19 point

I can send you partly-assembled prototype boards (you'll need your own display and Pi Zero) - if you're willing to cover the postage fees from Latvia =)

  Are you sure? yes | no

Craig Hissett wrote 01/14/2017 at 10:24 point

You absolute hero!

  Are you sure? yes | no

Drew DeVault wrote 01/14/2017 at 18:38 point

Can I get in on this? I'd be interested in starting designs for a 3D printable enclosure.

  Are you sure? yes | no

Does this project spark your interest?

Become a member to follow this project and never miss any updates