Maximising BLE/GATT transfer rate

// Expert user has replied.
J Joe Westcott 2 years 2 months ago
128 2 0

Hi there,
I have both a ZD621 & ZD421, and I'd like some help with maximising the data transfer rate for printing. I don't have the ability to use Bluetooth Classic/SPP.
I'm achieving BLE printing by splitting up the payload into chunks and repeatedly writing to the "To Printer Data" characteristic. [0]

To my knowledge, there's two ways of writing to a GATT characteristic:
1. writeWithResponse, which (due to packet ACKs) is not the fastest. This gives me around 2KBp/s.
2. writeWithoutResponse which gives a reliable 4.2KBp/s on the 621*

*Frustratingly, the 621 claims writeWithoutResponse isn't a supported attribute of the characteristic, but using it anyway works. I cannot use writeWithoutResponse at all on the ZD421.

Questions:
1. Why does the 621 support withWithoutResponse when it's not shown as supported in the characteristic's attributes?
2. What kind of bandwidth is possible with these printers? Am I approaching their bottleneck, or is my bottleneck in another part of the Bluetooth stack?
3. Both of my devices support Bluetooth v5 which allows for data rate increases over previous versions. [1] Are they utilising this?

[0] https://www.zebra.com/content/dam/zebra/software/en/application-notes/A…
[1] https://interrupt.memfault.com/blog/ble-throughput-primer

Kind Regards & many many many thanks.

Please Register or Login to post a reply

2 Replies

J Joe Westcott

Hi Steven Si could I have assistance please!

S Steven Si

Hi Joe,

Normally, the write-without-response is not recommended, as there is a potential overrun of the internal space, which could cause the drop of the packets that the user of the GATT may not know. If you are sure about the highest data rate the application writes to the GATT that doesn't cause the packet drop, then you can try to use the write-without-response. Just be cautious.

Both ZD621 and ZD421 are on the Bluetooth v5. Make sure both the ZD621 and ZD421 are on their latest firmware. If not, please update them to the latest firmware, which can be found on the Zebra support site.

If you still see the difference between the ZD621 and ZD421 after updating the firmware to the latest, then we would like to know the printer configuration. You can get the printer configuration output from the Zebra Printer Setup Utility for Windows tool, by issuing the following command, and attach the output to this discussion thread.

! U1 getvar "allcv"
CONTACT
Can’t find what you’re looking for?