Raspberry Pi Zero & Powered USB Hub - the Ultimate Traveler's Gadget

About to embark on a trek in South-East Asia, I really didn't want to take a laptop or tablet. The first is too heavy for the type of traveling I'd be doing. The second doesn't give me the USB connections I need. Added to that, I won't be in WiFi range most of the time, so I'll need something that's effective without the Cloud.

I'll be taking my Android phone - a Nexus 6P. It'll do much of my surfing and emailing if I install a local SIM - but it's not the answer for transferring photos from a camera's SD card to hard drive. I considered taking a small Chromebook - but again I didn't savour the prospect of lugging a kilo of extra weight.

A few months ago I wrote a post here about preventing backfeed from a USB hub to the Raspberry Pi. Sitting at my desk staring at the hub, I had a brainwave.

Stage I

What if I were to take the powered hub, attach it to a RasPi Zero and do it that way? It would give me a fully-functional computer to which I could connect USB sticks, card readers, a hard drive, mouse and anything else I needed.

I could power the Zero itself from the hub, as well as transfer data from one storage device to another, all with just a single power supply, a tiny computer, and a seven-port hub - that together amounted to the size and weight of a cigarette package!

Excited by the idea, I flashed a new Raspian image, installed it, added all my regular bits and pieces, and connected it to a screen. It worked perfectly; I saw all my storage devices, moved files around, and controlled it all with a wireless mouse.

Stage one was up and running.

Stage II

Okay, so I now have a viable computer, but I didn't intend to schlepp a screen across Vietnam and Cambodia.

I mentioned above I'd be taking my Nexus 6P phone. By my reckoning, it shouldn't be rocket science to run the Pi on the Nexus screen - especially now that Raspian has Pixel and VNC. I specifically wanted a GUI because I didn't like the idea of typing mile-long Linux commands to transfer files on a tiny virtual keyboard.

(The HDMI cable was in place for initial trials)

I went off to the internet to read about tethering an Android phone to the Raspi.

A YouTube video give a fairly good description, but as I was to subsequently discover, it's a whole lot easier with Raspian Pixel and an up-to-date Android device. The video recommends installing tightvncserver, then vx connectbot, turning hoops in the air and hoping for the best.

If you're using an modern version of Android, you can forget all that.

As a self-respecting Pi user, you already have the excellent VNC viewer app in your phone. If not, install it now. Then define the Interfaces file on the Pi.

From the terminal screen type:

sudo nano /etc/network/interfaces

Cut and paste this at the end of the file

iface usb0 inet static address 192.168.42.42 netmask 255.255.255.0 network 192.168.42.0 broadcast 192.168.42.255

Reboot the Pi to adopt the new definitions.

You're set to go.

Connect your phone to the USB hub with a cable.

(The next bit may not work for older versions or Android or older phones. If you're having trouble, search google for "Android USB tethering.")

On my phone - running Android 7.1.1 - I did this:

Setup > Wireless & Networks > More > Tethering and Portable Hotspot > USB Tethering

The phone will show it's tethered. Now, open your VNC app on the phone. Define the connection as 192.168.42.42 and your Pi desktop should miraculously appear on your phone screen.

(Here I have an embarrassing confession. For reasons that I still haven't figured out, my Pi didn't actually appear at 192.168.42.42, but instead at 192.168.42.90. If anyone has an explanation for this, please let me know. If you can't find your Pi at 42, try looking at 90!)

Getting Around

You can use your finger to move the cursor on the Pi's Desktop, but in my experience it's hard to work with. I attached a mouse to make it easier. I also found the VNC keyboard awkward for typing - it tends to cover the whole screen making it difficult to see what's going on. I got around this by installing a virtual keyboard on the Pi.

sudo apt-get update sudo apt-get install matchbox-keyboard

Supporting your screen

Of course, you can lean your phone against a rock, but I acquired this terrific little support somewhere for a dollar.

The Finished Product

This tiny device connects several USB storage devices together and allows you to transfer files from one to the other. It's ideal if you're on the road without internet access and want to minimise the electronics you're carrying around.

Update - How it performed

Three weeks later...

I took my little kit to Vietnam and Korea. My first observation is how pleasant it was not to have to take out a laptop at each airport I passed through. It really made the travel so much easier.

I used the kit about 5-6 times and it performed perfectly every time. It booted up without a problem, read the SD cards and thumb drive and let me copy photos across without a hitch.

Having said that, after I posted this blog on Facebook, one of the readers pointed me to this amazing piece of software that turns the RasPi into a photo backup device that runs automatically without a screen. I haven't had a chance to test it yet, but if it does what it says, it's probably a better solution than mine.

On the other hand, Little-Black-Box may do the job, but it's all it does. If you're like me, you may want to use your Pi for other things too, and that's where my solution comes in.