Building Portable Linux Devices: Never Been Easier, But Still Hard

We live in a Golden Age of single-board computers. There was a time when a portable computer that was any good was a relatively rare and expensive device, certainly not something you could expect to replicate for yourself. A Psion, or later a Palm or perhaps a WinCE device would have been a lot more than an impulse purchase, and could not easily have been replicated using the components then available to the experimenter.

Thanks to spin-offs from technology developed for set-top boxes and mobile phones we can now buy any one of a pile of different boards that have almost equivalent power to a desktop computer. The experimenter can leverage that computing power to create their own small portables. Zerophone creator Arsenijs Picugins spoke about the tricky parts of designing a LInux portable at the recent Hackaday Superconference. You’ll find his talk below the break, which makes for a fascinating primer for those tempted to walk in his footsteps.

Zerophone – a Raspberry Pi Smartphone

Minor Details of Portables are the Majority of the Build

In theory, it’s pretty easy to use one of these boards to make a portable computer. Take one of the smaller members of the Raspberry Pi or Beaglebone families, add a battery and a display, and away you go. But as always the devil is in the detail, and for a truly successful build there are a wealth of variables to attend to.

In his talk, Arsenijs takes us through the challenges of power supplies, connectors, and interfaces. In particular there is considerable challenge to running an SBC from a battery small enough to be portable, as efficiency concerns and the ability to easily recharge make for a critical set of choices. Then we learn of another pitfall, that of using USB as a default interface. Power loss in converting 5V to 3.3V that is inconsequential for a desktop computer is a battery-killer in a small device, so we’re pointed at the array of alternatives.

Zerophone screen menu [via @ZeroPhoneOSHW]

Screen Size is a Tricky Spec to Settle

If you’ve been tempted by one of those cheap Raspberry Pi touch screens, you’ll certainly understand that while a full desktop on a screen the size of a playing card looks cool, the reality is almost unusable. Your device will require a user interface that fits its form factor, which from his experience, Arsenijs suggests is best achieved through the medium of buttons rather than a touchscreen on smaller screens. There are a variety of UI and display libraries he introduces us to which make the whole process significantly easier.

Arsenijs’ Zerophone Raspberry Pi smartphone was a finalist in the 2017 Hackaday Prize, and remains an exemplary portable project from which many others can gain inspiration. We are privileged that he was able to bring his experience to speak at the Superconference, and his talk makes for a fascinating watch.

35 thoughts on “Building Portable Linux Devices: Never Been Easier, But Still Hard

    1. I did what I could ;-P Sorry, I’ve had “people can assemble one by themselves” as one of the defining goals since the project started, and it did limit me in a number of ways, mainly the physical structure – which is probably what you mean by “ugly”. Furthermore, I don’t have any background in designing stuff to be “pretty” and do indeed create ugly stuff from time to time, I’m trying my best and am open to feedback, of course. If you have any suggestions or more detailed criticism, let me know at arsenijs at zerophone dot org =)

        1. yeah, it was something I had no other idea but to stick with, given my constraints. It’s given me quite some grief in the end, but it has a couple of benefits too ( ). I’ve tried to condense my portable device building experience into it, and so far it’s been working OK – can’t deny the bulkiness, but it doesn’t fail in many ways that typical shield-on-shield devices can =)

        1. Wow. You really think that the only difference between a stone and a hammer when used for pounding nails is form and not function? I had no idea someone could be a HaD reader and still be so ignorant. Every last detail of a good hammer from the shape of the handle to even the bevel around the edge of the head and the hash marks on it’s face are designed for function. About the only thing I can think of that might not be is the coloring that is applied to the handle. If you think hammers were designed for artistic purposes then I am wondering who you are, Andy Warhol?

    2. Wow, that came out quite harsh.

      You may not like the look of the building method, but I hope you appreciate the modularity and its utility as a prototyping platform. You could certainly that the circuit design and roll it into a custom PCB that more fits your aesthetic tastes if you want to invest the time.

  1. This is a bit like arguing that building a car isn’t actually difficult but building a Ferrari is much more difficult – no shit!

    If you want a really tightly integrated portable Linux device then there are plenty of Android smart phones out there…

      1. There’s a myriad of things that a Linux portable can provide you apart from having a portable PC – it’s easy to slap a Bluetooth keyboard on a Pi, sure, but I prefer using Linux on portable devices as a platform, where the sheer power of Linux allows you to solve a wide range of tasks like never before. Take the password manager example from the video – you get the USB stack with gadget stuff figured out, userspace support for your GPIOs and I2Cs, convenient scripting languages for you to use for prototyping (often remaining there after prototyping is long over =D ), networking stacks with wide variety of hardware support, userspace software for password management/GPG stuff/hardware that you can then wrap around, and all of that you can use. Android phones fail on multiple of these fronts, and we’re not yet at the “fully open source real smartphone” stage yet (mainly concerning hardware), even though we’re doing our best to move there.

  2. Naysayers are out in force in the comments today.

    This is a cool talk about an interesting subject. Thanks for sharing. I guess I’m old enough that the idea of portable Linux devices you can make by hand still seems like a Really Neat and Cool Thing. Maybe not so neat if you’ve grown up with a smartphone in your crib.

    1. Well said. I’m with you — I vividly remember a day where you simply couldn’t get a portable DIY-friendly platform like this at all, much less one that was capable of jumping onto the cell network. This is an incredible build and the proliferation of cellphones doesn’t diminish that. With this you can dig into every part of the hardware and the software –by design!

      Kudos to Arsenijs on the Zerophone and on the Supercon Talk. I’m so glad I got to meet you in person!

    2. That’s not even full force – there’s much more potential in HaD comments ;-P I don’t mind, I will get those comments anyway, if not here then on Reddit/HN/.//AIB/…, so I just practice responding to them. In the end, sometimes it’s people having some kind of legitimate criticism, just wrapped the wrong way – often it’s just people grumbling, but I believe you need to learn to differentiate.

  3. As far as what it looks like, I would have gone totally retro and configured it like the old ‘brick’ cellphones back in the 80’s (or whenever it was) [img][/img]

  4. Great work!

    I like how the people at postmarketOS are porting the Zerophone UI to their codebase. That’s a great opportunity for collaboration between Linux-in-a-phone developers.

  5. Hello! I greatly appreciated the video, it was quite educational. I similarly experimented with a raspberry pi with different power sources and came across similar issues to which you address in your video. In the end, personally, I ended up just using a usb power bank brick (about $5 from microcenter), as they’re disposable and will get through airport security easier than a lipo battery solution. I fly kites and take photos with a raspberry pi. See for information if you are curious, and feel free to reach out to me. Best of luck with the zerophone!

    1. it’s not *that* bad, there are various portable devices that can be done even with Pi’s power consumption – and it’s not the worst out there by any means, there’s loads of boards whose makers have paid *significantly less* attention to power consumption. Granted, sleep would be nice to have, but not realistic at this point. Also, with software support and community you get, you save a lot of development time which you could’ve wasted on making a random SBC working with a usecase that the makers didn’t care about. I think the only worthwhile contender is Beagle stuff, and I personally can’t wait to try it out once I have a usecase (which hopefully will be an OSHW CPU board for ZeroPhone =) )

      BTW, if you’re interested to know what ZP does to push as much power out as possible, here’s the writeup on hardware: If you’re still interested

  6. I’d be a lot more hopeful that the video might contain some insightful content if ti weren’t for the big “Wires Suck” display behind her. As the population density of wireless consumer electronics (and thus the interference problem) becomes greater and greater I am coming more and more to the conclusion that going without wires is overrated.

    1. That was tongue-in-cheek, of course – you can’t really avoid wires when building your own portable devices, so might as well mention problems you’ll encounter, I believe there are some untold things that need to be known (and I would’ve told more if it weren’t for the time limit). I’ve had my own fair share of problems with WiFi/Bluetooth and other wireless tech, so I don’t seriously hate wires, I just know their limitations.

    2. Going without wires means you can’t use that device in a secure environment.

      If you’ve ever seen an “illegal transmitter detected” alarm go off because of a Bluetooth mouse or keyboard, you’ll know the headaches [and paperwork] a security breach create.

  7. He is literally saying no WIRES, not no ELECTRICAL CONNECTIONS. He doesn’t mean to use radio based prptocols for everything but is saying use things like headers to plug boards together, or at the very least get some good quality pre-made cable assemblies (these might end up being like a 3rd of your overall cost in some cases, good connectors cost money while stuff to go on boards is usually very cheap) and plug those to headers on each board. Don’t try to have lots of soldered wires or individually connecting wires around the place, I can say from experience in robotics that soldering, crimping or doing anything with these will send you quite insane.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.