・2023/08/10
キーボードの VIAや QMKのファームウェアがバージョンアップして VIAを認識しないのを解決する方法
(VIA and QMK firmware update occure trouble to JSON error and not detect、support version matrix)
Tags: [電子工作], [QMK]
●キーボードの VIAや QMKのファームウェアがバージョンアップして VIAを認識しないのを解決する方法
VIA and QMK firmware update occure trouble to JSON error and not detect
Raspberry Pi Pico RP2040で QMKのファームウェアを動かせる様になったので超久しぶりに QMKキーボードを作ろうと思いましたが、私にとっての必須機能の VIAを認識しない問題で鬱になりましたが、無事に解決したので治りました。
・2023/08/04
Raspberry Pi Pico RP2040で QMKのファームウェアを動かす!
Raspberry Pi Pico RP2040でも QMKのファームウェアを公式に動かせる様になりました!
● VIAを認識しないの再現方法
下記の BSTK100のキーボードを例に説明します。
bstk100
・2022/01/09
BUFFALOの USB テンキーを Pro Microと QMKを使って VIAカスタマイズ キーボードに改造する方法
BUFFALO USB 10-Key keyboard BSTK100 modification by Pro Micro and QMK firmware VIA
●下記の組み合わせで VIAの認識可否を検証しました
・ QMKファームウェア
QMK 0.15.25 - Feb 22 2022
QMK 0.18.17 - Nov 14 2022
QMK 0.21.6 - Jul 7 2023
・ VIAアプリ
VIA v1.3.1 Dec 3 2019
VIA v2.2.0 Mar 2 2023
VIA v3.0.0 Mar 10 2023
Web VIA
QMKと VIAの「確実に認識する」「ゴールデンパターン」の組み合わせ
QMK ver. | JSON file | VIA.exe 1.3.1 | VIA.exe 2.2.0 | VIA.exe 3.0.0 | Web VIA 2023/08 |
QMK 0.15.25(Feb 22 2022) | keymap_v1.json | OK | NG *2 | NG *2 | NG *2 |
| keymap_v2.json | OK | OK (Use V2 definitions = ON) | OK | OK |
| keymap_v3.json | NG *1 | NG *3 (Use V2 definitions = OFF) | NG *3 | NG *3 |
QMK 0.18.17(Nov 14 2022) | keymap_v1.json | NG *4 | NG *2 | NG *2 | NG *2 |
| keymap_v2.json | NG *4 | OK (Use V2 definitions = ON) | OK | OK |
| keymap_v3.json | NG *1 | NG *3 (Use V2 definitions = OFF) | NG *3 | NG *3 |
QMK 0.21.6(Jul 7 2023) | keymap_v1.json | NG *4 | NG *2 | NG *2 | NG *2 |
| keymap_v2.json | NG *4 | NG *5 (Use V2 definitions = ON) | NG *5 | NG *5 |
| keymap_v3.json | NG *1 | OK (Use V2 definitions = OFF) | OK | OK |
NG *1: Object: should have required property 'lighting'
NG *2: Error: '0xFEED' is not a valid vendorId. (Use V2 definitions = ON)
NG *2: Object: should NOT have additional properties (Use V2 definitions = OFF)
NG *3: Fetching v2 definition failed
NG *4: Searching for devices...
NG *5: Fetching v3 definition failed
● Conclusion、結論
2023/08 現在の QMK 0.21.6は VIA v3だけに対応している。
VIA v3アプリは、
keymap_v2.jsonを使う事で v1系、v2系のデバイスに対応できる。 (Use V2 definitions = ON)
keymap_v3.jsonを使う事で v3系のデバイスに対応できる。(Use V2 definitions = OFF)
と言う事で、
VIA v3アプリが有れば v1系、v2系、v3系の全てのデバイスに対応できる。
VIA v1系のデバイスは keymap.jsonを v2形式に書き換える。 (Use V2 definitions = ON)
(具体的には vendorIdの 0xを削除する)
VIA v2系のデバイスは v2形式の keymap.jsonを使用する。 (Use V2 definitions = ON)
VIA v3系のデバイスは v3形式の keymap.jsonを使用する。 (Use V2 definitions = OFF)
● VIA versionと VIA Protocolと QMKのバージョンの対応表
VIA version | VIA Protocol | QMK version |
VIA v1.x | VIA Protocol 10 | QMK 0.15.25 - Feb 22 2022 |
VIA v2.x | VIA Protocol 11 | QMK 0.18.17 - Nov 14 2022 |
VIA v3.x | VIA Protocol 12 | QMK 0.19.0 - Nov 28 2022 |
v10.ts - VIA Protocol 10
v11.ts - VIA Protocol 11
v12.ts - VIA Protocol 12
● QMK 0.15.25(Feb 22, 2022)
QMK 0.15.25 Feb 22 2022
cd
git clone --recursive https://github.com/qmk/qmk_firmware qmk_firmware_0.15.25 --depth 1 -b 0.15.25
cd qmk_firmware_0.15.25
sudo ./util/qmk_install.sh
qmk -V
if [ $? -ne 0 ]; then
python3 -m pip install qmk
fi
make git-submodule
# BSTK100の VIA対応ファームウェアをビルド
make handwired/bstk100:via
# handwired_bstk100_via.hexを Pro Microに書き込む
ls -l *.hex
# -rw-r--r-- 1 user user 52566 Aug 13 13:18 handwired_bstk100_via.hex
keymap_v1.json for VIA 1.3.1
{
"name":"bstk100",
"vendorId":"0xFEED",
"productId":"0xB100",
"lighting":"none",
"matrix":{"rows":5,"cols":5},
"layouts":{
"keymap":[
[{"x":3,"h":0.5},"0,0"],
["3,4","0,3","0,2","1,3"],
["1,0","1,1","1,2","0,1"],
["2,0","2,1","2,2","2,3"],
["3,0","3,1","3,2",{"h":2},"3,3"],
["4,0","4,1","4,3"]
]
}
}
VIA.exe 1.3.1.0 2020年6月19日、12:14:28
CRC32: 4BC7562E
MD5: 0474F56BEB38D2AF8C20BB44D66CEBCA
SHA-1: BBD0F66A20B84A70759A83D9ED43C9BE835799DE
via-1.3.1-win.exe
CRC32: C42106F4
MD5: 19A1E8AC63BD56062B2E9F0E98AE2B5E
SHA-1: F365277327324417E06EE4A4FDC4FE6E1CEE5614
● QMK 0.18.17(Nov 14, 2022)
QMK 0.18.17 Nov 14 2022
cd
git clone --recursive https://github.com/qmk/qmk_firmware qmk_firmware_0.18.17 --depth 1 -b 0.18.17
cd qmk_firmware_0.18.17
sudo ./util/qmk_install.sh
qmk -V
if [ $? -ne 0 ]; then
python3 -m pip install qmk
fi
make git-submodule
# BSTK100の VIA対応ファームウェアをビルド
make handwired/bstk100:via
# handwired_bstk100_via.hexを Pro Microに書き込む
ls -l *.hex
# -rw-r--r-- 1 user user 53245 Aug 13 13:42 handwired_bstk100_via.hex
keymap_v2.json for VIA 2.2.0
{
"name":"bstk100",
"vendorId":"FEED",
"productId":"0xB100",
"lighting":"none",
"matrix":{"rows":5,"cols":5},
"layouts":{
"keymap":[
[{"x":3,"h":0.5},"0,0"],
["3,4","0,3","0,2","1,3"],
["1,0","1,1","1,2","0,1"],
["2,0","2,1","2,2","2,3"],
["3,0","3,1","3,2",{"h":2},"3,3"],
["4,0","4,1","4,3"]
]
}
}
VIA.exe 2.2.0.0 2023年1月11日、0:22:54
CRC32: FDA7A47A
MD5: F8A90C992BFC711EDDC5BAEB71033F9D
SHA-1: D484F278593EE9901F122D424F8D8C801C06B547
via-2.2.0-win.exe
CRC32: 5288E2F8
MD5: 0A7C5A1D6CCD372BC121470AE700F820
SHA-1: 5815837354CF2E23EFAF670702FE607BA224DEF7
● QMK 0.21.6(Jul 7, 2023)
QMK 0.21.6 Jul 7 2023
cd
git clone --recursive https://github.com/qmk/qmk_firmware qmk_firmware_0.21.6 --depth 1 -b 0.21.6
cd qmk_firmware_0.21.6
sudo ./util/qmk_install.sh
qmk -V
if [ $? -ne 0 ]; then
python3 -m pip install qmk
fi
make git-submodule
# BSTK100の VIA対応ファームウェアをビルド
make handwired/bstk100:via
# handwired_bstk100_via.hexを Pro Microに書き込む
ls -l *.hex
# -rw-r--r-- 1 user user 53265 Aug 13 15:36 handwired_bstk100_via.hex
keymap_v3.json for VIA 3.0.0
{
"name":"bstk100",
"vendorId":"FEED",
"productId":"0xB100",
"matrix":{"rows":5,"cols":5},
"layouts":{
"keymap":[
[{"x":3,"h":0.5},"0,0"],
["3,4","0,3","0,2","1,3"],
["1,0","1,1","1,2","0,1"],
["2,0","2,1","2,2","2,3"],
["3,0","3,1","3,2",{"h":2},"3,3"],
["4,0","4,1","4,3"]
]
}
}
VIA.exe 3.0.0.0 2023年3月8日、10:08:28
CRC32: 62168071
MD5: 94A1214489EBC848A77AA0ACACADBDCA
SHA-1: F1AC5294FA1B9AF6D86BAFE81E2F71CFD357073C
via-3.0.0-win.exe
CRC32: E5A748EA
MD5: 784E2F3135EA5E3B3CC6EA73D1D582D4
SHA-1: A61F2F651CE459757D8CEFA0E0AA4762C31EC72A
● VIAの各バージョンと keymap.jsonの仕様の差異の一覧
VIAのプログラム側でバージョン違いも含めて「何が悪いのかエラーの詳細」を表示して欲しい。
VIA公式
What's New VIA Nº3
「New UI 3D Mode」って何が嬉しいんだろうか?
VIA Version 3 Changes
VIA | 1.3.1 | 2.2.0 | 3.0.0 | Error |
'vendorId' value | "0xFEED" | "FEED" | "FEED" | Error: '0xFEED' is not a valid vendorId. |
'lighting' property | required | required | NOT | Object: should have required property 'lighting' or Object: should NOT have additional properties |
● Error: '0xFEED' is not a valid vendorId.
VIAの V2以降は vendorIdの値の '0x'が不要です。
例:"vendorId":"0xFEED"の場合、"vendorId":"FEED"に書き換える。
productIdには '0x'が有っても無くても大丈夫。
これって VIAのバグ?
● keymap.json Object: should have required property 'lighting'
VIAの V2までは 'lighting'が必須です。
● keymap.json Object: should NOT have additional properties
VIAの V3以降は 'lighting'が不要です。
Keyboard Definition Changes for VIA V2 to V3 - Lighting
The lighting element is deprecated and replaced by specifying one or more of the following in the menus element
● VIA - SETTINGS - Show Design tab - ON
自作キーボードで VIAがキーボードを自動認識しない場合は SETTINGSタブの Show Design tabを ONにすると DESIGNタブが出てくるので JSONファイルを読み込ませる事ができます。
・SETTINGS tab - Show Design tab ON
・DESIGN tab - JSON file Drag and Drop
・VIA SETTINGSタブの Show Design tabを ONにする




● The device is forgotten.
● Received invalid protocol version from device
● The device must be opened first.
接続しているデバイスが変な状態。
解決方法:デバイスの USBを抜き差しする。
VIA Web app.の場合 Chromeブラウザの URL欄に
chrome://device-log/
を入力するとデバイスのログが確認できる。
接続しているデバイスが VIAアプリのバージョンに対応していない。
解決方法:VIAアプリのバージョンに対応したファームウェアに更新する。
● Fetching v2 definition failed
接続しているデバイスが VIA v2に対応していない。
解決方法:VIA v2に対応のファームウェアに更新する。
● Fetching v3 definition failed
接続しているデバイスが VIA v3に対応していない。
解決方法:VIA v3に対応のファームウェアに更新する。
● Loading device failed - retrying
● Command Name: DYNAMIC_KEYMAP_MACRO_GET_BUFFER
Command: 14 1 248 28
Response: 1 0 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
● Error: Receiving incorrect response for command
at KeyboardAPI._hidCommand (https://usevia.app/assets/index-8650462d.js:3:9407)
at async KeyboardAPI.flushQueue (https://usevia.app/assets/index-8650462d.js:3:8661)
接続しているデバイスが変な状態。
解決方法:デバイスの USBを抜き差しする。
それでも駄目な場合はパソコンを再起動する。
● VIA Protocol 12 VIA Version 3 Changes
VIA Nº3 - What's New - VIA
VIA Version 3 Changes
VIA Protocol 12 #19697
VIA Protocol 12 + fixes #19916
breakpoint_2023_05_28
● VIA互換のキーボード設定 Webアプリの Remap
Remap for latest QMK Firmware version
Remap for QMK Firmware 0.18.17 or lower
Remap supports QMK Firmware 0.22.2 or higher
現在のRemapと今後のRemapについて
内部キーコード体系が大きく変わってしまった
Tags: [電子工作], [QMK]
●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)
Raspberry Pi Pico RP2040で QMKのファームウェアを動かす!
Raspberry Pi Pico RP2040でも QMKのファームウェアを公式に動かせる様になりました!
【ソースコード有り】QMKキーボードに PC98起動時のピポ音を実装する方法
PC98起動時のピポ音を QMKに実装する方法
【ソースコード有り】QMKキーボードに Caps Lockや Scroll Lock等の LEDインジケータ機能を追加する方法
How to add Caps Lock Scroll Lock LED indicators to QMK Keyboard
QMKで動的にキーボードマクロを定義できる Dynamic Macrosを有効にする方法
QMK 動的マクロ機能でランタイムでのマクロの記録および再生を行なう方法
【2023年】QMK firmwareの開発環境を Windows WSLにセットアップする方法
Windows WSL環境でカスタマイズ キーボードのファームウェア QMK firmwareの開発環境を構築する方法
Raspberry Piで QMK firmware キーボード設定用の VIAを動かす方法、Remapも動かすよ!
Raspberry Pi and VIA configure a keyboard、Remap keyboard customization app
【自由工作】市販のキーボードを無改造で VIA QMK化する Keyboard Quantizerを自作する【夏休み】
夏休みが明けたら 僕のキーボードが最強になって クラスのみんなから MMK 大作戦
QMK firmwareで I/Oピンが足りない場合にデコーダ、デマルチプレクサを使用して IOを拡張する解決方法
QMK firmware expand I/O for many matrix keyboard、How to use IO Expander Multiplexer / Demultiplexer / Decoder
QMK firmwareで I/Oピンが足りない場合に I2Cの GPIOエキスパンダを使用して IOを拡張する解決方法
QMK firmware expand I/O for many matrix keyboard、How to use I2C GPIO Expander PCF8574 and PCF8575
QMK firmwareで Audio機能を試してみる
QMK firmware test Audio function with Piezo buzzer
QMK firmwareで OLED機能で SSD1306を試してみる
QMK firmware test OLED Driver with SSD1306
QMK firmwareで Analog Stick機能で PSP2000用アナログ ジョイスティックを試してみる
QMK firmware test Analog Joystick function with PSP2000 Analog Stick
中華製の格安なプログラマブル USBキーボードを買ってみた QMK VIAとは別物
中華製のプログラマブル USBキーボード KeyboardSetter.exe
ロータリーエンコーダ付きの中華製の格安なプログラマブル USBキーボードを買ってみた QMK VIAとは別物
中華製のプログラマブル USBキーボード MINI Keyboard.exe
社畜のキーボード「新入社員の同期」を購入してみた!! VIA、QMK、Remapでのカスタマイズに対応
キー内容が Remap等でカスタマイズ可能な社畜のキーボード「新入社員の同期」を 3500円で購入
[HOME]
|
[BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c)
2023 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator
http://www.neko.ne.jp/~freewing/hardware/qmk_via_protocol_update_trouble/