自作キーボード (DIY Wireless Split Keyboard)
goal
分割・無線・充電式・40~50キーくらいのキーボードを自作する。
concepts
キットではなく完全オリジナルで作る。
キーの配置は自分の手に合わせて完全にカスタマイズするが、配列はQWERTの無難な感じにする。
いつかはPCB基板を起こしたいが、1号機は空中配線で頑張る。
シャシーもいつかは3Dプリンタでいい感じに作りたいが、1号機は紙粘土か何かで頑張る。
まずは安価なPro Microで有線接続の試作機を作る。
それがうまくいったらnice!nanoかその互換チップで無線化する。
スイッチはChocとかロープロファイル系。
milestones
- キーボードの仕組みを学ぶ
- 3x3の試作機を作る
- 3x3x2の試作機(有線接続)を作る
- 3x3x2の試作機を無線接続化する
- プロトタイプを作る
grocery
- kailh choc switch
- keykaps
- ダイオード 1n4148
キーボードの仕組みを学ぶ
https://www.dairequinlan.com/2020/12/the-keyboard-part-2-the-matrix/
The Keyboard - Part 2 : The Matrix
https://www.youtube.com/watch?v=hjml-K-pV4E&t=705s
How to Build a Handwired Keyboard
https://www.youtube.com/watch?v=1bRqxVm_wvo
QMK Tutorial (Simple Guide for the Keyboard Configurator)
ブレッドボードで試作機の試作機を作ってみる
Kailhのスイッチ届いた!
ダイオードがまだ届かない😅
カッティングボード買って来た
3x3の空中配線がなんとかできた。
本当は(列だけでも)もっと太いスズメッキの線(棒)で配線したかったのだが、半田のノリが悪すぎて断念。
エナメル線を半田付けする部分だけカッターで皮膜を削いで、端子に巻きつけた上で半田付けしていった。
QMK
setup
brew install qmk/qmk/qmk
qmk setup
Would you like to clone qmk/qmk_firmware to /Users/shuji/qmk_firmware? [y/n] y
Cloning into '/Users/shuji/qmk_firmware'...
Ψ Successfully cloned https://github.com/qmk/qmk_firmware to /Users/shuji/qmk_firmware!
Ψ Added https://github.com/qmk/qmk_firmware as remote upstream.
Ψ QMK Doctor is checking your environment.
Ψ CLI version: 1.1.6
Ψ QMK home: /Users/shuji/qmk_firmware
Ψ Detected macOS 15.0.1 (Apple Silicon).
Ψ Userspace enabled: False
Ψ Git branch: master
Ψ Repo version: 0.27.3
Ψ - Latest master: 2024-12-27 19:42:54 +0000 (f549948bbd) -- Skip parsing g_led_config when matrix_size is missing (#24739)
Ψ - Latest upstream/master: 2024-12-27 19:42:54 +0000 (f549948bbd) -- Skip parsing g_led_config when matrix_size is missing (#24739)
Ψ - Latest upstream/develop: None
Ψ - Common ancestor with upstream/master: 2024-12-27 19:42:54 +0000 (f549948bbd) -- Skip parsing g_led_config when matrix_size is missing (#24739)
Ψ - Common ancestor with upstream/develop: None
Ψ CLI installed in virtualenv.
☒ Can't find arm-none-eabi-gcc in your path.
☒ Can't find avr-gcc in your path.
Would you like to install dependencies? [Y/n] Checking Homebrew installation
Ψ All dependencies are installed.
Ψ Found arm-none-eabi-gcc version 8.5.0
Ψ Successfully compiled using arm-none-eabi-gcc
Ψ Successfully tested arm-none-eabi-binutils using arm-none-eabi-size
Ψ Found avr-gcc version 8.5.0
Ψ Successfully compiled using avr-gcc
Ψ Successfully tested avr-binutils using avr-size
Ψ Found avrdude version 8.0
Ψ Found dfu-programmer version 1.1.0
Ψ Found dfu-util version 0.11
Ψ Submodules are up to date.
Ψ Submodule status:
Ψ - lib/chibios: 2024-02-17 19:20:06 +0000 -- (be44b3305f)
Ψ - lib/chibios-contrib: 2024-04-03 20:39:24 +0800 -- (77cb0a4f)
Ψ - lib/googletest: 2021-06-11 06:37:43 -0700 -- (e2239ee6)
Ψ - lib/lufa: 2022-08-26 12:09:55 +1000 -- (549b97320)
Ψ - lib/vusb: 2022-06-13 09:18:17 +1000 -- (819dbc1)
Ψ - lib/printf: 2022-06-29 23:59:58 +0300 -- (c2e3b4e)
Ψ - lib/pico-sdk: 2023-02-12 20:19:37 +0100 -- (a3398d8)
Ψ - lib/lvgl: 2022-04-11 04:44:53 -0600 -- (e19410f8)
Ψ QMK is ready to go
qmk new-keyboard
qmk lint -kb 3x3
qmk compile -kb 3x3 -km default
15mm * 15mm
Dimensions: 17.5x16.5mm (1u/homing); 26.5x16.5mm (1.5u); 35.5x16.5mm
3x3x2の試作機(有線接続)を作る
# create a fork https://github.com/shuji-koike/qmk_firmware
git clone shuji-koike/qmk_firmware
cd shuji-koike/qmk_firmware
git submodule update --init
git pull --recurse
["~\n`","!\n1","@\n2","#\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{a:7,w:2},""],
[{w:1.5},"",{a:4},"Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{w:1.5},"|\n\\"],
[{a:7,w:1.75},"",{a:4},"A","S","D","F","G","H","J","K","L",":\n;","\"\n'",{a:7,w:2.25},""],
[{w:2.25},"",{a:4},"Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{a:7,w:2.75},""],
[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},""]
https://www.keyboard-layout-editor.com/##@@=~%0A%60&=!%0A1&=%2F@%0A2&=%23%0A3&=$%0A4&=%25%0A5&=%5E%0A6&=%2F&%0A7&=*%0A8&=(%0A9&=)%0A0&=%2F_%0A-&=+%0A%2F=&_a:7&w:2%3B&=%3B&@_w:1.5%3B&=&_a:4%3B&=Q&=W&=E&=R&=T&=Y&=U&=I&=O&=P&=%7B%0A%5B&=%7D%0A%5D&_w:1.5%3B&=%7C%0A%5C%3B&@_a:7&w:1.75%3B&=&_a:4%3B&=A&=S&=D&=F&=G&=H&=J&=K&=L&=%2F:%0A%2F%3B&=%22%0A'&_a:7&w:2.25%3B&=%3B&@_w:2.25%3B&=&_a:4%3B&=Z&=X&=C&=V&=B&=N&=M&=%3C%0A,&=%3E%0A.&=%3F%0A%2F%2F&_a:7&w:2.75%3B&=%3B&@_w:1.25%3B&=&_w:1.25%3B&=&_w:1.25%3B&=&_w:6.25%3B&=&_w:1.25%3B&=&_w:1.25%3B&=&_w:1.25%3B&=&_w:1.25%3B&=
[{a:7,w:1.5},"",{a:4},"Q","W","E","R","T",""],
[{w:1.5},"",{x:0.25,a:4},"A","S","D","F","G"],
[{a:7,w:2},"",{x:0.25,a:4},"Z","X","C","V","B"]
[{a:7,w:1.25},"",{a:4},"Q","W","E","R","T",{a:7,w:1.5},""],
[{w:1.5},"",{a:4},"A","S","D","F","G",{a:7},""],
[{w:2},"",{a:4},"Z","X","C","V","B",{a:7},""],
["","","",{w:1.5},"",{w:2},"",""],
[{y:1,x:0.25,a:4},"Y","U","I","O","P",{a:7},"","",{w:1.25},""],
[{x:0.5,a:4},"H","J","K","L",{a:7},"","",{w:2},""],
["",{a:4},"N","M",{a:7},"","","",{w:1.5},"",""]