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…

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)

Published by zedstarr

Chilled out human being, doing techy stuff.

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 )

Google photo

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

Twitter picture

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

Facebook photo

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

Connecting to %s

%d bloggers like this: