<!doctype linuxdoc system>

<article>

<title>Linux and Psion HOWTO</title>
<author>Hans Kugler, <tt>der.hans@LuftHans.com</tt></author>
<date>v0.0.9, 2000-11-17</date>
<abstract>
This document describes how to use Psion palmtops with Linux, but does not cover running Linux on a Psion palmtop. See the <url url="http://SourceForge.net/projects/linux-7110/" name="Linux on Psion Project"> for that.
</abstract>

<toc>

<sect>About this HOWTO
<p>

<sect1>Introduction<label id="intro">
<p>

<url url="http://www.Psion.com/" name="Psion"> has been making PDA's for years. This document will concentrate on the Series 5* models, e.g. Series 5, <url url="http://www.series5mx.com/" name="Series 5mx"> and Series 5mx PRO and the 32 bit EPOC operating system they come with, but there will be some crossover to older models such as the Series 3* and newer models such as the Series 7. There is also a little information about other <ref id="series3" name="series"> at the end of this document.

<sect1>This Document<label id="thisDoc">
<p>

The latest version of this document can be found at <url url="http://home.pages.de/~lufthans/unix/docs/HOWTO/psion-HOWTO.html">, but the main repository is the Linux Documentation Project (<url url="http://www.LinuxDoc.org/" name="LDP">).

Please send updates, corrections or suggestions to <htmlurl url="mailto:psion@LuftHans.com" name="psion@LuftHans.com">.

<sect1>Mailing List<label id="maillist">
<p>

There is a mailing list dedicated to using Psions with Linux and developing tools to enhance communication between them.

To subscribe, send a message to <htmlurl url="mailto:plptools-developers-request@lists.SourceForge.net" name="plptools-developers-request@lists.SourceForge.net">. John Schrader has put up a <url url="http://rz-home.de/~jschrade/linux-psion.html" name="searchable list"> of messages from Oct 1998 through Feb 1999.

There is also a mailing list dedicated to porting Linux to the Psion 5* models at <htmlurl url="mailto:linux-7110-request@lists.SourceForge.net" name="linux-7110-request@lists.SourceForge.net">. An archive beginning 04Dec1999 is available at <url url="http://web.gnu.walfield.org/mail-archive/linux-7110/">.

Both mailing lists can be searched through the SourceForge interface.

<sect1>Copyright notice and disclaimer
<p>

(c) 1999-2000 Hans Kugler

This document may be distributed under the terms set forth in the LDP license at <url url="http://www.linuxdoc.org/COPYRIGHT.html" name="http://www.linuxdoc.org/COPYRIGHT.html">. The author reserves the right to release the document and all submissions under a different license in addition to the LDP license.

This document is provided ``AS IS'', with no express or implied warranties. Use the information in this document at your own risk. 

<sect>General Information<label id="geninfo">
<p>

<sect1>What is a Psion<label id="whatispsion">
<p>

Psion is a powerful Personal Digital Assistant (PDA) with pen-based touch screen as well as keyboard. There are several models. This HOWTO currently only covers the Series 5* models, e.g. Series 5, Series 5mx and Series 5mxPro.


<sect1>Psion models<label id="models">
<p>

There are several models of Psion PDAs. All have a foldout case where the screen is in the cover and opening the Psion causes the keyboard to jut out to a more usable position. They also feature the instant on and instant off capabilities of the EPOC operating system.

Psion 3* are older PDAs that still have a lot of functionality and still get sold new due to their meeting needs and being lower cost. This HOWTO doesn't currently cover the Psion 3* series.

Psion 5* has two main product lines with each having two models. The Psion series 5 has a green limited edition counterpart with no functional difference between itself and the standard Series 5. The series 5mxPro, however, has some fundamental differences from the Series 5mx.

All four of the Series 5* products have: compact flash, serial port, keyboard and stylus (for the touchscreen). They all operate on 2 AA batteries and have a backup battery to maintain state when changing out the main batteries. Check out <url url="http://psion.by.ru/psioninside/s5inside/index.htm" name="Akaev's site"> to take a tour of a dissected Series 5 classic.

Both of the Series 5 models as well as the Series 5mx have system ROMs where the EPOC operating system is stored. After boot they operate out of the RAM (8MB for the Series 5 models and 16MB for the Series 5mx). The Series 5mxPro, however, has no ROM and operates entirely out of its 24MB of RAM. This enables software upgrades to the Series 5mxPro, whereas the other 3 models must exchange hardware to update EPOC.

Psion has also released the Series 7, which is set to compete against the subnotebook class of PC, but running EPOC. They also have a Revo, which is smaller than the Series 5*.

<sect1>Psion Availability<label id="availability">
<p>

Psion products are no longer available at retail stores in the US. They are available from retail shops in Europe as well as through mail order. Psion maintains a list of <url url="http://www.psion.com/resellers/index.html" name="mail order"> firms by country on their web site.

<sect>Sharing data between the Psion and Linux<label id="datasharing">
<p>

<sect1>Hardware connectivity options<label id="hwconn">
<p>

The Psions have both serial and infra red ports. Either can be used for connectivity, but most connectivity programs currently only have features for the serial port connection.

<sect2>Serial cable<label id="serial">
<p>

Armin Podtschaske x-rayed the "honda" connector.

<!--His <url url="http://home.t-online.de/home/armin.podtschaske/pocci.htm" name="page"> has an explanation of the pin out in German.

Here it is for those who don't speak German :).
-->

Pin 1 is on the top and pin 15 is on the bottom. Only pins 2 through 8 and 15 are connected.

<itemize>
<item>Pin 2: RTS 
<item>Pin 3: DTR 
<item>Pin 4: TXD 
<item>Pin 5: DSR 
<item>Pin 6: DCD 
<item>Pin 7: CTS 
<item>Pin 8: RXD 
<item>Pin 15: GND - Signal and Power ground 
<item>Frame: GND - Shield frame ground 
</itemize>

<sect2>IrDA<label id="irda">
<p>

See Werner Heuser's <url url="http://www.LinuxDoc.org/HOWTO/Infrared-HOWTO/" name="Infrared HOWTO"> for information about using the Linux IrDA driver with a Psion. It is possible to beam files from Psion 5 (mx) via Linux-IrDA to a Linux System. The irda-utils include a special client psion5.c which can beam files
between them.

<sect2>Builtin programs<label id="builtin">
<p>

There are two builtin software methods to use the communications ports. The first is the <em>remote link</em>, <tt>&lt;ctrl>-l</tt> from the main file menu, which can be set to serial, infrared or off.

EPOC also provides the program <tt>comms</tt>. The remote link must be set to off for the <tt>comms</tt> program to have access to the serial port.

<sect1>Programs for connectivity<label id="swconn">
<p>

<sect2>plptools<label id="plptools">
<p>

<descrip>
<tag>Description</tag>

<url url="http://SourceForge.net/projects/plptools" name="plptools"> was originally developed by Fritz Elfert, who had merged plp and <ref id="pxnfs" name="p3nfs/p5nfs">. plptools is currently being worked on by members of the PLP Tools project.

plptools comprises of 3 different programs. ncpd provides a socket connection to the Psion. plpnfsd provides mounted filesystem access to the Psion and plpftp provides ftp access to the Psion.

<!--
See <url url="ftp://ftp.to.com/pub/psion/"> for Fritz' original releases.
-->

<tag>Usage</tag>

ncpd &lsqb;-V&rsqb; &lsqb;-v logclass&rsqb; &lsqb;-d&rsqb; &lsqb;-p &lt;port>&rsqb; &lsqb;-s &lt;device>&rsqb; &lsqb;-b &lt;baudrate>&rsqb;

plpnfsd &lsqb;-v&rsqb; &lsqb;-V&rsqb; &lsqb;-p port&rsqb; &lsqb;-d mountdir&rsqb; &lsqb;-u user&rsqb;

First start ncpd get it to listen on a port (7501 by default) for connection requests. Then, start either plpnfsd or plpftp. plpnfsd defaults to mount the Psion under /mnt/psion.

</descrip>

<!--
<sect2>kpsion<label id="kpsion">
<p>

<descrip>
<tag>Description</tag>

<url url="ftp://ftp.cs.unm.edu/mirrors/kde/unstable/apps/utils/kpsion-0.1.tar.gz" name="kpsion"> is available under <url url="ftp://ftp.cs.unm.edu/mirrors/kde/unstable/apps/utils/" name="unstable/apps/utils/"> at your favorite KDE mirror.

It provides a method to use kfm (KDE File Manager) to directly access files on the Psion via a serial link. Psion files can be opened by using 'psion:' or 'epoc:' URLs. It uses ncpd from the plptools package, which must be running to use kpsion, to handle the serial connection.

kpsion also has a Psion Word->HTML/Text viewer/ converter built from psiconv to allow viewing documentation created with Psion Word under Linux.

kpsion is currently ALPHA support for connecting to a Psion Series 5*. It is only available in source and only builds against KDE 1.1 and KDE 1.2. Please read the README and INSTALL files that come with the tarball.

</descrip>
-->

<sect2>p3nfs/p5nfs<label id="pxnfs">
<p>

<descrip>
<tag>Description</tag>

<!-- previous url="http://www.ftp.uni-erlangen.de/pub/psion3/local/utilities/" -->

<url url="http://www.koeniglich.de/" name="p3nfs"> mounts the psion drives over the serial cable at /psion.stand/mnt, by default.

</descrip>

<sect2>ncp<label id="ncp">
<p>

<descrip>
<tag>Description</tag>

Matt Gumbley originally started <url url="http://www.gumbley.demon.co.uk/ncp.html" name="ncp"> for use with his Psion Series 3. Now that he's working on <ref id="plptools" name="plptools">, you should use that :). However, ncp might still be of interest to users of a Psion Series 3, which this HOWTO doesn't cover :). Matt's ncp page also has information about the plp protocol.

</descrip>

<!--
<sect2>plp<label id="plp">
<p>

<descrip>
<tag>Description</tag>

<url url="http://www.proudman51.freeserve.co.uk/psion/ncp.html" name="plp">

</descrip>
-->

<sect1>Linux utilities<label id="linutils">
<p>

<sect2>Psiconv<label id="psiconv">
<p>

<descrip>
<tag>Description</tag>

<url url="http://huizen.dds.nl/~frodol/psiconv/" name="Psiconv"> translates Psion Word documents or TextEd files (as used by the OPL editor, for example) to HTML (3.2 or 4.0) or plain text. It can also translate Sketch files and MBM files to almost any graphics format. A description of the Psion files formats is also included.

</descrip>

<sect2>psiontobbdb<label id="psiontobbdb">
<p>

<descrip>
<tag>Description</tag>

<url url="http://www.ramin.uklinux.net/psiontobbdb" name="psiontobbdb"> converts Psion vcard format from the EPOC Contacts application to emacs BBDB format.

</descrip>

<sect2>psiontognomecard<label id="psiontognomecard">
<p>

<descrip>
<tag>Description</tag>

<url url="http://www.ramin.uklinux.net/psiontognomecard" name="psiontognomecard"> converts Psion vcard format from the EPOC Contacts application GnomeCard vcard format.

</descrip>

<sect2>kab2psion<label id="kab2psion">
<p>

<descrip>
<tag>Description</tag>

<url url="http://web.wanadoo.be/rc.s/kab2psion/" name="kab2psion"> is a small utility written in perl to create a CSV file from the KDE addressbook.

</descrip>

<sect2>PsiLin<label id="psilin">
<p>

<descrip>
<tag>Description</tag>

<url url="http://www.medsyn.fr/perso/g.delafond/psilin/psiolinu.htm" name="PsiLin"> (in French, <url url="http://www.medsyn.fr/perso/g.delafond/psilin/psilingb.html" name="short english version">) is a GTK-based graphical frontend for many programs which connect Linux to Psion. It also works for Series 3*.

</descrip>

<sect2>Psion SDK<label id="psisdk">
<p>

<descrip>
<tag>Description</tag>

The EPOC SDK works on Linux via WINE, see Olaf Flebbe's <url url="http://members.linuxstart.com/~oflebbe/sdk/" name="web page"> for instructions on how to get it working.

</descrip>

<sect2>Xmakesys<label id="xmakesis">
<p>

<descrip>
<tag>Description</tag>

<url url="http://www.tardis.ed.ac.uk/~adq/projects/epoc32/" name="xmakesys"> is a perl utilility that parses Psion's .pkg files and outputs .sis files.

</descrip>

<sect1>Psion utilities<label id="psiutils">
<p>

<sect2>hermes<label id="hermes">
<p>

<descrip>
<tag>Description</tag>

<url url="http://www.iota.demon.co.uk/psion/hermes/hermes.html" name="hermes"> is a fully featured vt100 emulator.

</descrip>

<sect2>perl<label id="perl">
<p>

<descrip>
<tag>Description</tag>

Olaf Flebbe has <url url="http://members.linuxstart.com/~oflebbe/perl/perl5.html" name="perl"> running under EPOC.

</descrip>

<sect2>python<label id="python">
<p>

<descrip>
<tag>Description</tag>

Duncan Booth has <url url="http://dales.rmplc.co.uk/Duncan/" name="python"> running under EPOC. (link currently down)

</descrip>

<sect2>python<label id="pythonoc">
<p>

<descrip>
<tag>Description</tag>

Otfried Cheong also has a port of <url url="http://www.cs.uu.nl/~otfried/Python/" name="python"> for EPOC.

</descrip>

<sect2>BProlog<label id="bprolog">
<p>

<descrip>
<tag>Description</tag>

Tim Wentford has gotten <url url="http://www.probp.com/download/Epoc.html" name="Bprolog"> working on the Psion 5*.

</descrip>

<sect2>Shell5<label id="shell5">
<p>

<descrip>
<tag>Description</tag>

Nick Murray has created <url url="http://www.geocities.com/SiliconValley/Pines/1439/shell.html" name="Shell5">, which is a command line interpreter which allows basic file operations as well as some sophisticated functions such as command history, filename expansion, batch file support, input and output redirection, pipe like feature :), aliases and shell variables, keyboard remapping and macros and UNIX or DOS syntax for pathnames.

</descrip>

<sect2>E_Shell<label id="e_shell">
<p>

<descrip>
<tag>Description</tag>

<!--
<url url="http://www.epocworld.com/downloads/progs/e-shell.html" name="E_Shell">
-->
E-shell comes with the SDK and is a DOS-like shell environment from the EPOC SDK. It provides ways to launch programs from a command line; to check for file system corruption; to create, edit and display plain text files; to check on currently active processes and threads. The former link to download the shell itself has been removed.

</descrip>

<sect2>c2f<label id="c2f">
<p>

<descrip>
<tag>Description</tag>

<url url="http://home.pages.de/~lufthans/unix/packages/" name="c2f"> converts the Psion contact file to a comma delimited format.

</descrip>

<sect>Hardware Info<label id="hwinfo">
<p>

<sect1>Hardware Troubleshooting
<p>

<url url="http://psion.by.ru/psioninside/trouble/index.htm" name="Hardware troubleshooting">
<p>

<sect1>Pictures of internals
<p>

Akaev has disassembled several handhelds and made lots of pictures available as tours.
<p>

<url url="http://psion.by.ru/psioninside/s5inside/index.htm" name="Series 5 inside">
<p>

<url url="http://psion.by.ru/psioninside/xray/s5mx_1.htm" name="Series 5mx x-ray 1">
<p>

<url url="http://psion.by.ru/psioninside/xray/s5mx_2.htm" name="Series 5mx x-ray 2">
<p>

<!--
<url url="http://home.t-online.de/home/armin.podtschaske/pocci.htm" name="Honda connector x-ray"> 
<p>
-->

<sect1>Disassembly
<p>

<url url="http://psion.by.ru/psioninside/s5dismantle/index.htm" name="Series 5 disassembly">
<p>

<url url="http://psion.by.ru/psioninside/s5inside/mon01.htm" name="Series 5 monitor disassembly">
<p>

<sect>Further Information<label id="infos">
<p>

<sect1>Psion Specs
<p>

<sect2>Psion File Formats
<p>

Frodo Looijaard has released information about the <url url="http://huizen.dds.nl/~frodol/psiconv/html/Index.html" name="information"> he's garnered from reverse engineering various Psion file formats.

<sect2>PLP and NCP
<p>

Matt Gumbley has released some <url url="http://www.gumbley.demon.co.uk/ncp.html" name="information"> about the <url url="http://www.gumbley.demon.co.uk/ncp.html#9" name="PLP">, Psion Link Protocol, and <url url="http://www.gumbley.demon.co.uk/ncp.html#12" name="NCP">.

<sect2>SIS and PLP
<p>

Alexander Thoukydides has released some information about <url url="http://www.btinternet.com/~thouky/software/psifs/sis.html" name="sis"> files as well as the <url url="http://www.btinternet.com/~thouky/software/psifs/plp.html" name="PLP">, Psion Link Protocol.

<sect>Series 3<label id="series3">
<p>

<sect1>Further Information
<p>

As I said earlier, this HOWTO doesn't cover the Series 3 ( e.g. 3/3a/3c/3mx/Sienna ), however, as I run into information, I will try to place it here anyway. This section will probably never be organized (unless someone else keeps it uptodate), but it still might contain useful information.

<sect1>Programs for connectivity<label id="3swconn">
<p>

<sect2>p3nfs/p5nfs<label id="3pxnfs">
<p>

<descrip>
<tag>Description</tag>

<url url="http://www.koeniglich.de/" name="p3nfs">, referenced <ref id="pxnfs" name="above"> mounts the psion drives over the serial cable at /psion.stand/mnt, by default.

</descrip>

<sect1>Psion utilities<label id="3psiutils">
<p>

<sect2>nfsc<label id="3nfsc">
<p>

<descrip>
<tag>Description</tag>

<url url="http://www.koeniglich.de/" name="nfsc"> is a VT100 emulator from Rudolf K&ouml;nig.

</descrip>

<sect2>Shell3a<label id="shell3a">
<p>

<descrip>
<tag>Description</tag>

Nick Murray has created <url url="http://www.geocities.com/SiliconValley/Pines/1439/shell.html" name="Shell3a">, which is a command line interpreter which allows basic file operations as well as some sophisticated functions such as command history, filename expansion, batch file support, input and output redirection, pipe like feature :), aliases and shell variables, keyboard remapping and macros and UNIX or DOS syntax for pathnames.

</descrip>

<sect2>PsiLin
<p>

<descrip>
<tag>Description</tag>

<ref id="psilin" name="PsiLin">, mentioned in the Series 5* sections, also supports Series 3*

</descrip>

<sect2>arb's Psion Software
<p>

<descrip>
<tag>Description</tag>

Various <url url="http://www.sat.dundee.ac.uk/~arb/psion/" name="utilities"> for Series 3* from arb.

</descrip>

<sect1>Informational Web Pages
<p>

<sect2>Hardware Info
<p>

<url url="http://www.home.unix-ag.org/fionn/d/Psion/Inside.html" name="Zerlegeanleitung Psion Serie 3a">, e.g. Disassembling a Series 3a (in German only)
<p>

<url url="http://psion.by.ru/psioninside/s3inside/index.htm" name="A naked Series 3">
<p>

<url url="http://psion.by.ru/psioninside/xray/s3.htm" name="Series 3 x-ray">
<p>

<sect2>Psion Link Protocol (for Psion 3)
<p>

<url url="http://ns1.filetron.com/~oflebbe/psion/" name="PLP documentation">

<sect2>Generic FAQs
<p>

Series 3 FAQ:  
<url url="http://www.widget.com.au/widget/faq1.htm" name="part 1">, 
<url url="http://www.widget.com.au/widget/faq2.htm" name="part 2">, 
<url url="http://www.widget.com.au/widget/faq3.htm" name="part 3">, 
<url url="http://www.widget.com.au/widget/faq4.htm" name="part 4">
<p>

<sect>Revo<label id="revo">
<p>

<sect1>Informational Web Pages
<p>

<sect2>Hardware Info
<p>

<url url="http://psion.by.ru/psioninside/revoinside/index.htm" name="Revo Inside">
<p>

</article>
