As smart phones and tablets evolve, they become more and more useful as productivity tools, offering a great deal of convenience especially for those who enjoy traveling light without carrying too much additional equipment. Although today's mobile devices are capable of performing even the most demanding tasks thanks to their powerful CPUs and high-resolution displays, there's still one major obstacle preventing them from being truly useful general purpose machines. The problem lies in the software they run. For various reasons it's nothing like a "proper" operating system a software developer or hacker would praise for its flexibility, especially when dealing with real-world problems. Wouldn't it be great to have uninterrupted access to a fully fledged Linux machine with all the tools available while enjoying the comfort of a slick mobile interface? These are some of the thoughts that brought me to build a portable Raspberry Pi Zero W companion computer, like the one below:
I decided to build my machine around Raspberry Pi Zero W and Adafruit PowerBoost 1000C, so the final build could be pretty tiny, Wi-Fi enabled, battery powered, and most importantly there is additional power circuitry (inspired by LiPoPi) that handle power on/off and automatic graceful shutdown when the battery is low. There is also an I2C interface exposed to allow connecting additional devices (a small Plug and Play OLED display in my case). You can see the wiring below:
Overall, it came out pretty well, and already proved quite useful. One difficulty I had to overcome was a problem related to the UART changes in Pi 3 / Zero W (discussed here), which I resolved by disabling the on-board Bluetooth and placing a 100uF capacitor across the 100k resistor as recommended. Another small annoyance that showed up later was audible whine of the PowerBoost (discussed here), this is quite unfortunate and ruins a bit otherwise amazing PowerBoost.