PsionPi Cyberdeck – a Psion 5 / Raspberry Pi project

The project: a compact cyberdeck with a built-in keyboard

I was recently selling some HP Jornada PDAs on eBay, having spectactularly failed to get them online via a wifi PCMCIA card. What I really wanted, I decided, was a Raspberry Pi in a compact “Cyberdeck style” unit.

The failed project: HP Jornada conversion

I did look at converting one of the Jornada 680s that I had as the keyboard was, if a bit small, adequate for my needs. I looked for a converter of some kind to take the ribbon cable used by the Jornada’s keyboard to a USB output, but I looked in vain, hence the decision to subsequently send them to eBay.

However, I did come across this Psion 5 keyboard adapter by Rasmus Backman on Tindie and thought: “Yes, that’s what I want, but for the Jornada.” I found this project which had remixed the Psion 5 adapter for the Jornada. However, it wasn’t as simple as buying from Tindie – I would need to get the boards manufactured. Although the KiCad files were there, I just didn’t have it in me to get a surface-mount board manufactured as a PCBA – it would’ve been expensive, plus I had no idea what to do if the components weren’t available. Would I have to hand-solder the surface-mount components? Probably, and that didn’t sound like much fun.

Moving on! The Psion 5

With Rasmus’ adapter available for a decent cost, I decided to go for a Psion 5. I looked on eBay and found a few lots for old Psion 5s that could be used as the donor unit for the project. Mostly, these were out of my price range but, thanks to selling the Jornadas, I could afford around £50 for the unit. I didn’t need a 5mx (the better, more expensive version), just a 5 (which had lower memory and was considered inferior, although it seemed identical, design-wise). The keyboard was all that mattered. If it was only “for spares”, even better, but all I could find was a lot that included a lot of spare parts for a lot more money, so a working model was where I went. In the end, it cost £45, a good investment. It was slightly faulty (see the picture below with the bad pixels in the middle) so I wouldn’t feel bad about taking it apart and disposing of most of it!

Image of Psion 5 PDA

The actual unit I purchased

Was conversion of a Psion the only option?

Retro tech is to be valued, and even a slightly faulty unit is still usable. Could I use the Psion 5 as it was? I looked at a few options.

  1. Digital assistant via serial. I came across this MagPi article which described a project to use the Psion as a serial terminal for a Pi via a cable (and lots of adapters and gender-switchers!)
  2. Kian Ryan’s sidecar. This was my next find – a 3D-printed module to allow the Psion to be a serial terminal over wifi. This was fairly neat and allowed wireless connections.

Neither option was quite what I wanted – I really wanted a) a colour screen and b) a proper desktop environment.

What’s the plan, then?

I started to assemble parts for the device. I knew that I would eventually have to 3D print something for it. This was likely to be a new “back” to the unit to house the screen and the Pi, but I thought I would likely to have to print a new “bottom” to the whole thing to squeeze a decent battery in. It all depended on taking the donor Psion 5 apart and seeing how much room there was left once I removed the main circult board. Most importantly, I really wanted to keep the hinge mechanism which I have always thought rather cool (I know, what a geek!)

Here’s the hinge mechanism sort-of in operation from the patent application – the unit is a clamshell and the screen lifts up and pushes the keyboard forward.

Which Raspberry Pi?

Initially, I had the thought of using a Raspberry Pi Zero 2W, I needed it as small as possible, but I also needed wireless comms. However, I also realised that I’d need the DSI connector of a full-sized Pi. That’s the “DISPLAY” connector on the left-hand side. This takes a ribbon cable, keeping things neat and doesn’t have the problem of needing a big connector sticking out of the HDMI slot. I decided that a Raspberry Pi 3A+ would be ideal – it’s fairly powerful, although the lack of memory on it does cause me a few problems. I could, if I have enough room, go for a Raspberry Pi 4B, which would be more powerful and keep within what I think I’ll be able to deliver power-wise. However, I would need to detach things like the Ethernet connector and all the USBs in order to keep it to size. I’d also need a USB interface (for the Psion keyboard) and the idea of having to desolder the double-height ones and then solder on a single USB filled me with dread!

Therefore, a 3A+ would have to do:


Which display?

As I’ve said, I wanted/needed to use a DSI display. In previous years, all that was available was the 7″ Official Display. I’ve actually got one of these, so did consider it. Here’s a picture of the back:

As you can see, there’s a driver board on the back. From my own experience, I know this takes up a lot of space in terms of depth, so I looked at the version 2 display as well. This would have been ideal (it’s not as deep), but it’s the wrong shape and size. It’s just too big. Fortunately, things have progressed since 2014 when the Official Display was launched, and there are now a plethora of DSI displays out there.

The donor Psion hadn’t arrived and I wanted to get ahead of the game, so I reached out on Mastodon to ask the community if anyone would mind measuring the screen and surround of a Psion 5. Fortunately, maker Alfred Chow came to my rescue and did the necessary measuring. Here they are for reference:

  • The visible screen is 137mm x 54mm
  • The actual screen area is 145mm x 60mm.
  • The rest of the case surrounding the screen is 172mm x 75mm

This was just done using a tape measure, not calipers, so this is to the nearest millimetre, which is ideal as I wasn’t going to 3D print anything yet.

I went shopping and found that the supplier with the most choice was Waveshare, who are overseas. However, venerable online shop The Pi Hut has a massive amount of their range. I went through the options and found the one that was closest in size to the original Psion 5 screen. This was a Waveshare 6.25″ DSI capacitive touch screen.

Now, this wasn’t a perfect match (hence me probably needing to 3D print a new back of the case, and it’s probably a bit too thick, but it’s worth a try. If I don’t use it for this project, it’ll make a very nice little status monitor for some other things.

Dismantling the Psion 5

First thing’s first. I would need to dismantle the Psion 5 to get at the keyboard and its ribbon cable, which I would then plug in to the Psion 5 keyboard to USB adapter PCB from Rasmus Backman.

Fortunately, someone has documented the procedure to disassemble the Psion – take a look at this page. Here is a more extensive guide and again in PDF form.

I also found this file – the Psion 5 Service Manual (from November 1997!) which could have come in useful.

There are various “teardown” videos on YouTube. For instance:

I completed the teardown, which was fun, but fiddly! A few small bits of plastic broke off (it is, what, thirty years old?) but the 3D printer was the way I was going anyway.

 

Connecting up the Waveshare DSI screen

This was fairly easy, although I did find that it needed specific configuration to get the rotation of the screen right. See below under the Updates section for the configuration that was needed after getting it right once, twice, three times following updates to Raspberry Pi OS (I was not a happy bunny).

Firmware for the keyboard converter

Photo courtesy of Rasmus

The adapter finally arrived from Belgium. The next step was to flash the onboard Atmel chip with the custom firmware, which was available from Rasmus Backman’s Github: https://github.com/RasmusB/USB-Keyboard-Adapter. Naturally, I needed the Arduino IDE to do the actual flashing, and I needed to select Arduino Leonardo as the board when it came up.

Connecting up the Pi to the keyboard

Being very careful with the delicate keyboard ribbon cable, I connected it up to the Pi and it worked!

As an aside: my backup plan if this hadn’t have worked: a Bluetooth keyboard with the same screen:

The screen is a bit on the small side in terms of being able to read what’s on it… But, I found this article to potentially help. Indeed, this did not work so I had screen scaling as a future problem to work on!

A case for the Psion keyboard

I dearly hoped to be able to use the sliding mechanism from the Psion, but I just couldn’t make it work without re-designing it completely and 3D-printing a near identical replacement. The mechanism is a work of art and I just couldn’t see my 3D design skills extending to that level of complexity! Also, the screen didn’t sit behind the plastic bezel the way I thought it would.

I, also, dearly hoped to come up with a clamshell design, such as the one below:

If you’ve been following my blog for a while, you’ll know that my 3D design skills so far have culminated in a case for the PicoPicorder. That was little more than a two-part box which, alas, didn’t have any moving parts like a hinge. Eventually, I moved away from a hinged version of my ideas to a more brick-like appearance. But first of all, I had to go through some pain!

3D designing the case

I bit the bullet and paid for a SolidWorks Cloud licence. However, after a frustrating couple of hours not being able to do what I wanted with the thing (despite Brian Corteil’s valiant efforts to provide a little training at Makespace Cambridge!), I resorted to Tinkercad (which I’ve used before).The first completed version of the case (as of 18th March) looked like this:

As you can see, it’s a hinged case with two 3D printed hinges. The keyboard (and battery) would go in the bottom half and the screen/Raspberry Pi in the top half. The green triangles at the top would, when the case is folded, slot into the spaces at the bottom to provide support against the hinges, otherwise it would close at a funny angle.

The following challenges remained from a design perspective:

  1. As designed, the ribbon cables for power and keyboard connection go out through slots beneath the hinges. They are open to the air and could be snagged or damaged. I really needed a hinge mechanism that allowed the ribbon cables to pass between the two halves without being visible or open to damage.
  2. The case design allows unfolding, but there was nothing to stop it from opening flat, or opening too far. Ideally, I wanted some kind of “stop” so that it opened so far and no further. My first plan was to use one or more zip ties between the two halves, thus providing the case with a flexible part and also avoiding the need to design hollow/pass-through hinges (as I can’t find a model I can use to work from!) Something like the Penkesu computer hinge would be ideal but adapting that design would hinge (ha-ha) on what software was used and if I could persuade the designer to part with the files!
  3. There was nothing really holding the case closed. I could live with that, but it would be nice if it either clipped together or was “sprung” together.
  4. The amount of 3D printing this would take would be substantial and the 3D printer I had (an Ender 3) was unreliable and inaccurate when it came to tolerances.

This was the best print of the hinges:

As you can see, incredibly ropey printing!

A new 3D printer

I was presented (as a complete surprise) with a new 3D printer by my mother-in-law, Janet (it’s a very long story, but suffice to say birthdays! And suffice to say: Thank you, Janet!). The printer, a Bambu A1 with AMS was a radical step up from the Ender 3 (it was 4-5 years newer for one) and is a work of art. It’s also got an assembly guide to die for!

With some (extensive) help from my stepson, James, I soon had a new shelf to hold the AMS and away we went with the new printer, which, it turns out, is very accurate and prints to scale (a step up from the Ender which I used to print at 105% to get it close to measurements).

This was my first full-size print following a benchy and a calibration cube – a beadworkers organiser tray. As you can see, the finish and the accuracy are much higher quality than the Ender. Wow.

The danger of updates

Returning to the main project…

Having got the screen working previously, I was dismayed when running an apt update caused the screen to go black.

I had to put the following back in to /boot/firmware/config.txt:

dtoverlay=vc4-kms-dsi-waveshare-panel,6_25_inch

and also the following at the end of /boot/firmware/cmdline.txt:

video=DSI-1:720x1560@60284,rotate=90

…to make the screen work again.

You must also make sure that your are running the Wayland/labwc compositor for everything (including the touchscreen) to rotate correctly. Very frustrating and cost me about 3 hours of Googling the latest symptoms… I mean “improvements” implemented by Raspberry Pi. Grrr.

The Joy of Updates (December 2025 edition)

Updates. Did I mention how much I LOVE updates by Raspberry Pi?

Once again, my previous way of rotating the screen has failed – because they’ve changed how this will be done.

Okay:

  1. Make sure you’re using Wayland (raspi-config->Advanced options)
  2. sudo apt install raindrop
  3. This installs something which I thought to start with I couldn’t execute (because it installs, but you can’t run it directly!), but it turns out it adds it to the new Control Centre on the desktop.
  4. Open up Preferences->Control Centre.
  5. Look for the Screens applet and then alter the rotation/orientation (to left) and scaling (x1.5 for my liking – makes the touchscreen much easier to use.
  6. Battle with the touchscreen as the rotation of the touchscreen and the screen will not match until reboot, so you have to click Apply and Yes fairly quickly, but backwards. I got the hang of it… eventually.
  7. Then reboot.

This then “sticks”. I have no idea if the other bits I added to config.txt encourages that “sticking” but hey, we aren’t meant to know how things work all the time, right…?

Hopefully, I can keep things up to date without going back to the drawing board… again.

Power consumption and undervoltage

I was hoping, as I was using a Pi 3A+, that I could sneak a LiPo battery in to the side of the Psion footprint and add an Adafruit PowerBoost that I had lying around. The alternative was some 18650 batteries (which would fit in the Psion’s battery compartment, if I was really lucky), but I had less experience with them, although there are some nice “HATs” using them, like this GeekWorm one. The alternative was to use 18650s in a double pack like this one from Pimoroni that came with a good connector on the end that will also work with a PowerBoost. I actually had a 2-cell battery pack and some LiPos, so I knew I wouldn’t have to invest in any more parts.

My initial version of the project, using the PowerBoost was woefully under-powered and only just booted, I reckon. So, I switched to a 4-cell LiOn pack with a LiPo Rider Plus board to deliver high ampage (2.4A!). Here is how it looked in an early-ish version of the case I settled on (the brick design):

However, I also got undervoltage warnings with this pack and board. I had two thoughts:

  1. The 2.4A maximum was not delivering enough grunt to supply the Pi 3A+ and the screen.
  2. The DIY ribbon cables that I’d put together didn’t carry the current well enough to do the same.

I decided to change entirely the power supply method. Fortunately, I had Christmas presents to come from my mum and dad and so I asked them to get me the following items:

I knew, of course, that I would need to completely redesign the case, because of course I had to! But that’s what 3D printing is for… right?

The almost-final version

Marvellously, the 3S UPS board comes with a button to turn it on and also a barrel jack charging port, which can be seen above on the right. You will notice that the screen doesn’t quite look right – this is because I have now changed to a Pi 4 and it doesn’t fit as well.

On the final version, I added the top of a Pi 4 case to “square things off” a bit and then also added magnets to hold the top “plate” (the orange bit) down, thus making it more secure.

I also, following a suggestion from a friend, added a “handle” to the top part of the box (which was now in two halves for easier re-printing!) giving the whole thing the look and feel of a 1980’s Speak and Spell! Here it is in all its red-and-orange glory:

Work left to do

  1. I’d like to open source all the designs for the case. This will be a case of finalising everything and uploading to GitHub. Also, possibly making the designs on TinkerCad open to the public, if that’s even possible!
  2. Add a few more magnets to the bottom plate and the bottom box – it’s not quite finished yet!