Nino Ivanov Is Bringing Back the Punch Card with an Arduino-Based USB Card Reader

"If you, too, would like to experience the future of computing," Ivanov recommends, "do not go for cloud, go for punch cards."

Gareth Halfacree
1 year ago β€’ Retro Tech / HW101

Developer and vintage technology enthusiast Nino Ivanov is looking to bring back a near-forgotten storage medium β€” by building an Arduino-powered, USB-connected reader for homemade punch cards and paper tape.

"[This] is perhaps the most old-fashioned type of smartphone accessory," Ivanov explains of his creation, "namely a punch-card reader of my won design. After a lot of failed experiments [it is] now successfully operating and reading this punch card into ASCII signs on my computer through a USB connection."

Dating back all the way to the 1700s and the work of Basile Bouchon and colleagues, who created looms which could be controlled through the use of paper tape with holes strategically punched in particular locations, the punch card β€” and its closely-related partner the paper tape β€” found considerable use in the early days of computing as a means of making programs portable prior to the development of reliable and affordable removable media. Programs and data were stored by literally punching out holes in cards or paper tape, which could then be fed back through a reader connected to the computer β€” typically via a teletype terminal.

Using lights to read holes punched through card stock, this retro-inspired storage device is a real throwback. (πŸ“Ή: Nino Ivanov)

In these days of thumbnail-size multi-gigabyte solid-state storage, the punch card is rarely seen outside mechanical looms and player pianos β€” but Ivanov is hoping to bring it back into style, with a custom punch card design. "The number of columns [is] eight for an eight-bit byte," Ivanov explains of his card format, "as well as a ninth column which I call 'The Guidance' for the guidance bit. This is not really transferred into data, but it allows the reader software to realize when a new byte has come to be read."

Ivanov's initial design used wooden sticks, foil, and clips connected directly to an Arduino Mega 2560 to physically read the presence or absence of holes in the card β€” but this approach proved unreliable. "What did I go for instead? I went for light [dependent] resistors," Ivanov explains of the upgraded version, which relies instead on light shining through holes or being blocked by the card stock. "Resistors whose resistance value is changed by the light which is shining on top of them."

The source code for the project has been published to GitHub under the reciprocal GNU General Public License 3, for those who, in Ivanov words, "would like the experience the future of computing."

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles