September 26, 2026
Freedom at 9,600 Bits per Second
Inkline, a satellite phone, and the freedom to work beyond the café's Wi-Fi. My data plan may be unlimited. My battery is not.
On the internet, I see a lot of photographs of people working from laptops in cafés in distant cities. There is usually a cup of coffee and enough scenery to establish that the coffee was purchased a long way from home. The photograph makes a promise: you can take your work with you. You can choose where to live.
I understand the appeal. I also want to keep going after the cafés run out. I want to work from anywhere in the free world, including places without cellular service, an electrical outlet, or somebody else's Wi-Fi password. Most of my work involves text and a computer that can do something with it. The computer doing the expensive part does not have to be in my bag.
That is one reason I have been building Inkline, a terminal for the reMarkable 2. An e-paper tablet becomes a place to write, edit code, use Git, and reach another machine over SSH. The new modem support lets me take that terminal beyond the range of the nearest router.
My setup is a reMarkable 2 running Inkline, a Globalstar GSP-1700 satellite phone on my unlimited plan, the phone's USB data cable, a power bank, and a powered USB hub. The hub is required: the reMarkable 2's USB-C port can carry data in host mode, but it does not supply the 5 V bus power attached peripherals need. The hub supplies that power. A cable that happens to fit is insufficient.
Getting the modem working meant putting PPP and its network stack in userspace; the tablet did not need a replacement kernel. In Inkline, the result is a modem panel with Off, On, and Auto. On starts a call. Auto brings up the link when a terminal application requests a connection and hangs up after the last connection closes, with a configurable delay. Opening the settings panel does not dial a satellite phone. An open SSH session still keeps the call alive, even when I have stopped typing.
The GSP-1700's uncompressed data rate is 9,600 bits per second. That is about 1,200 bytes per second before overhead. It is a very small pipe, but a shell does not need to download an advertising auction before showing me a prompt. Editing happens locally or on a remote machine. Git can move a small change instead of an entire working tree. A large clone still takes patience, and SSH startup can be slow, but there is useful work inside that budget.
The important part is deciding what gets to spend it. Inkline's terminal applications use a proxy for the modem connection. The modem does not become the tablet's system-wide default route, so unrelated system updates and book sync do not get handed the satellite link. I can spend the connection on the work I opened the terminal to do. Protocol overhead and application keepalives still exist; the objective is to keep unrelated traffic out of their way.
My Mosh fork, Goblin Skiff, is part of
this setup. The command is goblin-skiff. Its proxy support carries both the
initial SSH connection and the encrypted UDP session through Inkline's terminal
proxy. For the local radio mesh, it also has small-packet pacing and retry
behavior designed for long radio round trips. The distinction matters:
bandwidth, latency, and packet loss are different problems. Making a packet
smaller does not make the answer arrive instantly.
Inkline also supports IP over goTenna Mesh radios. It can join the same public IPv6 mesh as the Mac and Linux clients, discover nearby computers, and connect to them from the tablet. A computer with an Internet connection can offer a gateway to the others. Communication within the mesh does not require one. This gives me another way to reach my machines when they are within radio range, without needing cellular service or a Wi-Fi access point.
Here, too, Inkline sends application traffic through the terminal proxy instead of routing the whole tablet over the radio. The mesh still sends discovery messages and has transport overhead, while the tablet's unrelated background traffic stays off that link. That leaves more of a small connection available for my terminal.
Globalstar has a regional coverage footprint. I also carry an Iridium GO! exec for places outside it. Iridium specifies up to 88 kbit/s down and 22 kbit/s up, with global satellite coverage. Both systems still need a usable view of the sky. Neither a tree nor a mountain is impressed by the word “global.”
Sometimes I want the Mac with me as well. I built Goblin Modem to bring modem controls back to macOS and put a firewall in front of the connection. An app-by-app list can make it easy to overlook the operating system's own traffic. I want control over the interface carrying the expensive, slow connection, including traffic from system services.
Goblin Modem uses macOS's pf packet filter. I can start with a default-deny
policy on the selected interface, then permit the destinations, protocols,
and local users or groups I need. That gives me a way to keep background
services from choking the GSP-1700 connection while allowing my working
session through. The same control is useful when the Mac connects through the
Iridium GO! exec. An 88-kbit/s downlink is still small enough for unwanted
traffic to consume a substantial part of it.
There is a battery argument here as well as a bandwidth argument. Transmitting unwanted data spends power, even when the airtime bill does not change. Keeping a connection open after I am done with it spends power. Carrying an unlimited plan does not remove either cost. I want the software to make it easy to use the link deliberately and disconnect when the work is finished.
I can still choose a café. I can also choose a place for reasons that have nothing to do with its Wi-Fi. A readable screen, a keyboard, a small amount of connectivity, and software that knows how to use it are enough for a surprising amount of my working life. Making that fit in a bag is a kind of freedom I care about.
My plan may be unlimited. My battery is not.
goTenna and goTenna Mesh are trademarks of goTenna, Inc. Inkline, Goblin Modem, and Goblin Skiff are independent projects, not affiliated with or endorsed by goTenna, Inc. Goblin Skiff is an independent fork of Mosh.