blob: 5e3c473478a26651995ecbee1145cc5efc4a1bac (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
## Badge Data Format for BLE
### Connection Information
The pixel data is transferred to the badge via BLE. The badge advertizes the name "LSLED" and uses a vendor specific service/characteristic:
- Service-UUID: 0000fee0-0000-1000-8000-00805f9b34fb
- Characteristic: 0000fee1-0000-1000-8000-00805f9b34fb
The characteristic accepts 16 byte long data packets.
### Data Format
The badge supports up to 8 bitmaps which can have various features enabled.
| format | data | description |
| --------- | --------- | ------------ |
| uint8[6] | header | fixed header: "wang\0\0" |
| uint8 | flash | bitfield describing which of the 8 bitmaps are flashing |
| uint8 | marquee | bitfield describing which of the 8 bitmaps feature an animated border |
| uint8[8] | modes | speed+mode for each of the 8 bitmaps. See below. |
| uint16[8] | sizes | count of 8 pixel wide chunks for each bitmap (Big endian) |
| uint8[6] | padding | 6 bytes zeroes of padding
| uint8[6] | timestamp | one byte each for (year % 256), month, day, hour, minute, second. Purpose unclear.
| uint8[4] | padding | 4 bytes zeroes of padding
| uint8[16] | separator | zeroes to separate header from bitmap data |
| uint8[11]\*N | bitmapdata | image data for all bitmaps. Each bitmap consists of a number of 11 byte chunks describing an 8x11 bitmap, each byte describes 8 pixels, starting with the most significant bit. The number of chunks is listed in the "sizes" fields above, N = sum(sizes). |
| uint8[?] | padding | the last 16-byte block of bitmap data is padded with zeroes. |
| uint8[16] | end-of-message | the last write to the characteristic is just zeroes. |
#### Modes
The "mode" bytes are a combination of two 4 bit values. The high nibble describes the animation speed in the range from 0 (slowest) to 7 (highest). The low nibble describes the animation to use:
| mode | animation |
|------|-------------------|
| 0x00 | scroll leftwards |
| 0x01 | scroll rightwards |
| 0x02 | scroll up |
| 0x03 | scroll down |
| 0x04 | fixed |
| 0x05 | "snowflake" |
| 0x06 | "picture" |
| 0x07 | "animation" |
| 0x08 | "laser" |
|