# Прошивка Silakka54 (LED, v1.4led) с командой «какой слой активен» Это исходники релиза [v1.4led](https://github.com/Squalius-cephalus/silakka54/releases/tag/v1.4led) (keymap `vial_led`, подсветка слоёв) плюс файл `keyoverlay_hid.c`. Он добавляет HID-команду `0xE0`: оверлей спрашивает плату, и плата отвечает номером активного слоя. Раскладку и LED команда не затрагивает, работает и при заблокированном Vial. ## Протокол Запрос (хост → клавиатура, Raw HID, 32 байта): `[0xE0, 0x01, ...]` Ответ: `[0xE0, 0x01, highest_layer, layer_state (u32 LE), default_layer_state (u32 LE), ...]` Номер `0xE0` не пересекается с командами VIA (`0x01..0x1F`), Vial (`0xFE`) и «не обработано» (`0xFF`). Прошивка только читает состояние. Слой отдаёт та половина, которая подключена к ПК (главная). ## Готовые файлы Собранные `.uf2` лежат в Releases (в git они не хранятся): - `silakka54_vial_led_keyoverlay_LEFT.uf2` — в левую половину, собран с `MASTER_LEFT` - `silakka54_vial_led_keyoverlay_RIGHT.uf2` — в правую половину, собран с `MASTER_RIGHT` LEFT и RIGHT различаются тем, какая половина считается главной (определяет, в какую USB-розетку втыкать кабель), как и в оригинальных релизах проекта. ## Прошивка платы (RP2040) 1. В Vial: File → Save current layout. После обновления прошивки раскладка может сброситься. 2. Закрой Vial и оверлей. Отключи кабель между половинами (TRRS) на время прошивки. 3. Зажми BOOT на плате и подключи USB (или дважды быстро нажми reset). Появится диск RPI-RP2. 4. Скопируй на него файл своей половины. Плата перезагрузится сама. Повтори для второй половины. 5. Подключи половины обратно. В Vial загрузи сохранённую раскладку (File → Load saved layout), если слои пропали. Откат: прошей оригинальные `silakka54_vial_led_LEFT.uf2` / `..._RIGHT.uf2` из [релиза v1.4led](https://github.com/Squalius-cephalus/silakka54/releases/tag/v1.4led) тем же способом. ## Сборка Нужны Git, bash и Docker. ``` bash firmware/prepare-source.sh # клонирует vial-qmk и silakka54 (v1.4led) в .firmware-work/ и добавляет команду docker build -t keyoverlay-fw-build firmware docker run --rm -v "$PWD/.firmware-work/vial-qmk:/qmk_firmware" -v "$PWD/firmware:/fw" -w /qmk_firmware keyoverlay-fw-build sh /fw/build-in-container.sh ``` (В PowerShell вместо `$PWD/...` используй полные пути: `-v C:\путь\.firmware-work\vial-qmk:/qmk_firmware`.) Готовые файлы появятся в `.firmware-work/vial-qmk/` как `silakka54_vial_led_keyoverlay_LEFT.uf2` и `..._RIGHT.uf2`. Первая сборка долгая (десятки минут на смонтированной папке Windows), повторные быстрее. Образ Docker (`Dockerfile`) добавляет к базовому образу QMK компилятор ARM и утилиту `qmk`. Файл `keyoverlay_hid.c` распространяется под GPL-2.0-or-later, как и QMK/Vial, в который он собирается.