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:
- Series 3 (and its clone, the Acorn Pocket Book)
- Series 3a (and its clone, the Acorn Pocket Book II)
- Series 3c
- Series 3mx
- Workabout MX
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.
- 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!
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 into the world of Psion, but things had changed in the 11 years since I had owned my last Series 5. The Internet had gone from a useful tool to being a ubiquitous, omnipresent entity. In addition, the Maker movement had taken off, along with a dramatic reduction in the cost of ARM-based processors and Wi-Fi devices.
Also, while it was amazing that I could carry around a word processor in my pocket once again, the disadvantages of the Series 3c in the modern world became apparent. Using a serial cable to transfer files to and from a PC isn’t very practical, especially given that most computers don’t even come with a serial port any more. (I have since made a Honda USB cable. The picture above shows me mid-way through the process.) Although the 3c can communicate via IrDA, even fewer PCs come with infrared ports nowadays. And after having said all of that, the idea of a mobile computer - whether that be a smartphone or a PDA - being dependent on a PC feels antiquated.
This is when that pointless and insanely difficult dream popped into my head.
What if I could add Wi-Fi to my Psion Series 3c?
The more I thought about it, the more features I felt I could add. What if I built something that would fit into an SSD slot? Could I maybe get it to pretend to be an SSD, giving the 3c some proper non-volatile flash storage? Could it have switchable banks of storage? Could I add file converters to it, maybe getting it to directly open Word documents? How about Markdown documents? Could it get it to sync with Dropbox or Google Drive? Could I get it to directly edit Google Drive documents? How would I control the Wi-Fi? What about the storage? Would I need to write drivers for the Psion? Could I even write a better word processor?
As I thought more about it, I realised how much work would be needed just to get my technical knowledge up to a level it needed to be at in order to even attempt this project. Not only would I need in-depth information on the hardware and software of the Psion Series 3c (and the other Series 3 SIBO machines), I would need learn some new (and old) programming languages, at least one cloud storage API, some basic electronics including how to reverse-engineer circuits, and the project boards I could use to make this a reality.
Time moved on and I started to work on writing a sigrok decoder for the Psion SIBO Serial Protocol (SIBO-SP), the proprietary protocol that SIBO/EPOC16 uses to talk to peripherals and SSDs.
Karl's aims were slightly different. He was also planning on creating new SSDs, but wanted to create boxed games for SIBO/EPOC16. His approach was quite different to mine, but highly complementary.
We've realised that the best way to achieve our goals is to look at the bigger picture, rewriting the documentation and software that came with the SIBO C SDK and HDK. Our main focus will be the ASIC9-based Series 3 devices - the Series 3a, Series 3c and Series 3mx. We will also be looking at the Workabout mx, plus paying some special attention to the MC400. Together we've come up with a lot of ideas, some crazier than others.
We've already started writing software and rewriting documentation. We have a basic development environment running in DOSBox including the original SIBO C SDK and HDK, the TopSpeed C compiler, emulators and the debugger.
In the meantime we're on the hunt for any and all original documentation and source code, especially anything that was used internally at Psion, TopSpeed, or the software houses and hardware developers of the time.
We've already made a lot of headway in gathering together files and building contacts. In fact, I would like to say thank you to the many people on LinkedIn who have offered advice and support. Some have even given us documentation and source code. We can't thank those people enough
We know we have a lot of work ahead of us. Some of the tasks we're undertaking might be impossible to complete, simply because of the passage of time. But what ever happens, we're having a lot of fun working on it and I can't see that stopping any time soon.