Close
0%
0%

The Last Psion

Resurrecting Psion's SIBO/EPOC16 Platform For The 21st Century

Similar projects worth following
What started off as a "simple" project to reverse engineer the Psion SSD and build a Wi-Fi adapter has grown into something much larger.

We are performing platform necromancy, gathering together as much information as we can from long-abandoned websites, rattly hard drives and the back of rusty filing cabinets.

The original plans of making new Psion SSDs and a Wi-FI adapter are still happening. But the scope has now widened into rewriting the SIBO C SDK and HDK from the ground up, creating a new C compiler and chipsets that will work with the platform, all for the 21st century.

Do you have documentation, software or source code we need? https://docs.google.com/spreadsheets/d/1fs34pJAH2Ues7ABdbZOr9H9hFkRE9D99Y_BpqwGbcms/edit?usp=sharing

Were you an EPOC16 developer? Release your old code!

Have you ever had a dream to create something that, on the surface, seemed pointless? Then, when you scratch away that surface, you realise exactly how insanely difficult that dream would be to achieve?

I had one of those dreams.

I started off wanting to build a device that will add modern storage and Wi-Fi to my ageing but beloved Psion Series 3c, one that would fit into its SSD port. Difficult enough, you'd think.

Then Karl got in touch with me.

After some months of discussions and work, the project has developed into an attempt to perform platform necromany.

We believe that the SIBO/EPOC16 platform deserves a place in the retrocomputing world, alongside giants like the ZX Spectrum and C64. We want to play to the platform's strengths: The massive battery life, the non-backlit screen, the full keyboard, the deep sleep mode, the simplicity, the expandability.

The SIBO/EPOC16 platform was well ahead of its time. We want to breathe new life into this vastly underestimated platform.

SIBO vs EPOC16

Over the years different conventions have been used to refer to the hardware and software that Psion developed. Various documents use SIBO, EPOC and EPOC16 interchangeably to refer to the hardware and software. For clarity, we have decided to use the following convention.

SIBO is the hardware platform, including:

  • MC200
  • MC400
  • Series 3 (and its clone, the Acorn Pocket Book)
  • Series 3a (and its clone, the Acorn Pocket Book II)
  • Series 3c
  • Series 3mx
  • Workabout
  • Workabout MX
  • Siena

Our main focus is on the 3a, 3c, 3mx and (to a lesser extent) the Workabout MX. All of these machines use the ASIC9 and have SSD ports. We will also pay some special attention to the MC400.

EPOC16 refers to the name of the operating system that runs on the SIBO hardware platform.

To refer to the whole hardware/software platform, we will use SIBO/EPOC16.

THE CHALLENGES

  • Creating a replacement for Psion's ASIC4 so that new hardware peripherals can be developed.
  • Build a storage device that mimics the Psion SSD based on this new ASIC.
  • Add Wi-Fi capabilities to this device using an ESP microcontroller so that files can be uploaded to and downloaded from cloud storage as well as an application and drivers to control the "non-standard" functions of the device.
  • Write EPOC16 drivers to control the Wi-Fi, maybe more.
  • Rewrite the Psion SIBO C SDK and HDK from the ground up.
  • Create a new C compiler.
  • Write software, such as a better word processor and many games!
  • Update the EPOC16 ROM with new applications and features.


TECHNOLOGIES AND LANGUAGES

  • C and C++ for Psion EPOC16 development
  • Python for writing sigrok decoders to analyse the SIBO Serial Protocol
  • Programmable Logic Devices and VHDL (for the bi-directional serial line, possibly more)
  • 8086 Assembly for writing new (and possibly analysing existing) EPOC16 drivers
  • APIs for at least one cloud storage service (e.g. Google Drive, Dropbox)
  • EPOC16's Filesystem Formats; each storage type has its own filesystem. RAM SSDs use FAT16, ROM SSDs have their own format, Flash SSDs use yet another format, and the system ROMs use something else.
  • EPOC16's File Formats, especially its word processor.
  • A lot more we haven't even thought about yet!


BUT WHY?

For years I have had an affection for the Psion Series 3 and Series 5 machines. I got my first Series 3a back in 2002 and loved it. Over the following years I used it as a journalling device, a platform on which to write while commuting. When the hinges on that 3a broke, I bought another one on eBay. Eventually the hinges on that one broke, too. I later bought a Series 5, but manage to crack the screen on it. I lived in a Psion-less abyss for many years. Life took over and my passion for these machines faded into the background.

This year I bought a Psion Series 3c. I loved getting back...

Read more »

  • Beginning OLIB: An entirely uneducated look at Psion's proprietary Object Oriented C

    Alex Brown01/04/2024 at 16:04 0 comments

    Me: I could do with a quick win to get me going again.

    Also me: I shall learn a proprietary object oriented dialect of C, where the only way to learn it is to plough through 1150 pages of documentation.

    Psion doesn't have a formal name for the object oriented version of C that it created for EPOC16. I've been calling it "Psion OO C", but the main library that it uses is called OLIB, which contains the root class. The others are:

    • HWIM: The OO graphics library
    • FORM: On-screen formatting 
    • XADD: Additional graphics library for 3a onwards (but not the Series 3 "classic")

    To Psion's credit, their OO ecosystem is well documented in the SIBO C SDK across 5 books (hence the 1150 pages mentioned above). Each of the libraries has its own, dedicated book. There's also an "Object Oriented Programming Guide" which acts as an introduction to the whole ecosystem. I don't have the latest versions of all of these books - they seem to be lost to time. But I have all the 3 and 3a features documented, plus (I think) all of the 3c/Siena extensions. (3mx-era EPOC16 remains sadly undocumented.)

    What's nice about Psion's approach to OO is that they assume no prior experience with object oriented programming. They just assume that you know roughly what OO is, and that you can write some C code.

    What follows is a collection of a few posts I made on Mastodon, plus some things I posted on the Psion Discord, fleshed out and turned into a proper blog post.

    NOTE: If I have any of this wrong and you know better, please get in touch! As the title of the post suggests, I definitely do not know everything. I want the correct knowledge to be out there, and I don't mind if my ego takes a bruising in the process.

    Read more »

  • USB RS232 Shenanigans

    Alex Brown08/18/2023 at 21:10 0 comments

    I spent some time today testing out a couple of RS232 adapters with various bits of Psion software. I wanted to write a quick summary of what works and what doesn't:

    SoftwareCH340PL2303TAPL2303RA
    plptools (Linux)
    YesYesYes
    PsiWin 2.3 on XP in VirtualBox (adopted USB)
    YesYesNo
    PsiWin 2.3 on XP in VirtualBox (via virtual serial)
    Not tested
    YesNo
    PsiWin 1.1 on XP in VirtualBox (via virtual serial)
    Not tested
    YesYes
    MCLINK or SDBG in DOSBox Staging
    UnreliableYesYes

    Notes

    CH340

    Seems to work in most places, but DOSBox and DOSBox Staging are very unreliable with it. It's very cheap and up until recently was what I recommended, but as I've tried to use SDBG for debugging on real hardware, I've needed something more reliable.

    PL2303TA

    Great all-rounder so far! I've been using an adapter by UGREEN with this chip in, and it's been solid.

    There's just one problem. Prolific discontinued the chip in 2020. Getting drivers to work in newer versions of Windows is a pain. This won't affect you if, like me, you're not running anything newer than Windows 7. Modified versions of older drivers are out there to make the adapter work on Windows 11. Also, stocks will probably run out in the not-too-distant future. Linux, of course, works fine with it.

    PL2303RA

    I really wanted this to work with everything. You can get boards very cheaply from AliExpress, and my plan was to create two all-in-one Psion RS232 cables - one with a 9 pin mini-DIN for the older machines, one with a Honda connector for the newer ones. But PsiWin 2.3 won't talk to it.

    Conclusion

    I really want to be able to recommend a good all-rounder for Psion work, no matter what you want to do with the device. The PL2303TA might well be that, but its EOL status might put people off. The PL2303RA was so close to being perfect, but the pickiness of PsiWin 2.3 has scuppered my plans.

    I will update this as and when I test more chips. For now I will stick to the UGREEN PL2303TA and separate cables.

  • A Long-Overdue Update - PCBs, Emulators And More

    Alex Brown08/13/2023 at 09:02 0 comments

    Two copies of MAME, built from git, running ROMs from the Series 3c and 3mx.

    It's been a while, hasn't it?

    My work on this project has been relatively sporadic over the past 12 months. I've not found it easy to find a balance between this, my day job, and other projects I'm working on. As a result, there have been some relatively intensive periods of work on Psion shenanigans, followed by burnout or other priorities needing to take precedence.

    Yesterday I hit a mental brick wall and decided it was time to take a break for a few days. But before I do, I thought I'd post a quick update on what I've been up to Psion-wise over the past year.

    Read more »

  • libsibo - Talking to SIBO Peripherals using Arduino

    Alex Brown07/07/2022 at 09:25 0 comments

    Finally, it's here! Some proper code for reading SSDs and (eventually) other SIBO peripherals.

    I've spun off some the Arduino code from SIBODUMP, added the FlashFS code from SIBOIMG, ported it to PlatformIO, and pushed it to GitHub.

    So, the TL;DR is:

    • Two major bugs squished.
    • It works with more boards now (Pico, ESP32, Arduino Nano)
    • It's still uses the Arduino libraries, but it's now based on PlatformIO
    • You'll need level shifters for 3.3v (I've included an example)
    • Would regular Raspberry Pi compatibility be useful?
    • Next steps
    • Discord chats

    So, take a look at the code over on GitHub, then read on.

    https://github.com/PocketNerdIO/libsibo

    Read more »

  • Psion SSD Drive, anyone?

    Alex Brown05/15/2022 at 11:13 2 comments

    I wanted to put out an update about my various Psion projects. I’ve been away for a while, thanks to some mental health issues culminating in a career change. It’s only in the last week or so that I’ve felt able to look at projects like this again; projects I enjoy but for which I just didn’t have the mental energy.

    I have started to work on something again, something I had kept quiet about because I didn’t want the outside pressure. But now I think that outside input might help, and I thought this would be the best place to post about it.

    TL;DR: I’m designing a Psion SSD Drive, based on the RP2040, that will work over USB-C.

    Read more »

  • Burn-Out, Revisiting The Psion WiFi Pack, and Other Miscellany

    Alex Brown10/01/2020 at 08:22 1 comment

    Psion Series 3a "Dragonskin"
    Psion Series 3a with custom green case. I think of it as looking like dragon skin.

    Near the end of last year I hit a wall. After spending months trying to learn VHDL and feeling very much like I was failing, I decided to put my participation in the project on hold. I had burnt out and it was time to walk away, if only for a little while.

    Now, almost a year on (and what an insane year it's been!), I've recently got in the mood to take another look. On a personal note, I'll be approaching it a little less frenetically — I'm working on a couple of other personal projects and want to try to share my time between them, not to mention having a day job as well. But my enthusiasm for the project is still strong and I really want to see where it goes, even if it takes me a few years to get there.

    Read more »

  • The Siena SSD Drive

    Alex Brown11/17/2019 at 12:28 0 comments

    It's been an interesting morning. I've been digging around in the internals of the Siena SSD drive and made some discoveries.

    The Siena SSD drive was released so that the diminutive Siena could still read SSDs. I bought one of these on eBay a week ago because I wanted to answer a question: "How did Psion get the SIBO Serial Protocol to work over RS-232?"

    At first I thought there were two ways that Psion could have done this. First, the SIBO-SP packets (12 bits in length, although only 9 are useful) are repackaged so they fit into 8 bits. Or second, the Siena SSD drive tells the SIBO machine that it's SIBO-SP compatible and then changes from RS-232 using to SIBO-SP (maybe still using RS-232 signal levels that are downconverted for ASIC4/5?).

    Turns out there was a third way.

    Read more »

  • A long overdue update - ASIC replication and VHDL

    Alex Brown10/30/2019 at 14:42 2 comments

    It’s been far too long since my last update on this project. It’s the usual excuse (“I’m sorry, but life just got in the way, blah blah blah.”) and to those of you who are taking an interest in my little WiFi Pack project, not to mention the rest of the efforts of the Last Psion project, I can only apologise. For now, here’s a brief update on what I’ve been up to.

    Read more »

  • SIBODUMP - Moving from high-level block puller to low-level ASIC controller

    Alex Brown06/29/2019 at 08:49 0 comments

    UPDATE: The latest version of SIBODUMP has just been released along with binaries for Windows and macOS. Take a look here: https://github.com/PocketNerdIO/sibo-ssd-dump/releases/tag/0.0.3

    SIBODUMP and its partner sketch Dump.ino have slowly developed into a very handy toolkit for SSD ripping. In its current form it's able to dump blocks from any ASIC5-compatible SSD (so that's all of them). I've also started to get it to pull images in native ASIC4 mode - all but the very earliest SSDs have ASIC4, and being able to talk using ASIC4's registers could open the doors to even more development.

    Read more »

  • SIBODUMP - The Psion SSD Image Dumper

    Alex Brown03/06/2019 at 14:17 0 comments

    To go with siboimg, there's now sibodump! This is a tool of two parts: first an Arduino sketch which talks to the SSD using SIBO-SP, and a C app that controls the sketch over serial and dumps the image to a file. The app runs on Win32 and Win64, Linux and macOS. It should run on *BSD, but I haven't tested it yet. You'll also find some binaries for Win32, Win64 and macOS in the repository.

    Oh, I also built a makeshift Arduino shield with a Veroboard that I can easily plug the SSD into.https://scontent-lhr3-1.cdninstagram.com/vp/c059ff7a12df99fab9c699396de89d7d/5D08C998/t51.2885-15/e35/53705761_912307579160518_6761257571338062678_n.jpg?_nc_ht=scontent-lhr3-1.cdninstagram.com

    Read more »

View all 19 project logs

Enjoy this project?

Share

Discussions

Derby Computer Museum wrote 09/22/2023 at 23:15 point

Absolutely love this. Big Psion 3a/c/mx fan. At Derby Computer Museum, we have Psion 3, 3a, 3c, 3mx, 5mx and Sienna. I'd love a modern day palmtop that gave the same sense of wonder I felt when using a Psion 3a for the first time :)

Look forward to seeing what this project achieves! Great work.

Find out about us here... https://www.DerbyComputerMuseum.co.uk/

  Are you sure? yes | no

Martin wrote 04/09/2021 at 15:14 point

Hi All - Great project!
I've got an MC400 which doesn't boot - the boot SSD got corrupted when I was updating it many years ago :-(.  Is there any way of cloning a good boot SSD?

  Are you sure? yes | no

martin wrote 04/13/2021 at 17:47 point

Have you tried booting it without the SSD? It should boot without the apps?

  Are you sure? yes | no

Christian Farrow wrote 04/27/2021 at 13:04 point

Look for mcword.zip on Steve Litchfield's page https://stevelitchfield.com/psifind.htm - its an archive of the system files from the SSD

  Are you sure? yes | no

Rob wrote 03/28/2021 at 17:49 point

I have a Psion PC dual SSD drive but sadly not the PC interface card it connects to. 

  Are you sure? yes | no

Alex Brown wrote 07/07/2022 at 08:03 point

Those ASIC2 cards are really hard to find. I saw one on eBay the other day for $249 - I think I'll pass on that for now!

  Are you sure? yes | no

Nikita Vorontsov wrote 10/16/2020 at 09:53 point

@brtnst 

>> But I can see the beauty in updating an old device.

I think, it is not only that. It is also a rather numerous community of people who liked the device so much that they ended up buying more than one model of the Psion over the years! Not sure you can get that out of your own PDA Project.

Besides: https://www.theregister.com/2017/02/27/the_psions_is_back_meet_gemini/

https://www.indiegogo.com/projects/gemini-pda-android-linux-keyboard-mobile-device--2#/

I am not saying it is a competition, it is simply different kind-of game ;-)

@Alex Brown 

How about posting more often what exactly you have been up to? Like with every little step forward (micro-commits, if you will). Ideally, every time you allocate a slot for the project - put together a small report. Done some signal capture - cool, share it. Got some assumption about the protocol - cool, formulate it and as soon as you got a confirmation or otherwise - cover it. Little-by-little you will get surrounded by a bunch of supporters.

Helps me with boring projects all the time, not to mention my customers liking to know what I am doing (working remotely most of the time).

Good luck!

  Are you sure? yes | no

brtnst wrote 10/16/2020 at 16:44 point

When I commented two years ago, the project was only about making new peripheral for an old device, since then the project scope kind of widened.
On the "lets gather so much info about the psion design" front, I really love it, it will save a great piece of history of engineering that might have been forgotten otherwise. Updating old devices is beautifull, but you are still limited. Not limited by their cryptic design or your lack of knowledge, these things you can overcome with time, but you are limited by their life expectancy and amount of spare parts and units you can acquire. After a while, you will need to redesign the whole thing anyways, because LCDs will fade and hinges or other parts will break with time. Also sharing your results with the rest of the community might be harder because your hacks won't be compatible with all the devices. Also, some sort of aftermarket motherboard, if successful, will skyrocket the price of device that it is compatible with, thus capping of the potential user base. From that perspective, I stand by my previous comment, if you want a capable modern portable computer, design it from scratch.
For the psion gemini and later cosmo communicator devices... It is a different kind of game. "Bringing the keyboard personal digital assistant into the 21st century." Sooo it is just an android phone with a keyboard slapped on it, easy cashgrab on the psion community. The gemini thing was just bad taste (phone rings, so you open it to see who is calling, then close it and put it next to your ear, well done). The cosmo has a second screen, so you can use your smartphone and not look stupid, but... Android ecosystem (and its apps) is really not keyboard friendly and/or landscape friendly. I personally love smartphones with physical keyboards, but this is not how to do it.
So perhaps it all depends on what the mission goal is, if you want to extend functionality of an old device for fun, then why not. If you want something usable, then build on the shoulders of giants and use modern stuff to express your idea.
I think that the psion community is still quite strong and if the idea is good and spread through the right channels, they will support it, and maybe they will buy one more psion. Psion device not by branding, but with the psion idea.

  Are you sure? yes | no

Alex Brown wrote 07/07/2022 at 08:06 point

I had a break from the project for a little while, but the little-and-often approach is how I'm trying to take things now. Every little win, every tiny new development. I had worried that I was going to put people off by talking too much, but I think you're right; more posts means more people seeing the work.

  Are you sure? yes | no

alx6-0 wrote 08/23/2020 at 21:48 point

An excellent project. Without going as far as replicating the ASIC controller, I'd gladly part take in trying to send / receive data through the SSD ports, maybe only with an IC emulated basic file structure and I/O (e.g. 12Mhz clocked Atmega >> ESP8266 / wifi). Even limited for use through a dedicated OPL program would be fun.

  Are you sure? yes | no

DuhSesame wrote 09/25/2019 at 17:37 point

Is it possible to just add more Flash chip into a smaller SSD?  Those large ones are pretty hard to find & quite expensive.

  Are you sure? yes | no

Alex Brown wrote 09/29/2020 at 08:49 point

Yes, It is definitely possible, although only if you're happy with surface-mount soldering. You would need to add some extra surface-mounted resistors and capacitors, plus change the configuration of some of the existing on-board resistors so that the host machine knows how much space is available. Be aware, though, that the maximum size of an SSD depends on the ASIC used. Flash I (using ASIC5) can only address up to 2MB (I think), whereas Flash II (ASIC4) can address a lot more.

  Are you sure? yes | no

Mark Warner wrote 05/13/2021 at 18:56 point

Hi I'm in the process of trying to expand a flash ssd.  Think I've figured out what I need to do but would like to check against a schematic of the flash SSD before I warm up the soldering iron.  Have you discovered any such documents during your project? 

I'm starting, hopefully, simple and upgrading 256kb to 512kb.  My plan is was to start with 128 to 256 but its an older design of board and layout isn't as clear.

  Are you sure? yes | no

Psiological wrote 09/28/2018 at 17:22 point

A fantastic idea to use the SSD slot!  All the other devices, such as the Workabout would benefit too and that would be MASSIVE.  I wish you success in your endeavour!

  Are you sure? yes | no

Alex Brown wrote 10/13/2018 at 20:52 point

Thanks! I've still got a long way to go, but I do think it's doable. And I didn't even think about the Workabout. I don't have one currently, so if I get to a suitable point I might try to get hold of one.

  Are you sure? yes | no

Artur wrote 09/20/2018 at 19:19 point

I'm very huge fan of psions there was a time when i have psion 3a,3mx,5,7 and a few 5mx and this last one was my favorite. I was wondering few times if there is possible to design custom expansion module for psion. After briefly look at http://www.scss.com.au/family/andrew/pdas/psion/hdk.pdf i thing there is no need to use CPLD or FPGA, and regular MCU will good enough.  So just use device like ESP32 or something familiar :) .

  Are you sure? yes | no

Alex Brown wrote 09/21/2018 at 07:27 point

It would definitely make my life a lot easier if I could just use something like an ESP32. I'm just worried that it won't be fast enough to handle it. Perhaps I just need to try it, see how it goes and if it doesn't work add a CPLD in to the mix?

I've also got a 5mx, but it won't read any of the CF cards I've tried in it. One thing that might be possible is to replace the IrDA circuitry with a BLE device. Something I might try in the future.

  Are you sure? yes | no

brtnst wrote 09/19/2018 at 17:08 point

Awesome project! I wish you good luck on reverse-engineering all the bits and bobs of your Psion. I am a big fan of Palm PDAs and I also struggled with limits of twenty-year old technology, I ultimately solved it by developing Palm 3 like PDA from scratch (SDA project here on HaD). I suggest you to do the same. Your project will likely take few years and great skills to complete and you will end up with a fancy add-on for old device that will be hard to get and hard to fix. You can use the same skills to make your own PDA, it will also take a few years, but you will end up with a better product.

  Are you sure? yes | no

Alex Brown wrote 09/19/2018 at 18:51 point

I must admit, it has crossed my mind to build my own PDA. Maybe using the shell of a Series 3 or Series 5, replacing the LCD with an ePaper screen, the innards with something that would use as little juice as possible, a relatively simple OS, having WiFi and at least one SD card slot. For the moment, though, I'm going to stick with this project. Even if I abandon it after trying to reverse-engineer the storage, I'll still have learned enough to keep me going. If I get as far as synchronising files with Google Drive, then I can transfer that knowledge over too. Also, Psion 3a and 3c units come up on eBay all the time - I've actually got a spare 3c at home (cost me £15 with a Flash SSD), as well as a 3a with broken hinges that I picked up for under a tenner.

I have to say, though, I've just taken a quick look at your SDA and I'm really impressed! Is that a custom OS you're running on it? I'll read up some more later.

  Are you sure? yes | no

brtnst wrote 09/19/2018 at 21:07 point

Creating your own hardware gives you real freedom, if you do not like something, you can always change it, update it, upgrade it, fix it or rebuild it. You are not locked in a mess of undocumented proprietary hw and sw. But I can see the beauty in updating an old device.

If the storage reverse-engineering fails, you can try to tap in the infrared port, it is basically a serial port and I think that it would be easier interface to connect psion to the ESP this way, then sync it to google by "beaming" the files. Or you can use the PC sync serial port. But creating custom wifi enabled ssd module would be the cleanest solution.

SDA is indeed powered by custom software, I have few project logs about the software and I also moved most of the sources on github.

  Are you sure? yes | no

Starhawk wrote 09/19/2018 at 14:40 point

PSIONs are cool. I know a (not very hopping) forum for discussing such devices -- you may get some help there.

I posted there about your page here --> http://forum.psion2.org/YaBB.pl?board=fm_general;action=display;num=1537367188

  Are you sure? yes | no

Alex Brown wrote 09/19/2018 at 18:53 point

Hey, I'll take any publicity I can get! Thanks for sharing it. :-)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates