CHROMIUM BLE PRINTING

A Technical Support case for Bluetooth (BLE) printing came across my desk, and it was the First Time that our Help Desk and Engineering Support had come across BLE Javascript / HTML printing that leverages a Firefox Function added to the Chromium / Chrome browser.

The Technical Support Case discovered that for this type of printing operation there are some steps that one needs to do, in order to work correctly for this function.

Attached are two documents, this first is a very cut-down version of the Proof of Concept HTML/Javascript that illustrated the issues that were observed.

The Second is a sample of the ZPL "TEST" print in a Box. Piece of ZPL along with the Annotations for what each piece of ZPL does.

I use that ZPL for printer testing and its more than simple line print of "HELLO WORLD" output to the printer.

The "chrome_ble_print_poc.html" contains two Connect items with "pseudo_friendly_names" {FN} for a ZQ5xx Single Radio Printer (Single Radio printers have BT4 BLE capability)  And as well ZQ6XX Single Radio with BLE capability.  The Annotations within the POC indicates what to change for BT naming, and also what to consider when working with BLE as part of Pairing and also connecting to a BLE service to maintain the connection.

The UI is very basic and also zoomed out -- but the buttons For Pairing are:

[Scan for 620] { ZQ6xx BLE pair to FN}    and

[Scan for 520] {ZQ5xx BLE pair to FN}

When either are pressed -- and BLE capable BT is active -- a Pairing Dialog box will appear that should show the BLE FN, and a Signal Status, and when tapped -- "should" connect to the target FN printer.

If connected and [Print] button is pressed within the first 30 seconds -- the Job will get sent, and if the pairing needs to be Maintained -- the [Read] button and code is needed to connect.

It was the action of USING this [Read] button that was where we established the flow of use for maintaining the pairing, such that Nominal connection is maintained.

The [Disconnect] button is the "Manual" method to tear down this connection, but standard BT disconnect possibles also apply -- and this code does not provide for that contingency -- where if the session is inadvertently torn down (disconnected), so this sample is for the most part -- a highly MANUAL example of the basic HTML for this purpose.  The Messaging seen in the UI reflects this status, but if a button is inadvertently pressed in some scenarios -- the on screen result can be interesting.  (Like pressing [Read] after the [Disconnect] will likely throw a GATT error.)