--- title: NIIMBOT hardware interfacing --- # NIIMBOT hardware interfacing ## Bluetooth NIIMBOT printers have two bluetooth addresses. In case of D110 : * `26:03:03:C3:F9:11` - low energy * `03:26:03:C3:F9:11` - classic ### Bluetooth Low Energy You can interact with printer through a specific BLE characteristic. To find what characteristic is suitable for this: 1. Find services which have UUID length > 4. 2. Find characteristic in these services which have `NOTIFY` and `WRITE_NO_RESPONSE` properties.  Unfortunately, this process is can't be done with Web Bluetooth API (you must set service UUID in filter before devices searching). Anyway, most of NIIMBOT printers have characteristic `bef8d6c9-9c21-4c9e-b632-bd58c1009f9f` of service `e7810a71-73ae-499d-8c15-faa9aef0c3f2`. NiimBlueLib uses these UUIDS for interfacing. If you found characteristic, you can subscribe for notifications to get responses from the printer. To send data, write a value without response. ### Bluetooth Classic Use bluetooth serial. The only problem is that packets may be fragmented. For example, packet `5555d9091f90044c000001000016aaaa` can be received as `5555d9091f90044c000001000016` `aaaa`. Android [Serial Bluetooth Terminal](https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal) test:  ## Serial (USB) Packet format is same as Bluetooth. Packets may be fragmented.