/catprinter

A central repository to link to documentation and projects related to cat-shaped bluetooth thermal printers. PRs encouraged.

Cat Printer

"cat printer 🥺"

A central repository to link to documentation and projects related to cat-shaped bluetooth thermal printers. PRs encouraged.

Protocol implementations

In chronological order:

Name Comments Bluetooth Library Platforms verified working
WerWolv / PythonCatPrinter WerWolv's original implementation bassed on their blog post Bleak (Python)
amber-sixel / PythonCatPrinter AmberSixel's fork of WerWolv's implementation. Bleak (Python)
the6p4c / catteprinter the6p4c's Rust library btleplug (Rust) Windows1
JJJollyjim / PyCatte A barebones Python implementation Bleak (Python) Linux
xssfox / print_server.py Featureful Python implementation with an HTTP API, text rendering, and PostScript printing. Bleak (Python) Linux

1: Appears to be broken on Linux due to an issue where btleplug never correctly recieves the dbus property-change message which notifies it that a connection has been established, even though "Connected" and "Services Resolved" are displayed in bluetoothctl. I'm guessing this is a locking issue involving the CondVar, or something like that?

Protocol docs

WerWolv's blog post contains initial docs from RE of the Android app, however more is now known.

TODO: consolidate what is now known.

Hardware

Four different model names (included in bluetooth advertisements) have been observed:

GB01

Known owners

  • WerWolv (blue)
  • Iris (blue)

Internal photos

See WerWolv's blog post.

Notable components

  • JL MCU with built-in Bluetooth (model number not clearly readable)

GB02

Known owners

  • the6p4c (pink)

Internal photos

Front (assembled) Back
1 2

Notable components

  • JL MCU with built-in Bluetooth (model number not clearly readable)

GT01

Known owners

  • JJJollyjim (pink)
  • xssfox (pink)

Internal photos

Front (assembled) Back JL Chip (closeup)
1 2 3

Notable components

  • JL MCU with built-in Bluetooth. Markings: JL BP02989-56C4

USB Behaviour

Does not enumerate. Data lines are routed, however. perhaps it's used for programming, as described here?

YHK-C200

Known owners

  • Stary2001 (blue)

Internal photos

Front (assembled) Back Back (closeup)
1 2 3

Notable components

  • GD32F303 (STM32 clone)
  • BARROT bluetooth module
  • Fentech SPI Flash
  • Unpopulated UART header

USB Behaviour

Enumerates as an HID device!

[15361.648980] usb 7-3: Product: Print-M200
[15361.648981] usb 7-3: Manufacturer: Pintron-M200
[15361.648982] usb 7-3: SerialNumber: pintronhid0000001