(home page)

Building a portable Raspberry Pi 3

This is a largely unedited brain-dump of what I’ve gone through so far in my quest to build a portable computer. I’ll update this page as I make progress, so be sure to check back and/or follow me on whatever social media you may have seen me post this on.

Changelog

April 2, 2018

Initial version

The motivation

For a very long time I’ve wanted a handheld computer. Back in 2008 I backed the OpenPandora project. That project took several years to ship, with me receiving mine in 2011… and around that time, smartphones were starting to take off and the OpenPandora was underpowered.

In 2017, I was feeling that itch of having a portable computer again. my android phone and ipad weren’t cutting it – they’re completely touchscreen devices, like basically every portable device these days that isn’t a laptop. I’d also wanted to build some kind of hardware project for a while.

I looked at options and although the PocketCHIP was interesting it seemed like it would be too underpowered to be decent at web browsing. The Raspberry Pi 3 is pretty capable in that regard, so I decided to try my hand at building a portable with that.

Selecting a screen

I wanted something that had a high enough resolution to be usable for desktop-ish tasks and decent refresh rate. I saw the Pimoroni HyperPixel and was immediately intrigued.

Pimoroni HyperPixel

I ordered it, and when it arrived, I popped it on top of my Pi 3 & installed the drivers. It looks great and is crisp, but I couldn’t get a good feeling for what it would be like to use it in my hand without having an attached keyboard.

Lego prototype

I put together a prototype case with lego & tried out the idea, trying to get a sense of how it felt in hand.

Lego Pi

On the left is a portable battery pack – I hadn’t figured out a power source yet. This prototype was fun to use but there were some major flaws:

With that in mind I selected a new wireless keyboard, the Rii i8. This one connects with a usb dongle, so latency & bluetooth/wifi interference is not a problem, and with the trackpad on top the keys are all easier to reach.

Rii i8

At first I thought I could build an entirely new enclosure for the keyboard, and made some attempts using a laser cutter. I found a design someone else on Thingiverse had made using the same keyboard, and I tried to build a case in Fusion 360 using that as a starting point.

Keyboard and Pi combo case

However, I wasn’t having much luck getting the laser cutter to cut holes for all of the keys, and figured that getting the holes just right so keys wouldn’t catch on the acrylic was more trouble than it was worth.

Version 1

So then I thought- what if I used the front of the keyboard, but replaced the back half of the case with a hunk of plastic that was itself part of a raspberry pi case? and so this was born:

Front of v1 Back of v1

Assembly

Pre-assembly I printed these parts on a Makerbot Replicator 2 with PLA. Here are all the parts before I assembled them. The “raft” that the pieces were printed on top of was super hard to separate from the print, and took a while with a chisel to get in halfway decent shape.

The back plate the keyboard rests on

Here’s the plate which is both the top of the pi case and the bottom of the keyboard case. The cutout is for the keyboard’s lithium polymer battery to rest in. It is extremely rough because it had to be filled with support material (the strands visible in the photo) – that side faced downwards during the print!

This was before I owned a pair of calipers, so in my hubris I took a flatbed scan of the bottom-inside of the keyboard case, and attempted to approximate that in Fusion 360. Turns out approximation isn’t good enough, and I really did need to measure! I used masking tape to hold it together, just so I could approximate what the experience of using it was like. I didn’t have a standalone powersupply at this point, so I had to remain tethered to wall chargers & battery packs.

There were some very important learnings from this version!

I sat on this iteration for a few weeks, then started to think about what I’d change in the next version. In the meantime I’d order a Powerboost 1000C and matching lipo battery from Adafruit, and calipers from Amazon.

Version 2

The most obvious thing I’d need to fix is the keyboard plate not being totally flat. As well, I changed the battery cavity into a hole through the whole plate. From the bottom I could then laser cut a 1/8" piece of clear acrylic and use it to cover up the guts. I also measured the Powerboost 1000C and a switch I had on hand, and made cavities from them to sit snugly in.

Here’s the result.

The front, with keyboard attached and showing the XFCE default desktop The rear, two batteries, a usb cable, and charging board are visible through an acrylic sheet

Assembly

This one was printed on an Ultimaker3 with PLA. No raft was needed because of the heated platform. I would have used this printer before but it wasn’t accepting jobs & I wasn’t sure how to fix it, so I settled for another in the maker space. This time the plate came out WAY smoother. The keyboard plate being printed by a 3d printer The completed print, no parts have been added yet

I did re-print the green bottom case for the Pi as well, but that was with ABS on another printer & it was frighteningly brittle so I just kept my slightly mangled green one.

At the bottom of the plate is the cutout for the power switch, and on the right the cutout for the powerboost. I had printed two pegs to anchor the powerboost in place but somehow I had measured them incorrectly so I had to break them off :(

Here are most of the parts before I assembled them. I had forgotten the power switch at home, so I couldn’t add it until later. I was originally planning to solder the switch directly to the powerboost, but instead I soldered on two headers that I could connect with jumper cables later.

I decided to solder a USB-A plug onto the PowerBoost so that I could remove and replace the pi with a different one if I wanted (say, a 3B+).

all of the parts spread out on a table

Here are the plate and keyboard before I attached the keyboard. In this picture you can see I used electrical tape– once I got home I replaced that with 3M velcro-y command strips that held much more firmly.

the partially populated plate, Pi installed, with the back of the keyboard shown to the side

I had everything put together, but then noticed that the GPIO cutout wasn’t wide enough to fit the display’s connector! I got myself out of this by carefully filing the edge while everything was still put together, because I didn’t want to have to take it apart.

a close up of the GPIO pins and cutout, and the screen’s connector (slightly wider than the hole)

Issues

There’re some things that aren’t quite right with this version, but overall it’s way better than v1.

Other things I’m thinking about for future versions

In no particular order, things I’m thinking about for the future

(i’d like to go back to the home page, please)