Самодельный USB индикатор светодиодов клавиатуры

Итак, как я писал, у меня есть внешний индикатор светодиодов клавиатуры, что бы боковым зрением видеть, когда включена русская раскладка клавиатуры или когда рабочий стол заблокирован, который сделан на базе модуля выдранного из клавиатуры.

Модуль это конечно хорошо, но мы же хотим полный DIY, верно? Как и полный контроль над процессом отображения нужной нам информации. Например – отображать статус USB, сделать плавное включение диодов и прочее.

Разобрался и сделал самодельное устройство с аппаратным USB на базе копеечной STM32 отладочной платы, которая представляется полноценной USB HID клавиатурой и не требует драйверов для работы.

Код прошивки в итоге получился простой, но пришлось знатно помудиться – документация весьма путанная, так же явно маловато примеров. Это моё первое знакомство с STM32 (с которым очень давно хочу познакомиться), и надо сказать я удивился. Думал будет какой-то SDK с документацией и примерами, но нет – в 2023 году разработчики микроконтроллеров собирают прошивку из кубиков в генераторе кода. Но это конечно не наш метод, сделал в итоге простой проект на одном файле, на связке Zephyr RTOS, которое собирается в PlatformIO под VSCode.

Код проекта как всегда можно найти у меня на Github.

Для пользователей Windows, OSX и прочего: устройство так же будет работать из коробки. Насколько я знаю, переключение и индикацию раскладки можно сделать на CapsLock через PuntoSwitcher, что уже неплохо, а если вам нужны какие-то дополнительные каналы, то их легко можно добавить.