I picked it up years ago working in retail. Two of them were getting tossed, so naturally I stashed them both. Only one of the two - the Bixolon SRP-350PLUSIII - was USB compatible.As a young tinkerer that had just watched Tinkernut's Alexa IOT Video I had a little bit of an eye out for an opportunity like this. Still being a ripe new maker, I took a Raspberry Pi Zero W, a USB car charger, and hot glue and mutilated them all together(See second pic in gallery for that sensual masterpiece).

Not my best work. But along the way I learned how to really interface with these printers: utilization of python-escpos, the formatting needed, APIs available through the library, etc etc. This marinated in my head, until the 2022 Syracuse Maker Faire in the Spring, where I thought it would be cool to make it print Tweets. A million dollar idea! Interactive, quick, and who doesn't have at least a lurking twitter account? So I did just that - made a sloppy script to monitor twitter for tweets to @lame_printer, and print it. This still used the 2018 internals (yikes).

So, arriving at Maker Faire, I nervously plugged in my printer & tweeted. Then waited. And waited. No dice. Not easy to troubleshoot something that has a UI based on printing paper. So forthe 2022 Rochester Maker Faire, I was determined to have something cooler, and actually functional.

The build

Main components used:

  • Raspberry Pi Zero W

  • 12v-to-5v USB charger

  • 3D Printed bracket & screen skirt

  • Bixolon SRP-350PLUSIII

  • An I2C 128x64 OLED display

Armed with my previous mistakes, I stripped out the hot glue & old wires, and designed a bracket to cleanly mount the 12v-to-5v buck converter & Pi to. After a few iterations, I had something that mounted nicely in the bottom of the Bixolon. Next up I soldered the USB & power wires accordingly. Looking at the bland printer & my bare I2C pins, I figured it might make life easier to add somesort of display that could give basic indication of print status, IP Address, and errors. So I tossed in a few angled headers on the Pi, and ran jumpers to the front of the printer, and temporarily taped a small OLED screen I had laying around to it.

Wanting this to really be a clean build, I worked hard to make a slick cut-out for the screen. I failed, but was able to design a 3D printed skirt to cover the imperfections, which in the end looked better than any cutout. A few smoke tests later, everything started to seem like it was ready for some software.

The software

I'll keep this brief, as all is in the twitter-printer Github but the code is cleaner than my first pass. Still not perfect, but this was a week long build & I can only flip through my print copy of Python's PEP so many times.

Basically it uses the twint package to run a query on a specified username. If there's a result that isn't older than 5 minutes & isn't censored by the "nastyList", the tweet will be printed. It's only that simple thanks to twint, as if a Twitter API needed to be created, registered, and a user's credentials given on setup, this project wouldn't exist.

The hacked printer has the ability to print images and QR codes too. Images can just be attached to a tweet, and desired QR codes should be surounded in parenthesis, starting with "qr". Ex. "qr(www.lamemakes.com)" in a tweet will print a QR code to this site. Pretty cool stuff.

Cool - but practical?

Not at all. The printer was more just for demos & fun, so come see it in all of it's glory at the 2022 Rochester Maker Faire! After that the printer will be a desktop printer for printing more practical things via a Linux bash or something more boring.

NOTE!

This was an older project, from around early November 2022. While it worked then, I cannot fully guarantee twitter's new "management" will continue to allow scrapers like this. It appears as though twint has been archived, but I have yet to try to do anything with it - I haven't had a use for the twitter printer since the Rochester Maker Faire. If it does, I take no responsibility for any havoc...

Read more »