Thermal Printer
PrinterBot
A little while back, I bought a thermal printer off of eBay. I then spent the next few weeks writing a python module to interface with it. What did I do with this newfound power? I made it print out messages sent on Discord! I know, kinda silly, right? You can find a link to the repository here. While you're at it, why not check out the video I made about it?
(Thermal) Paper Tape
This clearly wasn't enough for me, so I started thinking of sillier ideas. All these printouts are super long, and they almost seem like punch tape. What if I designed a way to store data on the thermal paper? So I did. I mentioned this at the end of the PrinterBot video, and I did actually go back and fix it. Here's what a printout of Atari's Combat looks like:
Let me explain how it's formatted. The bits are laid out from left to right, indexed at 0. There are 48 data bits and the two control tracks. The control tracks take up "bits" 48 and 49, and are the clock track (half height block) and parity (even parity). After that comes the human-readable section. I loved how punch cards have the characters at the top, and since I only had 6 characters left, I thought I'd represent all 6 of the bytes as text. It's pretty fun! With the encoding down, let's get into the structure. There are two main parts: the header and the body. The header contains the length of the file in the first 48 bits, with the MSB being first. The human-readable section is user-specified. Then, for the body, it's simply 6 data bytes, in order. Pretty simple, right? The code for this program is on my GitHub repository as well.