Cat Printer
Introduction

Poster: Cat Printer
GitHub: https://github.com/NaitLee/Cat-Printer
A kind of printer, “Cat Printer”, has prevailed after 2021.
It is kind of Bluetooth thermal printer, printing on a thin paper with 384x resolution, with only black color.
At the moment, proprietary mobile APPs are needed to make use of the printers. Meanwhile, a few code on GitHub, and some blogs, are helpful to implement a free (as in freedom) Cat Printer application.
I wanted to develop something better than plain web pages, so I started the project.
Seems there isn’t new commit for years?
I shall tell you a sad truth: I’m unlikely to continue development of Cat Printer.
You are on your own with the project, and I don’t recommend to patch it — re-write it instead.
I’m not going to archive the repository. You may regard its issue section as a chat room, as it’s somewhat popular.
I recommend to use Kitty Printer, except when you reject Chromium, or want exclusive features in Cat Printer like IPP support.
For reference, Kitty Printer’s code is cleaner than Cat Printer.
But why?
Program Design
The architecture of Cat Printer is not well designed — Scanning device names isn’t a good idea at all, but it’s hard to switch to scanning for Characteristics instead of device name in the code.
Additionally, Python 3.12+ breaks somewhere in the Cat Printer code, there are a few obscure bugs that can’t be fixed correctly.
Library Choices
Cat Printer relies on python-for-android
(p4a
) to be compiled to Android. It also evolves, and keeping track of it takes too much time.
(Specifically, it’s Android development environment being difficult to setup.)
Additionally, only the Python BLE library, bleak, can run well on Android with p4a
.
Besides these, no good choice is available to develop free BLE applications.
There’s a C++ library, SimpleBLE, to make cross platform native BLE apps. But, it turned into proprietary software at early 2025 with a “Business Source License 1.1”, only turning into GPL 4 years later. If I were to rewrite Cat Printer with this, we are screwed!
My Life Goals
In mid-2023, I’m leaving Python for something else, like Go programming, React-like Web development, and game development.
I know I shouldn’t look back anymore.
To everyone: thank you for hundreds of stars on GitHub. Good luck.