There was once a PC form factor known as the ‘Palmtop’ and it was good.
Then, tablets appeared and pretty much wiped them out completely.
I am still a huge fan of palmtops – they’re great for travel or getting some light work done in the park without having to lug about a full laptop, try and type on a tablet screen, or trying to angle those awful tablet keyboard cases on your lap so that they don’t collapse.
This article logs the build process of a DIY Raspberry Pi palmtop/laptop computer using only tools from your kitchen.
Unlike DIY projects on other sites, I am going to avoid doing anything that requires tools beyond what’s available in your kitchen. No 3D printers, no lathes, no jigsaws, and only (light) soldering if necessary.
Why the limitations? Because it’s really disheartening to find a cool project online that’s totally inaccessible due to the build requirements. Not everyone has a shed or a workshop.
Nothing will be exact, so you can substitute parts available to you. This is an article to show you what you can make on your own with parts only from your local discount store.
First up, here’s some 90s inspiration
Let’s take a quick look at the pedigree. I used a Libretto 100CT (overclocked with a soldering hack) up until the late 2000s. For such a small machine, loaded with Windows 2000 or running a lightweight Linux distro it was an absolute beast. It was the best part of 15 years old when I retired it by pulling it apart to clean and then losing all of the screws.
Microsoft Pocket PC Platform
Now, on to my own Raspberry Pi Palmtop build.
You’ll of course need your Raspberry Pi and a suitable screen, as well as some electronic extras from your preferred online marketplace:
- Raspberry Pi
- A Pi Zero is obviously best as you can make your palmtop smaller
- If you don’t want to solder, you can order zeros with the GPIO pints pre-soldered, otherwise, you’ll have to add your own
- A USB Hub (optional)
- The only USB device that’s really necessary is the keyboard, so the onboard USB port might be enough
- For me, it isn’t, as my Raspberry Pi is a bit older and lacks built-in WiFi, so I’ll need an extra USB port for a dongle
- 5 Inch LCD Screen
- Availability varies by region, pick the one you like
- Make sure it can be powered by USB or from the Raspberry Pi GPIO headers if you aren’t using a hub
- Raspberry Pi UPS or Battery
- Again, the availability of different models seems to differ by region. Find one near you with good reviews
- Ribbon HDMI Cable
- Flat cables are easier to bend where the hinge will be
- Micro HDMI/USB adapters
- The Pi Zero needs them as it has small ports
The rest of the parts can be sourced from your local discount store:
- A cheap USB keyboard/tablet case combo
- These things cost about 5 bucks and are terrible for their intended purpose, but are a good source of tiny USB keyboards for projects
- This one has a nice red leather finish which I’ll re-use as well
- A rigid plastic box to act as the case
- Pick a size that works for you and the parts you’ve found
- This one is a DL envelope sized box which is about 5cm tall
- Liquid nails, double-sided tape, electrical tape, etc
- Sticky stuff
As I mentioned, I’m not going into measurements or telling you to buy this exact part from that exact supplier, because you might not be able to get the exact same thing where you are – and that doesn’t matter. This is hacking, and hacking is creative, so use what you’ve got and make it work.
Here’s how I put it all together…
First up I split the keyboard case open and removed the keyboard itself.
I saved some of the case and tidied up the edges, this will make a good inside cover for the finished palmtop.
All I’ve done here is carefully slice up the case and added electrical tape to the edges to stop any fraying.
Brains & Backbone
Base Unit Internals
A rectangle that fits snugly inside the bottom of the plastic box was cut from some strong cardboard, and the Raspberry Pi, battery, USB hub, and adapters were arranged on it and stuck down with double-sided tape. This forms the backbone and brain of the unit – the keyboard will be mounted to the back of this later forming the complete base unit inside the bottom of the palmtop case.
The battery is on the corner so that the power button, socket, and power LEDs will be on the side of the palmtop.
To stop make sure nothing moves about, and to add some structural integrity, cardboard triangles were added to hold everything in place once the brains and backbone are dropped into the case.
Base Unit Case
The case was a bit taller than needed, so I cut it down so that the base unit internals would fit inside it without peeking over the top.
To make a level cut I found a book that was about the right height and just traced around the side of the box with that, ran some tape around it to prevent the plastic cracking while I cut it, and then attacked it with a knife.
Assembled Base Unit
The brains of the project now drop neatly inside the base – the palmtop is taking shape!
Please ignore the large beauty logo visible on the cardboard I used for this project
Shaping the lid is much the same as the base – a book was used to keep a level line when marking where to cut, except this time a different shape was used so that the box would be able to open with a hinge on the short side of the lid.
Attaching the Keyboard
The keyboard is attached to the top of the base with double-sided tape. The yellow tape was only there to hold things in place while work was in progress.
Once I knew that everything was fitting into the base, I went back and filled in those re-enforcing triangles with liquid nails and let them set overnight – they’re now solid rubbery masses that can take the weight of typing while keeping the base together.
I didn’t leave the plastic cover on while the glue dried, so it can still be removed and the insides worked on.
Looking pretty sharp! You can see I’ve added some black rubber trim to hide any rough edges left from cutting the plastic case.
Making it fit
Here’s the base with the cover removed again (you can see the liquid nails which hold everything together).
The battery is connected to the Pi via the GPIO ports, the details of this will depend on which battery you use.
One thing I didn’t account for was the height of those wires sticking out from the battery – they’ll get bent and broken if I put the case back on as it is…
The solution was to pre-bend some wires and run them out sideways. I added a plastic platform to the top of them to hold them in place sturdily.
It looks like a mess – but who cares. This is about making something that works. “Perfect” is the enemy of “having fun”.
Attaching the screen
To make the screen mount, I’ve cut another section from the tablet case. This time it’s edged in black tape to match the rubber trim used on the base.
Next, everything was plugged in and set out as if the palmtop was assembled and sitting completely open.
Spare plastic offcuts were used to make the back of the LCD screen a consistent height and provide a surface that could be glued to the mounting cardboard.
Before final gluing and assembly, the inside of the plastic case was spray painted white.
It actually came out pretty well, as the inside was sprayed rather than the outside it had a sort of iBook polycarbonate effect happening.
The screen was glued to the mount, the mount was glued to the lid, and the lid was attached to the base (which can still be disassembled to get to the Raspberry Pi).
Holes were cut for the power button and the micro-USB port on the battery so that the palmtop can be charged and turned on without disassembling it.
Unfortunately, the cheap spray paint I used started to fall off immediately, but other than that everything has held together really well.
A cheap piano hinge can be used to attach the lid to the base, or you can just use some strong tape if that’s all you have on hand (which was the case here). The cables will hold the lid up.
For a tool-less project with materials from a discount store, and a Sunday afternoon of mucking around, I think this turned out pretty well!
Software (The Linux Bit)
My initial plan was to include a trackball mouse or make use of the touch-screen features, but I decided instead that this would be a keyboard-only project.
Running only terminal software should give better battery life, performance (especially on the anemic Pi Zero) and it means the unit can be kept smaller without the mouse hardware.
I’ve installed Raspberry Pi OS without a GUI for this, and it is quite usable with the small keyboard.
When it’s on my desk, I can display server stats or chat on IRC. Out and about, I can hack together articles in a text editor like nano or vim.
If you wanted a GUI, you could use a more powerful Raspberry Pi and install Ubuntu MATE on it, or even emulate a classic macOS environment and tote around a portable 90s Macintosh.