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


Клавиатура KeeBee в окончательном виде

Несколько целей проекта:

  1. Самостоятельное создание схемы.
  2. Написание прошивки клавиатуры.
  3. Узнать, как работает протокол USB.

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

Исследование и макет CAD


Мне очень нравятся минималистичные клавиатуры в стиле OLKB Planck и Preonic, которые за счёт ортолинейного расположения клавиш получаются очень компактными. Ещё я сразу знал, что хочу использовать переключатели Cherry MX Brown. Имея виду эти два компонента дизайна, я начал играть с ключевыми макетами в OpenSCAD. Это отличный инструмент с открытым исходным кодом, который работает скорее как язык программирования, чем WYSIWYG-интерфейс для мышки.

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

Дизайн верхней пластины:



После добавления клавиш:





Прототипирование платы и проектирование прошивки


В качестве основного микроконтроллера я выбрал STM32F042K6T6. Это около трёх долларов за чип, если брать от одной штуки. У него достаточно контактов для матрицы сканирования 69 клавиш (всего 32 контакта). Он работает на процессоре ARM Cortex M0 и содержит специальную USB-периферию для отправки USB-сигнала, не загружая этой задачей основной процессор. Я купил dev-плату Nucleo для прототипирования с этим чипом, прежде чем интегрировать его в дизайн своей печатной платы. Nucleo очень удобно легла на макетную плату и запиталась по USB.

Я разместил на макетной плате маленькую цепь на четыре клавиши, чтобы протестировать диодный контур, который я изучал. Игнорируя USB-сторону уравнения, на первом шаге требовалось заставить переключатели Cherry надёжно включать и выключать четыре соответствующих светодиода при нажатии кнопок.



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

Когда матрица удовлетворительно заработала, пришло время поработать над USB.

Встроенный цикл прошивки по сути такой:

  1. Просканировать все клавиши в матрице.
  2. Сопоставить расположение кнопок с соответствующими символами в выбранной раскладке (QWERTY, Dvorak и т. д.).
  3. Взять результат сопоставления, сгенерировать пакеты USB HID Report и отправить на периферийное устройство USB.
  4. Включить светодиод на клавиатуре, если клавиша нажата, выключить — если нет.

Из main.cc:

static void scan_and_update() {
    scan_matrix.Scan(key_scans, row_count, column_count);
    keyboard.SendReport(
        key_pipeline.MapKeyScans(key_scans, key_count));
    update_key_press_status();
}

int main() {
    Init();

    status_led.SetOk(true);
    while (true) {
        scan_and_update();
    }
}

Компонент keyboard.SendReport фактически передаёт пакеты USB-хосту. Я упорно пытался заставить USB правильно работать. В этом протоколе много нетривиальных слоёв, которые требуют точного тайминга и правильной идентификации устройства. В итоге пришлось запустить Wireshark, чтобы прослушать все USB-пакеты, поступающие на мой ноутбук Linux и выяснить, где что потерялось. Поиск в интернете практически ничего не дал, на большинство вопросов отвечают примерно так: «Вероятно, ваше USB-устройство сломалось, нужно купить новое». Если вы на самом деле пытаетесь сконструировать USB-устройство, такие ответы не очень полезны. Мне оставалось только погрузиться в объёмные спецификации USB с большим количеством незнакомой терминологии.

Повозившись некоторое время, я всё-таки заставил клавиатуру с четырьмя клавишами корректно идентифицировать себя как USB HID (Human Interface Device) и все нажатия правильно передавались на ноутбук:



Регистрация в качестве USB-вендора и получение официального device id дорого стоит. Если у вас просто любительский проект, то придётся захватить идентификатор какого-нибудь похожего устройства. Я подумал, что “Gear Head” звучит круто, тем более они выпускают клавиатуры, поэтому выбрал их.



Схема и печатная плата


Получив более-менее работающую прошивку и рабочий прототип, пришло время составить схему и дизайн печатной платы в KiCAD и сделать реальную печатную плату. Когда я добился, что схема для 4 кнопок работает, осталась относительно простая задача соединить всё вместе:



После разработки схему и установки площадок для компонентов нужно произвести макет реальной печатной платы:



KiCAD умеет красиво рендерить будущую плату в 3D:





Есть много отличных учебников по KiCAD. Я начал с отличной видеосерии Getting to Blinkey 4.0 от Криса Гэммела, где он подробно разъясняет все этапы создания схемы светодиодного юлинкера в KiCAD от начала до конца.

Заказ печатной платы и компонентов


Доведя схему и дизайн печатной платы до удовлетворительного уровня, я начал размещать кучу заказов:

  1. Все компоненты из списка материалов: переключатели, светодиоды, диоды, микроконтроллеры и т. д. Я обычно заказываю такие штуки на DigiKey.
  2. Сама печатная плата. Довольно много сервисов готовы недорого изготовить вам пррототип. У меня отличный опыт работы с OshPark и JLCPCB. Для этого проекта я выбрал JLCPCB из-за цены на такой размер, а ещё потому что они разрешили выбрать синее покрытие.
  3. Все остальные детали: крышки и прочее. Для этого проекта мой шурин помог лазером вырезать верхнюю и нижнюю клавиатурные пластины из 1/4” акриловых листов. Для остальных частей можно использовать онлайновые сервисы лазерной резки и 3D-печати, если нет доступа к оборудованию.

День, когда пришла посылка с платой, самый лучший:





JLCPCB очень доступный сервис. Этот дизайн с доставкой DHL из Китая обошёлся менее чем в $30, а весь процесс от загрузки файлов до прихода посылки занял чуть больше недели.

Шурин взял DXF-файлы из OpenSCAD и забросил их в лазерный резак:



Окончательная сборка


Получив все детали, я начал сборку. Первый шаг — сборка компонентов печатной платы: паяльник для больших электронных компонентов и паяльная станция для поверхностного монтажа маленьких компонентов, таких как микроконтроллер STM32.

Общее время сборки платы составило около трёх часов — большую часть заняла пайка 70 диодов и переключателей.

Я добавил хедер для JTAG-отладки, через который подключил JLINK Edu mini для прошивки микроконтроллера с помощью OpenOCD.

Затем пришло время окончательного тестирования и финальной сборки:







Сын решил, что это отличный поезд для его животных:





Итоги


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

Все файлы проекта опубликованы на GitHub, в том числе исходники прошивки, схемы печатных плат, список материалов и модели CAD.

Спасибо за чтение и приятных хаков!

Комментарии (81)


  1. red_perez
    20.02.2019 16:51
    +1

    пришло время составить схему и дизайн печатной платы в KiCAD


    Зацепился глазом за эту фразу, я как старый зубр схемы рисую в чем то уже безнадежно устаревшем, элементарно лениво искать что то лучше, но походу время уже пришло. Вы давно KiCAD используете? Есть сложности?


    1. greabock
      20.02.2019 16:57
      +2

      Это перевод ) Автора здесь нет


      1. red_perez
        20.02.2019 17:11
        +1

        Извините, по запарке не обратил внимания.
        Может кто от себя прокомментирует тогда?


        1. kt819a
          20.02.2019 17:43
          +2

          На предыдущем месте работы довольно плотно пользовался KiCADом, даже как-то умудрялись оформлять документацию по ГОСТ. Сейчас использую Altium, но для хобийный проектов так и остался KiCAD. Последние версии довольно стабильные, не припомню каких-то фатальных недоработок. Большая библиотека элементов, хотя и свои добавить не составит труда. Единственное, пришлось на первых парах привыкнуть к горячим клавишам, для более-менее удобной работы.


          1. red_perez
            20.02.2019 17:45

            Спасибо, мне именно для хоббийных проектов


            1. rstepanov
              20.02.2019 22:15

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


              1. asakasinsky
                21.02.2019 09:23
                +1

                Для хобби у DipTrace есть лицензия (ограничение в 1000 выводов, 4 слоя)

                лицензия
                User name: Для некоммерческого использования
                Reg. key: HW9S-PDTN-T5MA-HPXE


    1. vasiaplaton
      20.02.2019 17:19

      Попробуйте easy-eda. Она онлайн, крайне простая, и там отличная библиотека компонентов. Проверенная. Найти можно все что угодно. Она не идеальна, но мне показалась норм, хотя с проф средами разработки типо орла или альтиуима сравнивать тяжело. Но вы просто попробуйте.


      1. red_perez
        20.02.2019 17:34

        Спасибо за наводку, уже пробую.


      1. tezcatlipoc
        20.02.2019 18:34

        Не советую easyIDE. Да он браузерный со сквозной привязкой к магазинам и онлайн-библиотекам но на этом все. Его крутые облачные фичи не работают потому что сервера постоянно висят, а реализация отрисовки трасировшика реализована понятное дело на JS что дает очень интересные результаты.
        Не знаю как небольшие проекты, но как то на пробу решил один заказ выполнить в нем что бы изучить окружение. Восторгов было масса, пока практически на самом финише я не заметил что трассировшик путает лучи привязки. Я так понимаю вылезла стандартная проблема JS с памятью, так как у меня там 200+ элементов было. Причем принципиальная схема в порядке. перезагрузка страницы и браузера с очисткой кеша давала каждый раз новые «соединения» трассировка.
        Я им отписался тогда но кроме автоответа ничего не получил с тех пор. По-моему проект уже давно мертв и не развивается.

        А кикад шикарен для оочень многого. Единственный минус только временами вылазят особенности использования как OpenSorse проекта. Очень хитровывернутые форматы 3Д моделей для элементов, горячие клавиши к которым просто надо привыкнуть и скрытый функционал о котором можно узнать только из документации.
        В остальном же 10 из 10. Поддержка любого количества слоев, ограничения на размер нет, картинки и детали любой сложности. Есть удобные реализации вложенных документов для больших проектов, поддержка стандартов, тончайшая настройка всего и мультияз.


    1. ELEKTRO_YAR
      21.02.2019 11:54
      -1

      Попробуйте Altium


      1. red_perez
        21.02.2019 12:29

        Он у меня на работе есть.
        Дак там 15 дней пробная версия а дальше платить надо, это профессиональный тул, явно избыточный для домашних проектов.


      1. Juzujka
        21.02.2019 12:35

        дороговато для хобби будет.


    1. Juzujka
      21.02.2019 12:42

      Сложности есть.
      Своеобразный подход к библиотекам.
      Своеобразный интерфейс редактора схем.
      Но это преодолимо.
      За 16 часов, пожалуй, осовиться можно.
      А вместо OpenSCAD я бы предложил FreeCAD. Он более дружелюбен.
      С помощью того или другого сможете сами добавлять 3D модели элементов, которых нет в библиотеках KiCAD. Тогда сможете генерить 3D модели сборок и со своими 3D моделями элементов.


      1. red_perez
        21.02.2019 12:45

        Спасибо, на выходных попробую


  1. mpa4b
    20.02.2019 18:10
    +1

    Не могли бы вы выгнать схему(ы) в виде .pdf и добавить в репу?


    1. rstepanov
      20.02.2019 22:16

      Это перевод.


  1. keyboards_master
    20.02.2019 18:34
    -4

    Я сделяль, как обычно на хабре.

    Для начала — как решается вопрос с ghosting? Да никак не решается. N-key rollover? Тоже никак. Для самодельных клавиатур уже стандартом стала поддержка в том или ином виде одновременного нажатия нескольких клавиш, здесь же не видно даже попыток решить проблему.

    Длиннющие линии USB через пол-платы? А ничего, что это должна быть дифференциальная пара? Сойдет для первого проекта, но на самом деле автору крупно повезло, что все заработало.

    Прошивка? Очень слабенько, тоже похоже на первые опыты с микроконтроллером вообще. О дребезге клавиш автор опять же ничего не слышал — хотя Cherry MX в целом неплохи и дребезг у них обычно короче 1-2 мс. Так как отправка данных по USB здесь блокирующая и происходит раз в 10 мс — жить как-то можно.

    Я, конечно, могу понять радость автора от сделанной своими руками клавиатуры — но честное слово, зачем тащить это на «профессиональный ресурс»?


    1. maksim_ms
      20.02.2019 18:55
      +1

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


      1. tezcatlipoc
        20.02.2019 19:16

        1. Гугл: Arduino + библиотека USB keyboard
        2. Купить, поиграться, порадоваться
        3. Гугл: сдвиговые регистры + ардруино
        4. купить, поиграться, порадоваться
        5. Гугл: ютуб + вырисовываемым печатную плату с нуля
        6. Скачиваем, устанавливаем, рисуем, страдаем и радуемся
        7. берем бумажку и при помощи деревянных счет считаем чего и сколько нам нужно в компонентах
        8. Заказываем в магазине DIP-компоненты под задачу, паяльник, флюс и олово
        9. Рисуем плату своей мечты, заказываем у любого локального представителя или на авито у аматоров за символическую сумму
        10. Заказываем на алиекспрессе нужное количество переключателей
        11. 18+ с паяльником, платой и радиокомпонентами. Компонентов желательно взять с запасом. И плату если бюджет позволяет
        12. Вставляем ардуинку, назначаем нужные клавиши на отдачу и пускаем скупую бородатую слезу


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

        В итоге на все про все от силы месяц по часу-два вечером после работы как увлечение
        Огромное количество эмоций на протяжении всего срока гарантируется
        P.S.
        Фирма не несет ответственности за оттенок эмоций.


      1. dlinyj
        20.02.2019 19:20

        1. rstepanov
          20.02.2019 22:20

          + habr.com/ru/post/409707

          пысы: я уже осознал сколько там косяков, сейчас бы сделал намного лучше :)


          1. dlinyj
            21.02.2019 10:33

            Да ладно, нормальный проект. Я просто накидал ссылки из гугла.


            1. rstepanov
              21.02.2019 11:26

              Спасибо. Реально когда я это делал я особо не задумывался насчет ghosting/masking, в результате там определенные комбинации не работают. Но переделывать уже желания нет, все равно это малопрактичная игрушка…


          1. maksim_ms
            21.02.2019 19:30

            Спасибо всем за ссылки.
            Сейчас собираю клавиатуру по варианту описанному ниже.

            Жду пока доедет XD75 с Али + тестер переключателей.

            Хотелось бы видеть больше статей как быстро и просто собрать клавиатуру под себя. Так сказать первый вариант без наворотов. Потому как путь описанный в большинстве статей, и частности в этой, про самодельные клавиатуры не каждый сможет повторить.


        1. AVI-crak
          21.02.2019 00:53

          В этом проекте используется stm32f042k6t. Для которого фирма поставляет крайне глюкавые usb драйвера из кубика, с древними ошибками первой версии. Иногда мне кажется что они специально так поступают — чтобы пользователям осталось пространство для побед.
          Это для аурдинциков есть готовые библиотеки, а тут нужно думать.
          И да, примеров в сети очень мало, а рабочих вовсе не встречал до этого момента.


          1. golf2109
            21.02.2019 07:34

            а можно ссылки на описание «глюкавости» с «древними ошибками первой версии» и методы ее решения?


            1. AVI-crak
              21.02.2019 13:55

              Этой публикации мало?


    1. dlinyj
      20.02.2019 18:56
      +1

      Чувак что-то сделал, показывает опыт работы и то что это может каждый. Никто не застрахован от ошибок. Если вы так критикуете, то где же ваши публикации?


    1. jar_ohty
      20.02.2019 20:12

      Если это USB 1.1, то требования к выравниванию длины линий дифпары снижаются практически до нуля.


    1. Nicknnn
      20.02.2019 20:51

      А слабо скачать и схему посмотреть?

      как решается вопрос с ghosting?
      Полностью. Там на каждую клавишу диод.

      Длиннющие линии USB через пол-платы?
      И что? Они параллельно идут. Немного странно в районе самого разъёма сделано но не критично для USB 1.1

      N-key rollover? Тоже никак.
      Можно прув на его код? Если там реализован только HID Boot Protocol то соглашусь. Посмотрел код. Да там 6 клавиш.


    1. opckSheff
      21.02.2019 07:07
      +1

      Слава хабрабогам, что теперь на «профессиональном ресурсе» зарегистрировался настоящий клавиатурный профессионал и наконец-то нас всему научит.


  1. jar_ohty
    20.02.2019 20:10

    А что это за такая чуднАя раскладка?


    1. Steve_Key
      20.02.2019 20:34

      Так Дворак же!


      1. jar_ohty
        20.02.2019 21:21

        Аааа… а я подумал уж: хм… линотип, что-ли?


  1. Steve_Key
    20.02.2019 20:36

    Кстати, чат любителей изобретать клавиатуры «под свои руки»: t.me/klavaorgwork


    1. NickSin
      21.02.2019 12:48

      А чат секты кнопочников, в котором идут всегда жаркие обсуждения - https://t.me/ru_mechcult


  1. johnfound
    20.02.2019 22:19

    Я давно планирую сделать себе нетбук с механической клавиатурой. Только никак не могу решить делать ортогональную (как здесь) или нормальную с сдвинутыми рядами. Кто нибудь работал на такую как в статью? Говорят что удобнее чем когда ряды сдвинуты на пол-клавиша.


    1. rstepanov
      20.02.2019 22:26

      Удобно или неудобно — в основном вопрос привычки. Если умеете быстро печатать на стандартной раскладке — смысл переучивания на нестандартную неочевиден.

      зы: посмотрите на низкопрофильные механические свитчи, например kailh choc, для ноутбука/нетбука отлично подойдут.


      1. johnfound
        21.02.2019 03:52

        Ортогональная раскладка позволяет решить некоторые проблемы, например с несоразмерно большими клавишами shift, tab и capslock. К тому же, люди утверждают что привычки не влияют (или почти) на скорости ввода… В конце концов, такие клавиатуры не очень популярные, а все их пользователи научились впервые печатать на классические клавиатуры.


    1. quartz64
      21.02.2019 12:20
      +1

      У меня Ergodox, скоро добавится Kinesis. Некоторое время был Nyquist, 12x5, но раздельная. По скорости набора примерно одинаково с обычными клавиатурами, дополнительная эргономичность достигается за счёт других вещей:

      • Нампад. Ортолинейную клавиатуру не обязательно делать с выделенным нампадом. Удобней держать его на слое, и он будет иметь привычное расположение клавиш.
      • Поворот блоков клавиш и некоторое вертикальное смещение под разную длину пальцев (a la Ergodox, Atreus, Signum, Catboard).
      • Более рациональное использование нижнего ряда. Непосредственного отношения к ортолинейности не имеет, но как правило, за счёт отказа от длинного пробела в пользу 1U и 2U клавиш можно уместить больше функционала в нижнем ряду. Чтобы не путаться, можно поставить туда клавиши с тактильными метками или сделать метки из 2мм стальных шариков.


  1. RuK
    21.02.2019 01:33

    Простите, но — «Повеяло “совком”»


    1. johnfound
      21.02.2019 04:06
      +1

      Вообще-то это не совок, это хуже – коммунизм в чистом виде. Ведь "каждому по потребностям". А как, если человеку нужна именно такая голубая, механическая и ортогональная клавиатура? Ведь такие в магазинах не продают.


      1. RuK
        21.02.2019 04:28

        Не, я про то, что подобные клавиатуры делали энтузиасты в 80-х для ZX-Spectrum, а нынче всё таки 2019-й.


        1. danial72
          21.02.2019 07:20

          Стиль этой клавиатуры шикарен, для меня и толпы людей. Эта клавиатура выглядит совково, но у нее есть харизма.


          1. RuK
            21.02.2019 14:44
            +1

            Так и я говорю что совково — странно только что вам за это плюсуют, а мне наоборот, понаставили минусов да ещё и карму слили.
            Очень странная реакция… Видимо «толпа» которой такие клавы нравятся люди неадекватные и агрессивные. Хорошо что я не из вашей толпы. )))


            1. quartz64
              21.02.2019 15:25

              Давайте я Вам понаставлю плюсов, покажу, что кнопкопоклонничество — религия добра. Видимо, некоторые восприняли Ваш комментарий как некую агрессию или снисходительное невежество, как в том бородатом анекдоте про художника и нового русского («гляди, сынок, как человек без полароида мучается»). Меж тем, я вижу в Вашем комментарии лишь ностальгию по временам 30-летней давности, периода всеобщего увлечения спектрум-клонами.
              Но позвольте не согласиться с Вашим тезисом о том, что в наш изобильный век заниматься самостоятельным изготовлением электроники нет никакой нужды. Как раз по причине отсутствия дефицита сейчас почти каждый может позволить себе приобрести инструменты и комплектующие, найти нужный сервис — всё чтобы создать своё уникальное изделие, а не просто от безысходности. В данном конкретном случае, если судить по тернистому пути (проектирование платы, написание прошивки), человеком двигало в первую очередь желание применить свои умения в области 3D-моделирования, проектирования печатных плат и программирования, и уже во вторую — практическая цель в виде получения ортолинейной клавиатуры.
              Неказистый вид этой клавиатуры связан с применением самой дешёвой и практичной разновидности корпуса в виде нарезанных лазером листов акрила. Но, опять таки, в наш век изобилия и автоматизации можно найти сервис, где вам сделают фрезерованный корпус из алюминия или ценных пород дерева.


              1. RuK
                21.02.2019 16:45

                Видимо да. Хотя, на самом деле, я как раз из тех кто собирал «Спектрумы». Вот так вот за подобное увлечение можно получить слив кармы через 30 лет после его сборки. (Шучу) ))


          1. rgs350
            21.02.2019 21:00

            У большинства субкультур есть свои визуальные отличительные признаки (панки — ирокез, эмо — розовые челки и т.д.). Скажите, пожалуйста, какой отличительный признак у толпы с харизматичными клавиатурами. Я тогда смогу обходить вас стороной. Заранее спасибо. :)


            1. johnfound
              21.02.2019 22:10

              Клавитуры же. Щелкающие и странные.


              1. rgs350
                21.02.2019 22:57

                Не очень надежный признак, так-как не понятно где находится грань, отделяющая обычную клавиатуру от харизматичной :)


        1. johnfound
          21.02.2019 08:43

          Ну-у-у, хорошая клавиатура и в 80x и 2019-й примерно одна и та же, плюс-минус usb.


        1. red_perez
          21.02.2019 12:38

          Не, я про то, что подобные клавиатуры делали энтузиасты в 80-х для ZX-Spectrum, а нынче всё таки 2019-й.


          Думаю смысл в том что увлечение(хобби) помогает определиться с выбором профессии в молодости и наработать реальный опыт.
          Как например произошло в моем случае, я практически сразу начал рисовать схемы и только потому что был стаж радиолюбителя начиная с 10лет.
          А в зрелом возрасте ваше хобби может помочь определиться с выбором профессии уже вашим собственным детям. Короче нужная вещь + удовольствие.


  1. xtreye
    21.02.2019 04:24

    троллейбус.jpg


    1. Gugic
      21.02.2019 05:38

      Ну тролейбус-не тролейбус, а найти, например, приличную bt (а еще лучше — комбинированную, чтобы bt/usb-c и зарядка от ноутбучного адаптера) механику, в идеале — поддерживающую hot-swap переключателей и несколько девайсов по bt, довольно трудно. BT 5 и похоже что даже 4.2 — невозможно, только-только начали 4.0 завозить. Даже pcb таких нет в продаже, не то, что готовых клавиатур. Вот подумываю над тем, чтобы тоже размять голову и руки. (да, у меня уже есть anne pro 2 и она почти идеальная, но все же).


      1. xtreye
        21.02.2019 09:22

        Вот. Теперь добавьте это в начало статьи у будет нормальная постановка задачи :)


      1. rgs350
        21.02.2019 12:41
        -1

        А не легче-ли просто прокачать скилл по*уизма? Он гораздо универсальней и разом решает множество схожих проблем.


      1. mezastel
        21.02.2019 12:55

        А еще она должна кормиться от 18650 (с возможностью внутренней зарядки и индикатором заряда) и быть программируемой без разбора всей клавиатуры чтобы замкнуть несчастный джампер.


        1. Gugic
          21.02.2019 13:32

          18650 сильно большие. При условии зарядки через type-c + pd можно будет кормить от павербанка (опционально — с 18650). Внутрь обычно все-таки ставят плоские батарейки на 3.7 вольта.

          Заливка прошивки через USB конечно.


          1. mezastel
            21.02.2019 15:51

            На вкус и цвет, но 18650 это универсальный стандарт, и в большой кейс влезет без проблем.


  1. polyanin
    21.02.2019 07:40

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


    1. dlinyj
      21.02.2019 08:37

      Можно заказать две платы


    1. Arcanum7
      21.02.2019 08:55

      Вы говорите так как будто это плохо.
      Если вы сделали одну такую клавиатуру, то что мешает сделать их две? Три? Одна на работе, вторая дома.
      И опять таки diy клаву хороши тем что они могут быть ровно такими какими хочет видть их создатель+обладатель. Всё от жеания зависит.


    1. quartz64
      21.02.2019 11:19

      Это не так. Я себя считаю аутсайдером в плане ловкости и координации движений, да и лет уже далеко не 18. Первоначальное привыкание шло трудно, но потом никаких проблем при переходе между несколькими клавиатурами я не замечаю, адаптация происходит за минуту-две.
      На работе Ergodox, но часто приходится на несколько дней переключаться на полноразмерные IBM Model M 104 и 122; дома — низкопрофильная Rapoo (ради совместимости с женой и тишины), обрез из Model M, а ведь ещё и в Thinkpad своя клавиатура.
      Вот что действительно требует унификации, так это макросы. Я стараюсь держать на всех клавиатурах одинаковый их набор на привычных клавишах.


      1. Gugic
        21.02.2019 11:38

        Кстати да. Самая боль — это прыжки между mac os/не mac os в плане ctl/cmd. Причем если «на девайсе» еще как-то более менее получается разделять просто за счет того, что железяки разные, это помогает, то вот когда «удаленный рабочий стол» с макбука на линукс, или тем паче просто приложение через X11 Forwarding поднято (nomachine/xpra туда же)… хотя и к этому привычка вырабатывается.


    1. mezastel
      21.02.2019 12:56

      Я использую несколько клавиатур с разными раскладками и свичами. Хорошая разминка для мозга. Хотя должен признаться, что Topre все же лучше всех, увы.


  1. quartz64
    21.02.2019 11:52

    Если кто-нибудь хочет это повторить, но разработка ради 1–2 экземпляров платы, прошивки и корпуса кажется излишеством, то есть несколько способов снизить трудоёмкость:

    1. XD75 от китайцев (ищите KPrepublic на Aliexpress). Поддерживается QMK. На один ряд длинее (15?5 вместо 14?5). Есть отдельно плата, разные виды корпусов на выбор, клавиши пустые и с термосублимацией.
    2. Разработку полностью своей клавиатуры можно существенно упростить. Раскладка рисуется в KLE, затем под неё в пару кликов генерируются чертежи монтажной пластины в swillkb, затем выполняется навесной монтаж. В качестве контроллера можно взять что-нибудь на базе Atmega32U4 (Pro Micro, Micro), что без проблем поддерживается в QMK. Дёшево, но муторно из-за навесного монтажа.

    Ортолинейные клавиатуры действительно удобны после некоторого привыкания, но, на мой вкус, эргономичности от них можно добиться только расположением блоков клавиш под некоторым углом, т.е. нужно делать либо раздельную, где половинки можно вертеть, как хочешь (кстати, вот тут есть замечательный список раздельных клавиатур), либо компромиссный вариант — Atreus/Atreus62:
    Модифицированный Atreus 62
    image


  1. plutiara
    21.02.2019 12:00

    Сколько итоговая сумма клавиатуры вышла?! Если еще учесть ± резку шурина :) Очень круто! Можно доработать и в поток :)


    1. quartz64
      21.02.2019 12:45

      Это переводная статья, тут нет автора. Но можно прикинуть:

      • Плата: 2000
      • Акриловый корпус: 1500
      • МК: 200
      • Переключатели (не знаю, что он использовал, посчитаем Gateron): 1200
      • Клавиши: 1650
      • Остальное (диоды, USB-разъём, провод): 300

      Итого: 6850 руб.
      Тут можно сэкономить за счёт навесного монтажа, но в принципе минимальная стоимость более-менее стандартного кастома как раз и составляет около $100.


      1. plutiara
        21.02.2019 14:26

        Спасибо!


  1. Azya
    21.02.2019 12:30

    Так вот кто скупил все SA колпачки, недавно искал, с трудом нашел белые, но так и не смог найти черные(


    1. quartz64
      21.02.2019 12:34

      Так это DSA. Китайцы давно научились приличного качества DSA из PBT делать. Достаточно толсты, не хуже SP практически, хоть и попадается иногда брак (кляксы от пластика другого цвета).


      1. Azya
        21.02.2019 12:48

        Точно, на кпдв такой ракурс что они показались полноразмерными. При этом я еще и ABS хотел.


      1. mezastel
        21.02.2019 12:58

        Вот тут я не соглашусь. DSA которые продаются на AliExpress безобразного качества, категорически не советую. DSA лучше брать на проверенных западных сайтах, в т.ч. Massdrop где иногда бывают неплохие DSA/XDA дропы.


        1. quartz64
          21.02.2019 13:19

          Если с сублимационной печатью, то да, у SP контроль качества выше. А вот на бланках я, как нищеброд со стажем, разницы никакой не вижу (разве что китайские лучше заказать с небольшим запасом на случай откровенного брака, чтобы долго не ждать повторной доставки). SP-шных сейчас под рукой нет. Но можно, например, на вот это сравнение взглянуть.


          1. mezastel
            21.02.2019 15:52

            Даже на бланках, цвета и оттенки, просто ощущаешь что у тебя в руках дешевый пластик. Не знаю, я точно не фанат. Купил как-то на Али «DSA Carbon» типа, бесячая гадость, выкинул.


            1. rstepanov
              21.02.2019 16:11
              +1

              Тоже вот купил:
              image

              Увидеть больше зла:
              image
              image

              Пробел пришлось выкинуть, остальным пользуюсь…


              1. mezastel
                21.02.2019 16:14

                Блин, нет, нет, нет. Я последнее время из магазов тоже ничего не беру, только дропы на Массдроп (та еще конторка конечно). Там хотя бы и качественно и когда дроп выходит, дают кучу всяких наборов альтернативных. Правда последний раз случился косяк — я взял MiTo XDA, так они мне одну клавишу забыли доложить, и в результате выслали целый дополнительный набор.


                1. rstepanov
                  21.02.2019 16:20

                  Массдроп — это дорого, сложно и нужна пересылка. Только ради чего-то совсем уж редкого.


  1. mezastel
    21.02.2019 12:50

    Человек сделал копию XD75. Но зачем?!? Я понимаю что-то оригинальное, а такая клавиатура есть уже у почти всех постоянных посетителей r/mk.

    image


  1. igormich88
    21.02.2019 22:56

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