Тачпад для Corne
После того как моя клавиатура научилась работать с разными устройствами, возник закономерный вопрос: если есть клавиатура, то где мышь?
Управлять курсором с помощью клавиш она уже умеет, но на практике это не очень удобно. Поэтому я задумался: что, если добавить к клавиатуре простой манипулятор, способный заменить мышь?
Я рассмотрел несколько вариантов.
Можно превратить в мышь саму клавиатуру. Она достаточно маленькая и даже немного похожа на неё. Но двигать клавиатуру по столу пока кажется мне слишком странной идеей.
Другой вариант — установить трекбол. Однако для него нужна довольно сложная механическая конструкция, создавать которую я пока не умею.
А что, если добавить тачпад?
Он подключается несколькими проводами, не требует сложной механики и сразу даёт привычный способ управления курсором, сопоставимый с обычной мышью.
Сказано — сделано.
Тачпад Cirque прекрасно подошёл к клавиатуре на базе ZMK и органично вписался в дизайн корпуса. Теперь моя клавиатура может использоваться не только для набора текста, но и для управления курсором.

Пока у меня есть полько программная часть и сенсор, который висит на проводах, попробую напечатать новый корпус и поработать с ней некоторое время и посмотрю, насколько удобным и практичным окажется такое решение, однако уже сейчас видно что сенсор прекрасно ложиться под указательный палец, и, кажется это будет очень удачным решением.
Приехали новые платы для Corne
Предыдущую плату я заказал для клавиатуры со свичами Choc, тогда я еще не знал что Choc и MX имеют разные посадочные места. Поскольку у меня уже были MX свичи то пришлось еще заказывать Choc а MX при этом остались не у дел. Решил это исправить и сделать новую версию клавиатуры со свичами MX.

И вот платы приехали - теперь нужно все собрать.
GATT профайл
Выходные провел за изучением возможности использования Bluetooth Low Energy чтобы посылать на комп номер активного слоя ZMK клавиатуры. И у меня получилось! Для начала я сделал простую клавиатуру с черырьмя кнопками и подключил к ней дисплей. Затем добавил кастомный GATT профайл и убедился что я вижу активный слой в приложении на смартфоне. Под конец создал простой cli на rust который выводит активный слой в терминале.
Теперь осталось прикрутить логику из cli в мой клавиатурный хелпер и я смогу видеть в реальном времени какой у меня сейчас слой и какие кнопки я нажимаю!
А че так можно было?
Чтобы поэкспериментировать с HID, мне потребовалось устройство на nice!nano — я хочу передавать на компьютер номер активного слоя, чтобы можно было показывать его на экране. Обнаружил, что на Printables есть несколько устройств на ZMK, но без клавиш. Казалось бы, зачем? Ответ нашёлся, когда я посмотрел на этот проект. Оказалось, что для сплит-клавиатуры не обязательно, чтобы на одной половине был центральный контроллер, а на другой — периферийный. Можно сделать периферийными обе половины, а центральный контроллер вынести в отдельный донгл, подключённый к компьютеру через USB. Достоинств у такой архитектуры масса: сигнал от компьютера доставляется практически мгновенно, связь между обеими половинами и центральным донглом имеет одинаковую задержку, центральная, самая энергозатратная часть клавиатуры теперь имеет постоянное питание, а значит, заряжать половинки нужно гораздо реже. Думаю, тестовое устройство я тоже сделаю без клавиш — в виде донгла. Всё необходимое для этого у меня уже есть!




