from niimpy import NiimpyPrinter printer = NiimpyPrinter("printers_mac_address") printer.connect() printer.print_text("Hello from GitHub!", font_size=24) printer.disconnect()
Niimpy is a pure Python library that reverse-engineers the Bluetooth communication protocol of NIIMBOT printers. It supports the D11, D110, B21, and several generic thermal label printers. niimbot github
A command-line utility written in Rust for lightning-fast printing. Perfect for scripting and batch jobs. Perfect for scripting and batch jobs
Python developers, automation scripts, and integrating with home automation (Home Assistant, Node-RED). 2. NIIMBOT Web Bluetooth – Browser-Based Printing Repo: mikeage/niimbot-web niimbot github
These GitHub projects do not contain proprietary NIIMBOT code. They are built from packet sniffing and public documentation. Use at your own risk, but thousands of users have done so without issues.
import niimpy import qrcode from PIL import Image printer = niimpy.NiimpyPrinter("AA:BB:CC:DD:EE:FF") printer.connect() Generate a QR code qr = qrcode.make("https://github.com") qr.save("qrcode.png") Print it printer.print_image("qrcode.png", density=15, copies=2) Print plain text printer.print_text("Made with GitHub", font_size=24, alignment="center")
| Problem | Solution | |---------|----------| | Connection timeout | Put printer in pairing mode – power off, hold power + feed button for 5 sec. | | Image is mirrored | Add mirror=True in print_image() for Niimpy. | | Web Bluetooth not detecting printer | Must visit the page via HTTPS (or localhost) – HTTP is blocked. | | Printing very slow | Reduce print density (10-12 is optimal). | | Python bleak error on Windows | Install pip install pywin32 and run as admin once. | Reverse engineering Bluetooth protocols is legally gray, but the NIIMBOT community operates under clean-room principles and independent research exemptions in many jurisdictions.