Cat Printer

Introduction

Poster: Cat Printer

https://github.com/NaitLee/Cat-Printer

A kind of printer, “Cat Printer”, has prevailed after 2021.

It’s kind of “Bluetooth thermal printer”, printing on a thin paper with 384x resolution.

No ink is needed, it uses thermal paper instead. It’s black only.

Poster: Photo of the “Cat Printer”

Photo taken in Nov 2025. The printer is 3 years old. The GUI is Kitty Printer.

In old days, 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 was still learning basic programming but wanted to develop something better than plain webpages, so I started the project.

Seems there isn’t new release 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 — rewrite 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 JavaScript, 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 the problem should be fixed by a pull request, but there won’t be new releases, as it’s hard to package Cat Printer.

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 after 4 years. 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, and good luck.