I’ve previously shared my recent experiences with the legendary Psion MC400 – getting this 30 year old laptop “online” via an attached Raspberry Pi. Of course this isn’t just any old 30 year old laptop; this one had “instant on”, a clickable touch pad, SSDs, full size Cherry keyboard and over 40 hours of battery life in 1989! To say it was way ahead of its time is of course a massive understatement. Upon recently re-acquiring one of these fine machines my goal was to use it primarily for writing; I wanted to write while out & about without the distractions of full Internet connectedness but still be able to synchronise the documents I’d created with various cloud services. I got a little carried away and ended up adding basic email & tweet sending capability along with image conversion functionality too 😀 I haven’t even begun to explore what else is possible using something like IFTTT email triggers to do all sorts of other things, directly from a piece of early 1990s technology 🙂
Here’s a summary of some of the technical details on how I went back to the future…
TL;DR> Links to pages with more detailed descriptions and actual code listings:
Sending emails via EMAIL.OPO, Pi scripts and msmtp
Sending tweets via TWITTER.OPO, Pi scripts and rainbowstream
Screenshot conversion & cloud sync via Pi scripts, WSPCX, ImageMagick and rclone
BBC news headlines via RSS and Pi scripts
Raspberry Pi config, Custom USB-Serial cables
Powering the Pi and MC from USB
All code is available on github
I’m pretty happy with where this setup is right now – I can send basic tweets and emails, read BBC news headlines and save screenshots to PNG files on google drive, all directly from the machine. I can create documents and spreadsheets with the native Psion Text/Word & Sheet apps, save them as .TXT/.RTF or .WKS/WK1 and/or print them to file (as PostScript) and convert them to PDF. All of this is enabled by an attached Raspberry Pi 3B+ attached via 2 x USB-serial links – one used with the Psion’s terminal app (9600 baud) and the other used with the Psion “The Link” file sharing app (19200 baud). Thanks to “The Link” the MC400 can read/write the Pi’s filesystem. The DOS “
MCLINK.EXE” program runs headless on the Pi in a dosbox-x emulator and mounts
REM::C:\ on the MC400.
The whole setup is still very portable – I’ve shortened some standard Psion serial cables and soldered them directly on to USB-serial modules and both the MC400 and the Pi can be powered from a single USB battery bank, the MC via a USB 5V-12V converter.
I’ve refined a set of shell scripts on the Pi and a couple of OPL programs on the MC400 to achieve all of this – the OPL programs “
TWITTER.OPO” and “
EMAIL.OPO” are installed in the MC400 system window with twitter/email icons and simply write the tweet/email details directly to text files in the Pi’s filesystem. The shell scripts watch the specific locations where the files are written using inotifywait and tweet/email the file contents then archive the files to an “outbox” folder.
Limitations: (so far) send only & text only! Both tweets and emails are restricted to text, so no attachments (yet). I can sort-of cheat by getting (shortened) links to any docs/pics that are synced to Google and including those in the email/tweet text. I’ve implemented copy/paste (“Bring” in Psion-speak) into the OPL text-entry field with some more complex code which calls OS services to access the Link Paste Server.
The screenshots (a file “
LOC::M:\SCREEN.PIC” that is created by holding shift-ctrl-Psion-S on the MC400’s keyboard) are automatically copied (again, by a custom OPL prog) to a location where the Pi is watching and then the Pi converts the Psion .PIC format to .PCX using Psion’s DOS conversion prog “
WSPCX.EXE” in another headless dosbox-x emulator before being converted to PNG by ImageMagick‘s “convert”. Then the .PNG file is uploaded to Google drive with rclone, rclone also gets the link to the file from google and another script shortens it using the bitly.com API and writes the short link into a .TXT file.
The scripts that monitor
/home/pi/mc400/IMAGE/INBOX are all installed as system services so can be started/stopped/statused with
sudo systemctl start/stop/status mc400_email/tweet/image.service
I tried newer versions of Psion’s DOS link software (like RFM & RCOM) but the only reliable connection I could achieve was with v3.1 of the original MCLINK.EXE software. I guess it might be the USB-Serial port and/or dosbox emulation that messes up the Link protocol. I tried the Unix-native tools like plptools etc. but again couldn’t get reliable/repeatable behaviour on the Pi…
But Why? Why would I want to do this when it’s much easier and feature-rich to tweet/email/read BBC news on my smartphone or a tablet or even a modern laptop? Well, one reason is I have a strong emotional attachment to all old Psion devices – I was an avid Psion user & fan in the 1990s and also I like the novelty factor of having something a little bit different to use today 😀 The keyboard on the MC400 is excellent and as a machine just for writing text it still can’t be beaten – instant on and long battery life. I like the simplicity of having it basically as a portable electronic text processor, but with a few cool extras 😎
Also – see Kian Ryan’s excellent “PSION Sidecar” project – a portable, battery powered adjunct helping the Series5/3a/c/mx (or any other computer that can do RS232/PPP) to the modern internet.