7 ms·
Show HN: Rotary Phone Dial Linux Kernel Driver
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.
- jeroenhd 1y agoVery nice! I love these minimal driver implementations. It shows off how little actual code you need for a driver (but also how many flags and kernel methods you need to know exist to make a basic driver work). >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.
- sephalon 1y agoUnfortunately only a handful of subystem APIs have Rust bindings right now, so I did not get far enough to write up anything meaningful. Maybe next year support has matured to make a reimplementation in Rust feasible; then I will happily write about my experiences :-)
- gchamonlive 1y agoAbout time somebody put that rotary phone to good use and beat Dark Souls with it.
- HideousKojima 1y agoYou just reminded me that you could use the Dreamcast's fishing rod controller to play Soul Calibur
- shy977954608 1y ago[dead]
- reaperducer 1y agoNeed a DTMF version. 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.
- Daviey 1y agoConnect it to a an FXS/ATA and make it a voip phone? I have, agmonst others, a candlestick phone from the 1920's still functional using this.
- oneoffcomment 1y agoIt would be great to hack together a 1920's style AI operator to put the calls through for you.
- bishopsmother 1y agoCisco SPA232D + Asterisk + Deepgram should work for this (per [0], that I'm currently testing/improving). [0] https://blog.walledgarden.ai/2025-05-20/wabbit-s2-welcome-to-the-matrix-of-ai-rube-goldberg-nokia-8110-4g#asterisk-freepbx https://blog.walledgarden.ai/2025-05-20/wabbit-s2-welcome-to...
- reaperducer 1y agoConnect it to a an FXS/ATA and make it a voip phone? I thought about it, but couldn't find a VOIP service that was the right combination of ease/cost/good hardware.
- Daviey 1y agoWhat's your criteria for the 3? For hardware, any of these should be sufficient (as they support pulse dialing): - Minitar MVA11A - Grandstream HT502 & GXW-4008 - Primus Lingo iAN-02EX - Innomedia MTA6328-2Re - Motorola VT-1005 - Audio Codes MP-114 FXO - Digium IAXy s101i - Linksys RTP300 (Before firmware version 3 I believe) (Source: https://www.classicrotaryphones.com/forum/index.php?topic=20386.0 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?
- CodeBeater 1y agoThis article pops up as I have a rotary phone disassembled right on my desk (rewinding the clock spring). Neat coincidence!
- jermaustin1 1y agoReal question: how long has the phone been disassembled on your desk? If you are like me: around 2 years ;).
- stavros 1y agoI made mine into a mobile a while back: https://www.stavros.io/posts/irotary-saga/ https://www.stavros.io/posts/irotary-saga/
- nicolaslegland 1y agoThe "GSM shield" (https://www.stavros.io/posts/irotary-saga/#:~:text=GSM%20shield https://www.stavros.io/posts/irotary-saga/#:~:text=GSM%20shi...) link target was likely hijacked, you might want to replace it with a snapshot (https://web.archive.org/web/20150524if_/www.gsmlib.org/ https://web.archive.org/web/20150524if_/www.gsmlib.org/).
- stavros 1y agoThank you! I will.
- CodeBeater 1y agoActually, just under two days. That phone is still in service, pulse dialing away on the rare occasions I gotta make a call through a landline.
- mauvehaus 1y agoWhen the iPhone was just a rumor, I suggested that making it with a touch wheel like the iPods of the time would be a great opportunity to bring back rotary dialing. This was soundly rejected by all present. Thanks to this, all I need to do is set up a Linux box so I can have that classic rotary vibe!
- VladVladikoff 1y agoI bet there is an app that lets you rotary dial on the touch screen to make calls.
- woleium 1y agoiirc apple are/were very protective of the phone interface and would not allow apps that replace it.
- spicybright 1y agoThat would have been a hilarious timeline if they just upgraded ipods with cell networking, at least for one model. Then you can use this for typing: https://www.youtube.com/watch?v=9BnLbv6QYcA https://www.youtube.com/watch?v=9BnLbv6QYcA
- gaudystead 1y agoIt's wild how that video came out 16 years ago and basically ends with "we'll see if Apple will make computers for business users and not just dicking around", and now in the current day, I'm working at a place where an update was sent out to our Macbook users that bricked the ones running an M1 chip, but not the M2 or M3 models. 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...
- jmb99 1y agoMaybe it depends on the business, but I’ve been using Mac’s in an enterprise environment for my entire career with 0 issues. And yes, fully managed devices, not just “here’s a Mac have fun.” If your company can’t test updates before rolling them out, it doesn’t matter whether your shop is Mac, windows, or something else. I mean hell, if you’re all on Apple Silicon MacBooks, there’s probably only what, 6-8 different SKUs to test? Not like windows shops where you might have a few generations of Dell/Lenovo/HP workstations and/or laptops, each of which will have its own distinct problems.
- anonymousiam 1y agoBack in the late 70's, I made a rotary phone dialer for my HP41C calculator. I connected a NC reed relay to the piezoelectric beeper and put the NC contacts in-line with my telephone line. I used "synthetic programming" (undocumented opcodes) to get the short duration beeps needed for the dialing pulses. I could enter a name (alphanumeric!) and it would look up and dial the phone number. 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-by-Keith-Jarett-235507934050.html https://picclick.com/HP-41-Synthetic-Programming-Made-Easy-b... https://www.hpmuseum.org/prog/synth41.htm https://www.hpmuseum.org/prog/synth41.htm
- jtwaleson 1y agoCool story :) out of curiosity, do you program those kind of things on the calculator itself? I did that with the hp49g and was proud of the programs I was able to write in such a constrained environment, but the single line display of the 41c would be a real achievement!
- anonymousiam 1y agoThanks for asking. Yes, the calculator itself was the first "computer" that I owned, and there was nothing else to connect it to, or to emulate it with. (I had my own PDP-11 at work, and I had previously done batch-mode programming on an IBM 370.) I bought my 41C in 1979 (made in the US!), and spent several thousand dollars on peripherals over a period of about three years. It was a big investment in a platform that did not interoperate with anything else, and I ended up giving it all away. I didn't keep any of it, including all the programs I had written and stored on magnetic cards (a fine example of extinct storage media). I may still have a spiral notebook, in which I did all of the code development. It would be a hard-copy of all the code I wrote. If I do still have it, I have no idea where it is. It sort of reminds me of the end of Citizen Kane. Later on, I also got rid of my Synertek SYM-1 and all my CP/M platforms, except for one IMSAI 8080 S-100 box, which I eventually gave away to someone else. I didn't realize at the time (nearly 30 years ago) that the IMSAI 8080 was quite collectable, and was going for about $800 on eBay. Still, I didn't regret it much. The old systems evoke a sympathetic nostalgia, but actually using them is an exercise in patience, and eventually evokes a desire for more modern systems. I've still got some emulated retro hardware and some old software emulators, but I don't really use them much.
- jtwaleson 1y agoShameless plug for those who like rotary phones: I converted mine into a fully functional bluetooth headset, including dialing phone numbers with the rotary dial. The HN post didn't do well but it got featured on hackaday. https://hackaday.com/2024/10/31/bakelite-to-the-future-a-1950s-bluetooth-headset/ https://hackaday.com/2024/10/31/bakelite-to-the-future-a-195... https://blog.waleson.com/2024/10/bakelite-to-future-1950s-rotary-phone.html 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.
- sephalon 1y agoNice one! Using an ESP32 is a much more economical choice these days, but well, I really wanted to write a Linux kernel driver ;-)
- jtwaleson 1y agoUnderstandable ;) In any case,the hardware is a fraction of the costs if you count the hours... Would be interested to see a bit of your hardware setup!
- bacon_waffle 1y agoFun historical twist: New Zealand rotary phones used a reversed mapping between digit and pulse count - here the number of pulses was 10-digit.
- niccl 1y agoThere was a deep technical reason for it, too. I suspect I'm one of the very few living people that know what it was., so I'll share it with HN so the knowledge doesn't die :-) 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 https://en.wikipedia.org/wiki/Rotary_system
- ztetranz 1y agoThanks for this. I'm a kiwi and wondered why we were different. When friends started bringing pushbutton / cordless phones across from Australia, I was able to convert them to NZ numbering by reversing a few wires on the keyboard matrix. These generated pulses long before DTMF.
- sephalon 1y agoThe driver supports alternate keycode mappings specifically for that reason, but before reading your comment I was unaware of the motivation behind reversing the pulse order. Thanks!
- rcakebread 1y agoThis reminded me that with a Hayes compatible modem, you could dial with rotary instead of tones with ATDP (instead of the normal ATDT for tone)
- kevvok 1y agoThis reminds me of how Sarah at the Connections Museum in Seattle wrote a driver to allow an Asterisk soft PBX on a Linux box to speak revertive pulse signaling to the pre-DTMF trunks on their old telephone switches https://www.youtube.com/watch?v=35N5vKKGDy8 https://www.youtube.com/watch?v=35N5vKKGDy8
- Stratoscope 1y agoThis reminds me of a rotary phone experience I had about 30 years ago. It didn't involve a rotary phone directly, but a telephone network that was still compatible with them. Rather than repeat the story, I'll link to it here: https://news.ycombinator.com/item?id=40391220 https://news.ycombinator.com/item?id=40391220 If anyone needs their curiosity piqued, it involved a loud knock on the door and... "San Jose Police! Open up!
- tempodox 1y agoI'd rather have Bluetooth audio working on my Linux box. Or full UTF-8 support in glibc.
- kstrauser 1y agoThis person put in the work to scratch their itch. Now it’s your turn! Go be the change you want to see.