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.
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.
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.
The Zerophone is plain ugly and a good example of what you should not do when building something portable.
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 =)
Dont be sorry.
I did not attack your build. Its great.
Its just the shield-on-a-shield construction i dislike.
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 ( https://twitter.com/ZeroPhoneOSHW/status/1055985110091227137 ). 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 =)
Form is nice to have, but function is always of greater substance.
True. I always hammer my nail with a stone because of that.
I think he mean’t it in the sense that if you have to pick between a rock and a hammer made out of pudding, the rock is probably the better choice.
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?
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.
I do.
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…
I was thinking the same. This is just having PC in an uncomfortable way. Better a fully open source real smartphone, in terms of hardware and where possible software with a tested Android.
I think you don’t understand his use case.
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.
This was a critique towards product development, probably misunderstanding the use case. I cannot argue on the work done :)
Do you think literally a single person reading this article doesn’t know these things?
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.
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!
We of the hackaday comment section are definitely a miserable bunch.
Here’s a tip, straight from my grandmother: if you’re about to post something negative, don’t.
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.
Nice Work!
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]https://www.google.co.uk/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=2ahUKEwiOrP-mnP3eAhWixIUKHVhPBBwQjRx6BAgBEAU&url=http%3A%2F%2Fwww.dudeiwantthat.com%2Fgear%2Fphones%2Fretro-thick-brick-cell-phone.asp&psig=AOvVaw27Df4Nh2JVRlVKbPm9iLNh&ust=1543705242786219[/img]
how to make it….???
make what?
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.
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 https://kite.zakz.info for information if you are curious, and feel free to reach out to me. Best of luck with the zerophone!
Using raspberry pi as a base for anything portable is bad idea as it has not any power management.
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: https://hackaday.io/project/19035/log/69596 If you’re still interested
Im borrowing that line, modified. “looks cool, but the reality it’s almost unusable”. widely applicable.
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.
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.
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.
Yeah, can imagine. I could’ve put “Wires are a necessary evil” there, of course, but it wouldn’t have made for as provocative of a picture =)
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.