qmk setup
qmk new-keyboard
{
"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
{
"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": []
}
+69 |
2936
108
|
+65 |
2448
105
|
+51 |
3459
69
|
Изначальная схема матрицы вот такая.
С этой новой информацией будет намного проще.
Я уже не помню чем прошивал, но по-моему 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
— очень давно хотел заиметь себе какой-нибудь леопольд или вармилло или еще что-нибудь в этом роде;
— хотел попробовать MX Silent Red — пощупал, сейчас приедет пара смазок все эти GPL205/105 и Permatex для стабов — смажу и соберу на них следующую клавиатуру;
— давно хотелось попробовать собрать QMK для кастомной клавиатуры, но не было достаточно стимула, потому что с точки зрения пользователя, ни QMK ни VIA меня не интересуют.
Тут случайно увидел эту убитую клавиатуру и всё как-то сложилось. Теперь это сделано и можно приступать к следующему этапу — дальше интересует собрать что-то в форматах 40%, ортолинейных и сплит.
Возможно следующая сборка будет всё это три в одном. Возможно отдельно сделаю 40%, отдельно сплит, пока не знаю.
Да, круто, да, познавательно. повторил бы я такое? пожалуй нет. просто не вижу смысла
Насчёт русских букв — вообще такой себе аргумент, на али их куча разных видов со средней ценой около 10 долларов. Если кому нужно, может купить хоть с кириллицей, хоть с корейскими буквами.
Почему проще? Наводящие слова: матрица, строки, столбцы, диоды, сканирование и конфигурация.
Но для развлекухи пойдет.
Если не интересует процесс ради процесса, то как уже сказали проще купить новую или даже б/у но рабочую и не морочить голову. Если брать те же 87-клавишные варианты, то на али есть куча бюджетных вариантов — хоть Ajazz AK871 какой-нибудь — там с $30 долларов начинаются уже полностью собранные клавиатуры с вполне нормальными свитчами и колпачками и с горячей заменой свитчей. Тоже есть свои какие-то нюансы, типа нет проводного подключения, питание от батареек, но среднестатистического пользователя она устроит полностью.
так посыл был вернуть ту механику той старой клавы, которая имеет «особенное нажатие», вы же даже переключатели эти трушные заказывали, да и сами про это пишите:
процесс в чём, поиграться с ардуино? ну наверно да, но с клавой… просто залить прошивку готовую подкрутив конфиг. в итоге наверно 90% времени это пайка по итогу этой матрицы. Так на доноре этот процесс кайфа и останется. И долгий результат — клацанье приятных клавиш.
а как же кастомная?
в дешманском доноре уже вся разводка будет как на ладони, перед собой положил и сиди паяй без всяких диодов
воо, вот такого донора купить, сделать на литии, и разъём для зарядки. какой нить олдсульной клавы, ардуино это же провод только получается?
По времени — да, больше всего наверное ушло чтобы аккуратно снять старые свитчи чтобы ничего не повредить и не залить флюсом, потому что мне они еще нужны. На прозвонку еще пару часов. Собрать обратно и наконфигурить прошивку — довольно быстро получилось.
Логичность или нелогичность каких-то решений не обсуждаю — как говорится у меня была какая-то тактика и я её придерживался =)
Процесс с прошивкой в том что раньше у меня не было понимания как конфигурируется QMK и VIA. Можно было бы просто голую плату прошить и посмотреть, но так не интересно.
QMK со всякими ардуинами — да, в основном для проводных, хотя Keychron её использует в паре моделей для беспроводных, но я без понятия как это у них устроено. Для самодельных беспроводных обычно используют прошивку ZMK — но там используют платы на Nordic nRF (возможно еще какие-то) или напрямую или спаренный с ардуиной/распберри пико.
Если остались только текстолитовая плата и рамка/корпус, то к чему это предисловие? Или рамка/корпус настолько круты, что «прям вот ваще!»?
Не, ну могу себе представить, если бы плата была не плоская, но тут же плоская.
Корпус хороший — не прям «вау», но не гнётся, не скрипит, пластик с приятной текстурой, в меру тяжелый. В некоторых клавиатурах меня например бесит когда кабель тупо по центру или только с одной конкретной стороны, или когда плейт прикручен шурупами сверху и их видно через щели между колпачками. Это не какие-то эксклюзивные фичи, но в целом впечатления от этой конструкции приятные и здесь нет моментов которые лично меня бы бесили.
Чтобы я совсем максимально восхитился, то наверное он должен был бы как минимум быть сделан из фрезерованного анодированного алюминия и весить 2-3 килограмма =)
Ощущения от шершавого холодного куска металла — так себе.
текстолитплата была бы заменена и по сути от Леопольда остался бы только корпус?Вопрос в другом: где граница когда это «еще та клавиатура»?
Про хлеб и троллейбус в тему было…