A Linux kernel driver has been created that allows a rotary phone dial to be used as an input device. The driver translates the pulses generated by the rotary dial into numeric key presses, effectively turning the old-fashioned dial into a USB HID keyboard. It supports both clockwise and counter-clockwise rotation for dialing and navigating menus and also allows for customization of the pulse-to-digit mapping. This project makes it possible to integrate a rotary phone dial into a modern Linux system for unique input control.
A newly developed Linux kernel module allows a user to interface a rotary dial telephone with their computer. This driver, aptly named rotary_dial_kmod
, transforms the pulsed signals generated by rotating the dial into corresponding numerical input events. Instead of merely recognizing the dialed digits as audio, the driver interprets the pulses directly, mimicking the original functionality of a rotary phone. This provides a unique and arguably more authentic way to input numbers into a Linux system. The driver is designed to connect to the rotary dial's pulse contacts via a GPIO pin on a microcontroller, like an Arduino or Raspberry Pi, which then communicates with the computer running the rotary_dial_kmod
driver. The project is hosted on GitLab, providing the source code, installation instructions, and examples demonstrating its usage. This allows anyone interested to examine how the driver functions, adapt it for their specific hardware configuration, or contribute to its further development. The project aims to offer a novel input method, potentially appealing to enthusiasts interested in retro technology, accessibility solutions, or simply a unique human-computer interaction experience. It offers a tangible and kinetic alternative to standard keyboards and mice for numerical input. The technical implementation likely involves handling interrupts generated by the GPIO pin, decoding the pulse timing to determine the dialed digit, and then injecting the corresponding number as a keypress event into the input subsystem of the Linux kernel.
Summary of Comments ( 15 )
https://news.ycombinator.com/item?id=44080803
Hacker News users generally expressed amusement and appreciation for the novelty of a rotary phone driver for Linux. Some questioned its practical use cases beyond nostalgia and hobby projects, while others suggested potential applications like museum exhibits or integrating rotary phones into modern VoIP systems. Several commenters delved into technical aspects, discussing the specifics of the driver implementation, pulse timing, and potential improvements like debouncing. A few reminisced about their experiences with rotary phones, highlighting the distinct tactile and auditory feedback they provided. There was also lighthearted debate about the proper nomenclature for the device (rotary vs. pulse dial).
The Hacker News post titled "Show HN: Rotary Phone Dial Linux Kernel Driver" sparked a discussion with several interesting comments.
Several users expressed admiration for the project, appreciating the ingenuity and the "old-school cool" factor of interfacing a rotary phone with a modern Linux system. One commenter mentioned the nostalgic appeal, recalling childhood memories of using rotary phones.
A significant portion of the discussion revolved around the technical aspects of the project. Users inquired about the specifics of the implementation, such as how the driver handles pulse timing and debouncing. The creator responded to these queries, explaining details like the use of interrupts and the method employed to translate the pulses into numerical digits. This back-and-forth provided valuable insight into the inner workings of the driver.
One commenter questioned the practical applications of such a driver, wondering what real-world use cases it might serve. Other users offered suggestions, ranging from retro-themed projects and art installations to educational demonstrations of historical technology. The possibility of using the driver for accessibility purposes was also raised.
There was a brief discussion about the challenges of working with older hardware. One user recounted their experience with the deteriorating rubber in old rotary phones, highlighting the difficulty of maintaining such devices.
A few commenters drew parallels between this project and other retro-computing endeavors, showcasing the continuing interest in preserving and interacting with older technologies in novel ways. They mentioned similar projects involving vintage hardware interfaced with modern systems.
Finally, some users offered constructive criticism and suggestions for improvement. They proposed ideas like adding support for different types of rotary phones and exploring alternative implementation approaches.