I don't have much to share, since I only spent about an hour on it, but here is an overview of what it would take to interface a Prinics-based printer with third-party software. I reverse engineered com.prinics.kodak.photoprinter
to get some information about the protocol. Some older portable photo printers used Bluetooth OBEX to stay widely compatible with as many devices as possible, including flip phones, but it seems that this is no longer the case.
These printers do not support any standard printer protocols. Instead, they use a custom protocol that is transported through Bluetooth Serial Port Profile (SPP), a Wi-Fi ad-hoc access point (app listens on port 56065), or Wi-Fi Direct (app connects to peer on port 56067).
Each message consists of:
- u8 - msg id
- u8 - unknown
- u8 - unknown
- u8 - padding (0)
- u32be - additional data length (can be 0)
- u8[...] - additional data
In other words, a message is at least 8 bytes long and has an unbounded maximum size - although in practice the max is probably either 2048 or 4096.
Here are some packets that I found:
- 100, 1, 0 - sent on first connect
- 3, 0, 0 - sent on error
- 2, 1, 37
- 82, 0, 0 - begin print?
- 1, 0, 0
- 7, ?, 0
- 84, 0, 0
- 11, 0, 0
- 101, 1, 0
- 11, 0, 0
- 18, ?, ? - variable message
- 9, ?, ? - variable message
For one of the messages, it's expected to be 128 bytes:
- 0-52: binary
- 53-84: us ascii
- 85-127: us ascii
That is all I have time for right now.
Any update on this? Haven't done any progress myself.