Problem
При cold boot на обеих частях клавиатуры загораются лого (здоровое поведение: на левом отображается debug shi, на правом — лого), но нажатия не регистрируются — переподключение кабеля решает проблему.
В итоге, проблема в определении при старте системы master/slave частей клавиатуры.
При перезагрузке (warm boot) клавиатура не теряет питание и не выключается, поэтому проблемы при перезагрузке нет.
Solution
Compiling
Собирать прошивку буду сам из официальной репы:
git clone https://github.com/qmk/qmk_firmware.git && cd qmk_firmware # юзайте алиас gccd
qmk setup
Есть несколько решений, как я понял, но я воспользовался простым определением SPLIT_USB_TIMEOUT
:
#define SPLIT_USB_TIMEOUT 10000 // 10s
Почему именно 10 секунд?
10 секунд, в моем случае — время от нажатия на клавишу запуска ПК до момента, где может понадобиться взаимодействие с клавиатурой (выбор версии конфигурации NixOS, например).
Таймаут меньше 10 секунд не решает проблему, поэтому это еще и минимальный рабочий таймаут, в моем случае.
Flashing
Теперь нужно спомпилировать .uf2
файл:
qmk compile --keyboard crkbd --keymap default --env CONVERT_TO=promicro_rp2040
Осторожнее с TRRS кабелем
Не соединяй/разъединяй половинки включенной клавиатуры — может сгореть🫣 что-то там…
P.s. Но мне пока везет, учитывая, что я и Шихо уже вытаскивали кабель включенной клавиатуры по незнанию.
.uf2
файл нужно перенести на половинки клавиатуры — для этого нужно (соединительный TRRS кабель тут не нужен будет):
- Отдельно подключить левую половинку и ресетнуть контроллер одним из способов:
- Дважды быстро нажав на ресет кнопку под щитком контроллера/на корпусе.
- Комбинацией клавиш, назначенной заранее (SW RESET).
- Половинка определится как накопитель — туда и нужно перенести
.uf2
файл. - Отключай половинку и повтори тоже самое с правой.
Keymap
Этой теме вообще не место в этой статье, но who cares.
В общем, свой keymap я настраивал напрямую в keyboards/crkbd/keymaps/default/keymap.c
.
Это, как раз, повод упомянуть репу, где и находятся (только) измененные мной файлы, решающие эту проблему (там же храню свой keymap).
Sauces: