Bluetooth connection frequently disconnected when printing with zpl

// Expert user has replied.
H Hojoong Kim 2 years 9 months ago
345 3 0

We made iOS app with MfiBtPrinterConnection and TcpPrinterConnection to make connections between iOS device and Zebra mobile printer (ZQ620 and QLN320)
(https://techdocs.zebra.com/link-os/2-13/ios/content/interface_mfi_bt_pr…)

The source code is exactly the same as example above link but there is only problem when I try to print out with ZQ620 + Bluetooth 5.0 Device (iPhone SE 2nd generation, iPhone 11Pro, iPhone11) - with MfiBtPrinterConnection

No issue between (For QLN320, We have tried with LINK OS 6.2 and 6.3)
QLN320 + iPod touch 5th generation (Bluetooth 4.1)
QLN320 + iPod touch 6th generation (Bluetooth 4.1)
QLN320 + iPod touch 7th generation (Bluetooth 4.1)
QLN320 + iPhone SE 2nd generation (Bluetooth 5.0)
QLN320 + iPhone 11 Pro (Bluetooth 5.0)
QLN320 + iPhone 11 (Bluetooth 5.0)
ZQ620 + iPod touch 5th generation (Bluetooth 4.1)
ZQ620 + iPod touch 6th generation (Bluetooth 4.1)
ZQ620 + iPod touch 7th generation (Bluetooth 4.1)
and all TcpPrinterConnection printing

Only thing I added is that I am checking printer status by getCurrentStatus to check whether my printer is enabled to print out or not, like the sequence below.
MfiBtPrinterConnection -> ZebraPrinterConnection.open -> ZebraPrinterFactory.getInstance -> getCurrentStatus() -> Write -> ZebraPrinterConnection.close

There is no problem when printing successively after the first successful printing. But when I try to print again after waiting a while after printing, getCurrentStatus() throws an exception randomly. After that, the printer is paired, but the paired device cannot be found in the app.
Error Domain=ZSDK_API_ERROR_DOMAIN Code=7 "Malformed status response - unable to determine printer status" UserInfo={NSLocalizedDescription=Malformed status response - unable to determine printer status}
(connection open() and isConnected() are returning turu)

I tried to prevent exceptions using setTimeToWaitForMoreData, setMaxTimeoutForRead, delay() and etc, But there is no way to fix it.
I'm so confused because it's a problem that doesn't happen with other device combinations. I could find a similar issue like
https://developer.zebra.com/thread/35152
https://developer.zebra.com/thread/35033
https://github.com/ZebraDevs/LinkOS-iOS-Samples/issues/5
but there is no reply to solve the problem.
No issue with iOS(11,12,13,14), linkOS version, enabled BLE setting, enabled WLAN setting, Sleep setting. We have a lot of ZQ620 printers and the same issue has happened.

This problem is a problem that occurs in getting status after opening a connection. Please give me advice.

ALREADY TRIED
! U1 setvar "bluetooth.discoverable" "on"
! U1 setvar "bluetooth.authentication" "off"
! U1 setvar "bluetooth.bluetooth_pin" ""
! U1 setvar "bluetooth.afh_mode" "off"
! U1 setvar "bluetooth.afh_map" ""
! U1 setvar "wlan.enable" "off"

Please register or login to post a reply

3 Replies

H Hojoong Kim

I tried with 'Zebra Printer Setup Utility' from the app store, And there is the same issue with bluetooth 5.0 device + ZQ620. (Tested 10EA ZQ620 with 5 devices(iPhone,iPod, iPad)

just downloaded the LINK OS SDK from 'https://www.zebra.com/ap/en/products/software/barcode-printers/link-os/…; and tested it with my iPhone.
In the same way, when I try to check the connection or print after connecting Bluetooth, sometimes the Bluetooth connection is forcibly disconnected.

I have tried with more than 10 iOS devices (with iOS12, iOS13,iOS14) with more than 10 Zebra ZQ620.
Same bluetooth connection problem. No problem with bluetooth 4.1 device with Zebra ZQ620.

I would like to ask if you guys tried a printing test between bluetooth 5.0 iOS device and ZQ620.
I don't think it is printer hardware or iOS device problem since this problem has happened between a lot of device combinations .

S Steven Si

Hi Hojoong,

Thanks for sharing the details of the observation. We think this might be a known issue on the iPhone side. Before we make such assertion, could you confirm the following question?

Could you open the Settings -> Bluetooth page on the iOS device where the problem occurred, and watch for the connected ZQ620 printer on the paired list for about 50 to 60 seconds? Please let us know if the Bluetooth setting page refreshes by itself during the 50 to 60 seconds? When the page refreshes, please let us know if the ZQ620 printer goes to "Not Connected" briefly and then back to "Connected" automatically.

If you can confirm the above symptoms, then we can be certain that this is a known issue on iOS side and advise you how to get a temporary fix.

We have reported the issue to Apple, but still have not heard any resolution.

 

G GENE KOWALSKI

We're able to get our app to spit out a few labels on iphone 11,12,13 before the "disconnect" happens, but within a minute the connection is lost.

We've been waiting for a solution for this for years, I was hoping iphone 13 would fix this but we just received ours today and very disappointed it doesn't. Our app works fine with iPhones up to iphone X but not on iphone 11, iphone 12, or iphone 13!!

as far as I can tell it's only with the ZQ620, users using the old QLN320 don't have the problem.

How can I get this temporary fix?

Thank you,

Gene

CONTACT
Can’t find what you’re looking for?