RS232 flow-control & handshaking – Psion MC400 retro communications

In my quest to make an old (1989-era) laptop computer “useful” in 2021 I’m currently fighting some RS232 hardware flow-control issues…
(fixed in part 2 of this saga 🙂 )

I conceived a plan to use a Raspberry Pi as a Connectivity And Link Manager (or CALM 🙂 ) to assist my Psion MC400 laptop to get connected to “the internet” (the Pi is connected to home wifi or phone wifi hotspot when out & about). I’d obtained another serial/parallel module for the MC400 so it could now talk to both the Raspberry Pi though port A as a serial terminal and run the Link software on port B to transfer files to/from the Pi. Once files are on the Pi it’s (relatively) easy to sync them to any cloud service.

I’d configured a serial login session on /dev/ttyUSB0 using

sudo systemctl enable getty@ttyUSB0.service

and then edited /usr/lib/systemd/system/serial-getty@.service to fix the baud rate at 9600 (the MC400 is limited to a max of 19200 baud but I couldn’t get a reliable connection at this speed so dropped it to 9600). This works well as a serial console so the Pi can be controlled and files moved around, albeit from the command line only.

Raspberry Pi serial console on /dev/ttyUSB0

For the Link software I’d installed dosbox-x and created a simple shell script “mclink.sh” to run the Psion MCLINK.EXE program headless (i.e. with no display) so I could run it from the text-only terminal. MCLINK.EXE is an old DOS program so it’s relatively easy for the ARM-based Pi (model 3 B+) to emulate and successfully run using the x86 DOS emulator. I’d configured dosbox-x’s emulated COM1 port to connect to /dev/ttyUSB1 and /home/pi/mc400 to be mounted as C:\

#!/bin/bash
SDL_VIDEODRIVER=dummy /usr/bin/dosbox-x ~/mc400/MCLINK.EXE
CPU usage of dosbox-x running MCLINK.EXE
dosbox-x running headless on Pi, running Psion’s MCLINK.EXE
MC’s file manager shows /home/pi/mc400 directory mounted as REM::C:\
Transferring this series of screenshots back to the Pi for conversion 😉

This setup worked really well, but using the standard Psion serial cable and USB/Serial adapters means a lot of spare, coiled up cable and this spoiled the vibe for me: imagine sitting in a coffee shop, sipping on a latte and then pulling out your uber-retro laptop with a few feet of extra cable coiled up in a heap on the table, not cool!

Rat’s nest? Too much cable!

So I started looking for USB/RS232 modules that I could solder directly on to the end of a shortened Psion 9-way miniDIN cable and initially found the FTDI-based USB-RS232-PCBA. These modules offer RTS/CTS signals as well as Tx/Rx/GND so I figured I was in with a chance of things actually working. This looked a lot neater…

Much neater, but Link software not working 😦

…but only the serial terminal connection worked – the Link software failed to achieve a connection (even after wiring DCD/DTR/DSR together at the Psion end). The Psion MCLINK/RCOM/PSIWIN protocol obviously needs full hardware flow-control including DCD/DTR/DSR which the FTDI USB/RS232 adapters don’t provide access to, but obviously the Prolific PL2303 converters I’d originally used do.

So, back to the drawing board for now, some Prolific PL2303 modules (with RTS/CTS/DCD/DTR/DSR solder connections) are on their way from Ali-Express!

Psion 9-way mini DIN serial connector pinout (mini-DIN-9)

Read about the fix for the handshaking issues in part 2 of this saga…


shortened cable heaven…

Published by zedstarr

Chilled out human being, doing techy stuff.

3 thoughts on “RS232 flow-control & handshaking – Psion MC400 retro communications

  1. Can I just say – THANKYOU for such a decent, clear article (especially the pinout etc)… I’ve got an MC400 on the way and am looking forward to following the article to mirror your successes. Looking forward to seeing what else you get up to with the MC400… I’m super keen to see it anyone works out how to hook up a Purple Cyclone drive (serial output / honda etc) to the MC400… I wonder if there’s a cunning way to carve out a driver in OPL??

    1. Thanks! And anything is possible! I’m not sure translated OPL would be fast enough/low-level enough to handle a driver, unless it was just used as a wrapper to launch machine-code to do the low-level stuff. The Purple cyclone drive you mention was a floppy drive for the Series 3 range wasn’t it?

      I’ve often wondered if it would be possible to easily produce a new expansion module for the MC range that would provide the standard series 3 6-pin (“3Link”) type connector to make all the 3-series accessories compatible with the MC?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: