Series 5MX and Linux

[ Site Index] [ Attic Index] [ Psion Index] [ Feedback ]

The Psion Series 5MX is the palmtop the Series 5 should have been. The Series 5 back in 1997 was pretty useless to a hardcore Linuxer; the 5MX is already a handy peripheral to a Linux box, and promises to become more so as time goes on. Here's a Linux-centric look at the box ...

For starters, the Series 5MX has double the memory and is twice as fast as the Series 5. It has a smooth, non-peeling case. There are other changes under the hood; notably a new operating system version, better power management, and extras the original needed badly. In addition, there's a lot more useful software for it these days.


Back when the Series 5 was new, the only ways to get data on or off the beast was via serial cable and Xmodem/Ymodem transfer, or via a CF card and PCMCIA adapter if you had a laptop or a desktop PC with PCMCIA reader.

Today, things go a lot more smoothly. For starters, CF cards are cheaper. A 32Mb card costs well under seventy pounds, including postage and tax; and with a PCMCIA adapter you can slot one into any laptop with PCMCIA support and mount it as an MSDOS filesystem. This is just about the fastest, most convenient transfer technique between a Series 5/5MX and a laptop; but even if you can't get PCMCIA support working or don't have a CF card, it's possible to move files about.

The first solution is the NCP protocol stack for UNIX. NCP is the Psion networking protocol. You can find a detailed discussion of it here, and a working implementation of an NCP server for UNIX by Philip Proudman. The NCP server user interface is rudimentary but workable and includes an ftp-like client that you can run on a UNIX system and connect to your Psion and get/put files.

A second solution is to use p3nfs by Rudolf Koenig. Originally written for the Series 3, p3nfs provides a "fake" NFS server on the UNIX side and a simple file transfer application on the Psion; this makes the Psion look like an NFS-mounted filesystem to your local UNIX system. It's designed to integrate with the excellent NFSD terminal application on the Psion 3 -- there's no equivalent for this on the Series 5, just a rudimentary OPL program to handle the file transfer requests.

(NB: I have had trouble compiling p3nfsd on Linux. The most recent version, 5.3.x, seems to need some headers compiling in a specific order or it bombs out with loads of error messages -- details to follow.)

If I had to argue the toss I'd say that the NCP kit for UNIX is better; you don't have to install extra software on the Psion, and sustained throughput at 115200 baud is quite achievable. However, if you want to just mount your Psion and tar up its directory tree, p3nfs may be a better bet for you (until someone does some more work on the NCP client user interface!).

I know relatively little about IrDA, other than that it exists and that the Series 5 and Series 3c/3mx cannot directly exchange files. IrDA is a relatively late arrival on Linux, and I haven't looked into it yet; I believe it requires mobile-IP support to be compiled into your kernel before it is usable. However, there is some hope of using an infra-red port as a simple serial interface -- in which case, NCP should work quite well with it.

Some shareware Psion IR utilities exist; URL to follow.

File formats

As was the case two years ago, Psion seem to think that everybody who could possibly be interested in the Series 5 will have easy access to a machine running Windows. For this reason, there are no native file format translators; all the import/export filters are built into PsiWin, the Psion-supplied comms system (which provides NCP support under Windows).

The situation today is, however, better than it was in 1997.

Firstly, a project is under way to reverse-engineer the Psion file formats. For a number of reasons this isn't a simple job; notably, EPOC/32 doesn't have files as such, but a mechanism for persistently storing objects containing a mixture of code and data -- with other objects embedded in them.

The first fruits of the reverse engineering project can be found at Frodo's web site; there's a UNIX-based tool for converting Psion Word files into HTML, and documentation on the Word and Notepad file formats. The converter has a separate front-end and back-end; it may well be possible to build a Word-to-RTF export filter (or, more trivially, a Word-to-POD or Word-to-SDF filter) using this code.

Going the other way will be a bit harder, but in principle it should now be possible to write a library for generating Psion documents on UNIX.

Secondly, Psion have released the whole EPOC-32 development kit via EPOC World (see above). Included in the release is a whole slew of documentation and utilities, including the source to Word and documentation and methods for manipulating the EPOC/32 RichText object. You need a Windows box running Visual C++ to use this kit, but the materials are now available to write native import/export filters for Psion Word.

All of this means that my earlier criticisms of the Series 5 as being a closed box, designed as an appendage for Windows, are partially invalidated. It's still not easy to move documents from the Series 5 to a UNIX system and back, but it is at least in principle possible.

Text Editors

One thing I do depend on is a text editor -- it's the one application I use 90% of the time. To this end, two useable editors are available:

DSTEdit is an unassuming programmers' text editor that has the unique feature of being native to the Psion Series 5. It has another rare feature: rather than operating on individual files, it works on groups of files, bundled together as a textgroup. You create a textgroup document, add files to the group, then switch between files in the group freely. This isn't a true project or make replacement, but it does have some advantages insofar as it lets you treat a group of files as a related project. DSTEdit supports all the basic file editing options and integrates with the Psion's spell checker; my only disappointment with it is that it lacks support for regular expressions and there's no automatic word wrap setting.

Vim needs no introduction; it's the granddaddy implementation of the vi text editor. This is a preliminary port of Vim to EPOC/32; it has none of the GUI accessories and built-in language interpreters of the main Vim ports, but it does the job. Vi is hard-wired into my fingertips -- I wrote a vi user's guide more than eight years ago -- and if this port was finished it would be my automatic #1 choice of text editor.

Of these, DSTEdit is commercial -- you'll need to register it in order to use it -- but complete. The Vim port is promising and is free, but is not yet fully usable; it works, but isn't integrated with the Psion OS at all (you'll need a command-line shell to start it up), and relies on a development release of the CURSES library port which is extremely slow. When the Vim port is finished it will be my editor of choice (of course!), but until then I'll have to rely on a registered copy of DSTEdit for my day to day work.


One thing that Psion Software has done right recently is to release the EPOC32 development kits for free download from EPOC World. It's still tied to a Windows NT 4.0 or Windows 95 development host (with Microsoft Visual C++ as an environment), but at least they now seem to view fostering third-party developers as an important strategic move rather than a profit centre.

Even if you don't have access to a Windows system, it's worth downloading the OPL developer's kit. The documentation is provided in PDF and HTML formats, and there are copious examples and some OPX's. I'm currently working my way through Programming Psion Computers with an eye to writing something useful, sooner or later.

I'm not really an OPL programmer; I'm a perl mangler. Of great interest is the recent (alpha) release of Perl for EPOC/32. It's still a work in progress, lacking support for a whole range of useful things (some of which, like sockets, should be possible). Coupled with a decent shell (Such as Shell5 and the port of Vim, it should be possible to port most of Tom Christiansen's PPT project to the Series 5. PPT is a cool idea; re-implement most of BSD UNIX's command-line utilities in pure Perl, so that you can have a UNIX-like command line environment with text editor, perl, and the usual utilities -- while enjoying full access to all the EPOC/32 applications at the same time (which you simply can't do when you're running Linux). Alternatively, something like PPT would be a handy add-on for Shell5; this shell lets you implement external commands in OPL, and a bunch of common UNIX utilities would come in handy.

Miscelaneous utilities

EPOC/32 on the Series 5MX comes with a fair bundle of utilities. However, there's always something else you find yourself needing. My list of indispensible tools (not already mentioned above) looks like this:

I will be using PGP for EPOC32 when it's out, but as it's still under development ...

You may want to check out the No Nags Freeware page at 3-Lib for other useful gadgets; I'm not going to go into them here as they're no specific to messing around with Linux, which is what this page is all about.

[ Site Index] [ Attic Index] [ Psion Index] [ Feedback ]