Show HN: Rotary Phone Dial Linux Kernel Driver
246 sephalon 32 5/24/2025, 1:02:00 PM gitlab.com ↗
A Linux kernel driver that turns a rotary phone dial into an evdev input device. You might be interested in this driver if you
- prefer the slow pace of dialing over typing numbers with your numpad,
- want to bring your old rotary phone into the digital era,
- are an educator looking for a simple example driver with a VM-based end-to-end development & test environment (no real hardware needed)
- have another creative use case in mind!
This driver was my introduction to embedded Linux years ago—and ultimately led to my career. However, it remained unfinished and unpublished until now. Initially, I intended to reimplement the driver in Rust to explore the state of the Rust for Linux project. Unfortunately, I soon realized that the necessary bindings simply are not available yet, so that part will have to wait.
About 10 years ago, I met a guy named Keith Jarrett at my company. As I was about to ask him if he was the Keith Jarrett who wrote a HP-41C Synthetic Programming Manual, he interrupted me and said, "No, I'm not the musician. Everybody asks me that." So I finished my question and he was very happy and surprised, because he was the author of the book I had read 35 years prior.
https://picclick.com/HP-41-Synthetic-Programming-Made-Easy-b...
https://www.hpmuseum.org/prog/synth41.htm
https://hackaday.com/2024/10/31/bakelite-to-the-future-a-195...
https://blog.waleson.com/2024/10/bakelite-to-future-1950s-ro...
Creating an alt mode for a bluetooth rotary numpad shouldn't be difficult ;) Now if I could only find some time.
Would be interested to see a bit of your hardware setup!
Thanks to this, all I need to do is set up a Linux box so I can have that classic rotary vibe!
Steve Jobs was one of the inventors listed on this patent. As it happens, I and another Apple colleague filed an almost identical patent at around the same time. So, for a while, Apple owned two patents for simulating a rotary dial on a touch wheel. (My patent was eventually allowed to lapse. Steve's has been renewed).
I have to say that I had had a bit too much to drink at a dinner in SF when I suggested this idea to my colleague. I was thinking of the old pinball game that had really good physics making it feel amazingly real. I thought that the crucial part was doing the dialing physics in such a way that users could quickly dial any digit with the right gesture.
I was not disclosed on the iPhone when I came up with this idea, but my colleague sent the idea off to the patent committee and they agreed to it! They must have laughed when they saw the similarities to Steve's patent (which was still in progress too). We did have some big differences with Steve's, so it wasn't a duplicate. That being said, I think they wanted to boost the number of patents related to the iPhone as part of the initial marketing. (Steve said that there were already "over 200 patents" for it when he introduced it.)
Then you can use this for typing: https://www.youtube.com/watch?v=9BnLbv6QYcA
It almost feels _impressive_ how hard macOS still is to integrate into an enterprise setting, and maybe they're okay with it just being a running joke for the past two decades that their computers don't do as well in a business context...
A relatively early type of mechanical telephone exchange was the rotary exchange [0]. The pulses from the phone cause a clutch to connect the rotary driver in the exchange which then moved the switching stuff around (details can probably be inferred from the linked article). One of the issues with the rotary exchange is the pads of the clutch wear, leading to unreliable connections. Aotearoa/NZ had an existing number plan when they decided to install rotary exchanges. Some bright spark knew of the wear issue, and calculated that, given the existing number plan, if they had the 1 position on the dial giving 9 pulses (etc.) then the overall wear on the pads would be much lower and so the maintenance requirement would be less. And that's where it started.
And another fun fact. I believe Norway chose the same configuration for their rotary phones. I'm not sure if it was for the same reason, though.
[0] https://en.wikipedia.org/wiki/Rotary_system
>Initially, I intended to reimplement the driver in Rust to explore the state of the Rust for Linux project. Unfortunately, I soon realized that the necessary bindings simply are not available yet, so that part will have to wait.
That's interesting (and quite disappointing, though hardly unexpected). I think documenting your approach and the setbacks you've encountered could make for an interesting blog post, if you care about writing such things.
There's a guy in Australia who makes tiny line-powered boxes that translate rotary pulses into Touch Tones.
They let me keep using my rotary phones until a few years ago when I moved into a building that had no POTS wiring. Sad.
[0] https://blog.walledgarden.ai/2025-05-20/wabbit-s2-welcome-to...
I thought about it, but couldn't find a VOIP service that was the right combination of ease/cost/good hardware.
For hardware, any of these should be sufficient (as they support pulse dialing):
(Source: https://www.classicrotaryphones.com/forum/index.php?topic=20...)For ease and cost, you can get connectivity for almost free (depending on the country) - should just need to add the SIP/IAX login details, so what is your criteria?
I only use my phone for voice calls three or four times a year, so cheap is important. But my wife will use it, so reliability is important.
If I could get something for $10/month, that would be ideal.
The list you pulled from that forum is seven years old, and only one of the five boxes I tried to find is still available.
I think I pay USD $20 every 4-5 months to top it off. (about 3-5 inbound calls a day, and maybe 1-2 outbound calls every week or so) ATA adapters are relatively cheap to come by, which should be able to configured directly to voip.ms. I run a full FreePBX in my homelab for my connection: my ATA connects to that instead, and is connected to a cheap analog cordless phone.
If you are like me: around 2 years ;).
https://www.stavros.io/posts/irotary-saga/