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 establish an encrypted communication channel.
For a detailed description of commands, please refer to the commands reference call_made.
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 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.
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. For security reasons, we recommend CRC-16 (learn more about checksum algorithms).
When receiving a frame on a character-based protocol (RS-232, 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 ErrFramecall_made.
USB HID transfer layer
For USB HID, we've added a special transfer layer consisting of 4 types of HID reports.