Модифицируем механическую клавиатуру Leopold FC750R, ставим микроконтроллер RP2040 и прошивку QMK/VIA

  1. Цена: весь проект - около $40
  2. Перейти в магазин

Захотелось каких-то чуть более необычных развлечений с механическими клавиатурами чем замена колпачков или свитчей, для чего на местной барахолке была куплена сломанная клавиатура Leopold FC750R со сгоревшим контроллером и без части колпачков с целью посмотреть что-как, реанимировать и сделать из неё монстра Франкенштейна.

И так, задача получилась следующая — посмотреть что за Leopold и пощупать переключатели Cherry MX Silent Red (до этого видел только обычные Red от нескольких производителей), заменить их на тактильные Holy Panda и внедрить вместо сгоревшего контроллера какое-нибудь ардуино, ну и прошить туда популярную прошивку QMK. Расскажу что из этого получилось(в целом, всё хорошо).

Ну и заодно покажу несколько товаров с Алиэкспресса использованные в этом проекте — переключатели, стабилизаторы, китайский Raspberry Pi Pico и очередной набор колпачков.

Если интересно и не пугают «колхозные» самоделки, жмите кнопку «Читать дальше».

Предисловие


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


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

Эта модель уже порядком устаревшая, хотя всё еще продаётся в некоторых магазинах примерно за $120-150. Впрочем, покупать её бессмысленно, так как существует более новая модификация(FC750RBT) с USB-C и Bluetooth примерно за те же деньги. Характеристики примерно следующие:

  • Подключение: проводная, mini-USB
  • Форм-фактор: TKL, 87-клавиш
  • Свитчи: Cherry MX, семь стандартных видов на выбор; впаянные, горячей замены нет
  • Обесшумливание: между платой и корпусом есть лист звукопоглощающего материала
  • NKRO: есть (любое число одновременно нажатых клавиш не конфликтует)
  • Колпачки: PBT с двойным литьём их проприетарного профиля SS2
  • Вес клавиатуры: около 1 килограмма
  • Какой-либо настройки с помощью софта нет, подсветки тоже нет

Сравнение колпачков профиля Leopold SS2 (слева) и Cherry (справа). Как видно, SS2 чуточку ниже и площадь сверху у него чуть больше.


А вот так родные колпачки выглядят с обратной стороны.


Клавиатура, как и было указано в объявлении оказалась нерабочей, компьютером не определялась и только мигала светодиодами на старте — контроллер скорее всего пробило или статикой или от залития жидкостями, ну в общем-то я изначально был настроен на его замену на какую-нибудь ардуину. Также внутри обнаружились следы пайки в паре точек и было видно что подымали кварц, так что её явно ковыряли до меня. Потыкав две минуты мультиметром, решил её потрошить дальше и достал паяльник.

Штатный контроллер — Infineon CY7C63413C-PVXC — 8-битный однократно-программируемый RISC микроконтроллер, предназначен для клавиатур, геймпадов и прочей периферии. Поддержки какого-либо софта для кастомизации этой клавиатуры нет — в целом мне он и не особо нужен, так как всякими макросами я никогда не увлекался, подсветки здесь нет, и смысла менять маппинг кнопок на стандартной раскладке тоже нет.

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


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



Переключатели Holy Panda v2 от MMD


Изначально я планировал оставить родные переключатели Cherry MX Silent Red, но чуть позже передумал и решил заменить на китайский клон Holy Panda. Чуть больше о Holy Panda я рассказывал в одном из моих прошлых обзоров. Я уже покупал похожий клон и мне они в целом понравились, хотя хотелось чуть-чуть большей тактильности, в этот раз взял чуть другую модель у другого продавца. Эти были заявлены Holy Panda v2 от компании MMD(Mengmoda).

Куплены в магазине KBDyi на али за $9.93(комплект из 90 штук).

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

Сравним с предыдущими «пандами». Как видно отличается цвет корпуса, у этих он более серый и имеется брендирование MMD. Другая форма выреза под светодиод — нижняя часть больше похожа на другие свитчи от MMD (Princess) которые я покупал раньше.

Слева — Holy Panda из предыдущего обзора, справа сверху — MMD Holy Panda V2, справа внизу — MMD Princess Tactile.


И в собранном виде. Посредине — MMD Holy Panda v2, слева — предыдущие «панды», справа — MMD Princess Tactile.



Эти новые свитчи чуть более тактильные, мне понравились больше предыдущих Holy Panda, но тактильные MMD Princess пока что остаются моими любимыми.

Штатные Silent Red я разобрал и собираюсь в ближайшем будущем их смазать, так как у некоторых их них чуть скрипели пружины, ну и плавностью они вообще не отличались. Собираюсь применить их в каком-то следующем клавиатурном проекте(хотя линейные свитчи не особо люблю).


Вот, кстати, сравнение потрохов Silent Red с обычным Cherry Red. Видим резиновое демпфирующее напайки на штоке с двух сторон и внутри, приглушающее звук удара.



Замена контроллера на клон Raspberry Pi Pico


Возвращаемся к клавиатуре. В общем, прозваниваем матрицу и рисуем схему.


Получается матрица 8x15, то есть от нового контроллера суммарно нужно 23 GPIO-контактов для управления, можно было бы попробовать оптимизировать и втиснуть в 8x12, что позволило бы использовать платы типа Arduino Pro Micro, которых у меня есть в запасе некоторое количество (там разведено 18 GPIO-контактов, плюс можно освободить ещё два отпаяв светодиоды) но было лень резать дорожки и прикидывать как перебросить часть кнопок на другие группы.

В итоге в качестве контроллера взял китайский клон Raspberry Pi Pico на микросхеме RP2040 стоимостью примерно два доллара, за 2 штуки с доставкой я заплатил $4.54, этот микроконтроллер с недавних пор поддерживается прошивкой QMK и платы имеют достаточное количество разведённых контактов. Ещё одной киллер-фичей этого контроллера является загрузчик UF2, позволяющей прошивать его без использования какого-либо специального софта. При удержании кнопки boot и включении и подключается как обычный USB-накопитель. Просто копируем на него прошивку и устройство автоматически перепрошивается.

Сначала купил плату на RP2040 в форм-факторе Arduino Pro Micro с разъёмом USB-C, вариант с 16 мегабайтами флеша обошёлся в $2.41, но потом передумал и взял еще и клон Raspberry Pi Pico, так как места внутри много, а подпаиваться к контактам на клоне Raspberry Pi Pico плате чуть удобнее — micro-USB дублируется на тестовые точки снизу платы.


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


Можно было бы припаяться к контактам старого контроллера да и вообще делать аккуратней, но как говорится — и так пойдёт.

Также изначально под клавишами CapsLock, NumLock, ScrollLock были три светодиода — но при использовании непрозрачных колпачков я не вижу в них большого смысла, поэтому не ставил их.

Родные стабилизаторы были вполне нормальные, их вымыл и отложил на будущее, для этого проекта купил бело-розового цвета от бренда Matthew, они больше подходят к новым переключателям, чем оригинальные черно-синие. Я купил набор для полноразмерных клавиатур, на этот лот была какая-то акция, на момент покупки они стоили $3.34. Стабилизаторы изначально не смазаны.


Собранная клавиатура без колпачков выглядит вот так.


Ставим купленные несколько месяцев назад весёленькие колпачки с профилем Cherry, покупались для другой клавиатуры, но так и не использовал их. Этого лота на али уже нет и такую же модель найти сейчас не могу. Покупался за $6, что довольно дешево для подобного комплекта.


Кроме тех колпачков, что установлены на клавиатуру есть немного дополнительных — включая цифровой блок, Enter для клавиатур стандарта ISO и некоторые другие клавиши.


Прошивка QMK с поддержкой софта VIA


Прошивка QMK — одна из самых популярных прошивок для клавиатур с открытым кодом, поддерживает пару десятков вариантов микроконтроллеров Atmel AVR (самый популярный здесь — atmega32u4) и ARM (различные варианты STM32, RP2040 и другие) и сотни готовых профилей для прошивки как фабричных, так и самодельных клавиатур, применяется в качестве штатной прошивки в том числе и некоторыми коммерческими производителями.

В дополнение к прошивке устанавливаемой на клавиатуру, имеется софт для конфигурации VIA, а также веб-версия VIA, работающая через веб-браузер и не требующая установки какого-либо специального софта. Поддержка должна быть специально включена в QMK — наличие этой прошивки в клавиатуре не гарантирует поддержку VIA.

Сильно подробно расписывать не буду. С прошивками QMK я раньше дела не имел, но оказалось довольно просто. Следуем инструкциям на сайте и ставим инструментарий для своей операционной системы, далее используем консольную утилиту qmk для настройки и сборки прошивки.

Сначала запускаем команду
qmk setup

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

Затем запускаем
qmk new-keyboard

и также отвечаем на вопросы добавляем новый профиль для нашей клавиатуры — вводим название клавиатуры, выбираем тип контроллера(RP2040), раскладку(tkl_ansi) и прочее.

Далее находим сгенерированные базовый профиль для своей новой клавиатуры в директории ~/qmk_firmware/keyboards/ и редактируем его, в основном нужно будет поправить настройки в файле info.json

Основное что нас интересует — настройки GPIO контактов, которые будут использоваться для сканировании матрицы — выбираем нужные куда мы припаяли проводки для столбцов и строк, ну или действуем в обратном порядке — заполняем конфигурацию и затем соответственно паяем. Устанавливаем параметр diode_direction в ROW2COL или COL2ROW в зависимости от того как распаяны диоды и в каком направлении будет происходить сканирование.

Собственно, колонки/столбцы это условное понятие — можно поменять местами, сменив при этом направление диодов.

Также определяем позицию в матрице для bootmagic кнопки (обычно используют кнопку Esc) — при удержании этой кнопки и включении клавиатуры порт USB будет происходить переход в режим загрузчика, позволяющего перепрошивать клавиатуру и не выводить отдельно кнопку boot.

По желанию меняем идентификаторы USB устройства на какие-то уникальные, и приступаем к заполнению матрицы.

В моём случае конфигурация максимально простая, так как я не использую никаких дополнительных светодиодов, экранов и прочего, выглядит она вот так.
Дополнительная информация
{
    "manufacturer": "Rustam",
    "keyboard_name": "leopold_fc750r_rpi2040",
    "maintainer": "rustam",
    "bootloader": "rp2040",
    "diode_direction": "ROW2COL",
    "features": {
        "bootmagic": true,
        "command": false,
        "console": false,
        "extrakey": true,
        "mousekey": true,
        "nkro": true
    },
    "matrix_pins": {
        "rows": ["GP13", "GP12", "GP22", "GP28", "GP27", "GP16", "GP15", "GP14"],
        "cols": ["GP11", "GP10", "GP9", "GP21", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP0", "GP26", "GP17", "GP20"]
    },
    "processor": "RP2040",
    "url": "",
    "usb": {
        "device_version": "1.0.0",
        "pid": "0x5254",
        "vid": "0x5254"
    },
    "bootmagic": {
        "matrix": [3, 1]
    },
    "layouts": {
        "LAYOUT_tkl_ansi": {
            "layout": [
                {"label": "Esc", "matrix": [3, 1], "x": 0, "y": 0},
                {"label": "F1", "matrix": [6, 4], "x": 2, "y": 0},
                {"label": "F2", "matrix": [6, 5], "x": 3, "y": 0},
                {"label": "F3", "matrix": [1, 5], "x": 4, "y": 0},
                {"label": "F4", "matrix": [3, 5], "x": 5, "y": 0},
                {"label": "F5", "matrix": [7, 0], "x": 6.5, "y": 0},
                {"label": "F6", "matrix": [3, 8], "x": 7.5, "y": 0},
                {"label": "F7", "matrix": [1, 9], "x": 8.5, "y": 0},
                {"label": "F8", "matrix": [6, 9], "x": 9.5, "y": 0},
                {"label": "F9", "matrix": [6, 11], "x": 11, "y": 0},
                {"label": "F10", "matrix": [7, 11], "x": 12, "y": 0},
                {"label": "F11", "matrix": [3, 11], "x": 13, "y": 0},
                {"label": "F12", "matrix": [5, 11], "x": 14, "y": 0},
                {"label": "PrtSc", "matrix": [7, 2], "x": 15.25, "y": 0},
                {"label": "ScrLk", "matrix": [0, 2], "x": 16.25, "y": 0},
                {"label": "Pause", "matrix": [0, 0], "x": 17.25, "y": 0},

                {"label": "`", "matrix": [6, 1], "x": 0, "y": 1.25},
                {"label": "1", "matrix": [7, 1], "x": 1, "y": 1.25},
                {"label": "2", "matrix": [7, 4], "x": 2, "y": 1.25},
                {"label": "3", "matrix": [7, 5], "x": 3, "y": 1.25},
                {"label": "4", "matrix": [7, 6], "x": 4, "y": 1.25},
                {"label": "5", "matrix": [6, 6], "x": 5, "y": 1.25},
                {"label": "6", "matrix": [6, 7], "x": 6, "y": 1.25},
                {"label": "7", "matrix": [7, 7], "x": 7, "y": 1.25},
                {"label": "8", "matrix": [7, 8], "x": 8, "y": 1.25},
                {"label": "9", "matrix": [7, 9], "x": 9, "y": 1.25},
                {"label": "0", "matrix": [7, 10], "x": 10, "y": 1.25},
                {"label": "-", "matrix": [6, 10], "x": 11, "y": 1.25},
                {"label": "+", "matrix": [6, 8], "x": 12, "y": 1.25},
                {"label": "Backspace", "matrix": [1, 11], "x": 13, "y": 1.25, "w": 2},
                {"label": "Ins", "matrix": [6, 14], "x": 15.25, "y": 1.25},
                {"label": "Home", "matrix": [6, 12], "x": 16.25, "y": 1.25},
                {"label": "PgUp", "matrix": [6, 13], "x": 17.25, "y": 1.25},

                {"label": "Tab", "matrix": [1, 1], "x": 0, "y": 2.25, "w": 1.5},
                {"label": "Q", "matrix": [0, 1], "x": 1.5, "y": 2.25},
                {"label": "W", "matrix": [0, 4], "x": 2.5, "y": 2.25},
                {"label": "E", "matrix": [0, 5], "x": 3.5, "y": 2.25},
                {"label": "R", "matrix": [0, 6], "x": 4.5, "y": 2.25},
                {"label": "T", "matrix": [1, 6], "x": 5.5, "y": 2.25},
                {"label": "Y", "matrix": [1, 7], "x": 6.5, "y": 2.25},
                {"label": "U", "matrix": [0, 7], "x": 7.5, "y": 2.25},
                {"label": "I", "matrix": [0, 8], "x": 8.5, "y": 2.25},
                {"label": "O", "matrix": [0, 9], "x": 9.5, "y": 2.25},
                {"label": "P", "matrix": [0, 10], "x": 10.5, "y": 2.25},
                {"label": "{", "matrix": [1, 10], "x": 11.5, "y": 2.25},
                {"label": "}", "matrix": [1, 8], "x": 12.5, "y": 2.25},
                {"label": "|", "matrix": [2, 11], "x": 13.5, "y": 2.25, "w": 1.5},
                {"label": "Del", "matrix": [6, 3], "x": 15.25, "y": 2.25},
                {"label": "End", "matrix": [7, 12], "x": 16.25, "y": 2.25},
                {"label": "PgDn", "matrix": [7, 13], "x": 17.25, "y": 2.25},

                {"label": "CapsLock", "matrix": [1, 4], "x": 0, "y": 3.25, "w": 1.75},
                {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 3.25},
                {"label": "S", "matrix": [2, 4], "x": 2.75, "y": 3.25},
                {"label": "D", "matrix": [2, 5], "x": 3.75, "y": 3.25},
                {"label": "F", "matrix": [2, 6], "x": 4.75, "y": 3.25},
                {"label": "G", "matrix": [3, 6], "x": 5.75, "y": 3.25},
                {"label": "H", "matrix": [3, 7], "x": 6.75, "y": 3.25},
                {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 3.25},
                {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 3.25},
                {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 3.25},
                {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 3.25},
                {"label": "'", "matrix": [3, 10], "x": 11.75, "y": 3.25},
                {"label": "Enter", "matrix": [4, 11], "x": 12.75, "y": 3.25, "w": 2.25},

                {"label": "LShift", "matrix": [1, 3], "x": 0, "y": 4.25, "w": 2.25},
                {"label": "Z", "matrix": [4, 1], "x": 2.25, "y": 4.25},
                {"label": "X", "matrix": [4, 4], "x": 3.25, "y": 4.25},
                {"label": "C", "matrix": [4, 5], "x": 4.25, "y": 4.25},
                {"label": "V", "matrix": [4, 6], "x": 5.25, "y": 4.25},
                {"label": "B", "matrix": [5, 6], "x": 6.25, "y": 4.25},
                {"label": "N", "matrix": [5, 7], "x": 7.25, "y": 4.25},
                {"label": "M", "matrix": [4, 7], "x": 8.25, "y": 4.25},
                {"label": "<", "matrix": [4, 8], "x": 9.25, "y": 4.25},
                {"label": ">", "matrix": [4, 9], "x": 10.25, "y": 4.25},
                {"label": "?", "matrix": [5, 10], "x": 11.25, "y": 4.25},
                {"label": "RShift", "matrix": [2, 3], "x": 12.25, "y": 4.25, "w": 2.75},
                {"label": "Up", "matrix": [3, 12], "x": 16.25, "y": 4.25},

                {"label": "LCtrl", "matrix": [6, 0], "x": 0, "y": 5.25, "w": 1.25},
                {"label": "Win", "matrix": [1, 0], "x": 1.25, "y": 5.25, "w": 1.25},
                {"label": "LAlt", "matrix": [3, 2], "x": 2.5, "y": 5.25, "w": 1.25},
                {"label": "Space", "matrix": [3, 3], "x": 3.75, "y": 5.25, "w": 6.25},
                {"label": "RAlt", "matrix": [5, 2], "x": 10, "y": 5.25, "w": 1.25},
                {"label": "Func", "matrix": [2, 2], "x": 11.25, "y": 5.25, "w": 1.25},
                {"label": "Menu", "matrix": [5, 9], "x": 12.5, "y": 5.25, "w": 1.25},
                {"label": "RCtrl", "matrix": [4, 0], "x": 13.75, "y": 5.25, "w": 1.25},
                {"label": "Left", "matrix": [5, 12], "x": 15.25, "y": 5.25},
                {"label": "Down", "matrix": [5, 3], "x": 16.25, "y": 5.25},
                {"label": "Right", "matrix": [5, 14], "x": 17.25, "y": 5.25}
            ]
        }
    }
}

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

qmk compile -kb leopold_fc750r_rpi2040 -km default

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

В дальнейшем чтобы перепрошить нужно будет подключать в компьютер с зажатой кнопкой Esc — в этом случае клавиатура всё так же будет переходить в режим перепрошивки. До чего техника дошла!

Включение поддержки VIA


Для включения поддержки VIA нужно еще добавить в директорию с файл rules.mk с директивой VIA_ENABLE = yes

Подробно расписано на официальном сайте VIA.

Также, поскольку клавиатура не поддерживается из-коробки, нужно сделать ещё один конфиг для софта с маппингом кнопок и идентификаторами нашего устройства. Тут тоже всё просто — используем как пример какую-нибудь другую клавиатуру для которой есть готовые конфиги, например от NuPhy Gem80.

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

Дополнительная информация
{
    "name": "leopold_fc750r_rpi2040",
    "vendorId": "0x5254",
    "productId": "0x5254",
    "matrix": {
        "rows": 8,
        "cols": 15
    },
    "layouts": {
        "keymap": [
            ["3,1",{"x":1},"6,4","6,5","1,5","3,5",{"x":0.5},"7,0","3,8","1,9","6,9",{"x":0.5},"6,11","7,11","3,11","5,11",{"x":0.25},"7,2","0,2","0,0"],
            [{"y":0.25},"6,1","7,1","7,4","7,5","7,6","6,6","6,7","7,7","7,8","7,9","7,10","6,10","6,8",{"w":2},"1,11",{"x":0.25},"6,14","6,12","6,13"],
            [{"w":1.5},"1,1","0,1","0,4","0,5","0,6","1,6","1,7","0,7","0,8","0,9","0,10","1,10","1,8",{"w":1.5},"2,11",{"x":0.25},"6,3","7,12","7,13"],
            [{"w":1.75},"1,4","2,1","2,4","2,5","2,6","3,6","3,7","2,7","2,8","2,9","2,10","3,10",{"w":2.25},"4,11"],
            [{"w":2.25},"1,3","4,1","4,4","4,5","4,6","5,6","5,7","4,7","4,8","4,9","5,10",{"w":2.75},"2,3",{"x":1.25},"3,12"],
            [{"w":1.25},"6,0",{"w":1.25},"1,0",{"w":1.25},"3,2",{"w":6.25},"3,3",{"w":1.25},"5,2",{"w":1.25},"2,2",{"w":1.25},"5,9",{"w":1.25},"4,0",{"x":0.25},"5,12","5,3","5,14"]
        ]
    },
    "menus": [],
    "keycodes": [],
    "customKeycodes": []
}


В самом софте VIA включаем вкладку Design, и в ней загружаем свой конфиг. Готово!


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

Выводы


Вот так, с помощью нехитрых приспособлений буханку белого (или черного) хлеба можно превратить в троллейбус… Но зачем?

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

В моём случае всё обошлось примерно в 40 долларов, так как покупалась и сама сломанная клавиатура — примерно за $15-16, но при этом у меня еще остался комплект свитчей Cherry MX Red Silent, и все эти переключатели-свитчи-стабилизаторы, которые можно было бы и не покупать, но в конечном итоге результатом я удовлетворён и клавиатурой буду пользоваться.
Планирую купить +11 Добавить в избранное +68 +89
+
avatar
  • sezmey
  • 10 марта 2024, 16:31
0
Всегда интересно посмотреть и узнать что то новое. Наверное для геймеров и кто много работает с текстами такие вещи действительно необходимы для комфорта.
+
avatar
0
8х15 имелось ввиду втиснуть в 10х12, а не 8х12?
+
avatar
  • rustamt
  • 10 марта 2024, 17:14
0
Нет. Именно что можно было бы ужать до 8x12. Здесь на отдельных рядах висит всего по 2-3 кнопки, поэтому если бы я захотел надрезать те дорожки и перебросить кнопки на свободные места матрицы, то можно было так оптимизировать, но мне всё равно нужно было ждать свитчи с али, поэтому просто докупил платки RP2040.

Изначальная схема матрицы вот такая.
Дополнительная информация
+
avatar
+3
У меня лежит древняя клавиатура, у которой даже клавиши win нету, всё хочу переделать ее на современный лад, под юсб.
С этой новой информацией будет намного проще.
+
avatar
  • Vadim2S
  • 10 марта 2024, 19:46
+8
Подождите еще ~месяц — я свой обзор про восстановление убитой статикой клавиатуры добавлю :-)
+
avatar
  • rustamt
  • 10 марта 2024, 19:55
+2
Для старых клавиатур есть еще вариант собрать конвертер со старого разъема в USB, это если не интересуют всякие фишки типа NKRO, поллинга на 1КГц и всяких макросов. Я собирал несколько лет назад для эппловского ADB в USB — там по сути нужна только ардуинка, пара резисторов для подтяжки и ответный разъем чтобы воткнуть клавиатуру. Ну и корпус какой-нибудь по желанию.

Я уже не помню чем прошивал, но по-моему TMK (на которой основана QMK), у них же есть десяток других конвертеров под всякие древности включая и всякие IBM-клавиатуры и PS/2.
github.com/tmk/tmk_keyboard/tree/master/converter

В QMK тоже есть поддержка не только клавиатур, но и нескольких конвертеров, конфиги для них лежат в keyboards/converter/ — но у этих чуть меньше вариантов, чем у TMK.
github.com/qmk/qmk_firmware/tree/master/keyboards/converter
+
avatar
0
Вот у меня как раз IBM клавиатура с большим круглым разъемом PS/2. Насколько я знаю, он совместим с маленьким разъемом PS/2, нужно только провод перепаять.
+
avatar
+1
клавиатура с большим круглым разъемом PS/2. Насколько я знаю, он совместим с маленьким разъемом PS/2
большой круглый это не PS/2 а DIN5
+
avatar
0
Даже так. Тогда однозначно на переделку
+
avatar
+2
Купите переходник DIN5->PS/2 и не забивайте голову
+
avatar
0
Вряд ли смогу найти такой. Да и к тому же планировал ту клавиатуру пустить на самоделку, втиснуть туда неттоп плоский и сделать что-то типа спектрума на винде.
+
avatar
0
Их полно на всех площадках, что на китайских, что на наших. Гуглится как переходник DIN5->PS/2. Уж говорить, что их найти сложно, смешно.
+
avatar
  • Latte
  • 10 марта 2024, 23:17
+4
Так и не понял, а зачем тогда леопольд нужен был? Кепки новые, свичи новые, контроллер новый, куча ручной разводки (+респект за красоту), по моему проще было бы собрать уже кастомку на поддерживаемом VIA проце чем танцевать вокруг дохлой лошади…
+
avatar
  • rustamt
  • 11 марта 2024, 00:24
+6
А это вполне могу объяснить =) Тут вообще за минимальные деньги тут закрывается куча клавиатурных гештальтов:
— очень давно хотел заиметь себе какой-нибудь леопольд или вармилло или еще что-нибудь в этом роде;
— хотел попробовать MX Silent Red — пощупал, сейчас приедет пара смазок все эти GPL205/105 и Permatex для стабов — смажу и соберу на них следующую клавиатуру;
— давно хотелось попробовать собрать QMK для кастомной клавиатуры, но не было достаточно стимула, потому что с точки зрения пользователя, ни QMK ни VIA меня не интересуют.

Тут случайно увидел эту убитую клавиатуру и всё как-то сложилось. Теперь это сделано и можно приступать к следующему этапу — дальше интересует собрать что-то в форматах 40%, ортолинейных и сплит.

Возможно следующая сборка будет всё это три в одном. Возможно отдельно сделаю 40%, отдельно сплит, пока не знаю.
+
avatar
+10
За рукоблудство несомненный + Но в остальном, какая-то лютая мастурбация предметами. На выходе получаем клаву без русских букв… Это как с ножами и фонарями — задорный и труднообъяснимый фетиш, на грани понимания :)
+
avatar
  • Herts
  • 11 марта 2024, 13:00
+2
без ру-раскладки нормально всем тем, кто переборол себя и научился печатать вслепую. Всё остальное на уровне: делаю, потому что могу, смотрите как я умею.
Да, круто, да, познавательно. повторил бы я такое? пожалуй нет. просто не вижу смысла
+
avatar
+1
Смысл в том, что есть куда пристроить валяющуюся в ящике стола уже который год Raspberry. Но да, я тоже таким бы не занимался, пускай валяется дальше.
+
avatar
  • rustamt
  • 11 марта 2024, 14:22
+2
У меня основная цель была просто дать общую информацию о том что всякого рода самодельные клавиатуры — это в целом довольно просто, вдруг кому-то это нужно, а он просто не знает, тут то можно чуть ли не из фанеры выпилить корпус, вклеить туда кнопки с ардуиной и прошить QMK. Например даже вот так (картинка из википедии):

Насчёт русских букв — вообще такой себе аргумент, на али их куча разных видов со средней ценой около 10 долларов. Если кому нужно, может купить хоть с кириллицей, хоть с корейскими буквами.
+
avatar
0
Зачем зачем. Допустим автор поменял практически всё, но вам же делать этого не обязательно. К примеру у товарища сдох контроллер в клавиатуре механической. Т.е. есть целиком клавиатура, а именно: корпус, свитчи, кейкапы и что делать? Можно вполне взять такой контроллер и припаяться, вместо старого, плюсом настройки, почему нет то?
+
avatar
  • kopa
  • 12 марта 2024, 00:09
+2
может не в тему, а не проще купить какую нибудь клаву за 400р, и просто контакты перекинуть со старой нужной клавы на новый контроллер с USB? а то ардуино… прошить… зачем?
+
avatar
+1
В том то и дело что проще купить РАБОЧУЮ и ничего не перекидывать. Шансов что подойдет мало.
Почему проще? Наводящие слова: матрица, строки, столбцы, диоды, сканирование и конфигурация.
Но для развлекухи пойдет.
+
avatar
  • rustamt
  • 12 марта 2024, 10:45
0
Шансы прицепить готовый контроллер примерно нулевые — там абсолютно по другому разведена матрица. Несколько старых ненужных клавиатур у меня кстати есть, здесь даже покупать ничего не нужно =)

Если не интересует процесс ради процесса, то как уже сказали проще купить новую или даже б/у но рабочую и не морочить голову. Если брать те же 87-клавишные варианты, то на али есть куча бюджетных вариантов — хоть Ajazz AK871 какой-нибудь — там с $30 долларов начинаются уже полностью собранные клавиатуры с вполне нормальными свитчами и колпачками и с горячей заменой свитчей. Тоже есть свои какие-то нюансы, типа нет проводного подключения, питание от батареек, но среднестатистического пользователя она устроит полностью.
+
avatar
  • kopa
  • 12 марта 2024, 13:45
0
там абсолютно по другому разведена матрица
так вы выше её на фото ручником развели проводочками. в чём сложность повторить разводку донора? чтобы сделать опять же ту клаву которая у вас выше на фото.

Если не интересует процесс ради процесса
так посыл был вернуть ту механику той старой клавы, которая имеет «особенное нажатие», вы же даже переключатели эти трушные заказывали, да и сами про это пишите:
Эти новые свитчи чуть более тактильные, мне понравились больше предыдущих Holy Panda, но тактильные MMD Princess пока что остаются моими любимыми.
процесс в чём, поиграться с ардуино? ну наверно да, но с клавой… просто залить прошивку готовую подкрутив конфиг. в итоге наверно 90% времени это пайка по итогу этой матрицы. Так на доноре этот процесс кайфа и останется. И долгий результат — клацанье приятных клавиш.

В том то и дело что проще купить РАБОЧУЮ и ничего не перекидывать.
а как же кастомная?

Шансов что подойдет мало.
Почему проще? Наводящие слова: матрица, строки, столбцы, диоды, сканирование и конфигурация.
Но для развлекухи пойдет.
в дешманском доноре уже вся разводка будет как на ладони, перед собой положил и сиди паяй без всяких диодов
типа нет проводного подключения, питание от батареек
воо, вот такого донора купить, сделать на литии, и разъём для зарядки. какой нить олдсульной клавы, ардуино это же провод только получается?
+
avatar
  • rustamt
  • 12 марта 2024, 14:42
0
Не, матрица старая как была, так и осталось, я только 20 проводков бросил к столбцам и колонкам существующей. Отрезать кнопки от существующей разводки я не собирался, хотя вообще полностью всё разрезать и перетянуть все 87 кнопок проводками не заняло бы сильно много времени, не больше чем прозвонить существующую. Но оно и так изнутри довольно колхозно выглядит, а была бы вообще жесть.

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

Логичность или нелогичность каких-то решений не обсуждаю — как говорится у меня была какая-то тактика и я её придерживался =)

Процесс с прошивкой в том что раньше у меня не было понимания как конфигурируется QMK и VIA. Можно было бы просто голую плату прошить и посмотреть, но так не интересно.

QMK со всякими ардуинами — да, в основном для проводных, хотя Keychron её использует в паре моделей для беспроводных, но я без понятия как это у них устроено. Для самодельных беспроводных обычно используют прошивку ZMK — но там используют платы на Nordic nRF (возможно еще какие-то) или напрямую или спаренный с ардуиной/распберри пико.
+
avatar
+1
Leopold — довольно старый и известный южнокорейский бренд, производящий средне и высокобюджетные клавиатуры, сейчас их популярность чуть упала, но несколько лет назад считались одними из лучших.
Что-то не вполне понял, что в итоге осталось от одной из лучшей средне и высокобюджетной клавиатуры.
Если остались только текстолитовая плата и рамка/корпус, то к чему это предисловие? Или рамка/корпус настолько круты, что «прям вот ваще!»?

Не, ну могу себе представить, если бы плата была не плоская, но тут же плоская.
+
avatar
  • rustamt
  • 13 марта 2024, 12:50
0
Собственно плата с корпусом — это и есть основная часть клавиатуры — колпачки/свитчи очень часто в клавиатурах меняют и никому обычно не приходит в голову говорить что это уже другая клавиатура, просто вариант моддинга. Контроллеры меняют реже, но это с точки зрения использования еще менее заметно.

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

Чтобы я совсем максимально восхитился, то наверное он должен был бы как минимум быть сделан из фрезерованного анодированного алюминия и весить 2-3 килограмма =)
+
avatar
0
Чтобы я совсем максимально восхитился, то наверное он должен был бы как минимум быть сделан из фрезерованного анодированного алюминия и весить 2-3 килограмма =)
И всё такой же плоский?
Ощущения от шершавого холодного куска металла — так себе.
+
avatar
  • rustamt
  • 15 марта 2024, 00:54
0
Плоские — топ, удобно складировать в стопку =) Я если что не особо в курсе что есть более-менее доступного из вогнутых, ну кроме пары моделей от Kinesis и всякого лютого 3д-печатного самопала типа Dactyl. От Kinesis 360, кстати, не отказался бы, но мне цена не особо нравится, пока что занимаюсь более бюджетными экспериментами.
+
avatar
0
колпачки/свитчи очень часто в клавиатурах меняют и никому обычно не приходит в голову говорить что это уже другая клавиатура, просто вариант моддинга. Контроллеры меняют реже, но это с точки зрения использования еще менее заметно.
А если бы и текстолит плата была бы заменена и по сути от Леопольда остался бы только корпус?

Вопрос в другом: где граница когда это «еще та клавиатура»?
+
avatar
  • rustamt
  • 15 марта 2024, 01:12
0
Это не вопрос я считаю, а какая-то бесполезная софистика.
+
avatar
0
Прошивка для клавиатуры/Прошить клавиатуру… Остановите планету, я сойду. Зачем нужно встраивать в клавиатуру Распберри Пи итд? *рукалицо*
Про хлеб и троллейбус в тему было…
+
avatar
  • rustamt
  • 15 марта 2024, 01:14
0
Да ну это не тот распбери пи, который компьютер, просто обычный маломощный микроконтроллер на Cortex-M0+. Процессоры в клавиатурах и так стоят последние лет сорок-пятдесят, раньше были разные восьмибитные 6805 и 8051, сейчас 32-битные.
+
avatar
0
Интересно есть ли готовые блютус адаптеры для старых клавиатур под круглые разъёмы? Есть старая майкрософтовская клавиатура, рука не подымается выкинуть.