PsionNet: Difference between revisions
New page: PsionNet, the Mac app that puts Psion computers on the internet |
|||
| Line 28: | Line 28: | ||
== Supported machines == | == Supported machines == | ||
{| class="wikitable styled-table" style="width: | {| class="wikitable styled-table" style="width:70%; text-align:left;" | ||
|+'''Machines and connections, PsionNet 1.2''' | |+'''Machines and connections, PsionNet 1.2''' | ||
! Machine !! Operating system and browser !! Connection !! Speed | ! Machine !! Operating system and browser !! Connection !! Speed | ||
Revision as of 18:34, 4 October 2026
| PsionNet | |
|---|---|
| The PsionNet control panel | |
| Developer(s) | Joshua Yewman, for RetroTechCollection |
| Initial release | 23 September 2026 |
| Latest release | 1.2, 4 October 2026 |
| Type | Internet link and downgrading web proxy for Psion computers |
| Platform | macOS 11 or later, Apple Silicon or Intel |
| License | GPL-2.0-or-later |
| Status | Active |
| Website | github.com/JYewman/PsionNet |
PsionNet is a macOS application 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 Mac. 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 Mac'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 ships as a single signed macOS app.[1][2]
Why it is needed
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 Mac 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
| 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 Mac | 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 Mac's network | The local network |
| Psion netBook Pro | PsionLX, Firefox 1.0 | Its own network card, on the Mac'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 macOS driver (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]
How it works
The serial link
PsionNet runs macOS'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. The 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. For the netBook Pro on Windows CE, a small modem emulator on the Mac answers the netBook Pro's dialling. The link was measured at 10,650 bytes a second on a Series 7.[1][2]
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.[1]
The proxy
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
For a netBook Pro on the network there is no serial port and no PPP. The proxy listens on the Mac address chosen in the app, port 8080, and serves only the Mac 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
For an EPOC machine on the serial cable:[1]
- Open PsionNet, pick the serial port and press Connect. The first time, it offers to install its PPP configuration and asks for the Mac's password once.
- 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 Mac'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
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 Mac, 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 Mac 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
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
- 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
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.[1]
Security
The proxy is an open forward proxy that removes TLS. On the serial link it listens only on the PPP address, or on the Mac 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 Mac'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
| Date | Change |
|---|---|
| 23 September 2026 | First published, for the EPOC Release 5 machines over the serial cable |
| 27 September 2026 | 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 |
Licence and credits
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.[5]
The app is built with PyInstaller into a 76 MB bundle that carries its own Python, Tk and libraries, and is signed with an Apple Developer ID and notarised, so it opens on any Mac without warnings. Its window is written in Tkinter, which needs nothing beyond Python's standard library.[2]
See also
References
- ↑ 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 Joshua Yewman, PsionNet README, GitHub, version 1.2, 4 October 2026. Source for what PsionNet does, 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 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. - ↑ 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.