PsionNet
| PsionNet | |
|---|---|
| The PsionNet control panel | |
| Developer(s) | Joshua Yewman, for RetroTechCollection |
| Initial release | 23 September 2026 |
| Latest release | 1.3, 4 October 2026 |
| Type | Internet link and downgrading web proxy for Psion computers |
| Platform | macOS 11 or later; Debian 12 or later and Ubuntu 22.10 or later (64-bit PC); Windows 10 and 11 (64-bit, network only) |
| License | GPL-2.0-or-later |
| Status | Active |
| Website | github.com/JYewman/PsionNet |
PsionNet is an application for macOS, Linux and Windows that puts Psion computers on the modern internet. Over the Psion's serial cable it brings up a PPP link, so the Psion gets an IP address and reaches the internet through the computer. It also runs a web proxy that makes the secure (HTTPS) connections the Psion cannot, and rewrites each page into something the Psion's browser can display. A Psion netBook Pro with a network card needs no cable: the proxy listens on the computer's own network address instead.[1]
PsionNet supports the EPOC Release 5 machines, the Psion Series 5mx, Psion Series 7, Psion netBook and Psion Revo, and the netBook Pro running either Windows CE or PsionLX. For PsionLX it also plays Spotify through the netBook Pro's own speaker, and serves the PsionLX Software library that PsionLX's "Find new software" task installs from. It was written for RetroTechCollection in September and October 2026, is free and open source under the GPL, and comes as a Mac app, a Debian package and a Windows installer. Windows serves only a netBook Pro on the network, because it has no way to run the serial link.[1][2]
Why it is needed
[edit | edit source]EPOC Release 5 shipped a complete TCP/IP and PPP stack, so a Psion from 1999 can still get online. The web is the problem. The Series 7's ROM browser has no SSL at all: the string https does not appear anywhere in its 16 MB ROM. It has no CSS engine, no JavaScript, no PNG decoder and no gzip, and it reads the ISO-8859-1 character set only. Almost nothing on the public web loads in it.[1]
The netBook Pro's browsers are newer but still too old. Pocket Internet Explorer on Windows CE 4.2 renders an IE6-era subset of CSS, and PsionLX's Firefox 1.0 speaks TLS 1.0 at best, which no modern site accepts.[3]
PsionNet does the secure connection on the computer and hands the Psion plain HTTP that it can render, so an unmodified machine browses the real internet. No certificate is forged: the Psion never attempts a secure connection, and every https:// link in a page is rewritten to http:// so that it comes back through the proxy.[1][3]
Supported machines
[edit | edit source]| Machine | Operating system and browser | Connection | Speed |
|---|---|---|---|
| Psion Series 5mx, Psion Series 7, Psion netBook, Psion Revo | EPOC Release 5, with the "Web" browser (in ROM on the Series 7, a separate install on the others) | Serial cable, PPP direct link | 115200 bit/s, about 11 KB/s measured |
| Psion netBook Pro | Windows CE 4.2 .NET, Pocket Internet Explorer | Serial cable, dial-up to a modem emulated on the computer | 19200 bit/s, about 1.9 KB/s |
| Psion netBook Pro | Windows CE 4.2 .NET, Pocket Internet Explorer | Its own network card, on the computer's network | The local network |
| Psion netBook Pro | PsionLX, Firefox 1.0 | Its own network card, on the computer's network. Adds Spotify and PsionLX Software | The local network |
The Psion's own serial cable is already wired as a null modem, so it needs only a USB-to-RS-232 adapter with a driver for the computer (FTDI, PL2303, CH34x or ATEN UC-232A). The Psion Series 5 runs EPOC Release 3, not Release 5, and has not been tested.[1][2]
On Windows CE the netBook Pro connects as dial-up to an emulated modem rather than as a direct link. Its Direct Connection mode was tried and removed: PPP negotiates fully and then carries no traffic, because Windows CE binds that mode to its synchronisation stack rather than to TCP/IP.[2]
Computers it runs on
[edit | edit source]| Computer | Download | Serial cable | Network |
|---|---|---|---|
| macOS 11 or later, Apple Silicon or Intel | PsionNet-1.3-macOS.zip, signed and notarised |
Yes | Yes |
| Debian 12 or later, or Ubuntu 22.10 or later, on a 64-bit PC | psionnet_1.3-1_amd64.deb |
Yes | Yes |
| Windows 10 or 11, 64-bit | PsionNet-1.3-Windows-Setup.exe |
No | Yes |
The downloads are on the latest release page on GitHub, and each carries its own Python, Tk and libraries, librespot included. Windows has no equivalent of pppd, the program that runs the PPP link on macOS and Linux, so on Windows PsionNet serves only a netBook Pro on the network, with the proxy, Spotify and the PsionLX Software library. The Series 5mx, Series 7, netBook and Revo need the serial cable, and so a Mac or a Linux PC.[1]
- macOS: unzip the download and drag PsionNet to Applications.
- Debian and Ubuntu: install the package with
sudo apt install ./psionnet_1.3-1_amd64.deb. For the serial cable, add yourself to thedialoutanddipgroups (sudo usermod -aG dialout,dip $USER, then log out and in again), so that connecting asks for no password; otherwise PsionNet asks through the system's password dialog. If the ufw firewall is on, allow the proxy (TCP port 8080) and discovery (UDP port 8899) in from your network, and the Psion's traffic out throughppp0. - Windows: run the installer. It is not signed, so SmartScreen warns "Windows protected your PC": choose More info, then Run anyway. The installer lets PsionNet through Windows Firewall on private networks only, so the network must be set to Private, or the netBook Pro cannot reach the proxy.[1]
The same code runs on all three. What differs, such as where settings are kept and how a background process is started, is decided in one module. Because PyInstaller cannot build for another system, the Windows installer and the Debian package are built and tested on GitHub's machines by a workflow in the project.[2][1]
How it works
[edit | edit source]The serial link
[edit | edit source]On macOS and Linux, PsionNet runs the system's own pppd over the serial line. The EPOC ROM has a "Direct cable connection" modem profile and a "Direct" connection type, so there is no modem handshake: the Psion opens the port and starts PPP straight away. A Mac shares its internet connection with the link through a pf NAT rule, loaded into its own anchor under Apple's existing hooks so that /etc/pf.conf is never edited. Linux does the same with an nftables table of its own, made when the link comes up and deleted when it goes down. For the netBook Pro on Windows CE, a small modem emulator on the computer answers the netBook Pro's dialling. The link was measured at 10,650 bytes a second on a Series 7.[1][2]
On a Mac only pppd runs as root, through the standard macOS password dialog. Nothing persistent is installed: no sudoers entry, no LaunchDaemon and no setuid helper. The first time the link is started, the app writes its PPP peer files, the modem emulator and the NAT rule, and bin/uninstall.sh removes them. On Linux, Debian's pppd is made to be run by members of the dip group, and the serial port needs the dialout group, so a user in both connects with no prompt at all; otherwise PsionNet asks through polkit (pkexec). The Debian package installs the peer files, the modem emulator, and two hooks that turn on IP forwarding and NAT for the Psion's link only, and put both back when it ends. On Windows nothing needs privileges beyond the installer's firewall rule.[1][2]
The proxy
[edit | edit source]Requests arrive as ordinary HTTP. The proxy fetches the page over modern TLS and then:[1]
- removes hidden markup (
hidden,aria-hiddenand inlinedisplay:none), which on BBC News is 52% of the page; - rewrites the page to HTML 3.2 for EPOC, against element and attribute lists read out of the Series 7 ROM's own parser tables. The netBook Pro gets HTML 4.01 and keeps its stylesheets;
- converts images to non-interlaced GIF or baseline JPEG, the only formats the devices decode;
- reduces text for EPOC to the characters CP1252 and ISO-8859-1 share. The netBook Pro reads UTF-8, so its text is left alone;
- filters CSS for the netBook Pro to the subset Internet Explorer 6 implements, then drops every
classthat no remaining rule uses; - shortens same-site links, which are a quarter to a half of the bytes in a typical page.
| Page | From the site | To the Psion | Time on the serial link |
|---|---|---|---|
| BBC News | 1,041 KB | 31 KB | 3.0 s |
| The Guardian | 1,496 KB | 48 KB | 4.7 s |
| Wikipedia article | 100 KB | 24 KB | 2.3 s |
| Hacker News | 34 KB | 19 KB | 1.8 s |
The proxy chooses how to shape a page from the browser's User-Agent, so there is nothing to set on the device. An unknown browser gets the EPOC output, the strictest, because a page simple enough for EPOC still works in a richer browser.[3]
| Series 5mx, 7, netBook, Revo | netBook Pro, Windows CE | netBook Pro, PsionLX | |
|---|---|---|---|
| Browser | STNC WTL 2.0, in ROM | Pocket Internet Explorer | Firefox 1.0 (Gecko 1.7) |
| HTML | 3.2 | 4.01 Transitional | 4.01 Transitional |
| Character set | ISO-8859-1 | UTF-8, untouched | UTF-8, untouched |
| CSS | Removed | Filtered to the IE6 subset | Filtered to the IE6 subset |
| Images | GIF and baseline JPEG | GIF and baseline JPEG; PNG did not render in a test on the device | GIF and baseline JPEG |
| Page budget | 64 KB | 192 KB | 400 KB, of which CSS 96 KB |
The Windows CE output was worked out with a test page served to a real netBook Pro. Forwarding BBC News's 190 KB of inline CSS would take about a hundred seconds at 19200 bit/s for rules the device throws away; the filter cuts it to 32 KB.[3]
Network mode
[edit | edit source]For a netBook Pro on the network there is no serial port and no PPP. The proxy listens on the computer's address chosen in the app, port 8080, and serves only the computer itself and that network: anything else gets a 403. It also answers a broadcast, PSIONNET? on UDP port 8899, with its address and port, which is how PsionLX's programs find it without being told an address.[2][3]
Setting up
[edit | edit source]For an EPOC machine on the serial cable:[1]
- Open PsionNet, pick the serial port and press Connect. On a Mac it offers to install its PPP configuration the first time, and asks for your password to start the link. On Linux it asks for nothing once you are in the
dialoutanddipgroups. - On the Psion, turn Link to desktop (or Remote link on a 5mx) off, so the port is free.
- In the Psion's Control panel, set a Dialling location (nothing is dialled, but without one the Psion reports "Connection information not found"), set Modems to Direct cable connection at 115200 with hardware flow control, and add an Internet service of type Direct that gets its IP and DNS addresses from the server.
- Open Web to bring the link up, start the proxy in PsionNet, and set the Psion's proxy to
10.0.2.1, port8080. - Browse to
http://psion/for PsionNet's home page and search.
For a netBook Pro on the network, set Device to netBook Pro (CE, network) or netBook Pro (PsionLX, network), pick the computer's address under Listen on, and press Start. Windows CE then needs Internet Explorer's proxy set to that address and port 8080. PsionLX needs one command, typed once as root in its Terminal, which PsionNet's status line shows: wget -O - http://address:8080/lx/install | sh. That installs PsionLX Software's "Find new software" and a login helper that finds PsionNet on the network and points Firefox at it.[1][4]
Spotify on the netBook Pro
[edit | edit source]A netBook Pro running PsionLX cannot talk to Spotify itself: its newest TLS is 1.0, and no Spotify client was ever built for its 2005 ARM Linux. PsionNet splits the work:[1]
- On the computer, PsionNet runs librespot, an open-source Spotify Connect player, as a speaker called netBook Pro. It encodes what the speaker plays as 128 kbit/s MP3, streams it over plain HTTP, and answers the netBook Pro's requests for playlists, search results and cover art.
- On the netBook Pro, the Spotify app, installed from PsionLX's "Find new software", shows Liked Songs and playlists, searches and controls playback. It plays the stream through the GStreamer 0.8 already in Psion's image, and only while the netBook Pro is the speaker Spotify is using.
It needs a Spotify Premium account and a free Spotify developer Client ID, entered in PsionNet. The speaker signs in separately, once, with librespot's own sign-in, because Spotify refuses a speaker signed in with a third-party Client ID's token. The sound lags the buttons, because the stream is buffered at both ends, and the computer must stay awake while it plays. On 4 October 2026 a netBook Pro running PsionLX played Spotify through its own speaker this way, with a load average of about 2 on its 400 MHz XScale.[1]
Spotify is a trademark of Spotify AB. Neither PsionNet nor the netBook Pro app is made or endorsed by Spotify.[5]
Software for PsionLX
[edit | edit source]PsionNet passes the PsionLX-Software folder of the RetroTechCollection Archive through to the netBook Pro, which cannot fetch it over HTTPS itself. The route serves that one folder only, byte for byte, without the rewriting the proxy applies to web pages, and /lx/install hands over its installer with PsionNet's own address filled in. On the netBook Pro, "Find new software" on the TASKS screen lists the programs, games and fonts there and installs them with Psion's own package manager. See PsionLX Software.[3][4]
What does not work
[edit | edit source]- Google returns nothing on EPOC or Windows CE. EPOC and modern browsers are sent a results page made of JavaScript, and Windows CE is refused by name. PsionNet intercepts
google.comand serves its own search page instead, using DuckDuckGo, Marginalia and wiby. - Pages lose their design. With no CSS on EPOC and only an IE6 subset on the netBook Pro, pages arrive as structured documents.
- Forms submit as GET; POST does not work. There is no JavaScript on any device.
- Some sites refuse proxied requests outright, and are cut short rather than left to time out.[1]
Testing
[edit | edit source]The serial link, the proxy and the app have been used on real hardware with a Series 7 and with a netBook Pro on Windows CE over dial-up. Spotify has played on a real netBook Pro running PsionLX in network mode. As of version 1.2, browsing with PsionLX's Firefox through the proxy had been tested only on the Mac, and Windows CE over the network not at all, though its output is the one tested over dial-up. The Spotify test ran PsionNet from source; the app bundle with Spotify in it had been checked only as a test build. The Windows and Linux versions of 1.3 had been tested by the build workflow only, not yet with a Psion. The workflow runs the test suites, starts the built program and photographs its window, installs and removes the Windows installer, installs the Debian package on clean Debian 12 and 13, and tests the Linux serial link end to end over a pseudo-terminal, with a second pppd standing in for the Psion, for both EPOC's direct link and Windows CE's dial-up.[1]
Security
[edit | edit source]The proxy is an open forward proxy that removes TLS. On the serial link it listens only on the PPP address, or on the computer itself when there is no link, never on every interface. It refuses to fetch private, loopback or link-local addresses, so it cannot be used to reach into the network it runs on. In network mode it has to listen on the computer's network address, and anything on that network can reach it, so use network mode on a trusted network and stop the proxy when you are done. While the proxy runs, someone on the same network who knows its interface could change what Spotify is playing, and the audio stream is open to that network.[1]
History
[edit | edit source]| Date | Change |
|---|---|
| 23 September 2026 | Version 1.0, for the EPOC Release 5 machines over the serial cable, on macOS |
| 27 September 2026 | Version 1.1: Windows CE support for the netBook Pro over dial-up, a device selector in the app, and separate output for each browser |
| 4 October 2026 | Version 1.2: network mode for the netBook Pro, PsionLX's Firefox, Spotify, and the PsionLX Software route. The netBook Pro's Direct Connection mode was removed |
| 4 October 2026 | Version 1.3: Linux, with the serial link, and Windows, for the netBook Pro on the network. A Debian package and a Windows installer, built and tested by a workflow on GitHub. Stopping the proxy now also stops librespot, which before left a netBook Pro speaker running after each restart |
Licence and credits
[edit | edit source]PsionNet is licensed under the GNU General Public License, version 2 or later. It is GPL because it contains artwork from Reconnect, Jason Morley's GPL Psion connectivity app for macOS, which its acknowledgements also credit as the reason PsionNet exists. PsionNet's blue icon is a recolouring of Reconnect's, and its device and application icons come from Psion's own EPOC, PsiWin and PsiMac software by way of Reconnect. The app bundles librespot (MIT licence) for Spotify, and an MP3 encoder library, lameenc, under the LGPL 3.0, so the app as a whole is distributed under GPL-3.0-or-later terms, which "or later" allows. The Windows installer and the Debian package carry librespot 0.8.0 compiled from its published source by the project's workflow, and the Windows installer is made with Inno Setup.[5]
Each version is built with PyInstaller and carries its own Python, Tk and libraries. The Mac app, a 76 MB bundle, is signed with an Apple Developer ID and notarised, so it opens on any Mac without warnings. The Windows installer is not signed, so Windows SmartScreen warns before running it. The window is written in Tkinter, which needs nothing beyond Python's standard library.[2]
See also
[edit | edit source]References
[edit | edit source]- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 Joshua Yewman, PsionNet README, GitHub, version 1.3, 4 October 2026. Source for what PsionNet does, the computers it runs on and how to install it, the devices and setup, the serial link, the proxy's transformations and the page measurements, Spotify, what does not work, testing and security.
- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 PsionNet control panel README (
app/README.md), GitHub, 4 October 2026. Source for the device list, the netBook Pro's dial-up and Direct Connection, the app bundle, network mode and discovery, and the Windows and Linux differences. - ↑ 3.0 3.1 3.2 3.3 3.4 3.5 PsionNet proxy README (
proxy/README.md), GitHub, 4 October 2026. Source for the browser profiles, the Windows CE capability test, the CSS measurements, network mode and the software route. - ↑ 4.0 4.1 RetroTechCollection, PsionLX-Software, GitHub, and the PsionLX-Software folder of the RetroTechCollection Archive,
README.txt, 4 October 2026. - ↑ 5.0 5.1 PsionNet acknowledgements (
ACKNOWLEDGEMENTS.md), GitHub. Source for the licence, Reconnect, the Psion artwork, librespot, lameenc and the Spotify trademark. - ↑ PsionNet commit history, GitHub, 23 September to 4 October 2026.