General informations

  • VID:PID - 0483:5750
  • Product ID: STMicroelectronics LED badge -- mini LED display -- 11x44
  • uses HID Protocol
  • 64 byte packet size

Appearance

B1248 and its package
B1248 backview (without magnet)
B1248 Usecase (captured from the manufactor material)

The Protocol

Report size: 64 byte (rep_num+data[64])

Header (first report to send):

id[5]: "Hello"
padding[59]: all 0x00

Second report:

0000   00 00 10 22 33 44 55 66 77 00 08 00 00 03 08 03
          ^^ -------------------------------------------- 1st message Frame/Speed/Blink/Effect
             ^^ ----------------------------------------- 2nd message Frame/Speed/Blink/Effect
                    ...
                               ^^ ----------------------- 8th message Frame/Speed/Blink/Effect
                                     ^^^^^^^^^^^ -------- message offset/length 1st
                                                 ^^^^^ -- message offset/length 2nd

0010   00 00 08 03 00 00 08 03 00 00 08 03 00 00 08 03
       ^^^^^ -------------------------------------------- message offset/length 2nd
              ...
0020   00 00 08 03 00 00 08 03 00 00 00 00 00 00 00 00
                ...
                         ^^^^^^^^^^^ -------------------- message offset/length 8th

0030   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Frame/Speed/Blink/Effect coding:

0bFSSSBEEE
  ^ -------- 0: no frame, 1: frame
   ^^^ ----- Scrolling speed [0..7]
      ^ ---- 0: no blink, 1: blink
       ^^^ - Effect number [0..7]

Message offset/length coding:

08 00 00 01
^^ ---------- Fix number to indicate the coding
   ^^ ------- Offset to starting message data (set a proper value even if the message length is zero)
      ^^ ---- ? (should be set to zero)
         ^^ - Message length (0 indicats "disabled")

Data frames/messages(3rd-14th reports):

(When the total sum of message length is smaller than or equals to 64,) each report corresponds to each line. The last report is dummy and ignored. Because the LED is not 12-line but 11-line.

The 1st bit (MSB) of the 1st byte corresponds to most left pixel, and The 2nd bit corresponds to 2nd left pixel, and so on.

For example, when 1st message length is set to 1 and 2nd message offset is set to 1 and 2nd message length is set to 2:

1st line (3rd report)
  11 22 33 00 00 ...
  ^^ --------------- 1st line (top), 1st message
     ^^^^^ --------- 1st line (top), 2nd message

2nd line (4th report)
  11 22 33 00 00 ...
  ^^ --------------- 2nd line, 1st message
     ^^^^^ --------- 2nd line, 2nd message

...

11th line (13th report)
  11 22 33 00 00 ...
  ^^ --------------- 11th line, 1st message
     ^^^^^ --------- 11th line, 2nd message

dummy line (14th report)
  00 00 00 ...
  ^^^^^^^^ --- ignored

When the total sum of message length is larger than 64, the message seem to be simply segmented to multiple reports in natural order.

For example, the total sum of message length is larger than 64 and smaller than 128, 3rd report corresponds to first 64 bytes of the first line, and 4th report to subsequent bytes of the first line. 5th report to first 64 bytes of the second line, and 6th report to subsequent bytes of the second line… Note that multiple dummy reports (25th and 26th reports in this example) are required for dummy line.

See also