Psion series 5/5mx

Tags:tech,psion

The psion series 5mx is a palmtop computer from the late 90s. I love mine even though it's old, no modern device really comes close to it. This is a page of notes on programming and using the psion in the 2020s.

Display Cable Repair

Unfortunately, due to their age and a design flaw in the original display cable, many have broken displays. My display cable failed, leading to no picture displaying on the screen, only horizontal lines. There are a few places that sell replacement cables, most notably psionflexi who also have an installation guide, although installation is somewhat tricky:

Psionflexi

If you cannot install it yourself (or don't have a friend who'll be happy to do it) Psionex still offer a repair service, but it's quite expensive (they quoted me £110 to repair mine)

Psionex

You can also buy units with refurbished display cables on ebay.

File transfer on linux

Transfering files to and from the psion on linux is best done over serial. The psion and linux seem to have different assumptions about filesystems that mean it can't read properly.

To transfer data over serial you need a psion serial cable and a USB->Serial converter (most will work on linux). You'll need to download and install plptools, which is available from github or in AUR as `plptools-git`. There are build instructions in the readme.

plptools github

Connect your psion to your PC and start ncpd. ncpd is intended to run as a daemon but I prefer just to start it when I need it (replace /dev/ttyUSB0 with the serial port your psion is on):

sudo ncpd -d -s /dev/ttyUSB0

Then on the psion, hit Ctrl+L, and set link to "cable". If you have serial issues you may also want to change the baud rate. At this point your psion should be connected to your PC! You might need to try restarting ncpd and/or the psion link type a few times to get a connection. Now you have two options for file transfer interfaces: `plpftp` and `plpfuse`. `plpftp` is a command line tool and `plpfuse` mounts the psion as if it is a linux filesystem. I have found `plpftp` to be more reliable. It's a command line program but I find it pretty self-explanatory to use: `put [unix file]` copies a unix file to the psion, `get [psion file]` copies a psion file to unix, and you can navigate the psion filesystem using the usual commands you'd expect.

Programming in C/C++

There is a book on psion C++ programming that is essentially the only resource I can find on psion C++, which I have scanned. It's available from everybody's favorite shadow library and also this link:

Professional Symbian Programming Book (archive.org)

Setting up an SDK on linux

There have been a few attempts to build a psion SDK that works on linux over time but the most up to date I have found (and the only working psion SDK I have used) is this one. I would highly recommend it over trying to get the original SDK working! I tried installing the original SDK in both wine and windows XP and got broken executables out of it both times, so this is far better:

static-void psion linux C++ SDK

The README is pretty good for install instructions, but I'll add a few things to note:

epoc_cpp_sdk/pep/helloworld
|-	helloworld.cpp
|-  helloworld.mmp

and then helloworld.mmp should contain:

PROJECT pep
SUBPROJECT helloworld

Any more information I could put here from what I know so far would be duplicating either the book or the README of the SDK.

Other useful psion links

Psion Official Windows SDK downloads (I do not recommend using these)
Blog post about the internals of the psion and emulating it
a modern psion site with some info
Eric Lindsay's psion page. Lots of dead links but you can find the software archived

3d printable replacement stylus for psion 5