Add Lian Li SL-INF wireless tools and SignalRGB plugin
Proof-of-concept tools for the UNI FAN SL-INF Wireless kit (SLV3 TX/RX dongles 0416:8040/8041): a Python scan/colour script, tinyuz helpers, a JavaScript tinyuz encoder, the SignalRGB plugin and tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
35240e5dfc
13 files changed
+971
No files matched your search
@@ -0,0 +1,34 @@
|
||||
# Lian Li wireless fan tools
|
||||
|
||||
Proof-of-concept tools for the Lian Li UNI FAN SL-INF Wireless kit (SLV3 TX `0416:8040`, RX `0416:8041`).
|
||||
Protocol from [sgtaziz/lian-li-linux](https://github.com/sgtaziz/lian-li-linux) (MIT); compression is
|
||||
[tinyuz](https://github.com/sisong/tinyuz) (MIT).
|
||||
|
||||
Only one program can use a dongle at a time: quit SignalRGB (it holds the TX) and L-Connect before
|
||||
running anything that opens the TX.
|
||||
|
||||
| File | What it does |
|
||||
|---|---|
|
||||
| `lianli_poc.py` | `scan` / `color RRGGBB` / `demo`. Needs `pip install --user pyusb libusb-package`. |
|
||||
| `tuzc.exe` | tinyuz compressor used by `lianli_poc.py` (stdin to stdout, round-trip checked). |
|
||||
| `tuzd.exe` | reference tinyuz decoder, `tuzd <size>`, used by the tests. |
|
||||
| `tuz.js` | JavaScript tinyuz encoder (same code is inlined in the plugin). |
|
||||
| `LianLi_Wireless_SLINF_PoC.js` | SignalRGB plugin source. Installed copy: `Documents\WhirlwindFX\Plugins`. |
|
||||
| `test/tuz_test.js` | `node test/tuz_test.js`: JS encoder vs reference decoder, no hardware. |
|
||||
| `test/js_tuz_on_fan.py` | sends JS-compressed frames to the fan (needs TX free). |
|
||||
| `test/watch_rx.py` | `python test/watch_rx.py [seconds]`: watches the fan's effect id via the RX only; works while SignalRGB runs. |
|
||||
| `build-src/` | sources for `tuzc.exe` / `tuzd.exe`. |
|
||||
|
||||
The plugin hardcodes the fan MAC `e8:b5:62:62:32:e1` and RX slot 1 (from `lianli_poc.py scan`).
|
||||
|
||||
## Rebuilding tuzc.exe / tuzd.exe
|
||||
|
||||
Clone `https://github.com/sisong/tinyuz` and `https://github.com/sisong/HDiffPatch` into `build-src/`, then with MinGW g++:
|
||||
|
||||
```bash
|
||||
cd build-src
|
||||
F="-O2 -DNDEBUG -D_HPATCH_IS_USED_MULTITHREAD=0 -D_IS_USED_MULTITHREAD=0 -IHDiffPatch/libParallel"
|
||||
gcc $F -c tinyuz/decompress/tuz_dec.c -o tuz_dec.o
|
||||
g++ $F -static -o ../tuzc.exe tuzc_main.cpp tuz_wrapper.cpp tuz_dec.o tinyuz/compress/tuz_enc.cpp tinyuz/compress/tuz_enc_private/*.cpp HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.cpp -x c HDiffPatch/libHDiffPatch/HPatch/patch.c
|
||||
gcc -O2 -D_IS_RUN_MEM_SAFE_CHECK=1 -o ../tuzd.exe tuzd_main.c tinyuz/decompress/tuz_dec.c
|
||||
```
|
||||
Reference in new issue
Block a user