Skip to content

BALTECH Reader Protocol (BRP)

BALTECH Reader Protocol (BRP) is a simple point-to-point protocol with a client-host architecture. It gives you maximum control over BALTECH readers, e.g. to control LED and beeper, but also to update firmware and configuration or set up authenticated and encrypted communication.
For a detailed description of commands, please refer to the commands reference.

Use our SDK if possible

For Windows, macOS, and Linux, we recommend you use our SDK to communicate with readers via BRP. For unsupported platforms, you'll learn below how to implement BRP on your own.

BRP frames

BRP communication consists of "frames":

  • The host sends a command frame to initiate communication with the reader and invoke a command.
  • The reader responds by sending 1 or more response frames depending on the execution mode. It contains either the requested response data or a status code, depending on the result of command execution.

Integrity check

Use checksums (i.e. set the CheckSumAlgo flag) to verify frame integrity.

This is only relevant for unsecured connections, i.e. connections via RS-232/UART. For security reasons, we recommend CRC-16 (learn more about checksum algorithms).

Completeness check

When receiving a frame on a character-based protocol (RS-232/UART, virtual COM port), the most performant way of determining frame completeness is looking at the payload length as specified in LengthLow and LengthHigh.

In addition, you should implement a frame timeout of 20 ms: The reader will then consider a frame incomplete if there's a gap of more than 20 ms between any 2 bytes. In this case, it will send a response frame with the status code ErrFrame.

USB HID transfer layer

For USB HID, we've added a special transfer layer consisting of 4 types of HID reports.