Skip to content
MultiMote edited this page Sep 3, 2025 · 18 revisions

Features

✅ Currently implemented:

  • Bluetooth transport.
  • Serial transport.
  • Packets implementation*.
  • Complete bitmap packet implementation (empty row, indexed row, bitmap row, repeat count).
  • Event system (eventemitter3 based).
  • Image encoding with 3 types of packets (empty space, bitmap, bitmap indexed).
  • Heartbeat support.
  • Print error handling.
  • Reading printer info (model, mac, charge level, etc.)
  • Writing printer settings (sound, auto shutdown time).
  • Abstraction (call helper functions instead of sending packets).
  • Local model library with printers features (printhead resolution, supported paper types ant etc.)*.
  • Firmware updating. Collected firmwares are hosted here.
  • Command line interface.

🐞 Bugs:

  • Timeout after print finished on serial connection (status check).
  • Printer MAC address have wrong order on some printers.

⚒ Todo:

  • Bitmap packet merging.
  • Implement rest of the packets.
  • Support more printers (print tasks).
  • Testing with more printers.
  • The rest of what I've forgotten.

❌ Will not be implemented:

  • Connecting to old printers via Web Bluetooth. Old printers have random service UUIDs.

    image

  • Guess the label size by RFID tag - impossible without request to print.niimbot.com. API does not allow CORS requests.

    Example:

    POST https://print.niimbot.com/api/template/getCloudTemplateByOneCode HTTP/1.1
    Content-Type: application/json
    niimbot-user-agent: AppVersionName/999.0.0
    
    { "oneCode" : "LABEL_BARCODE" }

* Implemented partially or needs some tweaks.

Documentation

https://niim-docs.pages.dev

Clone this wiki locally