Комментарии 70
Почему ни один производитель не делает подобного? Хорошую клавиатуру купить проблема.

А почему она должна стоить $1000? Делать подобные клавиатуры не сложнее чем обычные в промышленных условиях. Стоить они должны столько же сколько стоят обычные механические клавиатуры. Другой вопрос, как потом это продать. Нужно ещё убедить людей, сломать их стереотипы и доказать, что вот эти два непонятных куска пластика со странно расположенными кнопками эргономичнее чем их родная "печатная машинка". :)

За 1000$ — это как телефоны Vertu. Дорого, стильно, модно, эксклюзивно.
"Два куска пластика" при желании можно купить и дешевле $100,
А эргономика у каждого своя. В нее нельзя поверить. Ее можно только почувствовать на практике.
Вот я никогда не приму "два куска пластика". Такой клавиатурой ведь совершенно невозможно пользоваться одной рукой. А иногда надо (другая рука в это время что-то держит, например, саму клавиатуру).

Там есть еще доводка под именно Вашу руку. Т.е. нечто вроде подгонки костюма у портного.

А где вы увидели ценник в 1000 долларов? За тысячу можно наверно что-то невероятное по качеству собрать.


Из сплитов самые дорогие и охуенные клавы, типа Ergodox EZ, Moonlander, etc, стоят в районе 300-350$. Цена во многом обусловлена небольшим размером партий, гарантией и поддержкой на несколько лет, и использованием этичного труда (а не низкооплачиваемых рабов в Азии), который недёшево стоит.


Если самому собирать, то можно лёгко уложиться в 100-180$ за конфетку, на плате. Платы стоят долларов 20, микроконтроллеры копейки, корпуса от 15 до 50-60 (в зависимости от охуенности), набор свитчей 20-25, набор кейкапов тоже в районе 20-25. Ещё можно добавить hotswap sockets за 5-10 долларов, чтобы свитчи можно было на горячую заменять без проблем. Можно сэкономить на цене, если самостоятельно изготовить простой корпус за копейки.

Делает. Например, гуглите Ergodox или Moonlander, они уже собранные продаются, правда на плате, а не hand-wired. Очень роскошные клавы. Стоят по 350+ долларов.

Можно купить всякие наборы с платой готовой, корпусом, куда остается только припаять свитчи и диоды. Стоят такие наборы по 30-40-50 долларов/евро.
ZSA Moonlander и прочие ее родственники. Я так понимаю, они из подобных общественных проектов и выросли.
1. Я так и не понял, какой у вашей клавиатуры интерфейс? USB?
2. HDMI — кабели и разъемы для клавиатуры — это как экскаватор в детской песочнице. Я уже молчу о том, что они весьма габаритные, а HDMI — кабели сами по себе гнутся просто ужасно и не предназначены для того, чтобы их постоянно гнули.
3. А с этой клавиатурой работать-то хоть можно? А то я за 25 лет к обычной клавиатуре привык и она меня во всем устраивает. Главное — не покупать дешевое.
4. Разъясните попутно, зачем носить клавиатуру от PC в рюкзаке (!!!!!!!!!!!!!!???????????) Если уж так приспичило, есть ведь гибкие клавиатуры, их хоть в трубочку можно сворачивать…
4) Ну, я мышку с собой постоянно ношу, потому что к тачпадам за всю жизнь так и не смог привыкнуть. Носил бы и клавиатуру, пожалуй.
  1. Использована однокристалка ATmega32U4 со встроенным контроллером USB.
  2. Если посмотреть на хреновые HDMI кабели, то они помягче хороших, а в данном случае их электрические характеристики абсолютно не важны.
  3. -
  4. Если крепко подсесть на такую нестандартную раскладку, то скорее всего ее действительно придется носить с собой везде, где приходится работать за компьютером.

Я не автор, но зато статью прочитал, таких вопросов не возникло.
Клава — усб, hdmi — для соединения половинок, один из самых удобных в данном случае разъемов, кабели бывают и очень гибкие, работать с этой клавиатурой можно, носить с собой иногда очень полезно, потому что я вот ноут ношу и клавиатуру к нему иногда, из-за того, что на маке нет нет инсерта и прочих пейджапов, а нужно бывает.
А гибкую клавиатуру надо свернуть в трубочку и забить тому, кто ее придумал в попочку.

ЗЫ. У вас знаки препинания рассыпались там в комменте
Если уж так приспичило, есть ведь гибкие клавиатуры, их хоть в трубочку можно сворачивать…

Была у меня такая. Жутко неудобная штука, поскольку в угоду гибкости принесено в жертву удобство использования: даже в лучших вариантах клавиши болтаются на гибкой основе как..., а в худших клавиши сделаны заодно с основой из того же материала, что делает само нажатие на клавишу некомфортным и нестабильным (жмешь, а символ не вводится, нужно четко на середку клавиши давить, а поскольку клавиша естественным образом болтается, то попасть не всегда получается).
Уж лучше компактная с совершенно нестандартной и непривычной раскладкой, чем гибкая.

Оргстекло, если есть возможность, лучше резать лазером. Такие детали, как в статье, любая контора, занимающаяся лазерной резкой, изготовит по вашему вектору за 10 минут и возьмет недорого (скорее всего).

По-моему, вы статью дольше писали, чем клаву делали, настолько все разжевано подробно и круто. БОльшое спасибо, буду себе тоже делать.
Я бы все же нанес на клавиши надписи, а то сложно будет привыкать тому, кто эту клавиатуру повторит
Помните? моя идеология — ни в коем случае не смотреть на клавиатуру.
Решение элементарное — на фото сверху справа:

image
Если вы будете делать так же — в чем проблема купить вместо прозрачных кейкапов, как у автора, любые другие и поставить их?
На том же Алиэкспрессе

К сожалению, для программистов всё печальнее. Например, в IntelliJ IDEA есть множество сочетаний клавиш Ctrl+Alt+… — насколько удобно их будет набирать? И клавиша Ins тоже активно используется — в том числе и в клавиатурных комбинациях.

В качестве безумной идеи — добавить под левый мизинец отдельную клавишу Ctrl+Alt.

P.S. А в Windоws есть комбинация Ctrl+Alt+Tab.

Вы упускаете главную мысль — это полностью программируемая клавиатура. Вы можете любые раскладки и расстановки клавиш сделать себе, настроить несколько разных слоев с разным расположением клавиш — что угодно вообще сделать. Например, завести слой где Ctrl+Alt будет прямо под большим пальцев, вместе с парочкой других распространённых префиксов.

Смазка для переключателей – она уменьшает шумность и улучшает тактильные ощущения при печати в лучшую сторону. Коротко о том, как смазывать свитчи:

Если вы решили пойти по пути улучшения тактильных характеристик, то почему вы выбрали обычные дешевые гатероны? Ведь есть множество вариантов, те же тактильные и бесшумные Aliaz или например тихая серия тех же gateron — gateron silent
p.s. спасибо за статью, было интересно
До этого где-то с месяц ходил везде изучал разницу между свитчами и кейкапами, достал всех конкретно. А тип я довольно въедливый. Потом: сижу дома у знакомого, клацаю его клавиатуры. Мой гуру, так сказать. Остановился на одной, на которой клик не громкий и тактильно в целом устраивал.
Он: — Нравится?
Я: — Вот эти практически без звука и дают слабый тактильный эффект щелчка.
Он: — Так нравится или нет?
Я: — Да.
Он: — Бери такие же и не морочь мне голову.
Так у него дома я 1 мая все детали и заказал со своего смартфона. Не я выбрал, за меня выбрали.
Вот хоть убейте, но я практически не чувствую разницы между Aliaz и Gateron Silent Brown, кроме веса. А так, конечно, silent-свитчи лучше, чем обычные + кольцо.

Спасибо вам огромное за такую подробную статью! Разожгли во мне желание сделать себе нечто подобное. Как разработчику ПО, мне бы очень хотелось иметь такой инструмент. Особенно впечатлила возможность легко и очень гибко менять назначение клавиш!

С такой сильной кастомизацией уже из дома без такой клавы не выйдешь :)
Отличная стая!
Тоже захотелось такое попробовать.
Сейчас пользуюсь 65% клавой с brown cherry свичами. После хорошего уже не хочется пользоваться обычным офисным ширпотребом. Это и клавы и мышки касается.

Чем больше эргономичных клавиатур тем лучше :)
Вставлю свои сумбурные пять копеек
1. Вместо решения с HDMI кабелем можно взять вторую ардуину (мы их промикрами в сообществе называем) и соединить их так, как обычно делают на сплит клавиатурах — понадобится всего 3 контакта и достаточно будет аудиокабеля. В документации QMK всё это есть. Благо стоят они копейки и не сильно дороже разъёмов hdmi. Дополнительный плюс — в случае чего можно будет просто подключить usb провод в промикру на другой половине и продолжать работать. Плюс актуален, ведь у этих контроллеров есть неприятная особенность — разъём держится на соплях и его легко можно оторвать неловким движением провода (чтобы снизить вероятность этого — используй провода с разъёмами на магнитах и держи стратегический запас контроллеров)
2. Если есть возможность — лучше провода припаивать не прямо к ножкам свитчей, а использовать сокеты от kailh (гуглить kailh hot-swap sockets). В результате получаем сплошные плюсы: паять проще (контактные площадки там больше), ножки у свитчей остаются чистыми, а также появляется возможность эти самые свитчи без пайки менять. Сокеты замечательно держатся на ножках за счёт силы трения — у меня больше одной клавиатуры так собрано и нареканий нет.

Сообщество можно найти вот тут, если что
Я был бы только рад увидеть нормальный русскоязычный гайд (англоязычных хватает) как сделать сплит на двух ардуинах. Вот бы кто-нибудь с отличным знанием языка сделал перевод. Но у такого решения, в отличие от моего, могут быть неожиданные подводные камни.
Так делаете просто две клавиатуры. Каждая половинка — самостоятельная клавиатура и подключается к компу отдельно. если не хочется занимать 2 порта USB в компе — берёте какой-нибудь дешёвый USB хаб, выбрасываете корпус и вставляете его в одну из половинок.

Так не будет работать переключение слоёв между половинками.

Согласен. Но их можно переключить на каждой клавиатуре. В конце концов, никто не переключает слои каждую минуту. А с двумя клавиатурами надёжность и гибкость решения недостижимы для того, что собрал автор.

Переключение слоёв крайне удобно для маленьких сплитов. У меня на Corne половина пунктуации, стрелки, цифры, F-клавиши и ещё много чего на слоях.
Иметь свои модификаторы слоёв на каждой половине неудобно.

можно в каждую половинку воткнуть nRF52 для связи друг с другом, но это заметно усложнит реализацию.

Это модификация проводка между клавиатурами, а не 2 отдельных клавиатур со своим подключением к компьютеру.
У меня походная Corne готовится как раз с модулями от Joric, к слову.

тут 2 варианта: или одна половинка ведомая, просто по радиоканалу, или они обе самостоятельные, но умеют синхронизироваться друг с другом.

Одновременно иметь соединение с компьютером и с другой половиной гораздо сложнее, я не уверен, что nRF52 так может.
Ну и смысла особого в этом нет, раз уж канал между половинами есть.

Я имел в виду, что каждая половинка — это отдельная клавиатура на атмеге, но с добавкой nRF52 для синхронизации друг с другом. Но это потребует серьёзной доработки прошивки.

Для чего тут атмега? https://github.com/joric/nrfmicro/wiki
Что вообще в схеме с синхронизацией между половинами должно делать второе подключение к компьютеру по проводу? Показывать в ОС вторую клавиатуру и ловить баги?

Это мои контроллеры. Нет там никакой атмеги и не было никогда (непонятно, зачем при чипе, который умеет хардварный USB, имеет в сто раз больше RAM и флеша и 64 мгц нужна атмега из 80-х годов).

Второго подключения тоже нет, только одно. Поддерживать один канал к компьютеру и свой внутренний канал между половинками (неважно проводной это канал или беспроводной) полностью забота такой сплит-клавиатуры. Как две клавиатуры их подключать нельзя, т.к. невозможно синхронизировать слои на двух разных логических клавиатурах без клиентского софта.

Поддерживать второй радиоканал и не жрать батарею при этом умеют все чипы (central+peripheral), nRF5x уж точно. Для этого можно использовать или bleuart как в QMK-nrf52, или свой собственный сервис, как в bluemicro. (В проводном режиме для коммуникации достаточно ОДНОГО провода для duplex serial, плюс питание.)

На этих чипах кстати кроме хардкорной сишечки можно гонять circuitpython и писать прошивку на питончике, что довольно прикольно, при правильном подходе вся «прошивка» помещается на страничку и даже вроде как-то работает github.com/joric/nrfmicro/wiki/Circuitpython

У вас очень "дружелюбное" сообщество, статью закидали ссаными тряпками и сходят пеной на всех кто с ней приходит.

А как сокеты закрепить в данном случае, когда нет платы?

Они без проблем держатся за счёт силы трения и соединяющих их проводов, ничего дополнительного не требуется.

Сколько одновременных нажатий клавиатура может зафиксировать? А сколько передать (особенности реализации usb hid)?
Не смешиваются одновременные нажатия в одном столбце, в одной строке, в квадрате 2х2 три нажатия соответствуют тому, что нажато?
Какая частота опроса в прошивке ~= задержки при вводе?
Клавиатура с QMK умеет в nkro, поэтому одновременно зафиксируется сколько угодно нажатий. При работе клавиш со слоями есть некоторые особенности, однако «обычные» клавиши фиксируются и передаются в любом количестве.
Пост который сподвигнет множество на создание своих клав! Браво!

Вопрос по существу — у меня есть bluepill (stm32f103) плата и для неё доступна такая же настройка слоёв и клавиш «на лету» в QMK Toolbox или нет?
BluePill и куча других контроллеров на ARM поддерживается в QMK через ChibiOS. Сейчас там всё красиво обернули, и работать не сложнее, чем с AVR, но с поддержкой сплитов есть определённые ограничения.
Вместо Blue Pill лучше использовать Black Pill (либо сверхдешёвые noname, либо от Robotdyn). Нет проблем с неправильным номиналом резисторов, и не попадались платы на клонах STM.
P.S. Одноклавишный пример. Полнофункциональный пример из последних: Z150.
Для Blue Pill и других плат на STM32F103C8T6 см. подкаталог bluepill.
Не забудьте про резистор и про то, что на A11 и A12 висит USB.
Загрузчик удобно использовать STM32duino. Несколько видов HID-загрузчиков у меня не заработало почему-то.
Да я уже сделал(взял готовую) клавиатуру Robotron 1987 г.в. и всандалил туда bluepill с qmk на борту. На пикабу пост сделал… Всё работает, но ремап пока у меня не «на лету», а через прошивку. Утомляет. Хотелось бы более удобно для bluepill — залил прошивку и перемапил под себя.
К AVR можно приделать прошивку с поддержкой VIA. Там можно налету многие вещи делать, конфигурация сохраняется в EEPROM, которого у STM32F103C8T6 нет.
P.S. Меня перешивка STM не напрягает. Компилируется всё практически мгновенно, если это делать не в MSYS2, а в Linux, или в виртуалке с Linux. Шьётся с STM32duino тоже легко: никаких нажатий на reset и переключений джамперов, просто запускаю скрипт и тут же вставляю USB.
В своей раскладке в основном слое я сделал упор на максимальную совместимость со стандартной раскладкой (включая букву Ъ). Для минимизации перемещения пальцев отказался от цифрового ряда. В слое для цифровых клавиш (и им подобных) — упор на совместимость с NumPad. В слое знаков — расположение для наибольшей простоты запоминания. Есть еще слой базового редактирования (редактирование с использованием клавиш Shift, Ctrl, Alt. Слой расширенного редактирования — использование универсальных модификаторов (независимо от приложений) и макросы для выполнения команд с модификаторами. В эту раскладку заложено еще множество других идей.
www.keyboard-layout-editor.com/#/gists/853291256ec0f234fe6fb904c0697797
Скажите, автор, а схему электрическую принципиальную рисовать уже немодно, что ли?
Зачем долго объяснять какой диод куда припаивать, если проще всего это показать схемой?
Принципиальная схема для того и придумана, чтобы объяснить что с чем соединять, и справляется она с этой задачей куда лучше текстового описания.
Вы невнимательно изучили текст статьи, там есть такой абзац:
Предупреждение – 90 сжатых картинок: я постарался написать статью максимально «разжеванной» — понятной максимально широкому кругу лиц, в том числе — технически не подкованным и совершенно не разбирающимся в программировании.
Я всегда внимательно читаю тексты статей. И упрек был не в том, что картинок много, а в том, что одной недостает.
Не вижу никакой корреляции между программированием и выполнением электрического монтажа. Это совершенно непересекающиеся друг с другом виды деятельности.
При чем тут программирование, я не понял вообще. Нужно скачать программу и из неё прошить ардуину. Все. Где тут программирование?
А фраза насчет «максимально понятной технически не подкованным» содержит в себе лукавство. Совершенно технически не подкованный в этой сфере условный кочегар сельской котельной и не будет такие вещи делать. Повторять это будут как раз те, кто так или иначе «подкован».
Я понимаю, что меня сейчас заминусят, но я это скажу. Выросло поколение «разработчиков», которые умеют лишь составить что-то из готовых «кирпичиков».
В комментах был вопрос про вторую ардуину. Тут не нужна вторая ардуина. Тут достаточно примитивной ATtiny2313-20PU в DIP-корпусе и кусочка фольгированного текстолита на котором от силы за полтора часа можно дремелем вырезать дорожки платы, под шаг 2,54 это не по силам только подслеповатому алкоголику с трясущимися руками.
Соединить «ведомую» часть клавиатуры с «ведущей» тремя проводами — питание, земля и TXD в сторону ведущей части.
Для задачи опроса кнопок хватит скорости передачи 1200 бит/с, на такой скорости можно и кварц не ставить, внутреннего генератора достаточно.
А для «ведущего» контроллера написать свою прошивку для такой элементарной задачи, как опрос матрицы кнопок и отправки пакета в компьютер можно за неделю совершенно не напрягаясь. В ней же и предусмотреть получение данных от второго контроллера. И выложить в статье готовую прошивку для «технически неподкованных».
Выросло поколение «разработчиков»

На неправильное поколение ещё Сократ жаловался 2,5 тысячелетия назад. Совсем не обязательно всё сводить к двум категориям: или ты глубоко погружаешься в предмет и через несколько лет становишься настоящим разработчиком, или у тебя вообще не может быть потребности собрать эту железку.

Цель статьи, насколько я могу судить, заключается в том, чтобы дать возможность дилетанту решить вполне определённую задачу — сделать клавиатуру под себя. Точка. Не изучить досконально в процессе цифровую схемотехнику и программирование микроконтроллеров, а сделать клавиатуру и начать её пользоваться.

Именно для этого предназначены готовые блоки. Зачем нужен онлайн-генератор плейтов, если любой настоящий разработчик напишет соответствующий скрипт для своего CAD за пару часов? Зачем нужен онлайн-генератор прошивок, если QMK можно собрать локально? Зачем вообще нужен QMK, если можно «написать свою прошивку для такой элементарной задачи, как опрос матрицы кнопок и отправки пакета в компьютер можно за неделю совершенно не напрягаясь»? Люди, толком не умеющие готовить, пользуются рецептами для мультиварок. Люди, не умеющие пользоваться ручным фрезером, собирают мебель из Икеи.
А что делать людям имеющим полнофункциональный CNC фрезер? В ИКЕА идти далеко… :-))
«Дать возможность дилетанту решить вполне определенную задачу». Вы кого под «дилетантом» понимаете? Автора статьи или потенциального пользователя, которому просто нужна клавиатура? Если последнего, то разве я требую от него знания цифровой схемотехники? Повторюсь — чем для новичка будут отличаться процессы:
1. Установить программу и прошить из-под неё ардуину.
2. Установить среду разработки ардуино и из-под неё прошить предоставленный автором скетч.
По-моему, ни один из них не требует никакого знания. Кабель HDMI стоит примерно столько же, сколько и вторая ардуина, а удобство подключения тонким гибким кабелем вместо жесткого HDMI очевидно.
Вы кого под «дилетантом» понимаете?

Всех перечисленных и себя в первую очередь. Например, у меня весьма приблизительные представления об архитектуре ARM и о работе ChibiOS. Я не разработчик железа и не программист. Прикрутить к ChibiOS поддержку нового устройства или написать с нуля собственную клавиатурную прошивку — для меня задача не то чтобы непосильная, но я просто не вижу необходимости во всё это погружаться, когда настоящие разработчики для таких дилетантов, как я, всё красиво обернули и задокументировали.
Я могу себе представить, что для кого-нибудь другого, находящегося на начальном этапе, столь же тяжело и, возможно, вовсе не нужно разбираться с git, msys и C — нужно быстро через GUI удалённо сгенерировать прошивку под произвольную клавиатурную матрицу и собственную логическую раскладку. Появится необходимость (например, нужно будет сделать правильный сплит или наворотить функционал, недоступный через веб-генератор) копнуть глубже — дилетант соберет QMK из исходников.
Установить среду разработки ардуино и из-под неё прошить предоставленный автором скетч

Зачем автору изобретать велосипед и писать собственную клавиатурную прошивку в рамках задачи «дилетант для дилетантов о сборке собственной клавиатуры», когда есть QMK? Это же не «дилетант для дилетантов об основах программирования МК», а реализовать в одиночку хотя бы малую часть функционала (см. Software Features в документации) будет очень сложно.

Кабель HDMI стоит примерно столько же, сколько и вторая ардуина, а удобство подключения тонким гибким кабелем вместо жесткого HDMI очевидно.

Да кто ж спорит-то. Тут просто дело в том, что веб-генератор не поддерживает такие сплиты или в том, что в самом QMK поддержку сплитов только недавно оформили по-человечески, ещё год назад там сложночитаемый для новичка лес из костылей был.
настоящие разработчики для таких дилетантов, как я, всё красиво обернули и задокументировали
Если это действительно «настоящие разработчики», то почему бы им было не избавиться от развязывающих диодов на каждую кнопку? Да, я помню, что ATmega не имеет необходимого для этого режима выхода с открытым стоком. Но во первых на ATmega свет клином не сошелся, а во вторых это вполне обходится и на ATmega, если для сканирования переключать не состояние вывода, а его режим.

А расскажите, как можно избавиться от диодов и не потерять корректную регистрацию нескольких одновременно нажатых клавиш?

Если Вы хотите корректно регистрировать вообще любую нажатую комбинацию — то никак, тут Вы правы. Но ведь отнюдь не все клавиши являются клавишами-модификаторами.

А вообще Ваш вопрос поначалу мне показался тривиальным, но при попытке сформулировать решение поставил в тупик, посыпаю голову пеплом.

Одновременно можно нажимать не только модификатор и букву. Люди ещё играют на компьютерах, например.


Вот именно поэтому все ставят по диоду на свитч и не придумывают себе сложностей.

Люди, не умеющие пользоваться ручным фрезером, собирают мебель из Икеи.
А ещё есть люди, которые умеют пользоватся фрезером. Но не имеют места для фрезера и стола.
Уважаемый, возник такой вопрос:
А где можно найти трекпоинты на подобие тех что есть в среии ноутов thinkpad?
Просто хочется встроить один такой в свою клаву, посередине, и без него считаю делать клаву под себя нецелесообразно.
Увидел 3д модельки, красивые, да.
А может вы знаете конкретно pcb модули трекпоинтов? Буду благодарен.
Они там внизу указаны: тут
Мне лично больше по душе такой вариант: trackball но цена на него совсем не бюджетная, а похоже что-то другое не поддерживается прошивкой
Я понимаю что-то вроде этого?
image
Вот честно, самый сложный момент для меня было понять, что и куда вы там припаивали.
Соглашусь с человеком, что именно ВОТ такой картинки и не хватает. ¯\_(ツ)_/¯
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Минуточку внимания

Разместить