The Printer

2023-05-28 | [alnwlsn-com]

click to refresh page
latest webcam view of The Printer

Years ago, I picked up a thermal receipt printer for dirt cheap. Turns out, it was more dirt than cheap; it came from a fast food restaurant and was full of kitchen grease. After a lengthy cleaning process (and some hot glue), I got a box of paper rolls and messed around with it for a while, but eventually set it aside, as some projects tend to do.

Thermal printers are kind of cool, but:

However, a couple weeks ago, I came across my old paper rolls and the printer again while doing some cleaning, and I figured if I wasn't going to get rid of them, I should at least do something interesting. That is this project. Even though putting it live on the internet is probably a bad idea, I decided to do it anyways. What will you print?

The printer is an Epson TM-T88II, which connects via RS-232. It lives in my basement on its own relay circuit (so I can turn it off when idle), and there's a camera pointed at it. The camera is some absolutely ancient potato-quality webcam from the web 1.0 days, which complements the look for this part of the website. For software, I used fswebcam to grab stills from the camera, and python-escpos to drive the printer. A short python program brings everything together, and handles queuing up the messages and shutting down the printer if idle.

When you send a message, the relay turns on the printer (and an illumination light), and the printer prints out the message. Then, the camera takes a picture, which gets uploaded here. This whole process might take about 10 seconds or so, so be patient. Also of note, it takes about 8 lines for the paper to actually scroll into view of the camera. The webcam isn't live; it just uploads the new picture when something new is printed. Finally, when the image gets uploaded, it just overwrites the one already existing. As a result, if you're using a modern web browser to view the image, it will probably cache it and you won't get the latest one, even if you refresh the page. Try shift+refresh on most browsers.

So that's it. I plan to run this until either I run out of paper, or something breaks. I wonder which will come first?

Updates:

Alnwlsn 2024