Date: 2026-03-15
After end-to-end hardware validation, the stable routing rule is:
- Default and supported route:
native-type4-routefor all text lengths (>= 1char)
Reason: native-type4-route is the only route that validated consistently across short, medium, and long strings in our latest tests.
Before text payload, send:
08 00 01 80 HH MM SS 0004 00 05 8005 00 12 80 0707 00 08 80 01 00 CH
Then send text payload frame(s).
Observed accepted framing (from app captures and validated sender):
- Bytes
0..1: framed packet length (LE) - Bytes
2..3: data type00 01 - Byte
4: type00 - Bytes
5..8:totalDatalength (LE) - Bytes
9..12:CRC32(totalData)(LE) - Bytes
13..14: route marker/trailer00 65 - Bytes
15..:totalData
Long payloads are segmented into multiple BLE writes (chunked value writes).
- Byte
0: text length (1-byte) - Byte
1:00 - Bytes
2..3:01 01 - Byte
4: effect code - Bytes
5..6:50 00 - Bytes
7..20: color preludefg(3) + bg(3) + 00 00 + fg(3) + bg(3)
- Bytes
21..: glyph records- first glyph + separator
- then repeated
fg + bg + glyph + separator
Effect codes:
0=fixed1=scroll-left2=scroll-right5=blinking6=breathing7=snowflake8=laser
Visually validated on panel:
- short text (
1,2,3,5,8,10chars) - medium text (
11chars) - long text (
>11, including repeated "Hello World" long string) - effects and color
- Success criterion is always visual panel rendering (not BLE write/ack alone).
- Glyph rendering uses the repo native font mapping (
scripts/ipixel_font_map.py).