This Is Old News
Using an old dot matrix printer and Raspberry Pi, an engineer recreated the experience of getting the daily news from a single printed page.
With all of our internet-connected mobile electronic devices, we have more access to information today than at any other point in history. But this abundance of information can be a double-edged sword at times. Sure, it helps us to stay well-informed about what is happening in the world, but it can also lead to endless scrolling of mindless social media posts. We often fall into a habit of spending far too much time in these activities even though we know it is not doing us any good.
This can all be enough to make a person feel nostalgic for that bygone era when the daily newspaper provided us with a curated list of important local and world events that we could take in over a morning cup of coffee. That is how software engineer Andrew Schmelyun felt, and as someone that likes to explore new (and old!) technology for fun and education, he decided to recreate the newspaper reading experience. He set up an automated job that creates a single printed page of news that is of interest to him each morning.
Newspapers are largely a thing of the past, so to keep things period correct, Schmelyun picked up a second-hand Star NP-10 Dot Matrix Printer from the mid-1980s. This was hooked up to a Raspberry Pi Zero W single-board computer via a serial-to-USB adapter. Everything is a file in Linux, and that includes this vintage printer, so printing characters proved to be as simple as echoing strings to /dev/usb/lp0. Of course understanding the printer’s character set was necessary to make it print as expected, but since scans of the original manual are available for download, that was not too challenging.
As for the content of the printout, Schmelyun wanted to see the weather, stock data, news headlines, and some top Reddit posts. All of these items were accessible via APIs, so Schmelyun wrote a PHP script to collect all of the data. Once collected, the data was formatted into a nice layout for the 80-column printer, then it was finally printed out. The script runs as a cron job every morning so that the front page will always be ready right on time.
The objectives of this project could have been achieved in other ways as well, of course. A modern printer could replace the vintage printer, perhaps even with a font that spoofs the look of a dot matrix. Or the content could just be delivered digitally on a single page. But there is something about tearing the sheet off of a vintage printer and having the physical paper in one’s hands that makes the extra effort seem worth it. And if you happen to have an old printer and a Raspberry Pi handy, this project should be pretty easy to replicate. Full source code is available in a GitHub repository.