doc: add packet structure to README

This commit is contained in:
Xiretza 2022-06-20 13:59:01 +02:00
parent 7bc99720ba
commit 0a305a0e3f

View file

@ -13,3 +13,58 @@ Because blinkenwall v3 has `64 * 96 = 6144` pixels, driving it at 100 FPS requir
(typically SPI), so this would require coordinating several microcontrollers in parallel. A (typically SPI), so this would require coordinating several microcontrollers in parallel. A
much more integrated solution is to instantiate as many WS2812 drivers as desired in an FPGA, much more integrated solution is to instantiate as many WS2812 drivers as desired in an FPGA,
then point the entire video firehose at the FPGA. then point the entire video firehose at the FPGA.
## Ethernet communication
The controller accepts UDP packets containing image data on port 61437 ("PIXEL"). Each packet
contains color data for one strand of LEDs.
The packet structure is as follows:
<table>
<tr>
<th></th>
<th>00</th>
<th>01</th>
<th>02</th>
<th>03</th>
<th>04</th>
<th>05</th>
<th>06</th>
<th>07</th>
<th>08</th>
<th>09</th>
<th>0a</th>
<th>0b</th>
<th>0c</th>
<th>0d</th>
<th>0e</th>
<th>0f</th>
</tr>
<tr>
<th>00</th>
<td colspan="4">magic (<code>0x5049_584c</code>)</td>
<td colspan="4">strand number</td>
<td colspan="4">frame number</td>
<td>0</td>
<td>px1 R</td>
<td>px1 G</td>
<td>px1 B</td>
</tr>
<tr>
<th>10</th>
<td>0</td>
<td>px2 R</td>
<td>px2 G</td>
<td>px2 B</td>
<td>0</td>
<td>px3 R</td>
<td>px3 G</td>
<td>px3 B</td>
<td>0</td>
<td>px4 R</td>
<td>px4 G</td>
<td>px4 B</td>
<td colspan="4">...</td>
</tr>
</table>