QMK firmware

# QMKのセットアップ
### 以下のURLより、qmk_firmwareをfork
https://github.com/qmk/qmk_firmware.git

~~### ローカルへclone~~
~~git clone --recurse-submodules~~ ~~https://github.com/ueki5/qmk_firmware.git~~

### QMK MSYSを入手してインストール
[QMK MSYS](https://msys.qmk.fm/ "QMK MSYS")
※QMK_MSYS.exe入手し、実行する
### QMKのセットアップ＆リポジトリクローン
```shell-session:
qmk setup ueki5/qmk_firmware -H C:/home/Workspace/qmk_firmware
```
※ueki5/qmk_firmware：forkしたプロジェクト、-H:クローン先
セットアップの過程で、qmkのホームが設定されます。({ユーザディレクトリ}/AppData/Local/QMK.EXE/qmk.exe/qmk.exe.ini)
```ini:qmk.exe.ini
[user]
qmk_home = C:/home/src/qmk_firmware
```

### qmk toolboxをインストール
https://github.com/qmk/qmk_toolbox

# 参考
### ファームウェアのビルド＆書き込み
```shell-session:massdrop cntrl
make massdrop/ctrl:ueki5-dual
./mdloader.exe --first --download massdrop_ctrl_ueki5-dual.bin --restart
```
Fn+B(long press & keyup)
*1)If Fn+B doesn't work, press the switch on the back of the keyboard
*2)If timeout occurs, connect the USB cable directly.

```shell-session:hhkb
make hhkb/ansi:ueki5-usjp:dfu
```
```shell-session:hhkb(new)
qmk compile -kb hhkb/ansi -km via
```

press hardware switch
※2024/1/17 qmk toolboxでflashできた。
①mcuをAtmega32U4に指定してhhkbのスイッチを押す
②flashが有効になるのでボタンを押す
③Flash completeのメッセージが表示され、書き込み完了


```shell-session:olkb preonic
make preonic/rev3:ueki5-usjp:dfu-util
make preonic/rev3:via:dfu-util
```
press reset switch

```shell-session:angel70
make angel70/rev1:ueki5-usjp
```
use qmk_toolbox to flash the firmware with Microcontroller=atmega32u4,Auto-Flash=checked
press dip switch


```shell-session:keychron k15 pro build
make keychron/k15_pro/ansi_encoder/rgb:via
```
```shell-session:keychron k15 pro flash
make keychron/k15_pro/ansi_enoder/rgb:via:flash
```
or 
use qmk_toolbox to flash the firmware with Microcontroller=atmega32u4,Auto-Flash=checked
**Reset Key**: Connect the USB cable, toggle mode switch to "Off", hold down the *Esc* key or reset button underneath space bar, then toggle then switch to "Cable".


### ログの出力
rules.mkへCONSOLE_ENABLE = yesの設定をするとキーボードはデバッグ情報を出力する。

# 旧手順(2020年版)
### Git for Windows SDK をインストール
```shell-session
git clone https://github.com/git-for-windows/git-sdk-64.git
```
インストール先/git-sdk-64をPATHに追加
### qmk_firmwareをfork
https://github.com/qmk/qmk_firmware.git
### ローカルへclone
```shell-session
git clone --recurse-submodules https://github.com/ueki5/qmk_firmware.git
```
### QMKのルートフォルダでビルドツールのインストール
```shell-session
./util/qmk_install.sh
```
※セキュリティソフト等の妨害（自己署名証明書の拒否など）でビルドツールのインストールが失敗する事があるので一時的に無効化する

## linux/WSL
[qmk](https://docs.qmk.fm/newbs_getting_started)
```
sudo apt install -y git python3-pip
python3 -m pip install --user qmk
```
```
qmk setup ueki5/qmk_firmware -H $HOME/workspace/qmk/qmk_firmware
qmk setup ueki5/qmk_firmware_2020 -H $HOME/workspace/qmk/old2020/qmk_firmware
qmk setup ueki5/qmk_firmware_keychron -H $HOME/workspace/qmk/keychron/qmk_firmware
qmk setup ueki5/qmk_firmware_nuphy-src -H $HOME/workspace/qmk/nuphy-src/qmk_firmware
qmk setup nuphy-src/qmk_firmware -H $HOME/workspace/qmk/nuphy-src2/qmk_firmware
```
# 備忘
```
## how to build & install
First, type bash(wsl) or git-bash(git-sdk-64) on your terminal.

[massdrop cntrl]
make massdrop/ctrl:ueki5-dual
./mdloader.exe --first --download massdrop_ctrl_ueki5-dual.bin --restart
Fn+B(long press & keyup)
*1)If Fn+B doesn't work, press the switch on the back of the keyboard
*2)If timeout occurs, connect the USB cable directly.

[hhkb]
make hhkb/ansi:ueki5-usjp:dfu
press hardware switch

[olkb preonic]
make preonic/rev3:ueki5-usjp:dfu-util
press reset switch

[angel70]
make angel70/rev1:ueki5-usjp
use qmk_toolbox with Microcontroller=atmega32u4,Auto-Flash=checked
press dip switch
```

# 2024/07/18現在有効なキーボード
```shell-session:qmk_firmware:master
make hhkb/ansi:via
make preonic/rev3:via
```
```shell-session:qmk_firmware_keychron:wireless_playground
git checkout wireless_playground
git submodule update
make keychron/k7_max/ansi/rgb:via
make keychron/k11_pro/ansi_encoder/rgb:via
make keychron/k15_pro/ansi_encoder/rgb:via
make keychron/q10_max/ansi_encoder:via
```
```shell-session:qmk_firmware_keychron:bluetooth_playground
git checkout bluetooth_playground
git submodule update
make keychron/k11_pro/ansi_encoder/rgb:via
make keychron/k15_pro/ansi_encoder/rgb:via
```
```shell-session:qmk_firmware_nuphy-src:nuphy-air75
git checkout nuphy-air75
git submodule update
make nuphy/air75_v2/ansi:via
```
:::note warn
nuphy-keyboardsは、submoduleのupdateでエラーになり、使用できなかった
:::