Project ZeroPhone: the ambitious DIY Raspberry Pi phone

The growth of open hardware is undeniable and we’ve had high-profile smartphone projects appearing such as Purism’s security- and privacy-focused Librem 5 smartphone.

The ZeroPhone project led by Arsenijs Picugins is no less ambitious but much less expensive. As we started this interview we noted, with some irony, his apologies for the intermittent mobile connection as he’s taking a break away from his home city of Riga to enjoy the countryside of neighbouring Lithuania.

While you’ll be able to make calls and send SMS with Picugin’s ZeroPhone, it isn’t as cutting edge as Purism’s smartphone. Instead, it sits firmly in the middle of the makery and hacking spirit that powers the big budget open hardware projects.

The phone’s design is pragmatic, with its use of the raspberry Pi Zero, surface-mounted switches and 1.3-inch, 128 x 64 monochrome OLED screen, but it’s a clever approach to a DIY Pi phone and Picugins, a 22-year-old student from Latvia, is hoping other enthusiasts will snap it up as a kit when he launches a crowdfund to cover manufacturing costs.

In its current form, the ZeroPhone is a Raspberry Pi Zero in a ‘PCB sandwich’ that has Wi-Fi (using an eSP8266), HDMI and audio outputs, a free full-sized USB host port and a micro-USB port for charging. One feature that has caught the attention of hardware hackers is the use of GPIO expansion headers for hardware add-ons and customisation – Picugins is still working on a 3G modem (more on that later). On the coding side, it uses Python and has a UI toolkit designed to make app development quick and easy.

Question: The big question is can you assemble a phone from easily available parts, using cheap boards running Linux?

Arsenijs Picugins: Well, I’m making sure it’s the case. Right now there are two people who are trying to assemble the phone independently. It’s a slow project and I don’t yet have all the assembly instructions published and polished, which is one of the things that I’m trying to finish for the Hackaday Prize deadline that’s in 20 days. But it’s one of the selling points from the beginning, as it’s possible. You can get components that make up a phone together, unite those components together and just assemble the whole thing and put some solder on it. This is pretty much what manufacturers do [...]. Of course, they assemble the phones by using a lot of automation.

Arsenijs Picugins is 22-years-old and the creator of ZeroPhone. He’s taken time out from his university studies to concentrate on projects like the phone and helps manage the Make Riga Hackerspace

Q: Do you have to be reasonably competent at soldering to do this?

AP: Yes, I don’t think assembling this phone is suitable as a first-time project in soldering. I think it’s a second- or third-time project. Also, a large part of soldering can be automated [Picugins has access to a Pick&Place machine in the Riga hackerspace]. So I can provide kits with the hard-to-solder parts already assembled. Even then, without hard-to-solder parts already on, people still can assemble it themselves – I can just have to simplify the process.

For example, there’s a Github where all the schematics and board files are available. One example of hard-to-solder parts that are easy to automate are buttons – you don’t have to sell just the keypad and buttons separately. I can just solder them on and sell it to people like that in the form of kits. The parts that are either hard or expensive to automate, this is something that would be economical and reasonable to let the recipient do, because otherwise I’m afraid it will drive the price point too high.

Q: So you’re keen to keep it around $50 (around £37) for all the components?

AP: For all the bits, yes. But this is how much the bits cost, bill of materials. Right now it’s around $40 (around £30) and I might add $5 of components, but then if I’m selling kits myself and have to package them, test them and ship them, then the kits aren’t going to cost $50. But I want to stay below at least the $100 (around £75) mark, because it’s a psychological limit above which it’s harder to justify spending money on something.

Q: For the phone itself, what’s the situation with software? What OS are you using?

AP: So there’s an operating system which is Raspbian Linux. But Linux itself works great, because it’s on a Raspberry Pi. Among all things Raspberry Pi is famous for is software support. It’s really great, even though there are closed source bits, which are sometimes problematic. I think it’s one of the best for support right now, when speaking about single-board computers. They have the resources and take user feedback into account.

Q: So it’ll be running a cut-down version of the Raspbian distribution?

AP: It’s without the desktop environment. There’s a Raspbian Lite distribution and that’s what I’m using and it makes sense to run something without a desktop (by default) on a small phone like this. Speaking about the UI, right now it’s Python powered. There are no X server drivers, or something like Gnome native Linux support for it, so it’s a tad problematic, but there still isn’t a good UI framework for Linux phones with small screens. There are all types of Android frameworks, but I don’t know of any UI framework that I could use even if the screen had a frame buffer, so there just isn’t such a thing except for what I’ve developed.

So I had the option of using something of my own or using some kind of library for the screen and writing all the applications myself and not use all the terminal utilities that are available or I could spend a lot of time to make some kind of frame buffer bindings and then put up with the illegibility of the console because it doesn’t have enough characters – it can only have the standard 24 to 8 characters on screen, when standard is 80 x 24 and some apps require that. So I had to roll something of my own. [This interface was based on of one of Picugins’s earlier hackaday projects called pyLCI – see here.]