Like this project? Subscribe here to know when it goes live!
https://crimier.github.io/ZeroPhone/This is a mobile phone that:
- First and foremost, will be a well-working reliable phone
- Is as open-source as possible *while also being cheap*
- Can be assembled and repaired independently
- Is easy to get parts for
- Doesn't have apps with privacy concerns
- Allows to write your own apps in Python
It costs about 50$ in parts, and all the parts are available on eBay/TaoBao/etc, most of the phone can be assembled with just a soldering iron. User interface is written using Python
and is being morphed into a lightweight phone-tailored UI framework.
A crowdfunded manufacturing run is expected in a month - kits will be available, as well as a small batch of fully-assembled phones. Subscribe to newsletter below!
DetailsSubscribe to the project newsletter - to get weekly news and be notified about crowdfunding!
Read previous newsletter editions
Latest newsletter editions:
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?So, ZeroPhone project was born. Nowadays, we should be able to assemble a phone from easily available parts, using cheap boards that run Linux, and we should be able to adjust it to our needs - unlike as it is with modern phones, when we have to adjust ourselves to suit the workflow that the phone offers. With ZeroPhone, hackers can finally have smartphones that are going to work for them and not against them, people with special needs will be able to have to have custom-tailored phones, and people that want to protect their privacy will have a phone that respects that.
Technical challenges are: developing PCBs that'd be reasonably feature-packed, but with easily sourceable components that could be soldered without special tools, as well as developing mobile phone software that'd be open, high-quality and highly modifiable to suit any needs people might have. However, much bigger challenges are - building a community of people experimenting with ZeroPhone platform, keeping ZeroPhone open-source and independent of any harmful influences, and experimenting with new ways of integrating smartphones in our lives without having to lose privacy in return.
Features:#pyLCI fork used for ZeroPhone is licensed under Apache License
ZeroPhone PCB files and keypad controller firmware are licensed under GPL v3
Read more » Files ZeroPhone-PCBs-gamma.zipLatest PCB revisionZip Archive - 12.32 MB - 10/21/2017 at 14:00
Download ComponentsHi! So, about the ZeroPhone cases.
This is one of the most popular questions, on par with the "3G connectivity", "flat battery" and "touchscreen" ones. I'm not the kind of person that'd be good at 3D design, but, thankfully, plenty of people in this community are. During these 2 years, I had a task of making the 3D model of ZeroPhone PCBs - so that people could make a case around it. I kept putting it off, and when I did have time to work on it, it wasn't successful - one of the most important things delaying me was waiting for KiCad 5, with proper STEP support (since VRML support in CAD packages universally sucks, as I've come to understand).
Finally, we have a 3D model of the ZeroPhone, specifically, the Delta revision:
It's taken a lot of work - thankfully, early in the project's beginning phase, @Dillon has helped with a lot of 3D models, designing some from scratch and sourcing others from open sources, so I'm immensely thankful for that. Current 3D model also has a lot of Grabcad material - distribution rights of which is questionable, I admit, so here's a list of all the stuff we need to replace. You can download the STEP here, and the STL here.
Meanwhile. if you want some kind of reference design, here's a downloadable case design for ZeroPhone Gamma by @Ninjalicious - albeit bulky, it's a viable way to make a case that actually works and holds up, one that's also snap-fit but provides all the vital openings for ZeroPhone hardware. Personally, I'm interested in some kind of lasercut design, but not for the practicality of it - I just like lasercut things =) Before the crowdfunding, if nobody steps up and designs an open-source case, I'll design one myself - to make sure we have something to offer during the crowdfunding.
Also, I've had multiple suggestions from people, about making a ZP version in a case for a bulky phone, like the Motorola DynaTAC or this one. I can't say I'd be interested in such a case, but if I were to add, say, a FreeCalypso modem board (a 90x50mm PCB), this is exactly what I'd be looking for! With all the ways that you can expand on your ZeroPhone, I'm sure there's a lot of interesting stuff you could ram into such a phone - i.e. an expanded battery pack or a bigger screen, or maybe a Geiger counter and a high-power WiFi antenna... Why not all of that? =D
Any information that's provided in this article may and will become outdated. Refer to the ZeroPhone Wiki page on 3D designs for the most up-to-date information.
I've been asked these questions a lot. Mostly by people who were wondering why I need to battle with and work around problems of Chinese breakouts instead of laying out all the bits and pieces on the breakout board, and why I just wouldn't put the 2G modem/charger/DC-DC on the back board, with all the benefits it would bring. There are multiple facets to these two questions - they're closely related, and I'll be answering both of them at the same time.
Typical starting point for self-assembly on more complicated OSHW projects
First and foremost, what does self-assembly-capability even mean for ZeroPhone? At the moment, you can assemble your own ZeroPhone independently - without any help from me, without buying parts from me or even contacting me in any way. I do provide advice in case something's unclear or there's a problem, I do sell parts, and I do link people that would like to sell some parts (i.e. PCBs) with people that would like to buy parts - but it's all optional, I publish info on assembly, there's more and more tutorials, guidelines, and videos as time goes on. This isn't really something that a lot of projects do, it requires additional effort and insight, but it's doable.
Hi! Here's a long overdue worklog about a new revision that was released two months ago =D It's called Delta-B, the only changes from Delta are bugfixes; this time that's actually true - not like Gamma=>Delta which was planned to be like a bugfix-only revision, but had to get lots of additions.
Read more »This month, I've been working on an avrdude app - an app that uses avrdude to program AVR microcontrollers. It's now finished, with 500 LOC in the app itself and 800 more in the associated libraries. You might be surprised - why this and not something else, like a messenger app? Here are the reasons:
The end result is an Atmel MCU programming app that can backup and restore firmware from/to the MCU, flash arbitrary .hex files and bootloaders. For now, I've only tested it with usbasp programmers, but linux SPI device and other programmer support will be coming soon. I've used it a lot already, and it's even more useful given that I'm now working on several AVR-powered ZeroPhone mod boards (so, a simple way for users to update the mod board firmware is needed). It also has pinout information and the most crucial settings available, as well as some user-friendliness related features. In addition to that, there's a lot of bugfixes, improvements, new ideas for improving ZPUI and insights into problems that ZPUI has.
One large problem that I now understand ZPUI has - lack of some kind of markup system for UI design. Essentially, when you're trying to draw your own UI, you need to calculate position of each element on the screen, requiring plenty of math (and extra variables) if you don't want parts of your UI to overlap/disappear. When it comes to text, the situation is even worse - as of now, it's pretty much impossible to properly word-wrap arbitrary text on a screen, for example. What do we do about it? I have no idea yet, and that's something I'll need to address sooner or later, unless I want ZeroPhone to be infamous for ugly apps... or not scaling further than the small display...
Read more »The new revision, ZeroPhone Delta, is out. I've been using a Gamma ZeroPhone for quite some time now, and it needs some bugfixes. Specifically, I:
Here's what I added:
I also removed a lot of things that didn't prove themselves useful:
OSHPark links: 18650 board, back board, front board, keypad board and speaker adapter
Some of these points (like silkscreen additions) could be explained further, but I'll show them off once I receive the...
Read more »Even though I've put a lot of work optimising ZeroPhone for everyday usage, self-assembly and manufacturing, there still are things we can do better in the next revision. Let's go through them, so that you can see the final changes I need to make to the boards, and things I need to figure out before the crowdfunding!
This list is a result of me carrying a ZeroPhone with me through this year - and, therefore, fixing these problems will make sure your ZeroPhone lives as long as possible and is not merely some kind of gimmick that dies after a couple of months. Most of these problems are either fixable or have workarounds - if they didn't, I wouldn't have had been able to assemble the Gamma PCBs. However, they will be problematic for new people, so I have to make sure to eliminate as much of those problems as possible for the next version - to properly achieve the ZeroPhone "self-assembly" goal, making the assembly "as easy as possible" and not just "possible".
We use popular modules from China for the ZeroPhone battery charging and protection. I had problems with the way those modules had to be soldered on the back board - it wasn't straightforward, and it wasn't easy to get done. So, I've flipped the footprint - now it's compatible with more module types, and it's much easier to solder the modules on - the board layout also became much more straightforward, since power traces used to be crossed and now they aren't! The component side of the modules is now exposed to the outside of the phone, though - I'll have to make sure this doesn't cause problems, such as short-circuits (possibly, release a 3D-printable cover).
In addition, there were stability problems with a new version of these modules. Beta boards were using an earlier version:
For Gamma boards, however, I used slightly different modules, a newer version - I ordered them by mistake, so I quickly changed the footprint to fit the new modules in order to avoid ordering the older ones.
That turned out to be a bad idea - the newer modules seem to not function as well as the previous, some of them randomly fail (luckily, they fail safe). It happened to some of my ZeroPhones, and it also happened to some of the ZeroPhones that I sent out (which resulted in the person having to send it back, for me to repair, and that's something I'd really like to avoid). That's not acceptable - if the module is broken, ZeroPhone cannot operate from the battery at all - or it switches off randomly, which is even more annoying. Fortunately, the new, flipped footprint allows for all kinds of modules, so it should be easier to find a suitable board now!
During the manufacturing, we'll need to find a way to either find a reliable source for these modules, or to manufacture our own (I've already reverse-engineered the schematics and the PCB, thankfully, and I'm asking for manufacturing quotes) - as a backup plan in case the commercial modules are no longer suitable for us. I've also tried understanding the problem by comparing "old" and "new" modules - I've checked the schematic and it's the same (the boards are slightly different, but the changes are minimal), so my guess is that the "new" modules are using cheaper components, which causes the failures. But, just in case, I'm going to see if there's a way for us to source these boards reliably.
Reworkability
It turned out that current ZeroPhone PCBs might have some problems while doing repairs - traces breaking, pads being lifted etc. Generally, it will only happen to low-quality PCBs - but it's hard to make sure the PCBs you're ordering are of sufficiently high quality (and if you're ordering from a place like DirtyPCBs, it's likely your PCBs won't be good enough to survive overheating). This is bad, since it makes ZeroPhone less repairable - in the end, I have two back boards and one front board that are unusable because too many pads got lifted, and I also have some more that need...
Merry Christmas everybody! I'm going through the ZeroPhone project files, and here's something that I haven't yet posted - by @Morning.Star:
Today, I was watching my wife play 2048, and I remembered about all the fun I had with this game myself, back when it was popular. While I don't recall ever getting past 512, I did spend a lot of time and I liked it. So, ZeroPhone can fit 8 lines of text on the screen, and 2048 needs a 4x4 playing field - seems like a perfect match!
I found some Python code on GitHub that seems to be a great fit - it's cleanly split into logic and GUI parts, and logic does not depend on the GUI in any way, so can be re-used easily. Now that's a great design, if you ask me =) Reading further into it, it seems to be somebody's programming assignment, and I have to say that it was very helpful of that person to put it on GitHub!
So, let's reuse the logic part, and build our own UI for the game!
Read more »Do you ever feel tethered to your computer because you're wearing headphones, and you can't go away from it because you can't use your speakers for whatever reason? This is for you.
I often found myself in this situation. Sometimes I'm listening to podcasts, and I want to get up from my desk and grab something from other room, but the speakers aren't loud enough. Sometimes people around are sleeping and I don't want to wake them up, but I also can't carry my laptop with me just because I like the track I just found on YouTube.
One of ZeroPhone plans is enabling hands-free applications, using audio for things like notifications (of course, only the most important ones, and the ones you want to hear.) Naturally, I'll be using it a lot - I'm the "headphones" kind of person, and I know there are plenty of ZeroPhone notifications I'll want to hear about immediately when they happen. Now, what if I want to listen to a podcast, should I unplug headphones from my ZeroPhone and not hear the notifications? The most obvious idea is using the ZeroPhone as an audio receiver, and stream audio from my laptop to ZeroPhone, so that notifications could be overlayed, and I wouldn't find myself re-plugging the headphones all the time.
So, the setup is like this: I want to stream all audio from my Windows laptop to my ZeroPhone, which sits in my pocket, receives the audio stream and plays it back to my headphones. If my laptop ran Linux, I could just use pulseaudio network streaming capabilities and be done with it. As it's Windows, though, I needed to find something that would work on Windows and would be more user-friendly than using a long command-line copy-pasted from Stackoverflow.
Read more »For Hackaday Prize video, I made some simple ZPUI apps (some of them were mockups, though). One of them was reading an external flame sensor and displaying pictures on the screen depending on whether the sensor detected flame or not. I had to do this in a rush, and I ended up adding some basic, but very useful, functions to ZPUI (though I did have to clean them up quite a bit before I could merge them into official ZPUI version =) ).
What's the algorithm of this app?
Set up the GPIO In a loop, read from the GPIO pin If pin has logic low on it: display picture of fire Else: display picture of fire crossed out
The app is, therefore, very short. So, let's go through it thoroughly, explaining it in as much detail as possible!
1
Step 1
Instructions are under constructionSorry for any inconvenience =) It takes time to make them as good as I want them to be.
2
Source the PCBs
You can use OSHPark, DirtyPCBs, Elecrow or some other PCB manufacturing service to order PCBs. Grab the latest release from GitHub, order the PCBs and wait for them to arrive! More detailed instructions are available here.
3
Source the components
The full list of components (with links to places where to source them) is still being compiled here. Meanwhile, you can use this Google doc as a reference - I'm also making my calculations for larger-scale manufacturing runs of ZeroPhones there.
Create an account to leave a comment. Already have an account? Log In.
Sean S Con wrote 01/05/2022 at 00:21 • pointHow difficult is it to add a Answering machine and a call recorder?
Can we do some sort of encryption, that checks if the other guy is also using a zerophone, and asks for a secret key for added security?
Can we add a software layer of encryption? how fast will that work Thank you
Can I get in on this? I'd be interested in starting designs for a 3D printable enclosure.
and want to write blog on this product on website like :
https://speakingbusiness.co.uk/
hey are all the parts listed in the wiki or are there some parys that arent?
Would you sell kits with all the parts in the future? Or do you need to buy each part separate?
-ziggy
olivier wrote 12/18/2019 at 19:11 • pointHello how are you ?
I have a problem with my delta-B zero phone. it starts well I have the screen that shows me the impeccable menu.
But the problem I can only use the keyboard once and I have the impression that its bug. with you a solution?
Thank you
Olivier
If you need integrated heat transfer solution for chipset, say just like in samsung note 9, you can get parts custom made cheap from Chinese supplier: http://www.pa-international.com/aluminium/heatsink_manufacturer/ they make some heatpipes thin as 0.9mm.
You can then run overclocked chip or faster chip and move heat from the chip to the case. very efficiently. Samsung phone is actually using LCD as the heatsink, they dissipate CPU generated heat via LCD :)
Arya wrote 05/20/2019 at 22:53 • pointThat's impressive, thank you for letting me know! I've watched the recent Dave Jones videos about custom heatsinks recently ( https://youtu.be/RTmzVs6LHRo ), but didn't think it's that accessible, esp. the heatpipes! Don't think the ZP will need these anytime soon, but will *definitely* keep this in mind!
Sorry for the late reply, Hackaday is bad with comment notifications =(
Louis Parkerson wrote 09/19/2018 at 00:42 • pointSorry, me again! So much good documentation is bound to be a few errors. I noticed in the BOM and Description spreadsheet, the link for the crystal on row 6 is a link for a capacitor.
Arya wrote 09/17/2018 at 23:08 • pointHi, Louis, and thank you for your suggestion! I used the ATMega328P initially because it's much more popular (and easier to source). I didn't eliminate the "more powerful processor" (whether it's a SAMD21 or, say, STM32) idea, I've thought about it and I think we could use the resources for good - like, put a small self-sufficient phone "OS" in there for decreased power consumption, or make a I2S DAC/ADC so that we can mix Pi Zero and GSM audio easily, in short, add all kinds of cool features.
However, at this point in ZeroPhone development, I think it's OK to have something really simple, as we don't even have the manpower to work on improving the current (ATMega-based) setup. In the future, I think it'd be really cool if somebody were to modify the front board to swap the ATMega for something cooler, but that goal is too much for my current skillset and free time, and I'd rather concentrate on something else.. like, making sure there's an UI for calls =)
Louis Parkerson wrote 09/17/2018 at 23:21 • pointThanks for the reply Arsenijs! ATMega should be good for now as you said. When Zerophones are available to buy, I might try add a SAMD21 myself allowing some extra 'fun' sensors to be added (e.g. a thermal camera).
Louis Parkerson wrote 09/18/2018 at 23:22 • pointThanks for those links! Although I thought of the Flir sensor, my budget would not stretch to one of them at the moment. I was thinking of the cheaper MLX90640 would do the job (although the Flir is a lot better), although it looks like I could still hook that up to the Pis GPIO.
Thanks,
Louis
Arya wrote 09/18/2018 at 23:31 • pointYep, should be absolutely doable to hook up something like MLX90640! It uses I2C (available on ZP, as opposed to, say, UART, which is occupied by the GSM modem), and even though it seems the amount of I2C communications required is massive, if it works with a Pi Zero, it ought to work with a ZeroPhone. Not sure that, say, a pure Python module could handle all the math involved, but I think that for 1-10FPS even Python will do just fine!
Louis Parkerson wrote 09/19/2018 at 00:00 • pointAt the moment, all there is for the MLX90640 on the Pi is a C library. I was thinking about the amount of I2C communication as well. I can imagine the Pi will struggle, considering it uses 87% CPU to load some text onto a 128 x 64 I2C OLED (as I found out the other day)! The MLX90640 would surely use more than that. In the mod boards I just noticed a triple Qwiic adapter which means you should already be able to use the MLX90640 with this board (https://www.sparkfun.com/products/14769).
alebu3007 wrote 09/05/2018 at 17:47 • pointHi Arsenijs, I've just seen your project In my Google feed, in the site crowd supply. I was intrigued so I looked on the internet and found this site. I immediately liked the idea, but I did not understand if it has already come out, how much it costs, and how to build it, if it is to be built. I'm here to ask for some information about this project. All you can explain to me please
Arya wrote 09/07/2018 at 19:53 • pointHi! ZeroPhone already exists, but hasn't yet "come out" - it's in beta, so there's hardware going around and some people are assembling their own phones from instructions I made. The parts should cost about $50 if you buy them one-by-one. As for building - I've linked all current links in the comment below yours, will add a new one right now. Apart from all the info on this page (in description and details), there's also a beautiful block diagram by @Morning.Star - https://hackaday.io/project/19035/log/71960 , check this out to get a better understanding of this phone's hardware =) Any other questions?
PhantomWare wrote 08/28/2018 at 01:29 • pointI may have missed it but I have a question: How is it able to send/receive calls/texts? Does it use a SIM card? Does it use Wi-Fi? How does this ZeroPhone work? I am very interested in it and want to make it badly. Thank you!
Arya wrote 08/28/2018 at 09:42 • pointIt uses a GSM modem module for calls, SMS and data - currently, we're using a 2G modem, SIM800, but we're going to have a 3G modem upgrade as well. The modem, in turn, has a SIM card slot and connect to the SIM card by itself. ZeroPhone also has a WiFi capability, but that is not used for calls/SMS by default - it's definitely possible to have calls over WiFi, it's just that nobody wrote the software yet =)
About "how does ZeroPhone work", see the block diagram https://hackaday.io/project/19035-zerophone-a-raspberry-pi-smartphone/log/71960-zerophone-block-diagram by @Morning.Star . Basically, the Pi Zero interfaces with everything - the display, the GSM modem, an Arduino-driven keypad, the GPIO expander and some other things. The Pi Zero runs Raspbian Linux, and everything thus is controlled from Linux.
If you want to make it, you can source all the parts yourself and solder one together (there are people in the process of doing it already), and soon there'll be a crowdfunding campaign where we'll be offering kits =)
Eric Duncan wrote 08/06/2018 at 03:18 • pointDual-Sims please! Maybe the ability to switch between them. The ultimate idea would make it compatible with dual-providers in the US, such as CDMA and GSM.
Google's Project Fi does this (using MVNO networks Sprint(cdma) and TMobile(gsm)). It switches between whichever has the strongest signal. It has doubled my coverage with all the gaps I had on each network individually back when I was at Ting and kept switching GSM and CDMA SIMs out.
Vincent wrote 07/13/2018 at 08:44 • pointHi Arsenijs, following this great project for a while now.. (and burning) I'm wondering if an up to date kit will be released.. Thanks :)
It is indeed going to be released - right now, I'm working with Delta revision batch sourcing and assembly - half of it kits, which are going to be made as soon as I get all of the components I need (still waiting for audio jacks, amplifier ICs and FETs. Basically, waiting for some critical stuff to arrive before I can continue =)
peter jansen wrote 07/05/2018 at 00:24 • pointGreat project -- I'm curious what kind of battery life you're getting on the Pi Zero? (and with what size of battery?). And also how you're handling the corruptability of the SD card on bad powerdowns? Keeping the filesystem read-only, or have you implemented a soft powerdown? Thanks!
Arya wrote 07/05/2018 at 04:26 • pointHi! The battery life with the ~4000mAh battery is 20 hours - most of that is attributed to the Pi Zero itself, there's also no WiFi or GSM powersaving implemented yet, and the CPU clock scaling hasn't been investigated either. I haven't yet had any SD card corruption on ZeroPhones yet, and I've been using them for more than year and a half (admittedly, I changed SD cards during this period, but only to increase storage space). To be fair, Raspberry Pi is much better with SD cards now, too. The filesystem is rw for now, there's a soft powerdown possible but it's not yet implemented in full (there's no hardware yet to control the power switch).
peter jansen wrote 07/05/2018 at 18:02 • pointWow! It feels like half the time I yank the power, the card gets corrupted. I'm sure it's much less often than that, but the inconvenience makes it seem more often than it is.
Also, 20 hours is quite good -- I wonder if/when power saving capabilities will become part of an official Raspbian release.
uwr01207 wrote 06/27/2018 at 19:25 • pointIs their a website for ZeroPhone? In what ways are you looking to support the lasting survival of the project?
Arya wrote 07/01/2018 at 22:30 • pointThere's ZeroPhone Wiki - wiki.zerophone.org , and I'm publishing as much information as possible there. I've also published a sourcing guide, I'm in the process of publishing assembly instructions (right now, I'm editing a video about ZeroPhone gamma assembly), all of the code used is open and motivations behind this project are described here. In short, if anybody wants to pick up this project, they can =)
uwr01207 wrote 06/27/2018 at 19:24 • pointWhen the phone is complete will we be able to buy them online? If so then for how long? Will their be a max quantity?
Arya wrote 07/01/2018 at 22:34 • pointThe phone will be available through crowdfunding soon (so that we can make one big batch instead of making them in small batches). Unless the project will not be sustainable financially (which I do my best in preventing), the phones will be available for as long as there will be demand. I don't see any reason for max quantity restrictions to happen - of course, I'll do it if it proves to be a good decision for survival of the project (which I don't yet see reasons for, but sometimes manufacturing is weird like that).
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3