Case study

Cat Printer BLE: reconstructing the MXW01 thermal printer protocol

Replaces the vendor phone app for the MXW01 “cat printer”, a small Bluetooth Low Energy thermal printer, with a Windows command-line client. The author reports starting from the iOS-only Moblin implementation and then reverse-engineering the vendor's phone app further, and the client sends CRC8-checked commands to one GATT service while streaming 384-pixel image lines in 1-bit or 4-bit grayscale. Several command IDs remain marked as unknown, and the author tested only this one printer model.

Targets
Protocol
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Sources reviewed

Requirements & limits

  • Reviewed at the release 1.2.0 commit of 2025-05-22. The tool prints images with Bayer or Floyd–Steinberg dithering, feeds or retracts paper, and reads battery, paper, temperature and state information; README says it is not an editor and that other printer models are not planned because the author has none to test.
  • Requires the user's own MXW01 printer. The repository contains only original C# source and a photo; the vendor app the author analysed, any decompiled code and any traffic captures are not included, and no account or vendor software is needed at runtime.
  • Windows only: the project targets .NET 8 for Windows 10 build 19041 or later with native AOT publishing, using the InTheHand.BluetoothLE and SixLabors.ImageSharp packages; the README asks for the .NET 8 Runtime.
  • CatPrinter.cs names the GATT service and its command, notification and data characteristics and lists the command IDs, with comments marking several as unknown or guessed. The repository has no test suite or CI, so printing behaviour is author-reported; this review ran neither the tool nor a printer.
  • MIT license. The reviewed sources establish no AI or REA use.

About this entry

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · MaikelChan/CatPrinterBLE · Revision 007f821
  2. CatPrinterBLE/CatPrinter.cs GitHub · MaikelChan/CatPrinterBLE · Revision 007f821
  3. CatPrinterBLE/Crc8.cs GitHub · MaikelChan/CatPrinterBLE · Revision 007f821
  4. CatPrinterBLE/CatPrinterBLE.csproj GitHub · MaikelChan/CatPrinterBLE · Revision 007f821
  5. CHANGELOG.md GitHub · MaikelChan/CatPrinterBLE · Revision 007f821
  6. LICENSE GitHub · MaikelChan/CatPrinterBLE · Revision 007f821

More in Protocols

All 66 entries in ProtocolsProtocols case studies (26)